Why Do So Many Programmers Lose Hope?

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
I spent the first 10 years of my career bitching at everybody else about how screwed up software development was and how other programmers didn't know what they were doing and managers pissed me off and I got to a point where I got so frustrated with myself and how I had even chosen this career and wanted to get out of it and so in this video I want to share with you how I and I think many of us lose hope as programmers and people and software development and why there is hope out there for you but you might have to be open to some things that most people don't want to tell you because they just want to go along for the ride of being just as pissed off and frustrated as you are hi I'm Jamie Edwards and a healthy software developer I want to help you have a sustainable career in software development where you don't get burned out you don't let other people who don't really understand software development push you around and you can just make sure you have a long and healthy career during the first decade of my career I got into smokin pot all the time I played video games constantly I went on the internet and just bitched at people and bitched at work about how frustrated I was about how everybody else wasn't as good of a programmer or they didn't understand how to do it and really I started to engage a lot in escapism really just trying to escape how frustrated I was with my job in my career and so in this video I want to share with you why I think programmers specifically we have a hard job we fall into this mindset and we really just completely give up and lose hope sometimes and then give you some tips on how I've really been able to change my mindset to be happier again and it's still gonna be a difficult career but stop doing some of the things that made my life really frustrating and made me really just honestly hate my career so if you think you may have lost hope that your job could be any better maybe you were like me and you started blaming what I really looked at were symptoms and not the root cause you know I would get really upset with managers that I felt like we're putting me under unrealistic pressure to hit dad Lyons I get frustrated with junior developers that maybe weren't following the coding patterns I wanted them to I get frustrated that I didn't think the company was paying me what I was worth and really what I eventually realized was I was just sucked into a mentality that everybody else around me had about software development and I know this video might not be popular with everybody but I don't really care I made this youtube channel because in over 20 years of developing software I just keep meeting the same frustrated software developers over and over and over again and I want to help them and that's why I make these videos the first thing I think that happens to most of us software developers that causes us to lose hope is we're forced to cut corners we're basically told you've got to hit a certain deadline and we start doing some work and when we get close to that deadline we inevitably realize that it's gonna take us longer than we thought and if you're anybody who's been programming or doing software development whether you're an ops or UX or any discipline related to software development you know that estimates in software development are highly improbable to hit and I don't care how much you have an agile coach come in or you know the biggest expert tell you that this isn't true my experience in most people I work with that have been doing this for at least a little while no it's really not that people aren't good at estimating it's they're just the reliability of estimates is bad and if you work at a company that doesn't understand that and you get to a situation where you realize the works gonna take longer most companies unfortunately that don't have a healthy tech culture they're gonna pressure you to hit that deadline and then usually what what we have to do I've had to do this you know I've gotten better at it but we have to compromise what we know is right for the code we have to write low-quality code we have to hack things we have to shortcut or maybe our unit testing we have to maybe not follow a good set of design patterns that we know we'll work just to rush to it to hit that deadline and I think when you've done that enough times it's so frustrating you can completely lose hope in your job the second thing that I think causes us to lose hope is cognitive overload you know our job is already so hard for us to keep track in our head the different maybe functions and classes and the structure of our architecture and all these moving pieces and dependencies in the business and then we'll have people that aren't programmers at our company that ask us to attend meetings and use time tracking software and follow all these processes that are on top of all the complexity that we're already dealing with and I think when we're just overloaded with too much information that we have to understand it's really easy to lash out and get pissed off at other people and I certainly have many times and I think that can cause us to lose hope the third thing that I think causes us to lose hope as programmers is when other people because our work is somewhat opaque to them they don't really understand how complex the work we do is there's a low perception of value so it's a common thing I mean there's memes all over the internet about this where when a user or somebody who's even a project manager or a product manager or a software company you know looks at let's say the user interface of an application your company's building or they look at the API for some machine learning software you're building they just see the surface and they know there's code back there but they don't really know how much codes back there they have no idea how complicated it really is like you and I know and I think what that tends to do is it creates this perception from the other person that the work that you're doing behind the scenes isn't really as hard as we know it is and we do this same thing though to non-technical people we look at hey to sell the software or to run the company or to manage a project or a product that's not nearly as hard as my job is and so I think when we have this disconnect where the people that are non-technical and the people who are technical or programmers when we don't respect each other because we just look at basically how much we think the work is difficult based on our limited understanding of it if we really lose hope that our job situation can be better and we can be appreciated the fourth thing that I think happens that causes us as software developers to lose hope and this is probably going to be unpopular but I don't care because you need to hear it is many software developers myself included we make a lot more money than many other professions very early in our career and if you start making a lot of money and all of a sudden many of your financial dreams are fulfilled you get to drive the car that you want you get to live in the apartment or the house that you want you know you can get married you can take trips you know whatever you want to do you buy all these gadgets you're able to buy you know nice new clothes and guitars and things like that very early I think as programmers we reach that level in life where we basically have most of our needs met and so we then realize you know what I can keep making more and more money I can keep getting promoted and it's not going to actually fulfill me and we're suddenly challenged with why am I here what's my purpose what am I supposed to be actually offering in the world is all I'm here for just to write code and make money and purchase things and I think when we fall into consumerism and when we make a lot of money and just use that acquisition of money and acquisition of material things is the thing that drives us we can feel really empty inside quickly I certainly have have struggled with this for a long time in my career I still do and so if you're losing hope because you're making a lot of money know that it's great to make a lot of money but there may be more to your career into your life than just money and that's something that's gonna be challenging for you as a software developer and may cause you to lose hope and the last thing that I think causes us as programmers to unfortunately lose faith that things can get any better when we're in a frustrating situation is you've heard of this concept probably have learned helplessness there was an experiment done years ago where there was a ladder in a cage and a whole bunch of monkeys in it and a banana at the top of the ladder and every time the banana every time the monkeys rather climbed up the ladder and they tried to get to the banana they would spray the monkey with water and so the monkeys learned when they tried to go up the ladder and try to get that banana that they were gonna get sprayed and eventually what they would start to do is when somebody went to start to climb the ladder to get the banana the other monkeys would actually grab that monkey and pull it down and not allow it to even try to get the banana because they had learned were helpless we don't have a chance of getting the banana we're just gonna get sprayed hard with water and knocked off the ladder the interesting thing about this experiment too though is you could then take one of the monkeys that doesn't bother climbing the ladder anymore out of the cage and put a brand new monkey in there and he would very quickly learn without even trying to climb the ladder to pull other monkeys down because he saw other monkeys do it and I think this is what happens to us as software developers yeah and I'm seeing this and it's just sad I see sometimes fresh grads right out of college they come into a software company and they start to pick up the attitude and the negative sort of like misery loves company attitude and they just behave the same way as other kind of grizzled veterans and software developer behave because that's just what they see like oh I guess is this is what we do so I think one of the things that can cause us to lose hope and you might question whether you're doing this as well is we just you know we're social creatures whether we think we're unique or not and all of us are in some way when we get around a group of people that are really miserable and they're all self identifying as programmers to feel like we fit in it's easier for us to just act the same way so what can you do if you feel like you're losing hope well the first thing I think that's really important is to learn to push back against people to give you unreasonable requests this has been so hard in my career I struggle with this to this day I've been doing this for over 20 years but you will always have someone whether it's a manager or a programmer at a cleat or anybody that's going to ask you to do something development that you know is gonna cause a problem and the common excuse they give you is I don't care you need to get it done by this date no matter what even if that means you need to change the code quality you cannot allow people to do that you need to have the will and the courage to basically say look I know this is gonna create a problem for the product it's gonna be a disaster if you want to continue to do this I'm not going to be the one to help you do that and if you get threatened with being fired you can just go okay well let me think about it and then go to HR and resign if you have to but I think many of us we let ourselves be bullied into situations and let the code or the quality of our deliverables be compromised because we don't have the courage to really just stand up to people that don't know what the hell they're talking about and we were worried we're gonna lose our job in you know there are so many open programming jobs out there you don't need to worry about that even if you quit and you have to explain to another employer the situation don't you think it would be better if you're in an interview and you can be honest with that company you're interviewing at I quit my last job because the company was asking me to compromise the quality of the product in a way that was gonna cause the company to have financial problems and I didn't agree with it and I wasn't basically cooperated with and so I decided to walk away if you explain that to who you're interviewing with and they're like well we better not hire this guy we're gonna ask him to do the same thing she don't want to work there so whatever you can do to learn to just stand up for yourself and you don't have to be a jerk about it you don't want to be a jerk about it but just don't be pushed into compromising the quality of your work the second thing I think we can do that will help us have hope again it's really helped me is just to learn to communicate uncertainty better it's so common in our American and and just modern culture across the world anywhere where you do corporate work or software development that everybody is addicted to certainty everybody wants to think they can predict everything that's why we go out and we get insurance to think well I'll just pay some money and then if any disaster happens to me they'll cover it well I've found just you even after like I said 20 years of doing this every time I write code or every time I work on something something comes up and I couldn't predict it and then I get worried like oh my god they're not gonna think I know what I'm doing because all the sudden now I have something about the work that happened that I couldn't predict I as I've gotten older have gotten much better at just telling people I can't agree to commit to that yet or I don't actually know enough about that to be able to tell you that we're gonna be able to hit that deadline and if people say things like well you need to come up with a number anyway it doesn't matter if we don't have the requirements sorry no that's not how software development works you're not developing the software I am this is my career and I actually care about the output of this if you're asking me to compromise that that's because you want to have certainty you want me to agree to something so you can walk away from this meeting and feel good that I've committed to you on how long something's going to take when we can't commit to it and I'm sorry I'm not gonna agree to do that so again you don't have to be a jerk about it but you need to be firm you need to let people know you can't force me to agree to an amount of work in a deadline that I don't have enough information on and and I think when I've been able to talk to other people and set this expectation with them in a kind way in a way to help them understand look I'm telling you this not to be a jerk I'm telling you this because I want you to look good I don't want you to go to make a commitment to your boss and then have to look like an ass because you told them it was gonna take a certain amount of time and it took way longer and you know this is just a tough topic I did a whole video on estimating software with caution you can go back and watch that but I think if you can get to a point where you're able to just you know push back anytime somebody tries to get you to agree to certainty and just be more honest and open with people when you're like I don't know how long that's going to take her I don't know how complicated that is or you haven't given me enough requirements I'm sorry I need more help with that you're not gonna get pushed into a situation where you work overtime you you lose hope you get frustrated you take it out maybe on your friends and family or like I did you just escape whenever you're not the third thing I think we can do to avoid losing hope is to ask for help earlier I think as we develop skills and software development we kind of get a big head we get really smart around a set of frameworks or technologies and we get experienced and any of us it doesn't matter how long we've been doing it you might have experienced this yourself too we hit these brick walls where we realize oh there's a part of this project that's more complicated but maybe I'm an architect or I'm a lead or I'm a director or you know some big title at a company and you kind of get this feeling like I'm not supposed to ask for help there's something wrong with me asking for help know everybody I think that's developing software it doesn't matter what discipline you're in you need to get comfortable with asking for help because if you don't all you're doing is basically putting yourself into a dangerous situation where you haven't let whoever you're committing that work to know that you're actually in trouble and this is hard right I can take it a lot of times to heart as a blow to my ego like you know what if I tell them I need help with this there's something wrong with me and they're not gonna think I'm as smart but that's absolutely not true you really need to if you're gonna continue to have hope in your projects and not fall into despair over the frustration of it just be able to ask for help without worrying about other people and what they think about you the fourth thing you can do that I think will really help you not lose hope in your career or if you have get it back as a programmer is to develop empathy for other people and by this I just really mean stop looking at other people around you like they have to work the same way you do like they have to talk like you do like they have to care about the same things or think that the same programming patterns are correct that you do I think when we release people of the obligation to behave exactly like us we respect them we treat them like individuals and they're gonna treat us the same way and when when you get onto these teams I've been in this situation many times where there's this feeling where everybody has to act like they're gonna get the work done at the same speed they're gonna use the exact same coding patterns they need to write the requirements the same way they need to type track their time the same way it just causes us to feel like robot and forget that you know we sit on computers all the time and we can write code and we can debug it and we can figure out what's going on there and there's really only a true or false of if the code we wrote is correct but people aren't like that we're much more complicated than a computer and the more you can just let go of that false belief that I've had many times in my career that everybody else is the problem if they aren't the same and and recognize that everybody's different I think it's really gonna help you have hope without having really just an unfair set of expectations that's never gonna get mad for you you're just going to continue to get let down all the time if that's how you expect people to be in the fifth and final thing I think that will really help you if you're struggling like I have many times in my career is to just try to seek out other people other software developers other you know engineers other people in any discipline related to software that are more positive and they're trying to lift each other up if you want to find software developers or programmers out there who want to post memes making fun of the system or at each other or make fun of people's you know pull requests you've got a multitude of people out there that will be happy to join you to their along chorus and you can just be another voice that's part of that but if you want to actually be happy and you don't want to lose hope and you want to not you know spend the rest of your career pissed off about your job and where it's going you have to refuse that you have to care about yourself more than just being accepted by a large group of people and so if you are in a place where you're losing hope and your career like I have I just really encourage you to go try to find people who are more positive try to find people that maybe have been through a really hard time in their career and they've been frustrated but now they see you know what I don't have to be a victim to this negativity I don't have to be a victim to the fact that everybody else wants to and moan and surround yourself with people and information and you know get out of hopefully your house or wherever you are and actually physically meet with people that can build you up and lift you up and help you have some hope again so if you ever struggled in your career with losing hope leave me some comments below if you're new to my YouTube channel please subscribe you can click the bell icon and it'll actually notify you every time I post a new video I'm also on 4 podcasts networks if you'd rather listen to me there stitcher Google Play iTunes and SoundCloud and you can like me on Facebook so until next time thanks
Info
Channel: Healthy Software Developer
Views: 430,766
Rating: undefined out of 5
Keywords: frustrated with programming, hate programming, programming sucks, tired of programming, tired of coding, angry programmer, programming frustration, coding sucks, hate coding, sick of programming, sick of coding, programming, lose hope, losing hope, hope, frustrated, angry, escaping, escape, escapism, tired, hate, sick
Id: NdA6aQR-s4U
Channel Id: undefined
Length: 20min 26sec (1226 seconds)
Published: Fri Mar 09 2018
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.