When we start in the world of software development, it is normal to feel overwhelmed, as there is an avalanche of technical knowledge to acquire, many questions and fears arise, such as knowing which is the best programming language or framework, or the route to become an expert because we will always want to be the best. Beyond mastering the latest programming language or the most popular framework, there are fundamental principles and best practices that will help you grow and stand out in this industry.
In this article I have compiled the advice that I would have liked to receive when I started my career, these tips will be pure gold if you are taking your first steps in software development. You will learn that being a good developer goes beyond writing code, I will try to show you how to become an efficient, collaborative and strategic professional.
The advice I share with you will not only polish your technical skills, but will also help you develop a resilient mindset and a proactive attitude, hard and soft skills. It addresses everything from the importance of understanding and respecting existing code, to the need to think in terms of the product. Each tip has been carefully selected to guide you towards a successful career.
Respect existing code before modifying it
As a developer, it is critical to understand that each line of code usually has a reason for being. Before you decide to change or refactor a piece of code, take the time to analyze why it was written that way. Don't fall into the trap of assuming something is "wrong" without fully evaluating its purpose and context. Doing so could lead to introducing bugs or wasting time on unnecessary changes. Remember, the code you find may need improvement, but its existence also reflects technical decisions made based on prior knowledge and experience.
Avoid the temptation to redo everything from scratch
One of the clearest signs of inexperience is wanting to rebuild all the code from scratch. Keep in mind that companies have invested time and resources in developing the existing code base. Instead of rushing to discard that work, focus on understanding how it works and improving on what is already done. Rewriting code just to achieve the same functionality with a different approach can be a significant waste of time and money.
Develop the habit of reading code
Often, your job at a company will involve diving into existing projects. The chance to start a project from scratch is rare. That's why it's vital that you get used to reading other people's code and understand its logic. Not only will this exercise allow you to contribute faster and more effectively, it will also help you become a better developer by learning different programming styles and solutions to complex problems.
Be cautious when diagnosing bugs in production
It's natural to want to demonstrate your ability to detect and resolve bugs, but rushing to a diagnosis without thorough analysis can undermine the trust your peers have in you. Take the time to replicate bugs in a test environment, analyze possible causes, and only when you have a clear rationale, share your findings. This will show that you are a thoughtful and careful professional. If you are asked for an early diagnosis, phrase ideas in a theory-oriented way, not as statements.
Study design and architectural patterns
To grow as a developer, it is crucial that you master design patterns and architectural principles. Spend time studying and applying patterns such as Singleton, Factory, Observer, and others. Familiarize yourself with SOLID principles and learn algorithms. This knowledge will provide you with the tools to tackle complex problems efficiently and elegantly.
Automated testing should be an essential part of your work
Automated testing not only ensures that code works as expected, but also serves as a living documentation of the system's behavior. It is an investment in the quality of your work and will save you time and effort in the long run by allowing you to detect and correct errors early.
Pay attention to the names you assign
Clarity in the name of functions, methods, class properties, and variables is crucial. A good name should clearly convey the intention of their use. Nothing is more frustrating than reading code where the names do not match what they actually do. Be intentional about naming, as this makes the code easier to understand and maintain for yourself and any other developers who read it in the future.
Develop a meaningful personal project
Having a personal project is invaluable, but make sure it's not just a "toy." Instead, look to solve a real problem with it. These types of projects will allow you to experiment, learn, and grow in ways that day-to-day work may not provide. It will give you the opportunity to apply new technologies and patterns without the constraints of a corporate environment.
Think in terms of product, not just code
When approaching a personal or weekend project, think of it as a product. Reflect on the cost in terms of time and money, and how it can generate some return or value. This mindset will help you better understand the business decisions that impact software development and prepare you for more strategic roles or even striking out on your own.
Maintain continuous, targeted learning
Software development is a constantly evolving field, and it's crucial that you keep learning. Define a learning path aligned with your career goals and follow it with determination. Whether you focus on improving your technical skills, learning new technologies, or better understanding project management aspects, never stop learning, and no, I didn't say that for Platzi, it's simply the truth of any profession. Never stop learning means keeping your skills up to date, and gradually adding new ones according to your project, think of this as the compound interest of the financial world, and not like trying to learn many languages in a desperate way, it's not a good idea, in the end you won't be the expert you wanted to be. Clear goals, continuous evolution.
Share your knowledge to learn more
Teaching is one of the best ways to learn. Sharing what you know with your peers not only reinforces your own knowledge, but also helps you identify gaps in your understanding. Don't hesitate to mentor others, participate in talks, or write articles; you will learn as much as you teach.
Accept frustration as part of the growth process
It's normal to feel frustrated when faced with complex problems or a steep learning curve. When you feel overwhelmed, take a break, do something different, and let your mind refresh. Often, a fresh perspective will allow you to approach the problem with new ideas and energy.
Don't take feedback on your code personally
When others review your code and leave feedback, remember that this is not a personal attack. Feedback is a learning opportunity. Your peers are there to help you improve; accept it with an open mind and learn from it.
Value advice from more experienced developers
More experienced developers have already been through what you are going through now. Take advantage of their knowledge and advice. Learning from their experiences will allow you to avoid common mistakes and advance faster in your career path. Learning from your own mistakes can be sad and painful.
Communicate your ideas clearly and confidently
Communication is key in any development team. If you feel that you need to write down your ideas before presenting them to reinforce your confidence, do so. The important thing is that you always communicate your thoughts clearly and confidently. Over time, this will become an invaluable skill.
Prioritize quality sleep and rest
A rested mind is a productive mind. Don't underestimate the importance of a good rest; it's as crucial as learning to code. Getting a good night's sleep allows you to stay focused, think clearly, and make better decisions, and it directly influences your moods.
Include exercise in your daily routine
Keeping your body active has a positive impact on your mind. Regular exercise helps reduce stress, increases your energy, and improves your concentration. You don't need to train intensely; even a daily walk can make a big difference.
Eliminate distractions while working or studying
Social media and constant notifications can be huge distractors that prevent you from fully concentrating. Keep your phone away while working or studying and set periods of digital disconnection. This approach will help you stay focused and free your mind to be more creative and productive.
I hope you enjoyed this reading, that it is useful for your growth, and if you liked it, share it.