![Programmer Network](/img/default-banner.jpg)
- 310
- 98 048
Programmer Network
Denmark
Приєднався 17 чер 2022
20+ years in the trenches of software engineering. No propaganda, just practical insights.
Defensive Programming & Guard Clause Hell (write more stable code)
In this video, I delve into the nuances of defensive programming and the concept of "guard clause hell" to help you write more stable and reliable code. Drawing from my personal experiences and practical examples, I'll explore how recent JavaScript features, such as conditional operators, can lead to unstable interfaces, unpredictable return types, and problematic APIs.
Github repository: github.com/Programmer-Network/Programmer-Network-Defensive-Programming
#softwaredevelopment #webdevelopment #programming #softwareengineer #defensiveprogramming #programming
📽️ Live Stream - twitch.tv/programmer_network
👽 Github - github.com/agjs
📡 Programmer Network - programmer.network/aleksandar
ℹ️ LinkedIn - www.linkedin.com/in/aleksandar-grbic-74670263
💬 Discord - discord.com/invite/ysnpXnY7ba
🏫 Bootcamp - ua-cam.com/play/PLMIfYCA9o12rEg8pczVMq-Y6tRlZGhsvG.html&si=RF2uQ_y0Mfow7xj9
Github repository: github.com/Programmer-Network/Programmer-Network-Defensive-Programming
#softwaredevelopment #webdevelopment #programming #softwareengineer #defensiveprogramming #programming
📽️ Live Stream - twitch.tv/programmer_network
👽 Github - github.com/agjs
📡 Programmer Network - programmer.network/aleksandar
ℹ️ LinkedIn - www.linkedin.com/in/aleksandar-grbic-74670263
💬 Discord - discord.com/invite/ysnpXnY7ba
🏫 Bootcamp - ua-cam.com/play/PLMIfYCA9o12rEg8pczVMq-Y6tRlZGhsvG.html&si=RF2uQ_y0Mfow7xj9
Переглядів: 519
Відео
Thinking about a programming Bootcamp? Here’s a Better Option!
Переглядів 305Місяць тому
Considering a programming bootcamp? In this video, I share my experience and insights from teaching at a bootcamp for over five years. I discuss the pros and cons, debunk common myths, and highlight the true value of mentorship. Whether you're a beginner or an experienced developer, learn why investing in a good mentor might be a better option for your coding journey. Stay tuned till the end fo...
How to stay relevant as a Software Developer (don't be a tool)
Переглядів 739Місяць тому
In this video, we dive deep into a crucial question for software developers: How do you stay relevant in an ever-evolving industry? It's not just about writing code-it's about generating outcomes that drive company success. I'll share insights on why focusing solely on coding can make you obsolete and how you can bring more value to your role. #SoftwareDevelopment #CareerGrowth #SoftwareEnginee...
This is why you are failing your coding journey
Переглядів 3,8 тис.Місяць тому
In this video, I continue the conversation from my previous video, "Programming is Hard," which received amazing feedback and engagement. Today, I'll dive deeper into why many aspiring developers struggle on their programming journey. If you're procrastinating, jumping from tutorial to tutorial, or feeling overwhelmed by the vast amount of information, this video is for you. #softwaredevelopmen...
The Crucial Skill Every Professional Needs: It's Not What You Think
Переглядів 282Місяць тому
#softwaredevelopment #webdevelopment #programming #softwareengineer In this video, I share insights from my journey as a tech lead and discuss why social intelligence and empathy are the most important skills in any profession. Learn how understanding and valuing people can transform your work environment and personal growth. Watch now to find out how you can make a positive impact in your work...
What programming language (stack) should I learn?
Переглядів 343Місяць тому
What programming language (stack) should I learn?
Continuous Excusing Development: The Software Engineer's Syndrome
Переглядів 346Місяць тому
Continuous Excusing Development: The Software Engineer's Syndrome
How to Lose Credibility as a Software Engineer
Переглядів 3,2 тис.Місяць тому
How to Lose Credibility as a Software Engineer
How to Avoid Long Discussions in Pull Requests
Переглядів 729Місяць тому
How to Avoid Long Discussions in Pull Requests
Death of the Software Engineer (and the Rise of the Product Engineer)
Переглядів 658Місяць тому
Death of the Software Engineer (and the Rise of the Product Engineer)
Tech Leadership - Team driven development
Переглядів 2453 місяці тому
Tech Leadership - Team driven development
Is Computer Science degree important? Do I need it to learn programming?
Переглядів 1244 місяці тому
Is Computer Science degree important? Do I need it to learn programming?
Dive into React.js: Crafting a todo app!
Переглядів 3844 місяці тому
Dive into React.js: Crafting a todo app!
How do best teams approach UX and how OKR's can help
Переглядів 724 місяці тому
How do best teams approach UX and how OKR's can help
Should I build a UI Component library or use an existing one?
Переглядів 4264 місяці тому
Should I build a UI Component library or use an existing one?
Dive into React.js: Creating Components
Переглядів 9864 місяці тому
Dive into React.js: Creating Components
Live Code Review of My Viewer's Project
Переглядів 1,3 тис.4 місяці тому
Live Code Review of My Viewer's Project
The best way to understand and solve problems as a Software Engineer
Переглядів 3264 місяці тому
The best way to understand and solve problems as a Software Engineer
Error handling in Javascript and Node.js
Переглядів 1924 місяці тому
Error handling in Javascript and Node.js
Should I use PostgreSQL or MongoDB for my new project?
Переглядів 6804 місяці тому
Should I use PostgreSQL or MongoDB for my new project?
What is the difference between Context API and Redux RTK?
Переглядів 1664 місяці тому
What is the difference between Context API and Redux RTK?
How much does a programming language matter?
Переглядів 824 місяці тому
How much does a programming language matter?
How should I approach learning React or any other library?
Переглядів 814 місяці тому
How should I approach learning React or any other library?
How do you stay focused as a software engineer?
Переглядів 2374 місяці тому
How do you stay focused as a software engineer?
Rich Text Editing in React using Tiptap.js
Переглядів 1,9 тис.4 місяці тому
Rich Text Editing in React using Tiptap.js
Do junior engineers need formal education to be considered as hires?
Переглядів 1084 місяці тому
Do junior engineers need formal education to be considered as hires?
How to get better at design as a software developer?
Переглядів 1204 місяці тому
How to get better at design as a software developer?
Hey Alex, on one of your streams I found js library that enables collaboration features you used on letter T as I remember. Can you tell me what it was? I can't find it :(
Nice one. New sub here! Any access to the repo?
Hi Mosho, Sadly, Programmer Network platform isn't open source, as it is a product that I'm building: programmer.network Some repositories whatsoever are open sourced, a lot of those that I wrote for Programmer Network itself, you can check them out here: github.com/Programmer-Network Thanks a bunch for your sub, and taking the time to comment.
🎉
Keep it up man. New sub
Thanks man, will do for sure. Appreciate the sub! :8)
Gotta set aside a couple hours to watch this one. Keep grinding bro the rewards will come. Thanks❤
6:00 Sure “the entry level will be more difficult”, but also, “the entry level stage will take much less time”. Because the answers are there for you in a few seconds instead of distributed across many internet sources and having to wade through dubious opinions. ChatGPT is far more direct and unbiased than those things. Although of course, you will need to “make it your own” and cross-examine. But still, learning is now like a hot knife through butter whereas in the past, it was like sorting through a garbage pile.
Having a mentor is invaluable as you say. I think your Twitch account might be helpful for that.
Good point with the pen. As you say, the new AI tools will make us all better pens. I really like GitHub Co-pilot.
I agree with your comments about focusing on getting to a solution instead of arguing.
I like the attitude concerning the importance of empathy and cooperation with coworkers.
Thanks.
Interesting and practical
I'm noob in JS, but wrote down a quote from Primeagen: "if you want to build robust programs, you have to use errors as values, you can make it work with try catch but it is a ton of handling". Note: JS is a try catch language.
Hi Jero. Javascript uses exception handling, and is vastly different than e.g Go, where errors are treated as values. "You have to use errors ad values to build robust..." is a false claim, as there are various ways to handle errors. You can of course achieve similar results in Javascript by wrapping each function block in try/catch and return an object with value/error but that has other performance implications. I wonder though, what in this video made you think of error handling, as what we discussed in this video was not related to errors? Thanks a bunch for commenting.
Interesting video incase of user is null I usually set user to empty object if it doesnt exist so in frontend I check if Object.keys(user).length === 0 then (redirect to login page) etc.
I do like this approach and it's not something I utilise enough. I'm a big golang fan and it handles "missing" data in a similar way, that being just returning a concrete class but with empty fields similar to your empty username check at the end
Exactly, Go really shines at this. I'd say, anything one can do at any given place, that being a utility function or a class, makes the code and the data "cascade" way better throughout the entire system. One simple check and "normalization" can ruin the entire path, and make the code convoluted with unnecessary, and as I call them, lazy/convenient checks.
@programmer-network would you say you'd always rather a call return a concrete type then it's up to the invoker to determine whether that is valid data to continue? Thinking about default values against a type vs a null return. I suppose this breaks rest conventions if a not found is now an "empty" 200, but rest is fairly arbitrary these days anyway
I'd say, null is also fine to return in most cases, as I illustrated in the video, it's very common and clean to check for the presence of something. E.g. if this thing is null, handle that as a separate case. As I also showed with the HTTP example, often times, one could return just the status code, e.g. 404, but it's purely contextual. I'd say, the most important thing is though when the data is actually returned. This is where interfaces get messed up, as often time, the data you get is unstable, aka, you might get this, or that, who knows? But I'd say, as long as these are broken into services, or [Insert Pattern Here] and properly used/composed together, things will workout fine. What I've seen a lot, especially past couple of years, a lot of developers fail a lot understanding the importance of stable frontend facing API, and importance of delivering as perfect data to the UI as possible. A lot of business logic and transformations are being moved to the client side, which is why modern client side Javascript is so messed up and bugged.
@programmer-network yeah makes sense to me thanks, full object or nothing is probably the best approach
So true man, past 2 year I have been learning web development... finding myself multiple times in tutorial hell. Then jumping form one programming language to another... it has been a mission but building your own stuff from scratch is definitely the best way to learn.
I did a bootcamp and it helped a lot. Mentoring especially was well worth it. Thank you for these videos❤
Thank you for watching and being around, appreciate it a lot. Alex
Th pen analogy reminded of the scene from pirates of silicon valley. When Bill Gates says make them need you.
Damn, that's a good one, I completely forgot about it. Thanks for taking the time to comment, appreciate it.
I highly recommend The Odin Project and Fullstack Open to anyone wanting to start web development as they're very hands on and detailed and most importantly they're free.
True and real sir. I have been working as a developer for a decade now and although I am improving year by year I feel like I would have much quicker rate of improvement if I had a mentor at my side during this decade.
Absolutely. To be honest, especially for professionals with big enough salary, it's a minimum investment with the highest results. Thanks for commenting man, appreciate it!
Not being a tool is good advice in general
Why is this video marked as 60 fps, but feels like 20 fps slideshow?
Hi there :). I don't know what's happening on your end. I have checked the video on my iPhone, my Macbook Pro, and my Linux machine, and it works as smooth as other videos. Cheers
The IT industry is a mafia ! It is exploitation of people, it is usury, fraud. You do education or medicine. IT is good as a hobby :)
Hi Martin, I'd say that the industry, once you are in, is really nice, with some amazing people. Sadly, the whole influencer "mafia" as you call it has gotten out of hand, and everyone is trying to profit on entry level people, who have no idea what is right or wrong. Yes, people always since the dawn of programming tried to sell courses and similar material, but past couple of years, it became really really bad. Thanks a lot for commenting.
Can you do a video on your programming setups would like e to see all the physical things you use to help development like whiteboard, etc
Hey man, absolutely, I love the idea. Expect the video this week! And thanks for taking the time to comment. Cheers :)
What's Best stack to learn rn?
Based on the data (check out one of my recent videos), Javascript ecosystem overall and Python are safe bets.
@@programmer-network can you do some python project courses?
@@mintz347 I'd honestly say, I don't think so, as I don't write much Python, and also, this is slightly different type of a channel, where I mostly share my experience, etc. I'm sure you can already find literally thousands of projects like that on UA-cam.
@@mintz347 Check out programming with mosh for python courses.
😭 not even mentioning mental wellness!! God help us All Developers out here !
Your outlook on life and work is something I can learn from. Staying active is so important. All the best to you and your family💯
Stay strong bro💪
I wanna learn data science, i got no coding skills. A mentor suggessted me first start with web development, learn and practise coding and the basic consepts. After that specialize in data science. I found it a bit irrevelant but i wanna ask your opinion on this. By the way great stuff you doing here helping people out, please keep up the good work🎉
Web development is a great gateway, such as the Odin project, may seem irrelevant at start, once you get deep into it, concepts are extremely helpful. Working with logic of back end, presenting in front end and of course the database, know how it works. The Odin project is my personal favorite and changed my life as a beginner programmer overall and opens the floodgates to whatever you want to expand into on your own. Web development is way you can start to end complete a project and learn all the concepts used in all aspects on programming and work with any data.
Hi Nurten, Web development has nearly no connection to Data Science, and you don't have to, nor you should start web development if you want to become data scientist. I don't actually understand who gave you that advice, but whoever it was, it was a terrible advice. I'd be careful getting an advice from that person, or people again. For some context, this is an approximate DS path: roadmap.sh/ai-data-scientist Have a great one, and thanks for commenting.
Here is another unrealistic expectation: That you can get a job as a new programmer in today's world.
As you can see, I hope, I try to keep this channel honest, without influencing BS, and unfortunately, market is a lot tougher for entry level developers today. In simple words, a lot of people have enrolled into IT seeing the opportunities, money, etc. and there's a huge influx of entry level developers that are having a hard time getting a job. What can I suggest? One has to keep applying, keep writing things down from the interviews and improving them interview by interview. There's no "pay my course and I'll teach you how to get a job," etc. It's literally statistics, and that's it. You can help yourself by teaming up with other developers who are in the same boots, building something together and using that in your portfolio. Attend any meetups in your area, or join the virtual ones if any. Network, meet people, and try to impress someone. That's all that there is.
Thank you sir 😂 like the Scottish music
Haha, thanks man, happy you like it :). And thanks for taking the time to comment, appreciate it.
Great video dude! Še en balkanski pozdrav😉 Pozdrav iz Slovenije🙂
Thanks a lot man, happy you like it. I srecan sam sto si nasao kanal :).
hey mate great content, i wanna go down the data science road but even its irrevelant some people suggested me to first learn frontend. their logic was enter the coding space with the basics, get used to programing... what do you suggest? thanks again for the videos
Hey Mezz. I'd say that Data Science are programming are fundamentally different, and you can go to the Data Science route already, as you will be programming in a very different way, aka, you will be dealing with SQL queries, data warehouses such is e.g. Big Query, Snowflake, etc. Also, Python that you will be writing will not be about code quality, it will be transforming the data, etc. So whoever gave you that tip, cannot be more wrong. Frontend has absolutely 0 to do with Data Science. That is like suggesting a tennis player to first learn fishing, it makes no sense. Thanks a bunch for commenting.
This is recipe for success, not many will understand your message. But this goes in every aspect, not just communication, but coding, solving problems, designing pipelines. Literally every piece of technical code and hard-skill is read by people, including you. So not only soft-part of the job, but also the hard-skills and the technical part of the job should be worked having this perspective in mind.
100% Blade, that's it. As of the coding part, let's write a famous code from "Clean Code". "Programs must be written for people to read, and only incidentally for machines to execute."
is the background song from WoW? LOOOL BTW I had your perspective when there are a lot of comments, but some experienced dev suggested me that some teams want to work async and document the discussion for other people. But there is a catch here, which I thought about, and it seems to me that even if you go with the pair-programming approach, you can document the decision that you had from the session.
Your Team/Tech Lead, or a CTO has responsibility to make your team productive. PR's should not be a place of frustration, ego-battles, etc. They are a place where 2 things happen: 1. We PROPOSE, NOT enforce opinions because they are our own 2. We share the knowledge and ask for knowledge If there is a fundamental disagreement, or especially, constant disagreements in the PR's, that means that the team doesn't have team guidelines, and that some part of the process has failed. If PR's are a source of frustration, and if they are making anyone feel bad, again, really bad. E.g. if you are constantly discussing code style, that means that your tooling is not properly setup. If your team mate is e.g. constantly pushing print statements as part of the PR's, that means that you never had a serious discussion about why it's important to review your own code first, before you push it to others. It's about respecting other people's time. There are a lot of these examples. So in simple words, PR's should be focused on BUSINESS LOGIC and if the feature works as it should or not. As much as possible, other things such is style, etc. should be handled by your tooling, and the rules you applied to your tools. You can of course suggest your colleague a better variable name, or a more efficient algorithm, but if your comment is directed to e.g. `why are you writing a function declaration and not a function expression`, that again means, you have a missing brick in your process, and this should have never ended up in the PR at the first place. E.g. an example would be, what I did for my team, you can create your own custom plugin tools for prettier, so if you as a team agree on a very specific thing, you can create your own custom tool that prettier will enforce across your project(s). Cheers :)
@programmer-network yeah, completely agree, Usually, the source of disagreement in PRs is: - bad architecture - not properly configured style analysis tool, linter - miscommunication - bad docs about style, architecture, or something else But I think docs should be the most important component for resolving conflicts.
@@bladekiller2766 One could argue that documentation is fundamental part of every software engineering process, so I'm absolutely with you. Whatsoever, this is a huge danger zone, because again, PR's should be smooth, quick, etc. This of course relates to a different point, which is how your team is breaking tasks down, how are you releasing your code, etc. So the cause of bad PR's lays usually completely elsewhere. I just realized that I recorded a video: ua-cam.com/video/csEeefdFQaA/v-deo.html "How to do effective PR's" and I'm pretty much sharing my experience about this very subject. But what my experience as a software developer, and a leader as well, has thought me all these years is one, and the most fundamental thing when it comes to PR's: Don't make them a pain. Don't make your developers feel stressed when they have to push code. Make it smooth, going, etc. You have CD/CI.
Well broken down.earned yourself a subscriber form Ghana.
The problem when learning is trying to do everything at the same time. Thank you for the advice💯
Any idea how to learn something where tutorials are almost non existant, with only a single documentation pdf, and where testing out things is almost impossible since you don't get anything :) (thing in question is adobe after effects plugin development done in c++). I do have few years of experience of web development, after effects scripting (JS) and some c++ knowledge. So, long story short, how to get better at something where documentation is minimal.
Thank you.
Do you think frontent is oversaturated to enter now or backend?
I'd say, market is far from being oversaturated and you can take any path and find great success. So don't worry too much about the market, market will stabilize always with the economy, and programmers are still needed as much as always :).
The problem is that I am always stuck in the middle of a project based course,while its really hard to find projects based courses without theory bs,and when I get stuck even chatgpt won't help ne then burnout comes..and I'm exhausted with migraines...amd tutorial hell and. Job posts that I didn't study comes around 😢 Pozdrav,nisam znao da si s balkana 😅
It takes several skills to go through these lessons, and they are all related to consistency, dedication and continuity. In simple words, you have to slow down, focus on small steps day by day, and way faster then you might image, you'll get there. Whatsoever, if you continue throwing yourself into too many things, too many concepts, etc. it will do you nothing but harm. So, take it slower, focus on one subject at a time, understand it, use it, implement it, then move on :). I naravno, pozdrav. Kada god uzivo programiram, molim te prikljuci se, rado cu pomoci :).
It's a weird catch 22. If what drives you most is the end goal, you'll never get there. If what drives you is your enjoyment of the path, and by this I mean a genuine curiosity, a love of building things and experimenting - then the end goal (a career as a Software Engineer?) will occure naturally as a bi-product of your passion. There's no way around it, you just have to love it. If somehow you manage to get a job as a Software Engineer without the passion (and discipline) to KEEP learning, then you'll soon be without a job, and unemployable. This profession is literally about problem solving, and learning. Learning how a new api works, learning the new features of the language you use at work, learning a new language to help out on another project, researching technologies that might hopefully solve the problem you've just discovered with nats KV (who the hell told nats to add a key value store anyway if it wont even.. - I digress), etc etc. The learning doesn't stop once you sit your butt on that chair of the job you landed, so you'd better love it. A lot of people who should have known better (as in, they know exactly what you're saying in this video), took advantage of the covid tech boom. A six figure salary as a Software Engineer with just 3 months of learning some web dev stack at a bootcamp? No. You won't even be employable in that space of time, and time has shown this in the majority of cases. Just my 2c as a mid level Software Engineer (not front end, or back end - believe it or not the world is much bigger than web dev, despite what UA-cam might have you believe).
I love the Valhalla background theme 🪓
As someone who was in the boat that its not hard, while thinking of myself as being good at programming, I am also in this boat now. Its just that its never enough to be good at understanding code, you need to be up to date with new tech even though you could learn it on the spot, to be considered a good programmer for a job. You always need to keep learning, absorbing knowledge over and over, being up to date (unnecessarily imo), to be considered a good programmer. And the tech industry changes really fast. It is indeed hard. Also, by spreading misinfo that programming is easy- we have just been devaluing our grind for companies to prey on with unrealistic demands that only born geniuses could hope to meet...
"There is no end to education. It is not that you read a book, pass an examination, and finish with education. The whole of life, from the moment you are born to the moment you die, is a process of learning." - Jiddu Krishnamurti I think this quote would pretty much sum up everything you wrote. And absolutely, it's a never ending journey. :8)
Been trying to claw my way out tutorial hell. I have a bad habit of watching lots of videos about all the technologies i need to learn to build an app, and as a beginner it seems like a never ending pool of information. I have just gotta focus on getting comfortable with the fundamentals and take it one step at a time. Thanks for this vid it’s made me realise I’m not alone in this journey.
You can only learn thing at a time. What you will need to learn in a day, a month, a year, is something you shouldn't be getting distracted with. If you are trying to become a web developer, there are 2 things you have to learn, and dedicate few months for: 1. HTML - How to structure your HTML. Semantic HTML5. etc. 2. CSS - Position, Display, CSS Box Model, Units, Responsive Design, etc. I have started a web development bootcamp on this channel, check it out if you want. But it's irrelevant. Any resource will equally do. Once you are capable of making beautiful websites, and you can get inspired by looking at modern HTML5 Templates, then you are ready to move to Javascript. Then you learn Javascript fundamentals, you learn how to make these beautiful pages dynamic, how to submit a form, make a button clickable, show some content when something is clicked, etc. Up until this point, you have spent several months. You have some fundamentals and basics. Then you "recalibrate" and make a new plan.
your problem is that you didn't study computer science so you think that everything you encounter is new;P its all the same stuff all over the same, in a new breadcrumbs
It goes without saying that people prefer being where they are valued. Much appreciated. Baie dankie my vriend❤
I work mostly remotely so had many intercases where toxic feelings were shared between, but then when I go and meet the same guys in office in real life I just see that they are normal kind people at the end of the day like me. Thanks for the video! Keep going!
As we discussed many times in the stream, and some other videos, where I parrot the same stuff, nothing beats humans sitting together. You remove bunch of confusion, misunderstandings, etc. Because we feel each other's energies, emotions, etc. That is why so many people are anxious today, what else can one expect by sitting home in total isolation? So for sure Leo, go and sit with people, it's healthy in every possible way. From waking up, making your bed, dressing up, biking to work, seeing other people, etc. The whole journey from waking up to getting to work and back home, that's life.
Programming is not hard. What is hard is having a specification of what the program needs t accomplish.
Hi, Rex. There are many reasons why programming is hard, and you have named one of them. Specification is part of your programming every day journey, and not having that clear specification, makes it hard. But you have to define what programming is. For you it seems, programming is just writing functions and statements. In that case I agree, programming is not hard. But "programming" goes way beyond just that. That is like saying, tennis is not hard, it's knowing when to bend your knees, not fall back, go through the ball, having stamina, that's hard. It's similar analogy. Tennis is not just hitting the ball with the racquet, it's hundreds of things combined that makes one play tennis. Cheers man, and thanks for chipping in with your opinion.
This sounds like you're separating learning syntax and writing code from the general process that includes figuring out the spec and other parts that don't strictly involve actual coding.
I really agree with your insight. People are very fragile, even the strong people at work. Sometimes I see my manager is stressed and ill try to compliment him or even a coworker if I see that they are a little restless . Im not sure if it ever really does anything but its worth a try.
It's a fast paced life, people are sitting at home too much, lack of exercise, human interaction, etc. It's so many things that many of us affected daily. All of this, in very small increments, but accumulative, creates these feelings. I believe that we have detached ourselves from each other, while in reality, we wouldn't exist as a civilization if haven't been sticking together. Sticking together either through a concept of a family, tribe, village, you name it. Anyway, keep lifting people up, and keep saying nice things. It costs nothing, and it will for sure affect people in a good way. Cheers :)