Software Trainer: There Are Three Pillars To Developer Success, And Most Engineers Lack One, But They Have No Idea
What does it take to become an exceptional software developer?
A question that haunted me for years.
Is it one thing, or is it many? Is it “years of experience”? Is it a specific technology or framework? Or is it simply luck?
The reason for that is that I left a successful career as an Aerospace Engineer to get into software development. Once I got in, I could not settle for being just a coder. An execution machine for tickets in the sprint. I wanted more, a hell lot more.
That hunger led me to an almost ten-year journey navigating software engineering, starting with basic web development up to Computer Science fundamentals. After endless struggles, late nights, and dozens of trials and errors, I finally made it to Senior Developer.
Not only that, but on the way, I also helped more than 160 developers get through the same journey faster.
What I found out is that when you analyze highly successful software developers, you will notice a recurring pattern. At the core of their success, though different at the surface, there are three basic ingredients:
- Mindset
- Technical Skills
- Selling yourself
Any developer aspiring to get to the Senior level and beyond should be asking themselves if they are doing enough in each of these three areas.
If not, even if you work hard, you will see really limited results — because, as is the case in today’s software market: great companies are getting pickier and pickier. Sure there are many jobs for software developers right now, and “demand” for coders will stay high. I bet you even have some recruiters writing you even if you are not looking for something.
But are those the kind of jobs you would spend your next 5 to 10 years on? Do they pay what you deserve? Would they give you more responsibility?
The answer is probably no.
As with everything in nature, great software jobs follow a bell curve governed by the laws of supply and demand.
Well-paying jobs for stable companies with modern tech stacks and great cultures are highly in demand (checking LinkedIn for such job postings and saw, on average, 249 applicants per position). Sure, most of those people don’t qualify and won’t even get a phone call from the recruiter. But you will be competing with at least 20 decent other software engineers for such a position.
So how can you get to the top faster?
Most developers you ask will answer you with “years of experience.”
That’s what I call the experience myth. The magic notion that as time passes, you get better.
In reality, the opposite is true.
Unless you make the conscious effort to gain a deeper understanding of software development, with time, your skills will get worse (and as technology advancement outpaces your learning curve, you’ll soon become unemployable).
Don’t trust me? Ask any veteran that is not doing Q&A or got into management because development was too stressful.
This brings me to the #1 ingredient of success.
Pilar #1: Mindset
Mindset goes first because a developer with a positive mindset, a.k.a. healthy attitude towards self-improvement and learning, is most likely to put in the time to master the technical side and learn how to read the market and sell themselves.
It is also the hardest.
Because it requires getting over your ”developer ego,” accepting there is room for improvement in your skills, and taking action towards changing. Changing your own source code is much harder than any technical issue you will ever encounter.
So how can you improve your mindset?
I know most developers are skeptical about self-improvement books because they tend to be flashy, overpromise and contain too many pseudo-scientific statements that are hard to swallow for such analytical minds.
It is true; there is a lot of garbage out there, but also tons of stuff that works.
Some pieces I recommend to all our students are “Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones”, “Essentialism: The Disciplined Pursuit of Less” and “The Six Pillars of Self-Esteem.” They address crucial areas such as habits, focus, and building a more confident you.
Besides books, articles, and videos, I recommend surrounding yourself with positive people that have a mission and a vision. If the developers you hang out with after work only like to drink a few beers, play video games, and eat junk food, time to change your entourage.
Pilar #2: Technical Skills
The key difference you need to understand here is that delivering in the sprint is not enough (having working-level knowledge).
Senior Developers understand the “why” behind what they do, not just the “how.”
Choosing React as an example, being able to develop applications with React (even complex ones) won’t cut it. To lead, one must also understand why React and how the library was built. Facebook did not invent functional programming in 2015. They just applied it in the context of JavaScript development.
A Senior Developer working with React should understand the architectural paradings that it brings to the table, as well the language of React (JavaScript and TypeScript). That doesn’t mean you should memorize the prototype properties of the Array object. Still, you do need to develop a feeling of the structure, paradings, and capabilities of JavaScript as a language.
This is a hard step, particularly for self-taught developers.
It usually happens in your third year of writing code. Bootcamps and courses have been selling you that you can become a great software engineer without having a mathematical inclination or going too deep into the theoretical aspects of software development.
But as you try to get deeper technically, you will bump into concepts that require you to have a deeper computer science basis. The self-taught journey in software development is a counterintuitive one. At some point, you need to replace tricks and tips learned on the job with proven fundamentals.
Technologies and frameworks tend to go away pretty quickly, yet fundamentals have a much, much longer lifespan.
If you want me and my team to personally help you find your technical gaps and build a step-by-step roadmap for you to get to the Senior level, apply here to see if you qualify.
Pilar #3: Selling Yourself
You can have the best product in the world, if people don’t know about it, they won’t buy it.
In the case of software developers, you can have great skills, a strong work ethic, and an ability to get things done. But, if you ignore the “sales” part of your job (most developers do), you will always be making less than you could, have less responsibility and never reach your full potential.
Many of the developers I coach think they don’t need this part when they come to us. Engineers disregard sales because they think the best product always wins (I don’t blame them, this mindset is common in the tech industry, particularly in the startup world).
This belief works really well with our internal belief system, as engineers like to believe we judge things by what they can do, not by their packaging (if you own any Apple product, you will know that is not true).
The better you sell yourself, the faster you will grow both by taking advantage of opportunities inside your team/company and outside of it.
A smart developer will do both.
By understanding office politics and corporate dynamics, they will be able to get promoted (or be the last considered in case of layoffs), and by understanding the market and how to sell themselves on the outside, they will have increased negotiations power over their salaries (real negotiation power comes from options).
They will also be able to jump ship strategically to far better opportunities.
All these three areas take work.
They require dedication, commitment, and a real intention to get better. Sadly, many developers won’t get there.
After a few years in the industry, you see this when you bump into people. Most of them are working at the same company, more or less on the same code. Some get a promotion. A minority is now occupying Senior Positions. An even smaller minority gets into leadership (Architect/Tech Lead/Principal Engineer).
For some of you, this might be hard; it might require months or even years of hard work without seeing your skills fundamentally improve. Sometimes you will feel like you will never get there.
Don’t quit.
Getting better as a Sofware Developer is like pushing a rock over the peak of a mountain. You can push and push, but if you quit before reaching the peak, the rock will fall back exactly where it started, and you will lose everything.
Keep pushing; you will get to the peak.
How long it is going to get you there?
If you opt by doing it alone really depends on your current skills level, the opportunities around you, the developers you are surrounded by, how effective you are in your upskilling, and countless other variables. What I can tell you is that it is totally 100% worth it.
Because once you get to Senior, you play life on easy mode.
Better quality projects, better companies, better teams, and the possibility of finding another job at the snap of a finger. The promised land of any software developer.
If you are ready to accelerate your journey to that level, book a chat with me here and let’s see if we can help you get there. Our mentorship programs offer individual help for JavaScript developers that have been coding for a while and are ready to get to the next level.
Take care,
Dragos Nedelcu — Software Trainer & Founder at theSeniorDev.com
P.S. You are probably thinking, hmmm. I wonder how much this thing costs? Well, the short answer is, it’s free. Because if we don’t make you at least 30% better as a developer in the first 30 days of working with us, we’ll return every cent you paid. How’s that for confidence?
P.S.S. Even if you have an idea of what you should do to get to that next level and just want a second opinion, I GUARANTEE this call will be the best 45 minutes you invested in yourself as a developer this year. Mister Dragos ain’t playing. See for yourself.