I'll soon approach my 5 year anniversary of having a paid programming job. As most of you in the same position would attest, we're basically different people and many times the programmers when we first started. I used to wonder how people get to "x years of experience" and now that I have a few x's around my belt, I realize I still have a lot to learn re: perfecting the craft.
For you guys who've reached bigger milestones just in sheer number of hours of programming, what does it look like? What gets better, not-so-better, and potentially worse?
After this many years you start to see patterns, not design patterns but organizational ones like:
- You really aren't involved with tech decisions. If you are on the IT side it is likely VP's meeting with sales people making decisions. On the product side you are more involved in decision making but if you aren't in a startup, those decisions have likely been made already.
- Tech decisions don't make/break a product. Sure a really bad choice or design of an overall system can have bad impacts but if you want an RDBMS, MySQL vs Postgres? it really won't impact your product enough to make a difference. Picking Oracle might impact your budget a whole lot.
- Learning people's behaviors and personalities and how to interact. This comes with time but can greatly help your career to learn how to communicate and work with people that have diverse ways of working together.
- There are times to craft wonderful code and then there are other times to just get shit done. An example is spending an elapsed 3 months building a solid, extensible way to call an external service, knowing you will have a few of these coming. Then a couple months later, take 2 days to add on a 2nd external service (or Nth). The business goes "its done already? awesome!" Feels good and maintaining that is easy.