Turning humans into
developers (with Perl)
… and making sure they stay humans, too
Julien Fiegehenn (simbabque)
London Perl Workshop 2017
25th November 2017
Who of you is a developer?
Who of you has trained as a
developer?
Who did that NOT at university?
Apprenticeships in Germany
● Lasts 3 years
● Find a company, go to work
● Go to school
● Often no prior tech knowledge
● Company decides what tech you learn
Developer->new(name => “Julien”);
Think back to your very first day on your first job.
Developer->new(name => “Julien”);
Think back to your very first day on your first job.
Were you looking forward to the second?
Mentoring
Your roles as a mentor
● Teacher
● Manager
● Boss
● Role Model
● Motivator
● Parent
● Friend
How do I do that?
● Be available
● Lead by example
● Help them help themselves
● Know when not to help
● Give responsibility
● Build rapport
● Learn about the person
● Share details of yourself
● Their work matters
● They matter to you
● Mix training and actual real life work
● They accomplish something
Motivation
Training
What defines a developer?
Hard skills
● Programming
● Data structures
● Project management
● Version control
● Toolchain (like tests)
Soft skills
● Independent thinking
● Curiosity
● Professionalism
● Playing well with others
● How to ask questions
● Business knowledge
How to keep track?
● Kick-off/Get-to-know
● “How do you feel” feedback talks
● Ticket analysis
● Final feedback/evaluation
● Announce meetings early
● Tell what to expect
● Ask for feedback about yourself
● Find solutions
● Don’t blame. Support!
Rule of two
There are more people than one master and one apprentice.
Make your trainees part of the team!
Be part of their group.
● Version control
● Perl basics
● Frameworks
Do not reinvent the wheel on those.
Technical skills
● Code Review
● Whiteboard and diagrams
● Pair programming
Code Review
my $count = 0;
foreach my $talk ( $rs->all ) {
$count += 1;
}
return $count;
● Remember their technical level
● They don't know better yet
● Encourage thinking
Developing a developer
Individual project or part of the product?
Visualize with a ticket system.
JIRA, Trello, Sticky notes on a wall.
Developing a developer
Use user stories that they can relate to.
Try to build up complexity gradually.
Build an MVP.
Make sure they understand the WHY.
You promised Perl!
● Participate in IRC
● Read the CPAN
● Answer on Stack Overflow
● Pull Request Challenge
● Take them to conferences
Thank you!
Julien Fiegehenn
simbabque@cpan.org
@simbabque
simbabque
Questions?
Resources I like for teaching Perl
● Michael G Schwern: Git for ages 4 and up
https://www.youtube.com/watch?v=3m7BgIvC-uQ
● Learning Perl, 6th Edition by Tom Phoenix, Randal Schwartz, brian foy
● RJBS: Moose is Perl: a guide to the new revolution
https://www.youtube.com/watch?v=LKXvG6VKew4
● Catalyst::Manual::Tutorial
https://p3rl.org/Catalyst::Manual::Tutorial
● Dancer2::Tutorial
https://p3rl.org/Dancer2::Tutorial

Turning humans into developers with Perl - London Perl Workshop 2017

  • 1.
    Turning humans into developers(with Perl) … and making sure they stay humans, too Julien Fiegehenn (simbabque) London Perl Workshop 2017 25th November 2017
  • 2.
    Who of youis a developer?
  • 3.
    Who of youhas trained as a developer?
  • 4.
    Who did thatNOT at university?
  • 5.
    Apprenticeships in Germany ●Lasts 3 years ● Find a company, go to work ● Go to school ● Often no prior tech knowledge ● Company decides what tech you learn
  • 6.
    Developer->new(name => “Julien”); Thinkback to your very first day on your first job.
  • 7.
    Developer->new(name => “Julien”); Thinkback to your very first day on your first job. Were you looking forward to the second?
  • 8.
  • 9.
    Your roles asa mentor ● Teacher ● Manager ● Boss ● Role Model ● Motivator ● Parent ● Friend
  • 10.
    How do Ido that? ● Be available ● Lead by example ● Help them help themselves ● Know when not to help ● Give responsibility ● Build rapport ● Learn about the person ● Share details of yourself
  • 11.
    ● Their workmatters ● They matter to you ● Mix training and actual real life work ● They accomplish something Motivation
  • 12.
  • 13.
    What defines adeveloper? Hard skills ● Programming ● Data structures ● Project management ● Version control ● Toolchain (like tests) Soft skills ● Independent thinking ● Curiosity ● Professionalism ● Playing well with others ● How to ask questions ● Business knowledge
  • 14.
    How to keeptrack? ● Kick-off/Get-to-know ● “How do you feel” feedback talks ● Ticket analysis ● Final feedback/evaluation ● Announce meetings early ● Tell what to expect ● Ask for feedback about yourself ● Find solutions ● Don’t blame. Support!
  • 15.
    Rule of two Thereare more people than one master and one apprentice. Make your trainees part of the team! Be part of their group.
  • 16.
    ● Version control ●Perl basics ● Frameworks Do not reinvent the wheel on those. Technical skills ● Code Review ● Whiteboard and diagrams ● Pair programming
  • 17.
    Code Review my $count= 0; foreach my $talk ( $rs->all ) { $count += 1; } return $count; ● Remember their technical level ● They don't know better yet ● Encourage thinking
  • 18.
    Developing a developer Individualproject or part of the product? Visualize with a ticket system. JIRA, Trello, Sticky notes on a wall.
  • 19.
    Developing a developer Useuser stories that they can relate to. Try to build up complexity gradually. Build an MVP. Make sure they understand the WHY.
  • 20.
    You promised Perl! ●Participate in IRC ● Read the CPAN ● Answer on Stack Overflow ● Pull Request Challenge ● Take them to conferences
  • 21.
  • 23.
    Resources I likefor teaching Perl ● Michael G Schwern: Git for ages 4 and up https://www.youtube.com/watch?v=3m7BgIvC-uQ ● Learning Perl, 6th Edition by Tom Phoenix, Randal Schwartz, brian foy ● RJBS: Moose is Perl: a guide to the new revolution https://www.youtube.com/watch?v=LKXvG6VKew4 ● Catalyst::Manual::Tutorial https://p3rl.org/Catalyst::Manual::Tutorial ● Dancer2::Tutorial https://p3rl.org/Dancer2::Tutorial