In this talk I explain my methodology for teaching apprentice software developers. I mainly use Perl, and often work with young trainees who start their professional careers with very little to no prior tech knowledge. I talk about the social aspects of being a mentor and show process examples that help with long-term motivation.
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
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
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
9. Your roles as a mentor
● Teacher
● Manager
● Boss
● Role Model
● Motivator
● Parent
● Friend
10. 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
11. ● Their work matters
● They matter to you
● Mix training and actual real life work
● They accomplish something
Motivation
13. 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
14. 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!
15. 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.
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
Individual project or part of the product?
Visualize with a ticket system.
JIRA, Trello, Sticky notes on a wall.
19. 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.
20. You promised Perl!
● Participate in IRC
● Read the CPAN
● Answer on Stack Overflow
● Pull Request Challenge
● Take them to conferences
23. 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