I’ve made tons of mistakes in my early years as a software developer. It is part of the game.
But, if you are an ambitious developer looking to accelerate your growth, the best you can do is to learn from other’s mistakes. Mainly because you don't have enough time to make them yourself.
So I compiled a list for you of the main "mistakes" I have done during my first years as a developer. Read carefully below.
1.) I jumped at that first job offer I got
This is a big one. More than once when switching jobs I jumped at the first opportunity that promised an equal or a slightly higher salary.
In the moment of truth, the lack of professional skills translated to fear. Many times, I jumped from one sinking boat to another, just to realize I had to jump again. Usually, after the first three months with a new company, the lack of fit made me job hoop again.
I jumped from one sinking boat to another, just to be forced quickly to jump again.
While this is ok in your first years as a developer, it is detrimental to your growth and happiness. Explore the company’s culture, ask lots of questions and take your time before committing.
Understand you can’t really switch jobs every 6 months.
If you are short on cash and you have no choice, totally fine. Try to go in as a freelancer(if possible) and don’t forget, probation periods go both ways. The point is to be strategic and don’t make choices out of fear.
2.) I negotiated my salary poorly (or not at all)
This one goes in line with the previous one. Again the lack of confidence in your coding skills(we will talk about that later) and the lack of research made me settle for a salary that did not match my skills in the market.
I ended up being chronically underpaid for months.
The key here is to understand that salary raises are tiny or close to nonexistent (is just how the industry works) and settling for a smaller number now, means earning much less throughout your career.
Do your research, and talk to your developer friends about money.
Make it a habit to negotiate.
Afterwards, be open with your potential employer. Show them the numbers and be willing to walk away. These days, if I had to choose between being underpaid or unemployed, I chose unemployment.
3.) Being impatient with my growth and trying to learn everything
The capital sin of many software developers (particularly self-thought). For ages, I felt like learning more was the cure to my problems. Constantly starting new courses, buying books that I would never finish, and learning tech that I never really used. Yes, it was exciting at the beginning, but with time learning new technologies felt like a chore.
Impatience translated to frustration and anxiety, not to progress.
As a tip, make an honest evaluation of your current knowledge. Get some feedback from colleagues and managers on it. Decide on a direction and write down the steps to get there.
If the result is: I want to learn Kubernetes, AWS and Svelte, think again.
Spreading too wide will diminish your progress. Becoming a jack of all trades will limit your productivity. At the beginning of your career it is ok to just learn whatever comes to you, but after a time, to be effective you need to be purposeful about it. Keep the T-shape model in mind.
4.) Being unprofessional (not leaving the startup kid behind)
Like many other fresh software developers, I started my career working at startups. Working on something exciting and moving fast was so thrilling. Or maybe it was my lack of formal qualifications (Computer Science degree) and experience that pushed me there.
Working on something exciting and moving fast was so thrilling.
Regardless, startups usually work in really small teams, have flexible hours, and highly passionate individuals. That can also mean bad habits, irregular working hours, lack of personal boundaries, and professional manners.
It can mean passionate people swamped with work and unreasonable expectations. As a developer, a lack of good practices usually leads to over hours and night deploys.
For a long time, I thought that just how to work is and never questioned my behavior. Many times I was actually a perpetrator of those bad habits. With time I learned the hard way that:
Professionals set boundaries for a reason. The key to a long-lasting software career is professionalism and balance.
My advice: talk to the “veterans” around you, and see what they do when building software and dealing with people. They’ve been around and will give you some hints, make them into habits.
5.) Poor time management: neglecting my personal health
I gained 18 kilos in 6 months after landing my first software developer job. Poor time management translated to long evenings and working on the weekends. Those evenings were filled with trash food. I won’t even talk about the presence of alcohol and junk food in male-dominated industries (that’s a topic by itself).
Poor time management translated to long evenings and working on the weekends. Evenings filled with trash food and alcohol.
Long ‘productive’ nights were stealing precious and quiet morning time.
I realized waking up at 10:00 am, jumping on the MacBook saying "I will catch up in the evening" is a lie.
Pro tip: Invest in time management as much as you can. Is the only thing you don’t really have enough on this planet, treat your time as a precious commodity. Read the literature, put it into practice. Structure your day.
6.) Neglecting the software community
Even though I was reading articles and even if I found them interesting, I didn’t even bother to like them or at least say thanks to the author. Out of laziness and lack of confidence, I thought I had nothing to say anyway. All those ‘contributors’ have shiny company logos in their CV and work on exciting tech.
I was just an ‘outsider’, tagging along trying to make it.
I started writing because I wanted to keep a record of all these adventures in the software industry. And little by little grabbed the courage to publish them. Instead of just consuming content, I started participating in the conversations. Went from occasional journaling to a strict schedule. I curated a list of software development newsletters that I read every Saturday with my morning coffee.
Don’t postpone to when you will know more about the topic. Do it now!
You can do the same. Start small, participate and pay attention. Step by step you will build that confidence to pull 2000 words long articles. Writing and participating in the community will make you more aware of the rich software ecosystem we live in.
7.) Waiting for things to happen: the most detrimental habit
For a long long time, I told myself I was smart. I told myself that one day it will just click. One day I will leave that job. One day I will polish my data structure skills. One day I will finish that blog post. As you have already guessed, ‘one day’ translated to never.
Every day after work, I would go home, eat junk food and play computer games instead.
On a sunny summer day, I accidentally found an old diary entry. It outlined a plan to write some blog articles and record software development tutorials. Fast forward two years and nothing happened. Reading those pages in that hot sun in August stuck me with disgust. I felt sick of all my fantastic ideas that never saw the light of the day. I felt sick with myself.
The biggest mistake I made in my developer career was waiting for things to happen.
All the ‘mistakes’ mentioned above were just symptoms of not taking action. And they translated into mediocrity. Software development is a wide discipline and an enriching field. Building a developer career based on improvisations is a recipe for failure.
The ugly truth is: ambition is not enough, potential is not enough.
Great professional habits translate to a longer and more productive career. They translate to impact, contribution and happiness. This was the dream that got us all in this industry after all.
A developer career based on improvisations is a recipe for failure.
If you don't write down, plan and execute you will most likely never get there.
Looking back, I was extremely lucky.
The one thing that kept me going was the people around me. Ambitious and driven developer friends also struggling and dreaming big. Wise mentors that contagiated me with their passion. And living in a city (Berlin) where dreams really come true.
I have no particular advice for software developers. The only thing I can tell you might sound like a cliche:
But just believe in yourself that at some point it will make sense.
That the long nights staring at the code editor, the endless meetups, the coding on the weekends, the hackathons, and the uphill battle of staying up to date will pay off.
At a certain point, lifetime balance, flexibility, and financial freedom will come knocking on your door. But even more important will be the satisfaction of a job well done and the peace of mind that comes with it. And that is priceless.
But more importantly: the satisfaction of a job well done and the peace of mind that comes with it.
And if you are truly ambitious and you want to realize the full potential of your career, then get in touch with my team. You can apply for a FREE initial consultation where we will go over your situation and design a step-by-step plan for you to get to the next level.