Stages Of Programming Skill, From Freshman To Senior
1. The Stages of Developer Experience
From Freshman to Senior
2. Freshman
● Characteristics
○ Sucks at programming and knows it
○ Low self confidence
○ Can't do fizzbuzz
○ 50% of all "developers" are Freshmen
● How to tell:
○ "LOL this code sure is shitty", "Yeah I know, I'm a noob"
○ May have a CS degree
○ May even have 15 years experience at a MegaCorp.
● How to graduate:
○ Get a major win.
○ Complete a project that you're proud of. (complete a tutorial, get
something merged into an OSS project, etc.)
3. Sophomore
● Characteristics
○ Thinks they are great, but actually still suck
○ Calls him/herself "programmer"
○ Pounds out shitty code by the barrelful
○ "Wise and foolish"
○ 49% of all developers, 90% of working developers
● How to tell
○ "LOL this code sure is shitty", *gets offended*
○ Code they wrote 5 months ago looks the same as code written today
● How to graduate
○ Experience a major failure
4. Junior
● Characteristics
○ Knows first hand the importance of documentation, refactoring, type
systems, proper architecture, etc.
○ Idealistic - Wants everyone else to things right too.
○ Writes genuinely great code
○ Assholes - Aware of their greatness, is actually great
○ 0.9% of all developers
○ Long process of continual improvement
● How to spot
○ "LOL this code sure is shitty", "Yeah I know, lets make it better"
○ Code written 5 months ago looks bad compared to code written today
○ Code written 5 years ago looks completely awful compared to code
written today
● How to graduate
○ get old
5. Senior
● Characteristics
○ Senior year just kind of sneaks up on you, uneventfully
○ Doesn't give a fuck anymore
○ Is a great developer, but has dropped the idealism
○ Realizes the world is full of freshmen and sophomores
○ 0.1% of all developers
○ Is still good at writing code
● How to spot:
○ Is not an asshole anymore, has leadership skills
○ Goes home every night
○ Has a life outside of coding
● How to graduate
○ You die
6. Tips for hiring
● Avoid freshmen. Sophomores are inevitable. Hire any junior/senior you
come across, no matter what.
● We all would like to hire only juniors and seniors, but they only make up
1% of the total workforce.
● If you have a senior, let them in on the interview process
○ They have an intuition for finding other junior/seniors.
● Fizzbuzz only eliminates the freshmen
● Juniors and Seniors get offended when you ask them freshmen questions
during interviews.
7. Tips for programmers
● Do a personal project. Try to do one alone.
● 10,000+ lines of code or more
● Don't give up.