How to Become a Better Software Developer - Tips to Build Your Programming Skills
Published
As a developer, you probably want yours skills constantly improve. Be the best developer you can be. But how you can actually improve is a tricky question to answer.
The software industry is obsessed with the idea of 10x engineers. These are engineers who are supposedly 10 times better at their jobs than their colleagues. But how does someone become so talented?
Below are four steps we've seen developers successfully improve their skills.
Teach and write as much as possible
Many people underestimate the fact that being a good writer, whether in emails or documents, can have more impact. I see many engineers ignore this skill.
You may be proud of your code. But you should be just as proud of the art of writing... Writing is a very underrated skill for engineers." - Urs Hölzle (Google's first VP of Engineering)
You are the person most responsible for your skills and development. It's largely up to you to become a better developer. It's your job to improve your weaknesses and hone your craft. Becoming a better developer is an ongoing process that never stops, and writing helps you learn more.
When you write, you push the boundaries of your comfort zone. You learn new topics to discuss and you put yourself first. You start a discourse, and if you're wrong, you're happy to be corrected and receive feedback.
The best way to become a better engineer is to teach 10 people what you know and strengthen their development skills.
Put your expertise online and make your knowledge accessible as open source. Your technical writing serves as a portable asset as you move from job to job, showcasing the depth and breadth of your knowledge. Writing allows you to not only showcase your skills but also develop them.
Read a lot
Mark Twain said that the person who can read good books but chooses not to does so has no advantage over the person who actually cannot read a book.
Reading is such a powerful tool. Read a large, well-documented open source codebase, read technical books, read your colleagues' code, and read technical documentation.
Find the brightest minds, engineers with decades of experience, and people creating the specs you love on Twitter. Be mice in your conversations.
First, change your monitoring settings for a code base that you are very familiar with (a working repository or an open source repository). Then review and read each change (or as many as you feel comfortable with).
If there is syntax/code that you don't understand or can't understand, ask the person who made it. Learn from everyone. It will help the programmer clarify what the code does (if you can't decipher it, it doesn't have to be very clear!) and will help you have more context about the changes for the ecosystem you're working in .
Work on passion projects and/or contribute to open source and FOSS projects
"We are what we do over and over again. So excellence is not an action, but a habit." - Aristotle
One of the biggest leaps in skill and confidence can come when you do your first major program. Among other things, it forces you to:
- Planning something from start to finish
- to provide estimates
- To hold yourself accountable
- Working with new APIs
- Planning your own architecture
- Consider how to implement clean design patterns
If you don't know where to start, that's not a problem. Here is a link to many public APIs to work with.
If you don't have your own website yet, you should start!
Even publishing your personal project is an amazing learning experience. You will learn about the entire SDLC (Software Development Life Cycle) from start to finish and fill in any gaps in your knowledge.
You start to educate yourself in a very practical way because you have one goal in mind - to put the thing online!
Passion projects look different for everyone. Work on an open source project for a few months and see how much you grow. When you start interacting with people from other countries who have their own opinions and don't know you, you can't help but learn from your mistakes.
You have the added benefit of finding a smart person with whom you get along well and from whom you can gain valuable insights based on their years of programming knowledge and expertise.
You don't even have to code an entire program or application, just work on something you enjoy. Solve Leetcode problems or Codewars-Extract . You write a compiler and a language . Or read the almost 400 ideas through here .
Make sure you exercise and get enough sleep
"It is a shame for a person to grow old without seeing the beauty and strength of which his body is capable." - Socrates
Exercise directly and indirectly improves your memory and thinking. The direct benefits of exercise are many, but include:
- allows the body to reduce insulin resistance and inflammation
- stimulates chemical substances in the brain that affect the health of brain cells
- promotes the growth of new blood vessels in the brain and
- even increases the number and survival rate of new brain cells.
Indirectly, it can help you improve your mood and sleep, and reduce stress and anxiety (which research shows can affect cognitive function).
Studies have also shown , that the prefrontal cortex (clear thinking) and medial temporal cortex (memory) have greater volume in people who exercise than in people who do not.
Just as it is important to take care of your mental health, you also need to take care of your physical health. IQ decreases with age, and one theory says , that oxygen supply to the brain slowly decreases as we age and do not maintain good cardiovascular health.
Conclusion
My final piece of advice that ties this all together is to keep challenging yourself.
During work there is a middle ground, usually referred to as flow. This is the moment when you feel completely energized and “in the tunnel”.
If you start something too difficult, you won't finish it because you'll feel overwhelmed. If you start something too easy, you won't finish it because of boredom.
You must do your best to find a balance between a task that is difficult enough to challenge you to learn new things and your skills to expand, and a task that bores you to death because it is far below your level.
This is hard to achieve in the beginning because everything just feels too difficult. If you find yourself here, we recommend that you freeCodeCamp-Lehrplan Start at the beginning and work your way through the certifications.
Keep a notebook of how you can grow and what you would have done differently if you made mistakes. Be kind to yourself and keep going by always learning.