Top 3 MISTAKES Software Developers Make ?? (ALL THE TIME!)

Written By John Sonmez

Time and time again, I run into the same mistakes that many programmers are making over and over, and they aren't even aware of them.

However, there are 3 MISTAKES I consider to be one of the biggest ones developers make in terms of their career, and it might be costing them a solid and strong career.

These mistakes are all about career, learning and self-improvement.

If you wanna know the top 3 biggest mistakes developers make when it comes to career, watch this video! #programming #developercareer #programmingcareer

Transcript Of The Video

John Sonmez: Today we're going to be talking about the three biggest mistakes every software developer makes. There's three big ones here and that's what we're going to be addressing in this video. You are in the main place on the internet, on YouTube where you can find soft skills related content for software developers and make sure you click that subscribe button and join us on this journey.


These are the kind of things that can really hold you back and if you're not aware of them it can really cause you a problem, especially the last one. Well, the first one we're going to talk about is undervaluing your skills and experience. I see this time and time again where developers, I'll be, especially my coaching clients, I'll be coaching them and I'll ask them, “How much money are you making? All right. What kind of job do you have? What is your job title?” And I'll be surprised that they're making less than six figures. That they are in a junior level position when I know from their skills, and experience, and knowledge that they could be in a higher level position.


You may feel like you're under-qualified for a job, that you're not a senior level developer, that you are only a junior, that you still have a lot to learn, and that you couldn't do this job. One thing you should always be doing is you should be applying for positions and looking for jobs that are above your current level as a software developer. I know this seems like the wrong thing to do. Let the company evaluate whether or not you are the right candidate for the job.


I'm not a hacker.


You always want to be stretching yourself. When you get a new job you want to be taking a job that is going to cause you to stretch, that's going to make you feel uncomfortable, that's going to make you have to grow into that job. I would take a job that I thought I was in way over my head and then when I actually started doing the job I realized actually I'm more qualified for the job than I thought, I'm maybe even overqualified for this job but it's way easier than than I thought. I know a lot more than the other people that are working on this project and I end up moving into a mentor role.


That's how you can really leapfrog your career if you're only taking jobs that you're comfortable at, if you're undervaluing your skills and experience. Even if you don't have a lot, even if you only have a year worth of experience, or maybe two years, or you just got to college, it doesn't mean that you can't get a senior level position. It's all about the ability that you have. If you can write the code, if you can do the job, you can take that job and let someone else turn you down, let someone else reject you from the job, don't pre reject yourself. So that's number one.


Number two is not learning communication skills. This involves marketing yourself, writing blog posts, having technical discussions where you're able to communicate with the business. This might be making YouTube videos, it might be giving presentations. One of the biggest things that is going to affect your career as a software developer is your ability to communicate. How effectively can you communicate with other people that are on your team, with your boss, with your managers? If you haven't gotten this by the way you might as well buy it, check it out.


Learning communication skills was one of the most effective things I did for my career. It was by far the most effective thing. There's my salary before I learned communication skills, before I started blogging, and getting on podcasts, and really upping my marketing myself and stuff like that and then there's my salary went after that and it just skyrocketed. I was able to become a millionaire as a software developer just because of my communication skills that's how powerful they are. You need to learn how to do this.


There's resources, if you go to simpleprogrammer.com you can find my free blogging course in there. Like I said I've got the book. And there's a lot of things you can do. The whole idea is that you need to learn how to actually promote yourself, build a brand for yourself, and market yourself. It's going to be one of the things that is huge for your career and you need to start doing this now. It's going to take some time to build up a brand but once you have one, and you have a solid reputation, and you have marketed yourself it's amazing the results that you'll get.


The third one here is one that I tackle all the time and it just frustrates me to no end, it's learning inefficiently. Most software developers what they do is they go and they grab a book and they read the book cover to cover and that's how they learn things. Or they watch a bunch of Pluralsight courses or Udemy courses. A lot of developers I'm talking to they're like, “Why are you learning Angular JS?” “Oh, just in case I need it in the future and I think it's interesting.” No, no, no. Why not? Why do you not do that? I'll tell you why. You should always say, “I need to learn X so I can do Y.” What's your why? What's the thing you're trying to do? You don't just learn technology as a hobby. I know it's fun, I know it's interesting, I know it makes you feel like you're being productive and doing stuff and advancing yourself but you're not.


Technology changes so fast chances are you might not ever even use it in the future and you'll forget it by then. And second, you're not going to learn it effectively if you're not using it. You best learn by doing. Part of learning efficiently is limiting the scope of things. You don't need to learn everything. If you're learning a new programming language you don't need to know every single command, every single bit of syntax and language or technology. What you need to know is the 20% that's going to give you 80% of the results or the 20% that you're going to use 80% of the time.


What you really want to do when you're learning is like I said limit the scope. You don't want to read books cover to cover. You want to always have a why of why you're learning. Why are you learning this thing? And then, you need to pick out what it is you need to learn in order to be able to do that. Let's say I'm trying to build a website that is an email client like Gmail, like a Gmail clone. I can pick a technology and I can pick what things I need to learn in that technology in order to accomplish that thing or maybe a stack of technologies.


I don't need to learn every single thing about web development. I only need to know enough to be able to do what I need to do and that's the most effective and efficient way to learn. And then you can always learn more stuff later as you need it. Too many people spend too much time, too many software developers trying to prepare ahead of time, trying to learn all this stuff, watching all these courses, read all these books and they don't retain any of that shit anyway and they're never going to use it.


That's it. Those are my top three mistakes that software developers make. Leave a comment below. Let me know what is your biggest mistake. If you want some help like I said go to simpleprogrammer.com, check out our products there. I'll talk to you next time. Take care.