I’m not sure if I learned all of these lessons the first year or in the first couple years, so while imperfect, it’s a good list I think of things that early career software developers usually learn the hard way.

  1. It’s just a job, and most people learn to treat it that way.
  2. You suck at this, you have to get better.
  3. Everyone else sucks at this, you’ll soon wish they were better too.
  4. Production codebases are ugly, but they work.
  5. Beautiful software doesn’t exist in production environments, only blog posts.
  6. You should probably write more tests.
  7. Your neighbor should probably write more tests.
  8. Your boss is not your friend. They’re your boss.
  9. Your starting salary probably won’t change much until you change jobs.
  10. Commit to source control early and often.
  11. Shipping working software quickly is job #1.
  12. A lot of time is wasted in meetings and water cooler talk.
  13. Almost nothing you learned in college is done in the real world.
  14. Deadlines suck, get used to it.
  15. Estimates never quite pan out either.
  16. Show up on time, do your job, and go home. That’s what you’re being paid for.
  17. Coworkers aren’t family members or friends. Most of them will never talk to you again once you change jobs.
  18. A few coworkers might become very good friends for many years. But only a few.
  19. A good mentor is worth their weight in gold, and just as hard to find.
  20. Someday you will get fired or let go, it happens to everyone eventually.
  21. Nothing you do at work is as sexy or interesting as what programmers blog about. It’s like that everywhere.
  22. Be friendly to your QA’s. Good communication with them makes your job much easier.
  23. You’re starting at the bottom of the totem pole. Expect less and be pleasantly surprised with everything.

There are probably more, but I guess that’s a good stopping place.