The software development journey is a strange one. There's no definitive starting point. There's no clear destination on the map. And nothing in between is any clearer! Yet somehow we all do it. We manage to find our own starting place. We set goals to figure out where we're going, and we drive forward. But still, there's a lot of uncertainty, and it can be hard to know what to do, or where to focus to get better.
In this post, I want to share some of the lessons I've learned in my own journey that I've seen and experienced in order to become a better software developer.
This is by no means a "How To" guide on becoming the best developer out there. These are simply a few suggestions I can make that I know for certain will improve your skills as a developer if you invest some time and effort into them.
The simplest thing you can do to become a better developer is to just build stuff. Developing software is just like learning to play the guitar, doing pushups, or painting a picture...you can study techniques until you're blue in the face. But you really only get better once you dive in and do the thing. So that's my first tip...just build stuff!
Big projects or small, it really doesn't matter. The important thing here is to just get your hands on the keyboard (or whatever you use) and write code. Try to find some problem or annoyance you have and see if you can code a solution to solve it. If you're having trouble coming up with ideas, there are thousands of suggestions across the web...or just ask your AI assistant of choice for suggestions, they're great at that sort of thing!
Then when you're done, share your project in whatever community you're involved in. There are TONS of communities out there dedicated to development. Share what you've built. Ask for critique. There are all kinds of people out there willing to offer suggestions or code reviews. If not, at least you built something, and you probably learned something along the way!
A few additional tips:
- A great exercise for identifying problems is to say to yourself, "There has to be a better way to..." then complete the statement with the first thing that comes to mind.
- Don't be afraid to get weird with this. Some great products have been built that started as nothing more than random, off-the-wall ideas.
This is something I've sadly seen quite a lot, and have even experienced myself from time to time. You get to a point where you've learned enough to do the job, and you get comfortable. You might have a challenging ticket here or there, but for the most part, the job is predictable, you have the skills to do what you need to do, and you don't really need to expand beyond this. If this is what you want for yourself, there's nothing wrong with it at all. But you will hit a plateau in your growth as a developer. So if you want to be a better developer (and if you're reading this, I assume you do) this kind of comfortable stagnation is absolutely something to look out for, and avoid.
So how do you know if you've gotten too comfortable? It's easy...just look back over the last 2-6 months. What have you learned or accomplished in that time? If you're happy with the list, you're good to go! But if you find your list a bit lacking, or you're a bit disappointed, this is usually a good sign that you may have gotten a bit comfortable and have started to stagnate.
Fortunately, the solution is simple...just dive into something you aren't completely comfortable with! It could be a new kind of project you've never worked on, or learning a new technology you're never used before. You'll probably be uncomfortable at first, but that's good!
A few additional tips:
- Having a little trouble getting motivated? It's a normal problem when you're pulling yourself out of that comfy rut! Try finding someone to join you. Work on a project with a team member or friend. Getting into a habit is way easier if you have someone holding you accountable.
In most cases, documentation will be the single most up-to-date and thorough source of information on a technology, and will provide all those little details that don't get included in books, how-to articles, and tutorial videos. To be fair, it can be a little boring...which is probably one of the reasons why so many people learn the tech by other means!
But I've noticed as people get familiar with reading documentation, rather that relying on other methods, their understanding of the technology deepens, and they're able to resolve issues significantly faster than relying on finding the solution someone else came up with.
As a bonus, when you get good at this, and if you share what you know, YOU become the person that others look to for guidance using that tech.
(Trade Secret 🤫 ...being a Subject Matter Expert (SME) on a subject looks really good. And outside of being on the team that built the thing, the documentation is the quickest way to become one!)
A few additional tips:
- Not all documentation is created equally. So when you find good docs, don't just use them to learn about the tech, use them as an example of the kind of documentation YOU should be writing for your own works.
- You don't have to read the docs from cover to cover (although some people do). Just being familiar with them and being able to quickly reference them is still a very useful thing to get skilled at.
Something I see a lot, especially with young developers, is seeking out work you know you can already do. Hacktoberfest is coming to an end, but it's been a great example of this. So many people were looking for tickets they knew they were capable of completing. There's nothing wrong with this, of course! I only mention it to explain what I mean when I say "Challenge Yourself".
If you want to be a better developer, push yourself beyond what you think you can currently do.
This is something I think good managers do well for their employees. They assign them tickets that might be just a bit over their head or beyond their current skill level, forcing them to push themselves and to learn new things. This is what I mean here, only doing it for yourself.
Instead of seeking out issues/tickets you know you're capable of fixing, or building projects you already know you can build. Push yourself outside your comfort zone. Try to build and fix things you're not 100% sure how to. As you work through it, you'll learn. I promise, the challenges you face when doing this will absolutely make you a better developer!
A few additional tips:
- Expect to fail sometimes...not all attempts are going to pan out. Maybe one approach causes unforeseen issues that prevent you from completing what you set out to do. Maybe you discover that what you thought was just a little out of reach is actually WAY out of reach, and you need to learn a bunch of stuff before you can even try to do it. Trying and failing is still better than not trying at all.
- There's no shame in admitting something is beyond your experience and asking for help...but give it a shot first.
This is an area of software development I don't feel gets enough focus. I know most developers typically want to focus on learning things specifically dedicated to writing code. I mean, let's face it, that's why we became developers! But so much of the software development lifecycle is centered around soft skills it seems silly not to make it a primary part of our growth. So if you want to become a better developer, this is one area I highly encourage you to focus on.
If you're not familiar with the term "soft skills", it refers to interpersonal skills like communication, teamwork, collaboration, leadership, and so on. It's a vast subject, and as you progress through your career, you'll find that these soft skills become more and more important. Working closely with fellow devs on your team, communicating with customers, clients, or company leaders, adapting to different situations, problem solving, and even your motivation are all examples of how these skills will come into your development life. So spending some time improving them, even through they're not directly applicable to writing code, will have a profound impact on your growth as a developer.
Fortunately, there are TONS of resources out there for learning and improving these skills. Here are a few of my favs:
- “Crucial Conversations” by Kerry Patterson, Joseph Grenny, Ron McMillan, and Al Switzler
- “Atomic Habits” by James Clear
- “Emotional Intelligence 2.0” by Travis Bradberry and Jean Greaves
- “Drive: The Surprising Truth About What Motivates Us” by Daniel H. Pink
In my opinion, the ability to learn new things is the most important skill a developer can have. Now, that might seem like an obvious statement, but let me clarify what I mean here.
Obviously, everyone is capable of learning new things (even though it may not seem that way at times 😅). But I look at learning in the same way I do exercising. Almost everyone can exercise, but the same exercise doesn't work best for everyone. Like Running. Running is great for cardio and comes recommended by many trainers and doctors. But not everyone can run. When this is the case, people learn different ways of getting their cardio workout in. In a sense, they learn how to exercise. Additionally, people who exercise regularly are able to exercise harder, longer, and get better results after they've built up a habit of exercising. These are the same principles I mean when I say "learn how to learn".
So if you want to be a better developer, learn how you learn best, and then make it a habit.
I don't just mean figure out if you learn better from reading or watching videos. This topic goes much deeper than that. If you find you learn better from reading, for example. Does that mean you can read anything and learn best? Or does the type of reading matter?
So I encourage you to figure out how you learn best, and under what conditions. Then, make it a habit. The more you're actively learning new things, you may find that you're able to focus on learning for longer periods of time, and/or that you're able pick up new technologies faster because you've trained yourself to take in information.
As you advance in your career, you'll find that the demands for learning new things increases. At first, maybe you're expected to learn a language. But then you start being expected to learn how to use new tools, or integrate with other platforms and tools by using their API, or whatever. Advance even further and you start having to identify what tool is best for a given situation, so you may have to learn about multiple tools in order to choose 1. So mastering the art and science of learning is one of the most important things you can do to be a better developer.
A few additional tips:
- You won't always be able to learn how you prefer. Maybe you're being required to learn how to use some new tool, and all they have is documentation...no videos, books, or how-to articles. As annoying as these situations can be, do your best, and apply what you can to help you learn it.
- Do your best not to compare how you learn to how other's learn. Someone else's ability to learn something in a different way, or at a different pace really doesn't matter. At the end of the day, all that matters is that you're learning.
Well there you have it, my 6 tips to becoming a better developer. Like I said in the beginning, these things by themselves may not make you the best developer in the world. But by investing time and effort into building things consistently, not allowing yourself to fall into comfy stagnation, getting used to reading documentation, really challenging yourself, working on those soft skills, and learning how you learn best, I can personally guarantee that you will become a better developer.
I hope at least 1 or 2 of these suggestions helps to improve your skills as a developer. And if you end up building something cool because of it, I would love to hear about it!
Thank you for taking to time, and letting me share my thoughts with you. Until next time, Happy Hacking!