Advice to Myself When Starting as a Software Developer - Gergely Orosz
1. Take the time to read two books per year on software development
Look for books that go deeper than what I know now. Take notes, draw diagrams with Exalidraw. Write a book review on the concepts that I've learned.
For me, the below would be a good list to start with:
- The Pragmatic Programmer (General)
- Eloquent JavaScript (JS)
- The Impostor's Handbook (General / CS)
- You Don't Know JS (JS)
2. Learn the language that you use at work in-depth, to the very bottom
The more languages you know, the more you can evaluate their strengths and weaknesses. It's also easier to pick up new languages.
As an example, I'm required to write some Pyton at work. I can leverage what I know of JavaScript and make comparisons between the two languages to more quickly get up to speed.
3. Pair with other developers more often
Pair programming is a great way to pick the brains of more senior developers. It's also useful for reinforcing your knowledge when pairing with more junior devs. Not to mention the fact that you can form strong bonds with your colleagues by doing so.
4. Write unit tests and run them against a CI
It's hard to grasp the value of unit tests until you experience it first-hand. Well-written unit tests give you confidence that the code is working as intended. Refactoring code is a safer, more straightforward process with adequate test coverage, too.
5. Make refactoring a habit and master refactoring tools
Learn the shortcuts of your IDE for refactoring. Practice this regulary instead of opting for copy-pasting. Learn how best to approach both small and large refactorings on projects at work. Better yet, pair with a senior dev on the team when a refactor is necessary.
6. Know that good software engineering is experience. Get lots of it.
Look for opportunities to work on different stacks, different domains, and challenging projects. When you push yourself, you learn far quicker. Get involved with learning about the business of the company that you work for. Become product-minded.
7. Teach what you learn
Write blog posts. Mentor other developers. Give presentations or talks. Even sitting down with another developer on your team to explain a part of the codebase. All of these things will help reinforce your knowledge. Or, it will identify gaps in your knowledge that you may want to fill.