Original question from Quora:
Do programmers have some coding secrets that are only learnt by experience?
There are absolutely 100% for sure coding secrets that are only learned by experience. In fact, and perhaps I shouldn’t tell you this, even if I tell you the secrets you won’t believe them until you experience them.
So, reader beware, unless you’ve experienced this, you won’t believe me.
First, the best way to maximize your career and job situation is to change jobs every 2-5 years. The reason for this is that in the current employment climate, employers don’t value employee long term development. Specifically, once they are paying you say $50,000, they really don’t want to pay you $60,000 or $80,000 or $100,000 anytime soon or at all, because they used to be able to pay you $50,000 to do what is their mind mostly the same thing.
So, if you find yourself at the same job for more than 3-5 years, expect that you are probably making as much as you ever will there. And if you don’t like that fact, you need to move on.
Second, and this is sort of tangentally about code too, but the way that people code and organize themselves to write software is not an accident. Specifically, if you find yourself thinking that your company, group, department, squad, whatever is “doing it wrong” and that you can “fix it” with pair programming, agile, scrum, kanban, or the latest cool new langauge or platform like node, elixir, clojure, scala, etc. you are in for a rude awakening.
In any group situation, most of what happens is a routine that is built up over time and is no accident. Many programmers have grown weary and given up on what they love in the hopes that they can change things and make a difference in a group that has no interest in changing.
Third, the best way to get better at writing code is to write code. This is the most obvious thing in the world, but truthfully many/most programmers don’t really practice their craft outside of work. They don’t improve their own skillset.
Frankly, in many cases programmers can get to a point where they can coast and do a good enough job to not get fired, but they are never going to get around to going much further than they currently are. That might also be on purpose too.
Last, nothing really changes in the technology world. I mean this in a structural sense. Every few years we use new languages and so on, but most of the ideas and patterns and technologies and approaches were invented and reinvented decades ago. Some of it gets rediscovered and reapplied in new ways, but often it is just an endless loop of doing slightly prettier versions of spreadsheets, form apps, and user specific interfaces for data entry and reporting.
Oh, I’ll give you a bonus, at some point you get far enough in technology that it’s not about code or technology at all. It’s about people and that is an entirely different skillset altogether.
P.S. Have you subscribed to Code Career Genius yet?