Perl Entrance • This is an introductory class for Perl – URL: http://www.perl-‐‑‒entrance.org/ – I am the leader of this class – In Japan, we cal ed “Perl⼊入学式” • “⼊入学式” means “Entrance Ceremony” – Price: \0 (free!) • We run this class as a hobby!
Our Purpose • Purpose of our class is... – Support Perl Beginners – Support people to challenge programming = non programmers • We want to tel the joy of programming! – This is the most important thing! – Enjoy programming! 😁
Curriculum • Students learn Perl in 6 lectures (per year) – Length of time one lecture is 4 hours • They learn the fol owing about Perl • Basic operation • for loop • Regex • Modules • Operation for • Create modules • Variable Array / Hash • Testing modules • Array and Hash • Reference • Create Web App • if / else / elsif • Subroutine (using Mojo)
How We Started • When I started to study Perl... – I joined several Perl community in Japan • Talking to Perl Mongers was very exciting for me! – I met a lot of Perl Monger in Japan • They told me a lot of things and I learned from them • As a result, I love Perl and Perl community!
How We Started • I thought after a while... – Introductory course for Perl does not exist! • In meetup, beginners can learn from Perl Mongers • But it could be intimidating for a beginner to come to a meetup – If beginners can learn from Perl Mongers... • They can learn Perl quickly and fun! – I decided to make an introductory course myself! • “Perl Entrance”
History of Perl Entrance • We have held our class in 3 cities – Osaka (in 2012) – Tokyo (in 2013) – Fukuoka (in 2014) – In addition, we have Osaka held short classes in YAPC::Asia Tokyo Tokyo Fukuoka
Achievements • About 40 students enrol (per year) – We have taught about 100 students in 3 years – Several graduates became lecturers • Now they teach Perl to beginners – Many graduates join the Perl community – Some graduates got new Perl jobs later!
Prerequisites • Bring your own PC – Thatʼ’s Al !
First Lecture • We start from creating the studentsʼ’ environment – Instal Linux (only Windows students) – Instal editor – Teach how to use editor and shel – Instal perl and App::cpanminus using “plenv”
Why Start There? • When I tried to learn programming... – I failed even before writing any code! • Because I did not know how to instal a C compiler – Instructions are written mostly in English • Majority of Japanese donʼ’t understand English...
Hands-‐‑‒on Experience • We give to students many exercises during lecture – Half of lecture time is spent on hands-‐‑‒on exercises • Writing actual code is the best way to learn
Hands-‐‑‒on Experience • Students get a sense of accomplishment when their code actual runs. – This is important to keep on learning!
Encourage Communication • This word include 2 types communications – Communication between students and lecturers – Communication between students and students
Communication Between Students and Lecturers • Students are always looking for help – But they can be reluctant to ask questions – Our lectures proactively provide help
Communication Between Students and Students • Teaching each other is a good way to learn Perl! – We encourage students to teach each other – Stil experimenting how more eﬀective encourage this behavior
Problems Encountered While Running Class
A Single Teacher Doesnʼ’t Scale • It is hard to support al students with 1 lecturer • Solution: – We prepared staﬀ that cal ed “Supporter” – One of supporters assists about 5 students
Supporter Lecturer Supporter Supporter
A Single Teacher Doesnʼ’t Scale • This is very good idea for Perl Entrance! • As a result, students can learn more!
Keeping Students Motivated • We hold lectures every 2 months – 2 months is a long time... – Student might get demotivated in the meantime • It is diﬃcult to hold classes more often – Takes up too much staﬀ resource
Communication on the Web • Twitter communication – We have twitter account: @Perl_̲Entrance – Always accept any questions from students • Chat communication – We use idobata.io (like Slack) • Question and random chit-‐‑‒chat
Meetups • We introduce students to Perl meetups – Many of these are managed by graduates Perl Beginners (Tokyo) Perl Nabe (Osaka)
Important! • Students can question at any time • Students can communicate at any time
Where to Go Next • We only teach very basic skil of Perl – So, many graduates says... • “I want to learn about more advanced topics!” • If graduates want to make Web App... – They have to learn more than just Perl • We want to support graduates – We want to help theirs goals!
Where to Go Next • So, we made a “textbook” – Covers al the class materials and also more advanced topics • https://github.com/perl-‐‑‒entrance-‐‑‒org/Perl-‐‑‒Entrance-‐‑‒Textbook – Now, you can learn... • Amon2 (WAF) • Git • O/R Mapper (Teng) • Homebrew • Bitbucket / Github • Continuous Integration • Vagrant • Object Oriented • Exception • Ansible Programming • Validation • Serverspec • Testing Perl • React.js
Where to Go Next • ...by the way, – We manage al materials using GitHub • https://github.com/perl-‐‑‒entrance-‐‑‒org – Patches welcome!!! • We want to translate our materials into English...
Joys of Teaching Perl
Joys of Teaching Perl • Teaching is very fun for me! – We are always surprise by the studentsʼ’ growth • Very rewarding for lectures and supporters • We make more friends! – After the end of each lecture, we go to drink! – Lecturer, supporter and students talk about various themes!
Joys of Teaching Perl • Drinkups like this:
Joys of Teaching Perl • Lecturer and supporter can also learn! – “Teaching is good method for learning Perl!” • We keep learning more and more about Perl
Conclusion • Teaching beginner is very a lot of fun! – Everyone gets something out of it • Students, lecturer and supporters! – If you want to learn more Perl, I recommend that you teach beginners! • “Teaching is good method for learning Perl!”
Conclusion • To expand the Perl community, we need to teach reach out to beginners – You can also teach Perl! – Many people want to challenge programming – Perl community can take them in!
Thank you for listening!
Any questions? (easy English please...) (or mention to @_̲_̲papix_̲_̲ on twitter!)