40 Things I wish I had known as a junior developer
A new big chapter is coming for me - I hope to talk more about this in the following days - and I couldn't resist to write down all I wish I had known when I started as a software developer.
If you are going to start your first developer job at a company, this is the list I would have liked to have.
The list
- Always abstract code.
- Never over-abstract code.
- Sharing is caring.
- Knowledge adds; attitude multiplies.
- Don't take it personal.
- You don't need a 3rd party library for everything.
- Looking for the perfect commit size? modify just the smallest amount of lines that the user will notify the change but tests still work.
- Commit titles are underrated.
- Anyone who is involved in your project should understand your commit changes without seeing your commit changes; make a good commit title.
- Commit titles should be 50 chars max to avoid truncation.
- Team workflow standards are more valuable than team capabilities.
- Don't create a new team standard; adopt an existing one.
- If you need mocks, then you need to improve your source code.
- Hexagonal Architecture.
- Incremental migrations are the way to refactor.
- You don't need 100% test coverage.
- Automate your repository dev environment set up; a bash script or a makefile is better than reading a README.md.
- You likely won't need the latest cutting-edge database or technology.
- Watch out for cyclomatic complexity rather than performance.
- Exercise.
- Socialize.
- Economy is a cycle, Politics is a cycle, weather is a cycle; Your mind and mood are too. Be aware of that and surf your own waves.
- Don't fear of making mistakes; it's the fastest way to learn.
- Sometimes, saying nothing is better than saying anything.
- Always give feedback, even if you don't receive response. You already made the change you wanted.
- Most problems have a simple logic solution. Strive for that solution.
- You never finished learning.
- The more you use the mouse, the less productive you are.
- Be the teammate you wanted to have.
- Learn to know when and where to ask for something. Timing is an art.
- 1 player can at most score goals, 1 team can win championships. Always remember that.
- Always question yourself (and validate) the ideas of others; even if they seem confident about it.
- Coding represents 10% of all of the work you should do to deliver some feature; you'll need soft skills and design thinking skills to deliver the best solution.
- People want impact results, not how you solved it; focus on what are you delivering, not how.
- When a bug comes out, always put yourself first and be 200% sure it's not your fault, before blaming others.
- Semver is a good marketing tool, even for internal libraries. Use it wisely.
- Don't promise deadlines that you can't promise.
- Get your boss notified about your workload, and speak up as soon as you feel overwhelmed. Ask them to narrow the ongoing tasks.
- Know what your teams nearby are doing; probably they are coding the same thing as you. Break silos.
- Collaboration is the key to break egos and silos.