SlideShare a Scribd company logo
1 of 7
Download to read offline
The Stages of Developer Experience
         From Freshman to Senior
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.)
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
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
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
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.
Tips for programmers

● Do a personal project. Try to do one alone.
● 10,000+ lines of code or more
● Don't give up.

More Related Content

What's hot

Dev presentation
Dev presentationDev presentation
Dev presentationDavid Ford
 
How to be an effective Tech Lead
How to be an effective Tech LeadHow to be an effective Tech Lead
How to be an effective Tech LeadHattery
 
Unlocking your team's potential with pair programming (workshop)
Unlocking your team's potential with pair programming (workshop)Unlocking your team's potential with pair programming (workshop)
Unlocking your team's potential with pair programming (workshop)Mattia Battiston
 
Ace the Tech Interviews - www.hiredintech.com
Ace the Tech Interviews - www.hiredintech.comAce the Tech Interviews - www.hiredintech.com
Ace the Tech Interviews - www.hiredintech.comAnton Dimitrov
 
Turning humans into developers with Perl - London Perl Workshop 2017
Turning humans into developers with Perl - London Perl Workshop 2017Turning humans into developers with Perl - London Perl Workshop 2017
Turning humans into developers with Perl - London Perl Workshop 2017Julien Fiegehenn
 
Fundamentals of App & Web Design
Fundamentals of App & Web DesignFundamentals of App & Web Design
Fundamentals of App & Web DesignVishal Kirti
 
5 books for absolute programming beginners
5 books for absolute programming beginners5 books for absolute programming beginners
5 books for absolute programming beginnersSomvir Singh
 

What's hot (9)

Dev presentation
Dev presentationDev presentation
Dev presentation
 
A Career in Software Engineering
A Career in Software EngineeringA Career in Software Engineering
A Career in Software Engineering
 
How to be an effective Tech Lead
How to be an effective Tech LeadHow to be an effective Tech Lead
How to be an effective Tech Lead
 
Unlocking your team's potential with pair programming (workshop)
Unlocking your team's potential with pair programming (workshop)Unlocking your team's potential with pair programming (workshop)
Unlocking your team's potential with pair programming (workshop)
 
Ace the Tech Interviews - www.hiredintech.com
Ace the Tech Interviews - www.hiredintech.comAce the Tech Interviews - www.hiredintech.com
Ace the Tech Interviews - www.hiredintech.com
 
Turning humans into developers with Perl - London Perl Workshop 2017
Turning humans into developers with Perl - London Perl Workshop 2017Turning humans into developers with Perl - London Perl Workshop 2017
Turning humans into developers with Perl - London Perl Workshop 2017
 
Fundamentals of App & Web Design
Fundamentals of App & Web DesignFundamentals of App & Web Design
Fundamentals of App & Web Design
 
Agile
AgileAgile
Agile
 
5 books for absolute programming beginners
5 books for absolute programming beginners5 books for absolute programming beginners
5 books for absolute programming beginners
 

Similar to Stages Of Programming Skill, From Freshman To Senior

CP vs Project - Elevate Ep. 02.pdf
CP vs Project  - Elevate Ep. 02.pdfCP vs Project  - Elevate Ep. 02.pdf
CP vs Project - Elevate Ep. 02.pdfpreetikumara
 
build@mercari-week7-mark-talk
build@mercari-week7-mark-talkbuild@mercari-week7-mark-talk
build@mercari-week7-mark-talkMark Hahn
 
Professional development
Professional developmentProfessional development
Professional developmentJulio Martinez
 
Your first 5 PHP design patterns - ThatConference 2012
Your first 5 PHP design patterns - ThatConference 2012Your first 5 PHP design patterns - ThatConference 2012
Your first 5 PHP design patterns - ThatConference 2012Aaron Saray
 
MagmaRails - Passionate Programmer
MagmaRails - Passionate ProgrammerMagmaRails - Passionate Programmer
MagmaRails - Passionate ProgrammerEdwin Cruz
 
Passionate Programmer
Passionate ProgrammerPassionate Programmer
Passionate ProgrammerMagmaConf
 
Hilary Weaver - He Doesn't Like You
Hilary Weaver  - He Doesn't Like YouHilary Weaver  - He Doesn't Like You
Hilary Weaver - He Doesn't Like YouQA or the Highway
 
The Kanye Quotient
The Kanye QuotientThe Kanye Quotient
The Kanye Quotientpriestc
 
Writing clean scientific software Murphy cleancoding
Writing clean scientific software Murphy cleancodingWriting clean scientific software Murphy cleancoding
Writing clean scientific software Murphy cleancodingsaber tabatabaee
 
Growing up new PostgreSQL developers (pgcon.org 2018)
Growing up new PostgreSQL developers (pgcon.org 2018)Growing up new PostgreSQL developers (pgcon.org 2018)
Growing up new PostgreSQL developers (pgcon.org 2018)Aleksander Alekseev
 
The obstacles of developer productivity.pptx
The obstacles of developer productivity.pptxThe obstacles of developer productivity.pptx
The obstacles of developer productivity.pptxLaurence Chen
 
Engineering career is not a single ladder! - Alternative pathway to develope...
Engineering career is not a single ladder!  - Alternative pathway to develope...Engineering career is not a single ladder!  - Alternative pathway to develope...
Engineering career is not a single ladder! - Alternative pathway to develope...Tomomi Imura
 
"The Great Technical Swindle" by Laurent Cerveau
"The Great Technical Swindle" by Laurent Cerveau"The Great Technical Swindle" by Laurent Cerveau
"The Great Technical Swindle" by Laurent CerveauTheFamily
 
How to be a 10x Engineer
How to be a 10x EngineerHow to be a 10x Engineer
How to be a 10x EngineerNick Sullivan
 
Write code and find a job
Write code and find a jobWrite code and find a job
Write code and find a jobYung-Yu Chen
 
Pen Testing, Red Teaming, and More
Pen Testing, Red Teaming, and MorePen Testing, Red Teaming, and More
Pen Testing, Red Teaming, and MoreCTruncer
 
UX class presentation
UX class presentationUX class presentation
UX class presentationTheo V
 

Similar to Stages Of Programming Skill, From Freshman To Senior (20)

CP vs Project - Elevate Ep. 02.pdf
CP vs Project  - Elevate Ep. 02.pdfCP vs Project  - Elevate Ep. 02.pdf
CP vs Project - Elevate Ep. 02.pdf
 
build@mercari-week7-mark-talk
build@mercari-week7-mark-talkbuild@mercari-week7-mark-talk
build@mercari-week7-mark-talk
 
Professional development
Professional developmentProfessional development
Professional development
 
Your first 5 PHP design patterns - ThatConference 2012
Your first 5 PHP design patterns - ThatConference 2012Your first 5 PHP design patterns - ThatConference 2012
Your first 5 PHP design patterns - ThatConference 2012
 
MagmaRails - Passionate Programmer
MagmaRails - Passionate ProgrammerMagmaRails - Passionate Programmer
MagmaRails - Passionate Programmer
 
Passionate Programmer
Passionate ProgrammerPassionate Programmer
Passionate Programmer
 
Hilary Weaver - He Doesn't Like You
Hilary Weaver  - He Doesn't Like YouHilary Weaver  - He Doesn't Like You
Hilary Weaver - He Doesn't Like You
 
The Kanye Quotient
The Kanye QuotientThe Kanye Quotient
The Kanye Quotient
 
Writing clean scientific software Murphy cleancoding
Writing clean scientific software Murphy cleancodingWriting clean scientific software Murphy cleancoding
Writing clean scientific software Murphy cleancoding
 
Growing up new PostgreSQL developers (pgcon.org 2018)
Growing up new PostgreSQL developers (pgcon.org 2018)Growing up new PostgreSQL developers (pgcon.org 2018)
Growing up new PostgreSQL developers (pgcon.org 2018)
 
The obstacles of developer productivity.pptx
The obstacles of developer productivity.pptxThe obstacles of developer productivity.pptx
The obstacles of developer productivity.pptx
 
Engineering career is not a single ladder! - Alternative pathway to develope...
Engineering career is not a single ladder!  - Alternative pathway to develope...Engineering career is not a single ladder!  - Alternative pathway to develope...
Engineering career is not a single ladder! - Alternative pathway to develope...
 
RoadAhead
RoadAheadRoadAhead
RoadAhead
 
"The Great Technical Swindle" by Laurent Cerveau
"The Great Technical Swindle" by Laurent Cerveau"The Great Technical Swindle" by Laurent Cerveau
"The Great Technical Swindle" by Laurent Cerveau
 
Developer Discipline
Developer DisciplineDeveloper Discipline
Developer Discipline
 
How to be a 10x Engineer
How to be a 10x EngineerHow to be a 10x Engineer
How to be a 10x Engineer
 
Write code and find a job
Write code and find a jobWrite code and find a job
Write code and find a job
 
Tdd distilled... in java
Tdd distilled... in javaTdd distilled... in java
Tdd distilled... in java
 
Pen Testing, Red Teaming, and More
Pen Testing, Red Teaming, and MorePen Testing, Red Teaming, and More
Pen Testing, Red Teaming, and More
 
UX class presentation
UX class presentationUX class presentation
UX class presentation
 

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.