If you are a coder, programmer or software developer struggling to get better at software development, than you are already familiar with this:
- You want to improve your software development skills, but you are quickly overwhelmed by all the online courses, and you don't even know where to start…
- You try to progress to the next level, but you don't know what skills are needed and have no clear progression path…
- You dream of becoming an expert software engineer, but you think it will take you many years to improve…
First of all, I can assure you: most software developers feel this way!
I also want you to know that there is a way for you to get better at software development.
The following five steps will help you get better at software development in the most effective way so you can code with confidence, get that promotion you long for or even build your company as a freelancer.
Step 1: Build the habits of successful software developers
No matter how many "5 ways to hack any coding problem" or how many "cheat codes to improve as a developer", you read Twitter, there is no shortcut to success in software development.
So if you still ask yourself: What is the trick. The secret?
Let me tell you: hard work.
Yes, becoming an expert software engineer takes a lot of hard work.
Good personal habits such as proper sleep, nutrition, exercise, and social life are key to performance in any field. Given that we are talking about software development, in particular, I want to extend that list.
Long-term success as a software developer is built on hard work, consistency and great habits.
So let's quickly dive into the three software development habits that will make you become a better software engineer:
a) Commit to continuous improvement: your tech radar.
Commitment separates software developers that go on and become tech leaders from the "forever coders". It sounds like a cliche, you must set time every day to read and learn something new.
It doesn't have to be a fancy life-changing framework. It can be how to better document Rest APIs, build better interfaces, or even better manage your git workflow.
In a previous article, I mentioned the best way to manage this learning and make sure you commit to this is through your tech radar.
Use a personal tech radar to guide your learning efforts.
And surround yourself with software developers that have the same learning mindset and passion for succeeding. If you don't have them close in the company you work for, look for them in the community.
b) Always document what you do.
I saw a habit in every successful tech lead/CTO I had the opportunity to work with. All of them were taking tons of notes.
Is it a technical choice? Something that frustrated you for days? Make a habit of writing things down.
It will give you clarity in your thinking, and it will expose weak points you didn't think about before. You can start right now by writing a technical diary.
As you write about your code, forget perfectionism and do go into details.
c) Share what you learned through writing.
The best form to hold yourself accountable is by putting part of what you learned out there so others can benefit from it.
You might think: "I don't have much to say". If you have been documenting consistently, you probably have a lot to say.
Go ahead and drop part of those notes in a technical blog.
You will connect with other developers, lose the fear of being visible and give back to the amazing software community.
Step 2: Technical excellence
Software developers are and will always be technical people. We solve problems through code.
Software developers are and will always be technical people.
So the more efficient you are in this problem solving through your depth and knowledge, the more value you add to your company and the more of that value you will get back.
Build your technical expertise with the end in mind. Fresh developers pay little attention to learning things in depth.
Don’t get distracted by just "making the code work". That is only a 25% of your job.
The other 75% of building software is testing, deploying and effectively debugging that piece of code.
You may ask yourself, in such a diverse field as software engineering, what is precisely technical excellence?
The answer here is: it depends. It depends on the industry and the tech stack you work with.
The key to achieving technical excellence is understanding your tech stack, the ecosystem around it and the tools. Learn complementary skills, understand the complete software lifecycle and deep dive into software architecture.
Being great at building software will increase your confidence and make you versatile as a developer.
A solid understanding of what it takes to build great software will accelerate your growth, whether you want to move into technical leadership or engineering management.
Step 3: Develop the consultant mindset
The inflexion point in my career was when I started to see myself as more than just a coder but as a consultant that makes innovation possible in the company I work for.
What I mean by a consultant is someone that removes roadblocks, reduces stress and enables others through their coding skills.
The inflexion point in my career was when I started to see myself as more than a coder.
I know many software developers have this image of consultants as well-spoken, suited up and overpriced externals. That's just a stereotype.
Consultants help companies solve hard problems, they provide fresh perspectives. That's exactly what successful software engineers do as well. Develop mental models to solve common software development challenges.
Get rid of the habit of jumping straight to the code and implementation details.
Listen and understand the context of the technical solution needed. Then follow up with smart questions in order to find out exactly what the team is trying to achieve.
Take your time to diagnose issues, afterwards jump to your technical toolbox. Maybe they don't need that configurable form solution and simple JSON would be enough. Reduce complexity and deliver working software.
In 2021, knowing how to code is not enough. The world does not need more coders; it needs more professionals.
Professionals have high standards about themselves and the work they do. Be more than a coder, be a professional and a consultant.
Step 4: Visibility - Who knows about you
You worked hard to get here. Late evenings fighting with the console, weekends of coding, debugging and following the latest trends.
Now I want you to read this line twice if you have to:
Nobody hires invisible talent.
Both as an employee or as a freelancer. If they don't know about you, you don't exist. To have access to the best opportunities out there as a software developer, you need to get over your fear of being visible.
Visibility comes down to two things: your personal image, and your network.
a) Your personal image
Trust me, people do judge a book by its cover. Here, take care of the basics first. Personal website, Github, Twitter, Linkedin profile and CV. Remember just stating your tech stack and what you did in your last company, is not enough.
What really gives power to your personal image is mixing that with the passion for coding, for building software and a better world. And let your personality come true.
b) Your network
The more connected you are with the software ecosystem, the more access to valuable information you have (make no mistake, software development is the information business).
Networking is building relationships inside and outside of your team/company.
Inside your company, build relationships with stakeholders all over the company (be it other software engineers, tech leads and even business stakeholders). You don't need to get involved in dozens of side projects and burn out.
By listening and being available as a software expert, you are already adding value.
Outside of your company, the most effective way to network as a software developer is to connect with other developers that are using the same tech stack, facing the same challenges in other companies.
A professional image as a software developer coupled with a strong presence in the community and a habit of making connections will make sure you are exposed to the best opportunities out there.
Step 5: Have a predictable process for your growth
At the beginning of your software journey, when you are just a coder is ok to pick on the first opportunity you get. A small coding project on the side, a bit of volunteering programming here and there.
But, after your first year as a software developer to really make an impact, you need to be intentional in your growth.
You need a clear goal of where you want to go with your developer career.
Between your job, side projects and social responsibilities, there is little time left. Because time is limited, you must build a system around getting better at software development.
There is little time for improvisation as a software developer. Build a system that delivers predictable results.
It is actually obvious, as software developers, we get paid to design and build systems.
Apply the same systematic approach that you use when making software to plan how to become a better software engineer.
Our clients use the following steps to successfully get predictable results when it comes to getting better at software development:
a) Identify the key factors to achieve the results you want.
Do you want to move into a mid-senior position or even becoming a tech lead? Identify the key factors to get there. Is it programming knowledge, cloud, software architecture or communication skills?
Make an honest self-assessment and understand how you stand in these categories.
Judging your performance in first person is challenging (this is where a coach can help).
If you have a good relationship with your tech lead, go ahead and ask them. How did I do at that meeting? How would you approach these requirements? What would you improve first if you were me?
As an Expert Software Coach, I can tell you it is usually a mix of technical proficiency and communication.
b) Dive deep into the key factors to your success as a software developer.
In this step, you have to sort out all the above-mentioned factors.
Separate coding skills from soft skills.
If you had only one day to work on one of those skills, which one would you improve first? What is the easiest way to improve it? The usual suspects are always testing, design patterns and CI/CD.
c) Make a plan about how to get better at software development and stick to it.
Information is useful only if put into practice (remember as a software developer this is your strength). Break the above-mentioned categories into weekly practice sessions. Attach dedicated time and objectives.
If it is getting better at designing REST APIs, then build one, test it and document it. Treat side projects like production-ready software and don't cut corners on best practices.
How to get better at Software Development?
To truly get better at software development, you must build great habits, cement them with flawless execution and change your mindset as you grow.
Think long term and treat software development as more than a job. This is your opportunity to finally excel at something.
At CodeWithDragos we have already helped more than 93 individuals get better at software development. Our System consistently delivers results.
Last week one of our clients moved into a senior position (with the corresponding salary increase that it entails) after working on her technical skills and image. Without a portfolio, a website or a blog. Those things are part of week 7 and 8 of the program.
If you are reading this article, you are probably also a coder, programmer or software developer. Maybe you want to become a mid-level or senior developer, even a technical lead or being able to go freelancing as a consultant.
If that is the case: you will definitely benefit from executing those 5 steps I showed you. This proven, step-by-step approach will get you closer to your goals.
But, let’s be truly honest.
Reading a simple article, getting inspired up and going back about your day won’t get you the results you want. If you truly want to get better at software development, then click on the link below and schedule a FREE consultation call with us.
Together we will analyze your situation and build a step-by-step plan to help you become an expert software engineer.
The only thing you have to do is click the link below and apply.
I look forward to consulting you personally soon.
We usually get in touch with you within 24 hours.
Founder at CodeWithDragos