7 Steps to Become an Expert Software Engineer without endless online courses or waiting for years...
Dragos Nedelcu
Aerospace Engineer turned Software Developer | I help JavaScript Devs get to Senior by Mastering the "Fundamentals." - See my profile to begin????
Does this sound familiar to you?
If you are a coder, programmer or software developer then you probably know situations like these:
- You want to improve your coding skills but you are quickly overwhelmed by the endless information out there and don’t know what to do next...
- You have spent hours on online courses, but got stuck and frustrated and did not manage to finish them...
- You suffer from impostor syndrome on a daily basis, struggle to work independently and are constantly afraid you are not good enough...
- You are forced to stay in a job you don’t like, underpaid or burn out and wonder if software development is really for you...
- You keep hearing that if you keep on coding, one day it will click…
Are you facing this kind of difficulties right now?
If you are like most software developers, then you will be confronted with situations like these over and over.
Here is why:
You lack a system in your technical growth.
You lack a defined process that guarantees you develop complete skills no matter how motivated you are to practice, no matter what technology is the latest trend or the kind of developer you are.
Think about it: how many times have you struggled with what to do next to become a better developer just because you had no plan?
You have to build a system around your technical skills if you really want to code with confidence and never feel like an impostor ever again.
Why is this so important?
Here is the thing: not having a structured process for your technical growth is why 80% of coders, programmers and software developers NEVER reach their goal of getting promoted, landing a better job and earning more.
Simply because not having a system forces you to improvise (so you waste your time with the same online courses everyone else is doing that don’t even apply to real-life situations).
How are you supposed to improve your technical skills consistently when you are improvising all the time?
Therefore it is absolutely necessary to build a professional system that you can finally get rid of the impostor syndrome, code with confidence and become an expert software engineer.
Here is the solution you need:
As a software developer, I have been there myself and I know this situation really well. First when I moved to a totally new country, Germany. Being new in the city, I jumped to the first developer job I could get, just to end up stuck with little progression and no opportunities for growth.
Second, when I left my “startup job” and dreamed of joining a top tech company. I lacked the professional software development skills, the visibility and the mindset to get me there.
Luckily, a mentor opened my eyes. Following his advice, I built a system around my growth, focused on technical skills. As a result, I quickly became an expert in my stack, fast-tracked into the senior level, and landed a better job at a top technology company.
In the last year, I helped other 100 software developers like you become expert engineers using the same system and now I can show you the 7 steps that will help you solve this:
Step 1 - Analysis and Strategy
The first step to building a system around your growth as a software developer is to make an objective analysis of your current skills.
What are your strengths? What are your weaknesses? Do you struggle with the programming fundamentals, coding syntax or structuring solutions? Are you able to see beyond the code, to analyse the design?
Find the gaps between an expert software engineer and your skills. Your time is limited, so you can’t learn everything. To get results, you need to focus.
Your time is limited, so you can’t learn everything.
The better the analysis phase, the better your understanding of what are the exact gaps you need to cover and the more effective the time you will invest later on. Now it is time to build a strategy to get you to the expert level.
Step 2 - Become a real “full-stack”: API Design
Most training and courses focus on "hot technologies" such as React or GraphQL and miss out on more boring but essential topics. They do this because fancy technologies help them sell more courses. But the truth is, these hot frameworks recycle classic concepts from software development all the time. This is why to excel in the hottest new technologies you have to understand the fundamentals.
To excel in the hottest new technologies you have to understand the fundamentals.
The perfect place for software developers to understand the fundamentals? You guessed it: API Design. It doesn’t matter where you come from, backend or frontend. At the API level is where things meet. They talk a lot about what a real full-stack developer is these days, but 80% of those developers can’t even name the main three ways to version an API.
At its core, you are more than a backend or a frontend developer, you are a web engineer.
Here, don't just scratch the surface, explore performance, caching and testing. Go a bit deeper into the HTTP protocol and understand how the web really works. At its core, you are more than a backend or a frontend developer, you are a web engineer.
Step 3 - Understand the full software cycle: Continuous Integration
The thing is if you are only able to contribute at the code level, your ability to help your team is limited. If you don't understand how to properly deploy applications, you will always need help to push your code and see it work.
And because of the way teams are structured, most developers can’t usually get their hands dirty with deployment (nobody wants you to mess around with code that will reach the users). But, if you never touch these topics, how will you ever learn them?
You must understand how code gets built, packaged, shipped and deployed.
To widen your perspective as a developer you must understand how code gets built, packaged, shipped and deployed. It is time for you to understand the full software lifecycle, what continuous integration and delivery really mean and how you can deploy your own applications with the best practices.
At the same time, cloud certifications require too much time and they go deep into topics that you as a developer don’t necessarily need to care about. Knowing at which network-level an application load balancer works is interesting but nor necessary. Get a good understanding of cloud, version control and integration tools instead.
If you understand how to deploy applications to the real-world, you will be able to assist your team from the coding phase until the deployment.
If you understand how to deploy applications to the real-world, you will be able to assist your team from the coding phase until a feature gets tested and deployed. Now, that’s an expert. And, who knows? Soon enough they will trust you enough and give you access to the company’s cloud account.
Step 4 - Think like an expert programmer: algorithmic thinking and data structures
Basketball players train their muscle memory so they don’t even have to think when they pass the ball. They do it almost automatically, out of reflex. The same thing applies to efficient coders when it comes to programming challenges. Seniors do it almost by instinct, some call it intuition, others say it just comes with years.
Expert developers use mental frameworks that they refined over the years to solve any coding problem.
Hear me out, it is no magic and it is completely learnable. It is not about memorizing binary trees. It is about understanding the commonalities between those coding problems and having a structured process in approaching them. You have to focus on patterns instead of implementation details. And the keyword here is recursion.
It is not about memorizing binary trees, it is about having a structured process when approaching coding problems.
This will come in handy not only in code challenges but also in your daily work as a software developer. Recursion is behind the DOM tree and even behind algorithms of the most popular framework out there such as React.
Step 5 - Specialisation: React, GraphQL and the "hottest" tech out there
By this stage, you developed a strong understanding of the core principles of software development. It is time for that extra step that will make you stand out. Specialization will allow you to stand out between other hundred developers claiming expertise left and right.
If the backend is your thing, then go deeper into server-side development. If it is the frontend and you have been doing mostly React so far, time to touch other frameworks and dive deeper into concepts such as server-side rendering and performance.
The idea is not to just know about the latest frameworks, but to understand where the community is moving in that area, what are the specific challenges developers are facing on that platform and go beyond what the average developer knows.
The idea is not to just know about the latest frameworks, but to understand where the community is moving in that area.
In this way you become more than a developer, you will be able to bring innovation to your company, even to the whole industry. Plus it is easier to stand out in a library released 3 years ago than an established one where you compete with more experienced developers.
Step 6 - Software Architecture: getting to the "Big Picture"
Now that you find your way around code and you are also able to understand what happens to your apps after the coding phase, you are ready for the next step.
Expert software engineers are able to have conversations with senior developers, tech leads and architects because they share a common understanding of programming concepts way beyond technologies and frameworks. They can abstract and see beyond the implementation. They understand the common principles of software architecture.
Expert developers are able to discuss with senior developers, tech leads and architects because they understand programming beyond libraries and frameworks.
Now, don't be scared. You won’t become an architect overnight. At this point, you should start thinking about how systems interact with each other. How can your application handle millions of users? How does it integrate with other systems? How can it communicate with the external world?
You need to develop an opinion about topics such as scalability, reliability and performance.
Time to grasp concepts such as scalability, reliability and performance. So that when that discussion on application performance happens, you don’t feel lost and can actually contribute. You will even be able to discuss technical solutions outside of your domain. This will allow you to move into a senior position or technical lead one.
Step 7 - Professional Image: invisible talent is talent no one cares about
Nobody will hire you, contact you or invite you to give a tech talk if they don’t know about you. It is not 2010 and opportunities don’t fall on your lap just because you know how to code. So does every self-taught coder, bootcamp graduate, college student or junior developer.
It is not 2010 and opportunities don’t fall on your lap just because you know how to code.
Now, I know there are many so-called influencers out there saying you need to build up a personal brand, or that you need to Tweet every day. Or that your GitHub has to be extremely polished and the portfolio should grab attention.
All those things are nice to have. In real-world companies care about two things: your Linkedin profile (that’s how they find you) and a surgically optimised CV. In the end, they are hiring a software developer, not an influencer.
How can you build a technical blog if you are struggling with React?
Influencers are telling you that you need to build a personal brand because that’s what they do. But just because that worked for them won’t work for you. How can you build a technical blog if you are struggling with React? For now, your time is better invested elsewhere. To connect with other developers and tech leaders, you just need a tidy profile and to engage in conversations.
That’s all - you don’t need anything else to become an expert developer.
- Forget the 10 online courses you bought but never finished...
- Forget about memorizing data structures and binary trees…
- Forget about solving all the problems on HackerRank...
- Forget about heavy programming books that take forever to finish…
- Forget about halfway youtube tutorials that always confuse you...
- Forget about technical blogging…
- Forget about building a personal brand…
Many of these things will just distract you. Others such as your personal brand will become relevant once you are already at the senior level.
These 7 steps will allow you to code with confidence, never feel like an impostor again and become an expert.
It is actually crystal clear.
After you set up this system, you will be able to handle any technical issue at your job or in a job interview. You will be the one choosing for what company, with what technology and with whom to work. You will automatically become a highly demanded expert software engineer.
No more hoping or guessing and waiting on the tech lead to recognize your value.
So far I have set up this system with more than 100 coders, programmers and software developers and they constantly reach outstanding results.
Last week one of our mentees landed her first “high-paying” job (30% on top of the market) after only 6 weeks of working with us. Without even getting to software architecture, a portfolio or a personal brand. Those things are part of week 6 and 7 of the program :)
If you are reading this, then you are most likely also an ambitious coder, programmer or software developer that wants to become an expert software engineer.
So, if that is the case you will definitely benefit from implementing the 7 steps I mentioned above. You will get so much closer to your goal in a proven way.
Regardless - we both know that reading a simple article on how to grow your technical skills will not get you the results you truly want.
If you want to get to that expert level right now, let me suggest: Get in touch with my team. You can apply for a free private consultation call with me, where we will go over each step in detail and build a plan to help you reach that expert level.
The only thing you need to do is click and fill the application form on our website.
Click here for a free private consultation!
Looking forward to consulting you soon.
Dragos Nedelcu
Expert Software Coach at CodeWithDragos UG
Student at University of Information Technology
2 个月This is the second time I read the acritcle. I read it completely. Once more, i really like your article and thanks a lot ! From Vietnam with Love ??
Student at University of Information Technology
3 个月Thank you for your sharing. Im a beginner and my English is not good. However, the first time i read it, I learn a lot from this article and Im going to read it over and over again until I understand what you are trying to convey. Thanks agian so much <3
Software Engineer at GetYourGuide
3 年Well put, thanks for sharing Dragos Nedelcu ?? "understand where the community is moving in that area" - what are your top 3 resources to keep up to date, especially when it comes to the bigger picture of software development?
Aerospace Engineer turned Software Developer | I help JavaScript Devs get to Senior by Mastering the "Fundamentals." - See my profile to begin????
3 年If you would like to find out more now, let's talk apply for a free private consultation with me at:? www.codewithdragos.com