scaling craftsmanship through apprenticeship chris mckenzie
TRANSCRIPT
Personal History
Started Programming at 25 w/ virtually no prior experience or education
Had a great mentor
Worked hard to learn
Became an advocate for TDD / Clean Code
Junior Derby League
Coached by current and former skaters
First graduates entering the adult league
Elevating the game for everybody
Growth in the Industry
Demand for programmers doubling every 5 years
Half of all programmers have < 6 yrs experience
Years experience != Skill
"It means that most software organizations will have to endlessly relearn the lessons they learned the five years before. It means that the industry as a whole will remain dominated by novices, and exist in a state of perpetual immaturity. …[A] leader can help to instill the value of refactoring and clean code, as a counterweight to the youthful thrill of getting it to work. “ --Uncle Bob "My Lawn" http://blog.cleancoder.com/uncle-bob/2014/06/20/MyLawn.html
Growth in our Company
Historically hired only senior engineers
Started hiring less-experienced devs
Started an internship program to teach new developers to work like seniors
Program Philosophy
Learn, then do.
Intern is paired with a dedicated mentor (usually me).
Intern is assigned a coach.
Intern
Should be a senior in college
They should at least understand data structures
Should want a career in Software Development
Mentor
The Mentor’s job is to guide the intern’s learning.
Teach principles before tools & technologies.
Keep the learning transferrable.
Focus on tools & technologies used in the project
Teach the project
Coach
Pair with the intern a couple of times a week
1-on-1 with the intern each week
Assess the progress of the Intern and Mentor
Second set of eyes to identify and correct potential issues
Curriculum
Boot Camp
Reading, Pluralsight
Tools & Technologies
Principles
Trello
Project Work
Held to the same standards as senior developers
All work is code-reviewed
Notes for Mentors
Patience
Practice
Pairing
Source Control
Use their homework assignments for teaching opportunities