Many new programmers believe that being a good software developer is all about deep technical knowledge and having years of experience writing complex algorithms. That might be true to an extent, but having the right mindset and understanding the essence of your job is just as important. In this article, I’ll try to outline 5 non-trivial tips from my experience that will set you on the path of becoming a better programmer in the not so distant future.
1. Get aligned
A significant part of our surroundings exist to solve problems. So is it with software. The company you are working for exists because it’s solving someone’s problems and you have a job because you are helping them solve those problems.
That may sound harsh, but in reality, your code writings have absolutely no value without the problem-solving context your company is putting them in. It's important to make sure that you understand the core motivation behind what you are doing and how it affects the world. Talk to the product owners and the business people in the organization. This would make your work a lot more contextual and help you develop your own problem-solving skills. Being a good developer is less about coding skills and more about being a problem solver.
2. Keep it simple
As you gain experience, you’ll learn new approaches to solving problems and your creativity will go exponentially up. Even though that’s a great thing, it hides the common pitfall of overcomplicating.
I often see this with developers that have 1 or 2 years of experience - they get too hyped about the new approaches they’ve learned and feel the urge to implement them, regardless if there’s a simpler solution or not. Don’t make that mistake and always be conscious that you might be overcomplicating. Remember that your job is to solve problems with the least amount of code that’s still easy to comprehend by others.
3. Think in perspective
Some time ago I heard someone’s definition of being smart as having the ability to put things in perspective. That stuck with me through the years and I find it so true when it comes to software development. In reality, a software system would either keep constantly evolving or just die, there is no situation in between 99% of the cases. The odds are what you are working on right now will be impacted by future circumstances.
Always be analytical and try to foresee the impact of your actions. What can go wrong and break? Would it be easy for someone else to understand and change it if the requirements change? What if the numbers go X10? Or X10000? That’s the type of questions I ask myself all the time. Always build a solid foundation for the future.
4. Get the bigger picture
Having a broad industry knowledge can often be very useful. Developers tend to focus on this one specific thing that’s closely related to their work and get blind for everything else. Learning about technologies and solutions outside your current work scope will allow you to better understand the lifecycle of a software product and help you collaborate more efficiently with colleagues from other departments.
For example, if you are a frontend developer, you can find it useful to learn more about infrastructures, DevOps or API paradigms. Broader knowledge will inevitably increase your value within the company.
5. Improve your communication
This one is coming last, but it's extremely important and not only when it comes to programming. Regardless of your surroundings and whether you are or working remotely or not, you most definitely communicate with other people and the ability to efficiently do so is crucial for your development.
Good communicators understand quickly, don't need everything written down word by word, ask the right questions, and efficiently elaborate concepts. Here are a few tips that will help you:
- Focus on clarity. Be specific. Compose full, valid sentences that don't rely on context.
- Use analogies to illustrate concepts and ideas. Drawing helps too.
- Ask more questions before suggesting the first thing that pops on the top of your head.
- Structure what you want to say in advance. Even a simple list will make all the difference.
- Read between the lines.
These are my 5 tips for becoming a better developer. Programming is so much more than writing code and there many other areas where you can improve.