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

  1. Always abstract code.
  2. Never over-abstract code.
  3. Sharing is caring.
  4. Knowledge adds; attitude multiplies.
  5. Don't take it personal.
  6. You don't need a 3rd party library for everything.
  7. Looking for the perfect commit size? modify just the smallest amount of lines that the user will notify the change but tests still work.
  8. Commit titles are underrated.
  9. Anyone who is involved in your project should understand your commit changes without seeing your commit changes; make a good commit title.
  10. Commit titles should be 50 chars max to avoid truncation.
  11. Team workflow standards are more valuable than team capabilities.
  12. Don't create a new team standard; adopt an existing one.
  13. If you need mocks, then you need to improve your source code.
  14. Hexagonal Architecture.
  15. Incremental migrations are the way to refactor.
  16. You don't need 100% test coverage.
  17. Automate your repository dev environment set up; a bash script or a makefile is better than reading a README.md.
  18. You likely won't need the latest cutting-edge database or technology.
  19. Watch out for cyclomatic complexity rather than performance.
  20. Exercise.
  21. Socialize.
  22. 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.
  23. Don't fear of making mistakes; it's the fastest way to learn.
  24. Sometimes, saying nothing is better than saying anything.
  25. Always give feedback, even if you don't receive response. You already made the change you wanted.
  26. Most problems have a simple logic solution. Strive for that solution.
  27. You never finished learning.
  28. The more you use the mouse, the less productive you are.
  29. Be the teammate you wanted to have.
  30. Learn to know when and where to ask for something. Timing is an art.
  31. 1 player can at most score goals, 1 team can win championships. Always remember that.
  32. Always question yourself (and validate) the ideas of others; even if they seem confident about it.
  33. 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.
  34. People want impact results, not how you solved it; focus on what are you delivering, not how.
  35. When a bug comes out, always put yourself first and be 200% sure it's not your fault, before blaming others.
  36. Semver is a good marketing tool, even for internal libraries. Use it wisely.
  37. Don't promise deadlines that you can't promise.
  38. Get your boss notified about your workload, and speak up as soon as you feel overwhelmed. Ask them to narrow the ongoing tasks.
  39. Know what your teams nearby are doing; probably they are coding the same thing as you. Break silos.
  40. Collaboration is the key to break egos and silos.