Have you ever fallen into the mindset limitations described in this episode? What happened when you were fooled by them? How did things get better once you realized your mistake?
I came from a physics background. I naively thought that for a field based in logic it might be filled with very reasonable people who assessed things in a rational manner. It still shocks me on a daily basis how far away from that ideal the field is
Duuuude physics is like the most fedora-tipping, neckbeard-having, "I-have-a-137-IQ-so-shut-up"-talking field I've ever seen. Especially when people are still in their 20's.
@@DudeWatIsThis unfortunately yes, some people do act that way having done physics. Personally, it just gave me the humility to recognize that the world is complex so I try to approach it scientifically. Tbh though, it's actually a minority of physicists that develop that kind of cringy attitude in my experience
Software is opinion based. It’s written down mental models. People solve problems in different way. This is the core of the issue with software people never being able to agree on anything.
@@eightsprites definitely. I think the best solution to this I've seen is to essentially set standards by one person's (usually highly experienced) opinion. A benevolent dictator you could say. Otherwise it just devolves into constant debate over personal opinions masquerading as "facts"
All those little arguments we have about is A better than B. What I've found is so long as everyone is in (more or less) agreement on the chosen paths it doesn't make that much of a difference. The obvious bad choices were weeded out or never even considered before you got down to A vs. B. And you're spot on for all those topics. In my 30 years I've been on a lot of projects, lots of different managers, lots of different ways of doing things. I've talked to a DB about every way imaginable. And I figured out what works for me in a successful and satisfying career. Get it right and it's a mighty rewarding career. But 30 years is enough. My first day of retirement today. So this is all somebody else's problem for me now ;)
The point on anecdotal overconfidence is spot on and it really helped to hear someone who feels the same way. I am really frustrated when people see a different form, paradigm or method and their kneejerk reaction is to say "Thats bad" or "thats dumb", "just use xyz lol" or "thats wrong", instead of saying "why is it like this? Why have they implemented it like that? Is there something preventing them from doing it the way I believe is better? Is my way actually even better?" How can you look at the topmost tip of the iceberg of a software related decision, and then immediatly become, smug, condescending, assertive or dismissive about something that you know nothing about? Maybe there are reasons the project is like that, or why a certain tool or paradigm is used? If there are, then you need to take time to learn and explore the decision, codebase, developers and the project to learn why, instead of being an ass about it, or being dismissive. We as developers need to do better on the emotional maturity front as a whole.
Exactly. I've seen this all the time, especially when a new dev joins a project that started years ago. And instead of learning the history of how it got here, they are about "we must use x" or want to rewrite everything. That's not a good mentality when joining a new project and is pissing the other developers off. Don't think they "were doing it wrong" and you just gave them a unique brilliant piece of advice they have never heard before. Because they also probably started with the same attitude and learned that is was not that easy. Or other things that prevented it to change, like corporate rules, budget issues, tech limitation, etc. A 'big bang' solution is often not going to work. The change is too adrupt and some might reject it, or the risks are too high, takes too long or wathever. If you want 'change', a slow and more natural pace works better.
An underlying theme of your videos is that engineers need to show a bit more "emotional intelligence" and learn to communicate and work with a team together. I fully support this because I've found the same thing in my career.
@@HealthyDev wouldn't it be ironic if AI actually has higher EQ than real engineering managers? I wouldn't be surprised they be better managers too. lol
I wish more online tech discussions would include details. Sometimes they are nuanced but without those details, people will interpret the nuance in different ways. People use vague terms like "scale" and "large" and "small". These words mean different things to someone working at Google, a high frequency trading firm, or a 2 person startup being led by people with no professional software development experience.
This guy I knew, he got a job as a new dev, he was a nice person, got married, helped people... about 4 years after getting a lead programmer position he become bitter, didn't look people in the eyes, considered them less worthy, he started to argue, be divisive, angry, belittle people - breaking bad with code. True story
@@niksatan In some ways, this guy was always like that but couldn't be that way because there was too much risk in his position before the fact. As the old saying goes, if you want to see how people truly are, give them power.
I love these videos, because they are general information that can be applied to any career. I work in desktop support, and have no work experience yet in programming, but these videos are preparing me for that next role.
I have been wrong about the Tabs vs Spaces debate for a long time. It doesn't matter *most* of the time. If everybody is healthy and doing fine, use whatever you like. Modern editors can handle conversion. The moment you start working with someone who has a visual impairment or some reading problems, you want to switch to Tabs. The argument "But Tabs do not look the same on all devices" is exactly the point. You can tune your device to your needs. What do we learn from that? Sometimes there is a right answer (in this case Tabs), but it doesn't matter unless you meet someone who needs this to matter.
The more you know, the more you realize you don’t know. The irony is, being humble and acknowledging your gaps is often perceived as lack of confidence or lack of expertise
Exactly. Part of the problem is we have too many managers without formal training. Some of them don't know how to recognize the value of things like that, so it tends to lean towards systematic measurement of surface metrics.
Not a programmer but works mostly in automation testing and DevOps. Lot of you said applies as well. Trying to be open minded and just genuinely listening really well. Listening to others is a valuable but often overlooked skill that can either make or break your career. Technical skills are important but soft skills and communication as well.
14:31 they key point in this video is to keep your biases in check. We all have biases and they often lead us astray. Biases and absolutism will sabotage your career. Also, try not to carry your past baggage everywhere you go. You shouldn't judge new people you haven't worked with before the same way as your past experiences. Give people the benefit of the doubt and maintain a positive mentality. That will lead to success in your career.
This video hit the nail on the head. I'm a retired developer, some things that I learned during my career is that you need to understand the environment you are currently working in before critiquing their way of doing things or suggesting changes. Also soft skills are vitally important,, learn to communicate with management and other stakeholders on a nontechnical level, this will make you life much easier, and they will be more receptive to your suggestions.
The "right all the time" thing comes from mathematics, where there actually (mostly) is a "right" answer. People with a strong mathematics background have taken over the programming training space. Way back there were more engineers doing programming, and this syndrome was less prevalent. Engineers live in the real world where everything is grey.
How about this paradox: I'm pretty sure that I'm right when I feel like I'm wrong even when I'm not. Imposter syndrome impacts me more often than I'd like to admit.
Thinking about people's priorities is much better than just seeing that "both sides has a point". Everyone usually agrees on a list of important things, but rarely on how to prioritize them when they compete for resources. Take a example from the video, just saying "both 'being a good developer' and 'portraying confidence' are important" isn't enough. These two are often in conflict because a good developer should be documenting and reporting lack of confidence he has in the product. Anyway, it's a person's choice what they prioritize and who they want to be working with.
I've never seen a developer job position that says "job responsibilities: report your confidence in our product". I'm referring to the confidence you portray in your own abilities to management. Maybe you just didn't watch that other episode yet.
@@HealthyDev I'm referring to ruclips.net/video/W7sv1m-U2tk/видео.htmlsi=R9Sbv4YniIVTluXG&t=146 "You really got to minimize communicating problems and doubt about the project". I am equating "reporting confidence in the project" to "reporting problem and doubt in the project". These should describe the same attribute, just in negative of another. Am I misunderstanding something still?
@@ancbi no that's right, we're talking about the same thing. That's my point. Communicating doubt in the project should be done incrementally and carefully, as I stated in the episode. It's not part of your job description. So if you're going to do it, I believe it's better to tread lightly.
Unwillingness to assign probabilities to error scenarios, making it impossible to conduct any sort of risk/reward analysis. I often hear people argue that because they can think of a specific kind of error happening, we MUST invest in a mechanism to render it impossible to make that error and/or invent an expensive test suite to catch it, and when asked how likely it is that this error does happen, the reply is "We can't afford to gamble!". Here's the reality: Odds dominate our existence! You can't avoid gambling in life. Trying to avoid gambling is equivalent to gambling poorly.
The 2015 book "Thinking, fast and slow" by Daniel Kahneman explains a lot about why people make decisions, come to conclusions, hold certain opinions, etc. and how severely all of this is influenced by loads of biases. It can probably explain all of the things you mentioned and more. The book is based on decades of psychological studies, many of which by Daniel Kahneman himself, who was a Nobel price laureate. Strongly recommended reading :)
I'm pretty susceptible to vanity metrics. I will get a kick out of the size of a PR, the number of words written or hours worked. Not sure if it has ever impacted choices I've made (probably has) but I do catch myself sometimes. It's interesting to spot those little logical fallacies that can and will influence what you do next
Really great video. I’ve encountered the Overconfidence in anecdotal evidence so many times along with the absolutist stance I’ve started calling it Rutters law. That whatever well established principle or concept you know in software development there will always be a small but growing group who describe it as an anti pattern. 😂 it works for everything. I have a slide with everything from Agile to Angular and links to ‘x is dead’ RUclips video.
I've been guilty of all of these at some point in my career. Recency bias is definitely a thing - OOP and functional programming have their place. Same with Scrum/Agile - it's how it gets implemented. The context is crucial. Vanity metrics are awful, especially when considering work/life balance as you mentioned.
One that gets me is the cherry picking, "I read a blog post that said that X tech is dead and Y tech is the next thing that's going to take over the world. Nobody uses tech X anymore." How many times have I had someone say that when it isn't even close to true? They read some click-bait article and assume that it's gospel.
I've had several (very) bad experiences with management. I've never said to myself that all managers suck. On the other hand, I seriously believe that the way companies are run is dysfunctional. That there's a real structural problem, too often bad decisions get us into trouble for it to be a problem of individuals, there's something systemic about it. And the problem is that while we're here, very keen to question our methods to do things better, they're not doing it at all. That said, I really like your videos.
You make some very valid points. Personally I believe the systemic issue is that individuals are not taught to work in a way that builds confidence with management, and they aren't taught to understand how their actions are perceived by management. There are problems with management, to be sure. Stopping people who want power from going into positions of authority is not going to happen. It's something we've grappled with since the beginning of time, and intrinsic of human nature.
@@HealthyDev I think you're right, it's certainly an important part of the problem.The difficulty of understanding ways of thinking that aren't our own, that we have to deal with. I think it should be a two-way street. Having said that, just because I find the effort asymmetrical doesn't mean I consider I shouldn't keep working on myself. That's why I follow your content, it goes in that direction: focusing on what we can improve, questioning our ways of seeing things. As for human nature, I don't yet have a definitive opinion on the matter. The further I go, the less I'm able to differentiate between what's intrinsic nature and what would be a cultural element repeated for so long that it would seem natural. I'm still wondering about it. In any case, thank you for taking the time to reply, really.
@@funkymoose9836 you're very welcome. Appreciate you sharing your perspective and struggling through this stuff with us. It's tough to find the way to go with so many conflicting opinions and ways to go!
You need to work in IT Operations. You rely on annecdotal evidence. If a service dies 4 times a year because of a database problem, and its happening now... the db guy will of course say "its not me. the db is up and working fine." Then you chime in as an outsider and say "look, it probably you. Didnt you do a release 2 days ago? Maybe the indexes on the table got borked." Then you hear some typing, and 10 minutes later its all working, and they dont know how it fixed itsself. lol. But that know it all in IT Operations was right and truely an azz.
Typed languages are horrible. Its like painting by number. I program in assembly lang on a mainframe and having non typed Lang is like a blank canvas to an artist
@@vitalyl1327 Typing doesn't even have meaning in assembly so why bring it up? You could also have used C as an example as that is technically untyped as well, but I think it is pretty obvious I was talking about modern higher level languages. And I stand by my statement, it is far too easy to make mistakes in weakly typed languages.
@@beidero you said all languages must be strongly typed. Assembly is a language. Either your maxima is misguided, or assembly is an ill designed language that must be fixed. It was not obvious at all what kind of languages you're talking about (or even if you understand at all what does a "high level language" mean). Now, think of a wider context - a lot of languages primary (or at least very significant) purpose is to be a compilation target, just like assembly. Do they have to be strongly typed? If you like your languages strongly typed, look at Shen: user-defined typing of the derived languages, while keeping the core flexible.
After years of experienced I realized that every tool I use has to be re-evaluated every 4 years - either it vastly improves and now is a great tool that was previously insufficient, or it hasn't been maintained and now other tools are exceeding it. Just saying, "Postman is great" or "Postman sucks" might only be true for a certain time period.
I'd point a few more: - Being a good programmer makes you a good teacher. - Self-documenting code/Auto-generated documentation substitutes appropriate documentation. - Backwards compatibility is not an issue because you have access to the source code. - Optimization is not necessary because users/companies can always upgrade. - User Interfaces are just a beauty tack on top of functionality.
Dunning-Kruger Effect: Research has shown that the less intelligent an individual is, the more confident they are in their abilities. This phenomenon, known as the Dunning-Kruger Effect, highlights the importance of acknowledging one’s limitations. Intelligent people, on the other hand, are more likely to recognize their own ignorance and be willing to learn from others.
TDD + Clean Code will solve everything Interface for everything (why just 1 level deep) and 10 lines per function (why not just 3), always 100% test coverage and eliminate manual testing Don't mind the users or what they are saying, just treat them as dumb complainer, runs against the thinking you are better than everyone It is all about technologies, the newer or the complicated, the better 😅
I'm always curious what programming biases we're personally willing to admit vs. simply saying we see that bias in someone else. I can readily admit I'm not language agnostic. I've made a good living on the Java technology stack, Spring Boot and NoSQL. It works for me, but I recognize a good portion of programmers want to evaluate each use case.
Why only in IT industry we have to talk about these topics? Do we developers are more fragile? Or IT so specific that we should reflect to these mistakes?
Business people often make unrealistic demands when they don't understand a subject. A healthy business has a technical project manager. It makes no sense for every single developer to have to persuade people who don't understand what they're asking for.
Judging if you need to be a be a good developer and confidence inducer(usually ==trickster) is a binary choice is wrong, it is not indeed binary, Ex: Bill Gates(programmer and exceptional liar). The only problem I have with that is that being _also_ a confidence inducer makes me take ownership of business side and that doesn't belong to me, I am an employee. If I would have my own company, than yes, that would be true, but also the tariffs would at least triple or more.
It feels like you repeat yourself at some point in the video. Are you using a clip form mid video in the beginning without a noticeable segway/transition?
@HealthyDev I have ADHD and drift in and out of conversations sometimes. When watching this, I swear the beginning talking points in the video are repeated verbatim again later in the video at some point. Am I crazy for thinking this? Or is there some clip from the recording that is chosen for the introduction of the video that has no transitions or segways back to when you started your recording? It feels like I am watching a single take without transitions, which confuses me when I hear what seems to be the same talking points again.
@@adamloepker8057 yes it sounds like you are truly drifting out and losing context. There is a theme to the entire video, which is why each point offers a different perspective and context on the original idea. This may be why you are experiencing it as a repeat.
@@HealthyDev No, I re-watched it and in the very beginning it says "Coming up..." on the screen, but all the audio sounds like it runs together so I can never tell the differentiation between your preamble clip from mid video and when the video actually starts.. The video feels repetitive speech context wise to me because of this...but maybe you are right and it is my mental illness acting up. In which case I am probably better not watching videos like these. Takes care
Genuinely nobody articulates how I feel, but cant out into words, like you do. My lack of binary thinking and belief that theres merit to multiple approaches has held me back career wise. I believe that not holding strong binary opinions can make you look unconfident.
I believe what Jamie meant was to avoid being an absolutist who automatically rejects one thing just because another thing was already true. In terms of viewing the larger career picture, I totally get what you mean (seeing the merits of different approaches, not wanting to give preference to one over another because we might need this or that thing). I think our jobs often require that we muster the courage to consciously select a specific path and communicate the basis for it to stakeholders so they can too stand behind it confidently. If its hard for us technical people to decide, imagine how unrealistic it would be if the manager had to commit without you. In my experience, the most practical way to tackle this is to ask as many questions as you need until you develop the confidence in your decision. Once you yourself are confident you will have no trouble communicating authoritatively to anyone upstream. I don't necessarily see this as binary thinking. Our role / duty is often to break complex things down and help our company make an informed decision. From that perspective, keeping too many choices on the table can't really help anyone move forward.
The most important thing is not told in the whole video. Lies: We don't need to give appropriate justification (rewards or punishments) on someone's work. If you can't get rid of this bias, your 1 to 5 doesn't matter, technically almost everything doesn't matter. Because what you'll be doing is just making a facade (or someone's else)
I'm sorry but the code I wrote was confidential for clients. I do have a lot of code behind my current website, but it should be obvious why I don't share that. I'm not a programming instructor. I help people with the mental health, work/life balance, and career growth aspects of the job.
We wouldn't have Python without OOP, its all objects under the hood. Without Python, AI and Big Data wouldn't be where they are now and I'd be writing for loops with self defined indexes *bleagh*.
OOP is a tool. Saying it's a mistake is like saying a hammer is a mistake. A hamner can be a mistake if you misuse it. I'm somewhat of a pragmatist rather than a language lawyer. I use what works, and what works best for me is a mix of procedural, OOP, and functional. Some things can be naturally represented as objects but not all things. OOP purists have got it wrong.
“This is where I’ll probably get ripped in the comments” *proceeds to call procedural programming “method based” programming*. LOL. Seriously, though, great points! I don’t have a dog in the race, because I just love all the doggos! I see the attention to verifiable computing in the FP world, and I say, “That’s the part I’m in love with!” I don’t work in an FP shop, but I still bring those principles; I use short, focused chunks of logic that receive input and return some result, returning control to the caller - so what if they’re often namespaced to something that has some configuration constants and protected internal state? I don’t have the luxury of writing combinator chains in team code if that means I will be the only one on the team that understands what’s going on. I certainly don’t care what anyone calls it, so I simply write provable code.
@@HealthyDev, the youtuber @acollierastro does a blooper reel during her Patreon scrawl. It's really humanizing. You totally should do it! Meanwhile, yeah, too bad AI Profiteers are all focusing on generative models instead of stuff folk could actually use, like proofing software.
Great video. For people who want to dive real deep into this rabbit hole I recommend Iain McGilchrist's books on the two hemispheres of the brain (not the pop psychology, but the real research). Lots of insight about black and white thinking vs gray zone, understanding context and the need to be right on a topic. The titles are "The Master and his Emissary" and "The Matter with Things".
I love your content and the messages you're passing on. Things I wish I heard at the beginning of my career. I'd love to share your messages more, but I struggle wanting to share them when there is swearing. You're down to earth and real, and I appreciate it, but if there wasn't any swearing I think I could share these messages to more people easier. Excited to see more from this channel!
Perhaps if we take away ego, then being right will diminish and be seen as temporary insecurity. Nothing wrong with bruised ego, in fact, the more it's bruised, the better human you just might be. At the moment, my conviction
That would be nice. I don't think our ego ever goes away. I think we just notice it more, and learn to correct when we get it wrong. Of course that's just been my experience.
@@HealthyDev Indeed, it exists and at times can disappear (for me it's the cold therapy moments or martial arts). A gentle shift and noticing is a sign of self awareness we all ought to have :) thanks for reply
Have you ever fallen into the mindset limitations described in this episode? What happened when you were fooled by them? How did things get better once you realized your mistake?
We programmers need to remember that users don’t care about the technology behind the application only the result
They do care but not in the way we think.
Yes, but we developers care which we should but only to a certain degree.
@@jochemcode4570 Only if there’s some trendy buzzword tech that’s become a household name.
Like “AI” is at the moment.
I came from a physics background. I naively thought that for a field based in logic it might be filled with very reasonable people who assessed things in a rational manner. It still shocks me on a daily basis how far away from that ideal the field is
Duuuude physics is like the most fedora-tipping, neckbeard-having, "I-have-a-137-IQ-so-shut-up"-talking field I've ever seen. Especially when people are still in their 20's.
@@DudeWatIsThis unfortunately yes, some people do act that way having done physics. Personally, it just gave me the humility to recognize that the world is complex so I try to approach it scientifically. Tbh though, it's actually a minority of physicists that develop that kind of cringy attitude in my experience
Software is opinion based. It’s written down mental models. People solve problems in different way.
This is the core of the issue with software people never being able to agree on anything.
@@eightsprites definitely. I think the best solution to this I've seen is to essentially set standards by one person's (usually highly experienced) opinion. A benevolent dictator you could say.
Otherwise it just devolves into constant debate over personal opinions masquerading as "facts"
fashion is huge in programming
My computer is guilty of binary thinking.
We should move to quantum computing then.
At a low level.😊
All those little arguments we have about is A better than B. What I've found is so long as everyone is in (more or less) agreement on the chosen paths it doesn't make that much of a difference. The obvious bad choices were weeded out or never even considered before you got down to A vs. B. And you're spot on for all those topics. In my 30 years I've been on a lot of projects, lots of different managers, lots of different ways of doing things. I've talked to a DB about every way imaginable. And I figured out what works for me in a successful and satisfying career. Get it right and it's a mighty rewarding career. But 30 years is enough. My first day of retirement today. So this is all somebody else's problem for me now ;)
Congratulations on retirement! Not everyone makes it. I hope your health lasts and you're able to enjoy the fruits of a life of hard work.
Retiring today after a 30 year run? That's bad ass man. Enjoy!
The point on anecdotal overconfidence is spot on and it really helped to hear someone who feels the same way. I am really frustrated when people see a different form, paradigm or method and their kneejerk reaction is to say "Thats bad" or "thats dumb", "just use xyz lol" or "thats wrong", instead of saying "why is it like this? Why have they implemented it like that? Is there something preventing them from doing it the way I believe is better? Is my way actually even better?"
How can you look at the topmost tip of the iceberg of a software related decision, and then immediatly become, smug, condescending, assertive or dismissive about something that you know nothing about? Maybe there are reasons the project is like that, or why a certain tool or paradigm is used? If there are, then you need to take time to learn and explore the decision, codebase, developers and the project to learn why, instead of being an ass about it, or being dismissive.
We as developers need to do better on the emotional maturity front as a whole.
Couldn't have said it better myself.
Exactly.
I've seen this all the time, especially when a new dev joins a project that started years ago. And instead of learning the history of how it got here, they are about "we must use x" or want to rewrite everything. That's not a good mentality when joining a new project and is pissing the other developers off. Don't think they "were doing it wrong" and you just gave them a unique brilliant piece of advice they have never heard before. Because they also probably started with the same attitude and learned that is was not that easy. Or other things that prevented it to change, like corporate rules, budget issues, tech limitation, etc.
A 'big bang' solution is often not going to work. The change is too adrupt and some might reject it, or the risks are too high, takes too long or wathever. If you want 'change', a slow and more natural pace works better.
An underlying theme of your videos is that engineers need to show a bit more "emotional intelligence" and learn to communicate and work with a team together. I fully support this because I've found the same thing in my career.
Yeah I guess my message is, you don't absolutely need to apply EQ to get by, but to get ahead - yes it definitely helps!
@@HealthyDev wouldn't it be ironic if AI actually has higher EQ than real engineering managers? I wouldn't be surprised they be better managers too. lol
I wish more online tech discussions would include details. Sometimes they are nuanced but without those details, people will interpret the nuance in different ways. People use vague terms like "scale" and "large" and "small". These words mean different things to someone working at Google, a high frequency trading firm, or a 2 person startup being led by people with no professional software development experience.
“Management is useless” is a belief usually stemming from work history where the results of bad management impact sometimes to the point of PTSD.
A lie many people I know believe: Being a better programmer makes you a better person
I think a lot of people, especially in North America, derive their value from their careers.
This guy I knew, he got a job as a new dev, he was a nice person, got married, helped people... about 4 years after getting a lead programmer position he become bitter, didn't look people in the eyes, considered them less worthy, he started to argue, be divisive, angry, belittle people - breaking bad with code. True story
But being a better person makes you a better programmer
@@niksatan In some ways, this guy was always like that but couldn't be that way because there was too much risk in his position before the fact. As the old saying goes, if you want to see how people truly are, give them power.
This is actually true. I also know that I'm better than all other people around me. I'm also the most humble man i know.
:D
Love your approach on your channel, need more nuanced and tempered “tough love but with support”takes like this. Keep up the great work.
Thanks, I guess it's just how I see things.
I love these videos, because they are general information that can be applied to any career.
I work in desktop support, and have no work experience yet in programming, but these videos are preparing me for that next role.
I have been wrong about the Tabs vs Spaces debate for a long time. It doesn't matter *most* of the time. If everybody is healthy and doing fine, use whatever you like. Modern editors can handle conversion. The moment you start working with someone who has a visual impairment or some reading problems, you want to switch to Tabs. The argument "But Tabs do not look the same on all devices" is exactly the point. You can tune your device to your needs.
What do we learn from that? Sometimes there is a right answer (in this case Tabs), but it doesn't matter unless you meet someone who needs this to matter.
The more you know, the more you realize you don’t know.
The irony is, being humble and acknowledging your gaps is often perceived as lack of confidence or lack of expertise
Exactly. Part of the problem is we have too many managers without formal training. Some of them don't know how to recognize the value of things like that, so it tends to lean towards systematic measurement of surface metrics.
Not a programmer but works mostly in automation testing and DevOps. Lot of you said applies as well. Trying to be open minded and just genuinely listening really well. Listening to others is a valuable but often overlooked skill that can either make or break your career. Technical skills are important but soft skills and communication as well.
Thanks for the feedback. My brother has done a bunch of DevOps specific work. I figured this might apply there too.
14:31 they key point in this video is to keep your biases in check. We all have biases and they often lead us astray. Biases and absolutism will sabotage your career. Also, try not to carry your past baggage everywhere you go. You shouldn't judge new people you haven't worked with before the same way as your past experiences. Give people the benefit of the doubt and maintain a positive mentality. That will lead to success in your career.
Sounds like my message was received loud and clear. Great summary!
This video hit the nail on the head. I'm a retired developer, some things that I learned during my career is that you need to understand the environment you are currently working in before critiquing their way of doing things or suggesting changes. Also soft skills are vitally important,, learn to communicate with management and other stakeholders on a nontechnical level, this will make you life much easier, and they will be more receptive to your suggestions.
The "right all the time" thing comes from mathematics, where there actually (mostly) is a "right" answer. People with a strong mathematics background have taken over the programming training space. Way back there were more engineers doing programming, and this syndrome was less prevalent. Engineers live in the real world where everything is grey.
Very insightful and interesting take. That makes a lot of sense, I never thought about it that way. Thanks for sharing!
How about this paradox: I'm pretty sure that I'm right when I feel like I'm wrong even when I'm not. Imposter syndrome impacts me more often than I'd like to admit.
Thinking about people's priorities is much better than just seeing that "both sides has a point".
Everyone usually agrees on a list of important things, but rarely on how to prioritize them when they compete for resources. Take a example from the video, just saying "both 'being a good developer' and 'portraying confidence' are important" isn't enough. These two are often in conflict because a good developer should be documenting and reporting lack of confidence he has in the product. Anyway, it's a person's choice what they prioritize and who they want to be working with.
I've never seen a developer job position that says "job responsibilities: report your confidence in our product". I'm referring to the confidence you portray in your own abilities to management. Maybe you just didn't watch that other episode yet.
@@HealthyDev I'm referring to ruclips.net/video/W7sv1m-U2tk/видео.htmlsi=R9Sbv4YniIVTluXG&t=146
"You really got to minimize communicating problems and doubt about the project".
I am equating "reporting confidence in the project" to "reporting problem and doubt in the project". These should describe the same attribute, just in negative of another. Am I misunderstanding something still?
@@ancbi no that's right, we're talking about the same thing. That's my point. Communicating doubt in the project should be done incrementally and carefully, as I stated in the episode. It's not part of your job description. So if you're going to do it, I believe it's better to tread lightly.
Unwillingness to assign probabilities to error scenarios, making it impossible to conduct any sort of risk/reward analysis. I often hear people argue that because they can think of a specific kind of error happening, we MUST invest in a mechanism to render it impossible to make that error and/or invent an expensive test suite to catch it, and when asked how likely it is that this error does happen, the reply is "We can't afford to gamble!". Here's the reality: Odds dominate our existence! You can't avoid gambling in life. Trying to avoid gambling is equivalent to gambling poorly.
I enjoy watching your videos on my lunch break
The 2015 book "Thinking, fast and slow" by Daniel Kahneman explains a lot about why people make decisions, come to conclusions, hold certain opinions, etc. and how severely all of this is influenced by loads of biases. It can probably explain all of the things you mentioned and more. The book is based on decades of psychological studies, many of which by Daniel Kahneman himself, who was a Nobel price laureate. Strongly recommended reading :)
I get this book recommended to me all the time. It's on my list! Thanks for another recommendation. 👍
I'm pretty susceptible to vanity metrics. I will get a kick out of the size of a PR, the number of words written or hours worked. Not sure if it has ever impacted choices I've made (probably has) but I do catch myself sometimes. It's interesting to spot those little logical fallacies that can and will influence what you do next
Really great video. I’ve encountered the Overconfidence in anecdotal evidence so many times along with the absolutist stance I’ve started calling it Rutters law. That whatever well established principle or concept you know in software development there will always be a small but growing group who describe it as an anti pattern. 😂 it works for everything. I have a slide with everything from Agile to Angular and links to ‘x is dead’ RUclips video.
Thanks for the feedback. Glad you could relate!
Context is key!
I've been guilty of all of these at some point in my career. Recency bias is definitely a thing - OOP and functional programming have their place. Same with Scrum/Agile - it's how it gets implemented. The context is crucial. Vanity metrics are awful, especially when considering work/life balance as you mentioned.
One that gets me is the cherry picking, "I read a blog post that said that X tech is dead and Y tech is the next thing that's going to take over the world. Nobody uses tech X anymore." How many times have I had someone say that when it isn't even close to true? They read some click-bait article and assume that it's gospel.
They just want some validation and the feeling of being competent, it can be achieved in a more honest way better than this though
Diggin the new RUclips Channel name!
The previous one was great, though.
I've had several (very) bad experiences with management. I've never said to myself that all managers suck. On the other hand, I seriously believe that the way companies are run is dysfunctional. That there's a real structural problem, too often bad decisions get us into trouble for it to be a problem of individuals, there's something systemic about it.
And the problem is that while we're here, very keen to question our methods to do things better, they're not doing it at all.
That said, I really like your videos.
You make some very valid points. Personally I believe the systemic issue is that individuals are not taught to work in a way that builds confidence with management, and they aren't taught to understand how their actions are perceived by management. There are problems with management, to be sure. Stopping people who want power from going into positions of authority is not going to happen. It's something we've grappled with since the beginning of time, and intrinsic of human nature.
@@HealthyDev I think you're right, it's certainly an important part of the problem.The difficulty of understanding ways of thinking that aren't our own, that we have to deal with. I think it should be a two-way street.
Having said that, just because I find the effort asymmetrical doesn't mean I consider I shouldn't keep working on myself. That's why I follow your content, it goes in that direction: focusing on what we can improve, questioning our ways of seeing things.
As for human nature, I don't yet have a definitive opinion on the matter. The further I go, the less I'm able to differentiate between what's intrinsic nature and what would be a cultural element repeated for so long that it would seem natural.
I'm still wondering about it.
In any case, thank you for taking the time to reply, really.
@@funkymoose9836 makes sense. We all have to figure that one out for ourselves.
@@funkymoose9836 you're very welcome. Appreciate you sharing your perspective and struggling through this stuff with us. It's tough to find the way to go with so many conflicting opinions and ways to go!
You need to work in IT Operations. You rely on annecdotal evidence. If a service dies 4 times a year because of a database problem, and its happening now... the db guy will of course say "its not me. the db is up and working fine." Then you chime in as an outsider and say "look, it probably you. Didnt you do a release 2 days ago? Maybe the indexes on the table got borked." Then you hear some typing, and 10 minutes later its all working, and they dont know how it fixed itsself. lol. But that know it all in IT Operations was right and truely an azz.
Programming languages should be strongly typed. Absolute truth there, will never change my mind on that.
Typed languages are horrible. Its like painting by number.
I program in assembly lang on a mainframe and having non typed Lang is like a blank canvas to an artist
Ok, try to strongly type assembly. And when you fail to do so, try to remove it altogether from the stack.
@@vitalyl1327 Typing doesn't even have meaning in assembly so why bring it up? You could also have used C as an example as that is technically untyped as well, but I think it is pretty obvious I was talking about modern higher level languages. And I stand by my statement, it is far too easy to make mistakes in weakly typed languages.
@@beidero you said all languages must be strongly typed. Assembly is a language. Either your maxima is misguided, or assembly is an ill designed language that must be fixed. It was not obvious at all what kind of languages you're talking about (or even if you understand at all what does a "high level language" mean).
Now, think of a wider context - a lot of languages primary (or at least very significant) purpose is to be a compilation target, just like assembly. Do they have to be strongly typed?
If you like your languages strongly typed, look at Shen: user-defined typing of the derived languages, while keeping the core flexible.
This was me earlier in my career. Now Im glad whenever people can point out my mistakes so I dont have to find them myself 😅
Science and consensus are two different things.
Yup!
After years of experienced I realized that every tool I use has to be re-evaluated every 4 years - either it vastly improves and now is a great tool that was previously insufficient, or it hasn't been maintained and now other tools are exceeding it. Just saying, "Postman is great" or "Postman sucks" might only be true for a certain time period.
I would love to hear more about the things you say are NOT settled.
I'd point a few more:
- Being a good programmer makes you a good teacher.
- Self-documenting code/Auto-generated documentation substitutes appropriate documentation.
- Backwards compatibility is not an issue because you have access to the source code.
- Optimization is not necessary because users/companies can always upgrade.
- User Interfaces are just a beauty tack on top of functionality.
Dunning-Kruger Effect: Research has shown that the less intelligent an individual is, the more confident they are in their abilities. This phenomenon, known as the Dunning-Kruger Effect, highlights the importance of acknowledging one’s limitations. Intelligent people, on the other hand, are more likely to recognize their own ignorance and be willing to learn from others.
That's not quite what the Dunning Kruger effect concludes. It's not as simple as an inverse relationship.
Always wise, thx ❤
TDD + Clean Code will solve everything
Interface for everything (why just 1 level deep) and 10 lines per function (why not just 3), always 100% test coverage and eliminate manual testing
Don't mind the users or what they are saying, just treat them as dumb complainer, runs against the thinking you are better than everyone
It is all about technologies, the newer or the complicated, the better 😅
Sarcasm level 100 achieved 😉
I'm always curious what programming biases we're personally willing to admit vs. simply saying we see that bias in someone else. I can readily admit I'm not language agnostic. I've made a good living on the Java technology stack, Spring Boot and NoSQL. It works for me, but I recognize a good portion of programmers want to evaluate each use case.
Why only in IT industry we have to talk about these topics? Do we developers are more fragile? Or IT so specific that we should reflect to these mistakes?
Business people often make unrealistic demands when they don't understand a subject. A healthy business has a technical project manager. It makes no sense for every single developer to have to persuade people who don't understand what they're asking for.
Judging if you need to be a be a good developer and confidence inducer(usually ==trickster) is a binary choice is wrong, it is not indeed binary, Ex: Bill Gates(programmer and exceptional liar). The only problem I have with that is that being _also_ a confidence inducer makes me take ownership of business side and that doesn't belong to me, I am an employee. If I would have my own company, than yes, that would be true, but also the tariffs would at least triple or more.
if you listen to people when they tell you you are doing it wrong. How will you ever make something new or different.
One thing to be avoided: being down skilled. Do you ever get the feeling on a job like your driving down the interstate going the wrong way?
My favorite is rc=0 bias. As long as the return code is 0, it must be correct.
It feels like you repeat yourself at some point in the video.
Are you using a clip form mid video in the beginning without a noticeable segway/transition?
Could you try and explain that a little differently? I didn't quite get what you're suggesting.
@HealthyDev I have ADHD and drift in and out of conversations sometimes.
When watching this, I swear the beginning talking points in the video are repeated verbatim again later in the video at some point.
Am I crazy for thinking this? Or is there some clip from the recording that is chosen for the introduction of the video that has no transitions or segways back to when you started your recording?
It feels like I am watching a single take without transitions, which confuses me when I hear what seems to be the same talking points again.
@@adamloepker8057 yes it sounds like you are truly drifting out and losing context. There is a theme to the entire video, which is why each point offers a different perspective and context on the original idea. This may be why you are experiencing it as a repeat.
@@HealthyDev No, I re-watched it and in the very beginning it says "Coming up..." on the screen, but all the audio sounds like it runs together so I can never tell the differentiation between your preamble clip from mid video and when the video actually starts..
The video feels repetitive speech context wise to me because of this...but maybe you are right and it is my mental illness acting up. In which case I am probably better not watching videos like these. Takes care
All good. I'm far from the world's best communicator or RUclipsr. I make lots of mistakes and am constantly trying to improve.
Genuinely nobody articulates how I feel, but cant out into words, like you do. My lack of binary thinking and belief that theres merit to multiple approaches has held me back career wise. I believe that not holding strong binary opinions can make you look unconfident.
I believe what Jamie meant was to avoid being an absolutist who automatically rejects one thing just because another thing was already true. In terms of viewing the larger career picture, I totally get what you mean (seeing the merits of different approaches, not wanting to give preference to one over another because we might need this or that thing). I think our jobs often require that we muster the courage to consciously select a specific path and communicate the basis for it to stakeholders so they can too stand behind it confidently. If its hard for us technical people to decide, imagine how unrealistic it would be if the manager had to commit without you. In my experience, the most practical way to tackle this is to ask as many questions as you need until you develop the confidence in your decision. Once you yourself are confident you will have no trouble communicating authoritatively to anyone upstream. I don't necessarily see this as binary thinking. Our role / duty is often to break complex things down and help our company make an informed decision. From that perspective, keeping too many choices on the table can't really help anyone move forward.
The most important thing is not told in the whole video.
Lies: We don't need to give appropriate justification (rewards or punishments) on someone's work.
If you can't get rid of this bias, your 1 to 5 doesn't matter, technically almost everything doesn't matter.
Because what you'll be doing is just making a facade (or someone's else)
can we see any code you've writen ?
I'm sorry but the code I wrote was confidential for clients. I do have a lot of code behind my current website, but it should be obvious why I don't share that. I'm not a programming instructor. I help people with the mental health, work/life balance, and career growth aspects of the job.
Vanity metric : number of commits
Exactly.
I feel so lucky because my self-reflection has covered all 5 points
YOU SHOULD DEFINITELY MAKE VIDEO OF DIFFERENT APPROUCHES IN DIFFERENT COMPANIES
Hey there. Different approaches to what subject specifically?
I think you can have whatever opinion you want as long as you can logically explain it.
OOP was definitely a mistake
We wouldn't have Python without OOP, its all objects under the hood.
Without Python, AI and Big Data wouldn't be where they are now and I'd be writing for loops with self defined indexes *bleagh*.
@@nargileh1
Much better to deal with nested list comprehensions, and empty space changing the output of your code
OOP is a tool. Saying it's a mistake is like saying a hammer is a mistake. A hamner can be a mistake if you misuse it. I'm somewhat of a pragmatist rather than a language lawyer. I use what works, and what works best for me is a mix of procedural, OOP, and functional. Some things can be naturally represented as objects but not all things. OOP purists have got it wrong.
Binary thinking is an either-or fallacy.
I would like to work with you in the same team :)
“This is where I’ll probably get ripped in the comments” *proceeds to call procedural programming “method based” programming*. LOL.
Seriously, though, great points! I don’t have a dog in the race, because I just love all the doggos! I see the attention to verifiable computing in the FP world, and I say, “That’s the part I’m in love with!” I don’t work in an FP shop, but I still bring those principles; I use short, focused chunks of logic that receive input and return some result, returning control to the caller - so what if they’re often namespaced to something that has some configuration constants and protected internal state? I don’t have the luxury of writing combinator chains in team code if that means I will be the only one on the team that understands what’s going on. I certainly don’t care what anyone calls it, so I simply write provable code.
We should probably have a blooper reel of all the stupid stuff I've said on here by now. Then again, it'd be like 3 hours long ;)
@@HealthyDev, the youtuber @acollierastro does a blooper reel during her Patreon scrawl. It's really humanizing. You totally should do it!
Meanwhile, yeah, too bad AI Profiteers are all focusing on generative models instead of stuff folk could actually use, like proofing software.
Great video. For people who want to dive real deep into this rabbit hole I recommend Iain McGilchrist's books on the two hemispheres of the brain (not the pop psychology, but the real research). Lots of insight about black and white thinking vs gray zone, understanding context and the need to be right on a topic. The titles are "The Master and his Emissary" and "The Matter with Things".
Never follow the trend, do your homework about the project and select the right tools for it, not for you.
Rule #1 progrmmers should not take thier code personally. Share it, get other opinions etc
really programming is problem solving. it's all grist for the mill including the social aspects of this job
I love your content and the messages you're passing on. Things I wish I heard at the beginning of my career.
I'd love to share your messages more, but I struggle wanting to share them when there is swearing. You're down to earth and real, and I appreciate it, but if there wasn't any swearing I think I could share these messages to more people easier.
Excited to see more from this channel!
Thanks for the feedback. I've tried to limit it over the years (I used to be worse) occasionally it does sneak in there.
Perhaps if we take away ego, then being right will diminish and be seen as temporary insecurity. Nothing wrong with bruised ego, in fact, the more it's bruised, the better human you just might be. At the moment, my conviction
That would be nice. I don't think our ego ever goes away. I think we just notice it more, and learn to correct when we get it wrong. Of course that's just been my experience.
@@HealthyDev Indeed, it exists and at times can disappear (for me it's the cold therapy moments or martial arts). A gentle shift and noticing is a sign of self awareness we all ought to have :) thanks for reply
There are 10 kinds of programmers. Those who engage in binary thinking and those who don't.
Always loved this one ;)
Someone show this to Theo ASAP
I regularly think about suicide
As a software developer
Then you need to change careers. A job is never worth your life.
I was like that before I was a software developer. How are things going for you now?
Manipulative know it all..
… is very annoying
All that matters is how good you are at what you do? What fantasy are your commentators living in?? 🤣🤣🤣
There are 10 type of programmers - those stuck in binary thinking and everyone else.
Old joke
I have a strong anti-recency bias
😉
A video about how to think logically. Alright 🤷♂️
Do you believe a video like this doesn't need to be made? Is our industry full of logical thinkers?