Pretty scary isn’t it?
You are doing course after course, you started an AWS certification and you are on HackerRank every week. But a terrifying thought still troubles you.
What makes you different from the hundreds of developers out there?
You are building side projects, messing around with some Node.js, hanging around on Twitter, checking out some job postings - a developer’s routine. You are all doing the same, listening to the same podcast, reading the same blogs.
But your tech lead doesn't care. They have seen it all before. Another ambitious coder in the sea of fresh devs, bootcampers and self-taught wizards. Why should they anyway?
That is the million-dollar question.
And the tragedy is, you don’t have an answer.
Because despite the infinite vacuum of blog articles, despite the numerous tricks and shortcuts, you struggle. You stumble navigating the codebase and you check Stackoverflow more than you should.
Programming still feels like a guessing game.
If you expect a magic answer, some bullet points to get you out of trouble, I am sorry to disappoint you. I have none. I would give you my compassion, but that’s not going to help you anyway.
The truth is, you don’t need more tricks or new secret ways.
What will benefit you right now, is to stop doing some of the things that are literally dragging you down.
After working with dozens of developers, I made a list of the things that literally kill their progress. How many of them are you still doing?
1.) Doing it for the fun
Why? Look, when you code for fun, you only do the fun part. The coding puzzles, the sexy features, the shiny stuff. And guess what? That is what all other developers out there love to do as well.
Many times, magic happens when you are not having fun.
Accept once for all that this coding thing is not a hobby, it is a profession. And it is not always going to be fun. Like anything in life, it has ugly parts.
The road to expert developer involves legacy code, hidden errors and unclear requirements. But hidden bugs and not found HTTP codes will teach you more than a PhD in Computer Science.
Accept that hard work is not always fun.
2.) Listening to the "community"
If the first thing you do in the morning is read a newsletter from ‘gurus’ recommending this and that other tool. No offence, but many are just trying to reinvent the wheel in order to self promote themselves.
You are becoming a community’s puppet.
Don’t get me wrong, as a developer you should pay attention to what others are doing. But jumping to the “hot shit” wagon and not doing your own judgements is dangerous.
Why? The things you read online are disconnected from the reality of your code. A nice library in one project can be a terrible choice for another project.
Use your brain and take advice (particularly tech advice) with a bit of salt.
3.) Fixing it ‘later’
The one character trait all great programmers have in common is they live in the now. A piece of code needs refactoring, they do it now. There is a bug in the UI, they fix it now. The local environment is a bit slow, they optimise it now.
Great developers live in the now.
Great developers know very well that later translates to never. What I am asking you is to be honest with yourself.
The truth is, you won’t fix it later.
You won’t refactor it tomorrow. You won’t go over that algorithm book next week. If you want to be in the top 3%, you must start living in the now.
4.) Winning popularity contests on Twitter
There is a big popularity contest going on in the software development community and everyone wants to be part of it. They call it “being active in the community”. In reality, it is more gossip and trend spotting than anything else.
Let’s be real.
You know you are procrastinating. You know the latest prefabricated 280 characters tweets about “not giving up” will not make you pass the next tech interview. Coding will.
Prefabricated 280 characters tweets about “not giving up” will not make you pass the next tech interview.
The secret to success is no secret.
If you want to get far in this profession, spend less time on Twitter and more time on VS Code.
5.) Having a pity party
If you think you are too old, too unqualified or too slow to be a successful developer, it is time for you to stop licking your wounds and get going.
Just because you were not born without a keyboard around your neck, you did not start coding when you were 14 (whoever did?) or you have no formal degree doesn't mean you cannot succeed in this profession and become an expert developer.
Yes, exposure to technology from an early age and a formal Computer Science degree does give you an advantage. And not having all these things means you will need to catch up.
But, can you build an amazingly successful developer career even though you don’t have all these things?
Hell, you can. Remember, hard work beats talent every given day. Back to the code editor now.
6.) Feeling proud of writing crappy code
You spend three hours writing some spaghetti code. Functionality is split over 15 different files, all classes are stitched together and there are no tests. But hey, it works. And it is almost 5 in the evening, time to close the laptop and go home. Really?
The “it works mentality” is not cool, it is self-indulgence.
You see, with time the buts accumulate. The one line of spaghetti code becomes a legacy monster, and a lazy evening becomes a failed programmer career.
In real life, things work until they don't.
If nobody can read it, extend it and maintain it, it doesn't work. Be honest with yourself and stop feeling proud of poorly written crap. Professional developers have high standards.
7.) Writing great code for the wrong people
Michelangelo was working for the Medici family. Same for Leonardo Da Vinci and many of the best artists that ever lived.
The quality of your code, software career and life depends as much on your skills as on the people that employ you.
You might be into TDD, BDD and clean code. But if the company you work for wants things fast and wants things now, good luck clean coding on the weekends.
We tend to replicate what we see around us. So if what you have around you is a lack of professional standards and short term mentalities, then you will do just that.
You can’t write great code for the wrong people.
Don’t lie to yourself, companies don’t change, people rarely do. You must find a better programming job. One where the other developers you work with share your professional standards.
If you are in a bad place, check your options and pack your bags.
8.) Starting 3 side projects, finishing none
Every day I get approached by developers that struggle to finish things. They try to do too much, they underestimate efforts or they simply procrastinate. In my experience, to win the race you must first finish. And to finish, you need to focus on one thing at a time.
So if you are working 40 hours a week you need to be realistic about the time you can dedicate to learning outside work and your ability to take on new projects.
Your time is limited. Pick your battles carrefully.
Starting more than one or two side projects is nuts. First because if you won’t finish your side projects, you better not start them at all.Second because at best you will end up burned out with some extra folders on your desktop.
The same applies to Udemy courses, certifications and coding challenges. Pick your battles.
9.) Obsessing over the tech stack
Probably one of the most common questions that come in my inbox: What technology should I learn next? What is the ‘hottest’ thing I can add to my knowledge?
My answer: the tech stack doesn’t really matter.
It doesn’t matter because you are a programmer, not a walking GitHub repository. And it does not matter because the tech stack always changes.
The tech stack doesn’t really matter, because the tech stack always changes.
The tech stack changes all the time. Stop obsessing about the details. Whether the next big thing is going to be Svelte or Nuxt. Is still some HTML document travelling over HTTP.
What happens in between can change, but the fundamentals always stay the same.
10.) Trying to be the next ‘uncle Bob’
From time to time some developer (usually male in their 20’ies) approaches me and starts lecturing on clean code.
Look, is a good book written 20 years ago in a field where things change every year. Most of it covers Java syntax. And no offence but if you are reading this article, you are probably late already.
Same for Martin Fowler and all the other greats of the past decade. These people are work-obsessed veterans, maniacs and genetic freaks. They have been in the software industry for years now and got into it when the internet was not a thing yet.
You are not the gurus. You should not try to be them. Not by reading a freaking book. Focus on writing good code, and getting better at it.
Stop trying to emulate the ‘gurus’. Work hard and form your own opinion on technical topics.
11.) Giving up
By now you should probably be a bit depressed. Oh, another article telling me how much I don’t know. Funny enough I am doing this on a positive note. During my developer journey, it was only when I started to be honest with myself that I really took action.
There is no way to sugarcoat the price of success.
We all made mistakes. We all were sloppy in our pull requests and we googled a bit too much. The big difference between the developers that are now working at top tech companies as technical leaders in their domains and the ones still ‘tagging along’ is they persisted.
The one way to lose is quitting.
Is the people that show up every day and go through the daily hardships of being a software developer that make it in this industry.
Great developers persist again and again.
This is the one thing all our mentees have in common at CodeWithDragos is persistence, and that is why I have no doubts about their success (our world-class training program also helps :).
If you are an ambitious software developer looking to get to the next level, I am confident this article will definitely help you get rid of stuff you should not be doing and all the noise out there.
And if you are truly interested in fulfilling your full potential as a programmer, then I recorded a free video case study where I explain the exact steps you should follow to build extreme confidence in your technical skills and get paid what you deserve.
In this video you will learn:
- The biggest mistake most software developers make when it comes to gaining confidence in their technical skills and earn more
- Three things that highly paid software developers use to accelerate their technical growth into experts
- The battle-tested “4-steps-system’ that will put your developer career on autopilot and how you can use it right now
Best of success!💪
P.S. Like thousands of other ambitious software developers you are probably craving unbiased advice about what it really takes to build long-lasting confidence in your technical skills, become an expert developer and earn more. If so, then I invite you to follow me on LinkedIn or Twitter :) I will make sure to keep delivering you fresh pieces of wisdom straight from the trenches of software development. I will also make you get off your but and take action from time to time!