HACKER Q&A
📣 react_burger38

How can I become the best software developer I can be?


I’ve got about three years of experience so far doing software development (front end) and I’m enjoying it so far. I just want to make sure I set myself up for continual growth so that 10 years in the future I’m really beginning to reach my potential.



👤 tiddles
As others have said, practice! Everyone has a (few) million lines of awful code in them initially.

Some recent revelations I've had in the last few years that I've been applying with great effect:

- Write code that's clear, not clever. Other people who will have to read and understand it (including your future self) won't be impressed by "clever" code, it just makes it way harder to understand.

- Write code to be disposable. I know for a fact that in a few months time I'll have to revisit my code to refactor or add new functionality, and writing it with mindset that it should solve only the current problem and nothing else prevents code creep/YAGNI.


👤 throw8932894
Take an opensource project you like and follow its development.

Each bug has description and commit that fixes it. If you can reason how bug was fixed, you will be good.

Also some projects have very good documentation. Read it from start to finish.

Do not drink coffe, sleep well, avoid stress.. anything that reduces your cognitive abilities...


👤 CoffeePython
I'm around the same YoE but some things that I've felt have accelerated my growth:

- build things outside of your comfort zone

- work with smarter people than you

- be intentional about your work. Always have a theme of something you want to improve

And the biggest one:

- Choose to be an excellent developer.

Mindset is important. If you tell yourself you're an above average developer, you're more likely to improve your craft because it's part of your identity.


👤 chirpalytics
Be relentlessly curious and share what you know. The curiosity will drive you to learn from multiple sources, including books, video, blogs, formal, or whatever appeals to you most. This builds your backpack of tools for potential use in software development. Sharing what you know forces you to think deeper and find ways to explain in the simplest way possible for someone else to understand. As with learning, use the means that appeals to you most. In addition to personal growth, you will have contributed to the community as a whole. Remember that it's a journey, not a destination, and while you'll experience moments of accomplishment, you should enjoy as many days as you can along the way.

👤 juangacovas
So you want to be a wizard? by Julia Evans is a nice "zine" of her. https://wizardzines.com/zines/wizard/


👤 nicbou
Make time to reiterate. Despite proper planning, I always find better ways to do things once the code is written. In my opinion, refactoring code is the best way to improve your coding skills.

Writing a lot of tests also forces you to think about better ways to write code. It encourages you to write simple, modular, and often stateless code.

Linting and code reviews are important too. I learned a lot from my coworkers, but also from AirBnB's coding standards.


👤 realgabriel
Anders Ericsson's Peak was already suggested and I think it offers great advice on how to become the best you can be at any given pursuit.

A few keys from it: 1- Push yourself out of your comfort zone; 2- Have clear, well-defined, goals for what you want to achieve, either in the overall skill and for each practice session; 3- Total focus while practicing; 4- Get feedback from people who know what you want to do looks like


👤 segmondy
Keeping challenging yourself. Become a T-shaped person, know enough to be a generalist, then also specialize in the area you have the most natural talent. Learn to focus on the none code things that increase quality of software development, things such as planning, design, giving estimates, documentation, user interaction, simplification of problems, communication, teamwork, etc.

👤 austincheney
Practice. A lot of practice, and that practice has to be challenging. Be constantly trying to invent new things that are amazing but ensure your code is secure, fast, simple, and easy to read. Constantly challenge yourself and question/revise your approach.

👤 IamZeroBalance
Read books. Reading is one of the best ways to learn new tricks.

👤 sharp11
Read Anders Ericsson’s book on deliberate practice