4 ms·
This is really good advice! For my first three jobs, I ended up leaving just as I started to feel a deep mastery, roughly two years in. All were really differen
by JackMorgan 13y ago
This is really good advice! For my first three jobs, I ended up leaving just as I started to feel a deep mastery, roughly two years in. All were really different and I felt like I had to scramble just to not get "caught" in how unprepared I was. Every one of my jobs since has been like that, each one a big move up in complexity, pay, and skill of my teammates.
As soon as you are the best developer on your team, chances are you'll get comfortable and stop growing. I think the most important skill I have right now is a powerful flexibility that comes from a broad set of experiences working in a variety of languages, frameworks, and domains. In six years I've written and maintained code professionally in: Perl, Java, PHP, Python, Ruby, VB6, VB.NET, C#, and F#. And I've worked in banking, educational kids games, magazine printing and sales, event tracking, and school financial aid.
It's easy to think you're flexible and adaptable if you've only ever learned one language and you are comfortable where you are. I've known and hired developers who were supremely confident in their adaptability (but only had a lot of experience in one place) who, upon moving from a "level 1" job in x language to a "level 2" job in y were broadsided with things as simple as syntax, in some cases quitting to go somewhere else to make less! Or like one guy I worked with, he loved Python and would constantly talk up how great it was and better than .NET. I finally said, "great, I love Python, let's do something in it!" We got about twenty minutes in when he realized Python is duck typed and decided Python sucked.
The problem with both of them is they'd really only ever worked in one language doing things one way for the same amount of time I'd worked three different jobs, and they didn't know how to adapt and be uncomfortable.