3 ms·
I tend to classify the developer track using terminology borrowed from American high schools. "Freshman", "Sophomore", and then "Senior". The Freshmen are str
by StevePerkins 9y ago
I tend to classify the developer track using terminology borrowed from American high schools. "Freshman", "Sophomore", and then "Senior".
The Freshmen are straight out of school. Hopefully the DO know how to write a `switch` statement (that's just basic competence)... but they typically know little or nothing about working in a team, source control branching strategy, unit testing, breaking tasks up into tickets and estimating them, and a thousand other aspects of real-world professional development.
The Sophomore phase is when you know enough to be dangerous. You've mastered all of those basics, and have set about learning more advanced topics. You've learned a 100 different design patterns from books or blogs, and can't wait to find excuses to incorporate each one somewhere (whether justified or not). You've learned Groovy/Scala/Clojure/Kotlin whatever, and lobby to migrate your company's application because going back to plain Java is too unbearable. Etc.
The Seniors aren't much more knowledgeable than the Sophomores. They've simply gone through enough ego-gratification, that at this point they have the confidence to demur on complexity and favor simplicity instead. They tend to write more documentation and code comments, explicitly declare their types for visual clarity, terminate statements with semicolons even if their language doesn't require it, etc. They can push back on bad business requirements, and tend to offer more conservative (i.e. informed and realistic) estimates.
Typically, the Sophomores teach the Freshmen. The Seniors teach the Sophomores. I've never seen anyone jump over the middle step.
- deleted 9y ago[deleted]
- pavel_lishin 9y ago> They've simply gone through enough ego-gratification, that at this point they have the confidence to demur on complexity and favor simplicity instead. I think they've also made enough mistakes in their past to spot potential new ones well in advance - that's what makes them valuable, in my opinion.
- btschaegg 9y agoA question on your model then: How does the progression of people through those "states" work. Are they judged by the team? I've interacted with a couple of senior developers who - without a doubt - had considerably more experience in the industry, knew more about niche-specific technology etc. etc, but were worse in all the things you just listed for the freshmen than some of the people I studied with. Experience and insight might get you very far, but there are also people who really don't care to learn new approaches on a certain topics, and those might as well be unit testing, versioning or even the readability of code. I guess in bigger companies, this might balance itself out, but if your dev team consists of about five people, there's always the chance you're in for a surprise if you're the new hire.