Jenn Strater – Software Engineer – Healthcare Communications Division – Minneapolis, MN – Co-Founder – Focus on Retention and Professional Development Company Redacted…
Gr8Ladies ▪ An organization for the support of women in the Gr8 (Groovy, Grails, Gradle, etc) community – Education – Professional Development – Networking – Retention ▪ Chapters in Minneapolis, MN and Austin, TX
Gr8Workshops ▪ Free or low-cost weekend courses for teaching Groovy and other Groovy ecosystem technologies ▪ Audience – Beginners who have never coded before – Experienced developers interested in learning new languages and technologies ▪ Volunteers are Groovy experts recruited from local user groups ▪ Next workshop: December 6-7 in Minneapolis, MN
Goals of this session ▪ Raise questions about how programming is taught to adults and the skills shortage ▪ Evaluate current teaching models for post secondary education ▪ Provide helpful hints for anyone interested in teaching programming ▪ Brief discussion on teaching methods and marketing programs towards diverse groups
Why should adults learn to program? ▪ Programming teaches a way of thinking that can be applied to jobs outside of technology ▪ There are lots of job opportunities and an extreme shortage of qualified developers ▪ Technology is always changing; even experienced developers need continuing education to learn the right skills for the market ▪ It's FUN!
A Global Problem ▪ Skills shortages in US, UK, and Canada1 ▪ Problem – Candidates have tech experience, but not the right skills ▪ Proposed Solutions – Immigration reform or outsourcing to try to meet demand ▪ Alternative Solutions – Employer paid skills training and professional development – Hire new grads and mold into the right skillset
Potential Adult Learners ▪ Students ▪ Working professionals looking for a career change ▪ Experienced developers looking to learn new skills ▪ Moms(or dads) returning to the workforce but needing new skills
Traditional College and University - US ▪ 4 year college education (and optional advanced degrees) ▪ Mostly theoretical knowledge ▪ Limited job skills – May need additional training to code professionally ▪ Well-rounded education ▪ Switching tracks can be very expensive (time and money) ▪ $100,000 + Cost of Attendance(COA) on average2
Online Courses ▪ Options – From traditional colleges and universities for credit – All online degrees – Free one-off classes on an interesting subject for no credit ▪ Can be taught as Massive Online Open Course (MOOC)4,5 or self-paced course ▪ Variable Experiences – Limited if any access to help from professors or teaching assistants – Cost varies – Curriculum varies widely – Low completion rates
Online Courses Continued http://codeacademy.com Code Academy – Aimed learning objectives – Beginner level only https://projecteuler.net/ Project Euler – Math centric https://www.khanacademy.org/computing/computer-programming/programming Khan Academy – Many subjects
Code Schools ▪ 9-12+ weeks ▪ Job placement focused ▪ Flatiron School6 – $15000 – Ruby or iOS ▪ Hacker School7 – Free, but need living expenses in NYC – Project focused ▪ Dev Bootcamps – Popping up all over the country – Various languages and learning styles
Summary ▪ There are many different ways to get to a career in programming ▪ Every individual learns in different ways so multiple options are better and necessary ▪ Curricula – Concepts and Theory – Specific Languages and Tools ▪ Teaching Styles – Examples vs projects – Self guided vs group settings
Summary Continued ▪ Content – Web Applications – Scripting – Basic trivial examples ▪ It's never too late to learn! – All ages and backgrounds – Every career level and day job
Identify the audience ▪ Experience Level – No programming experience – Some programming experience – Experienced developers looking to learn something new ▪ Goal of education – Job specific skills – Theoretical knowledge – Career change ▪ Get to know the audience's background to tailor analogies and assess pace for learning topics
Setting Up a Development Environment ▪ Provide instructions for multiple machine configurations ▪ Assume the students don't know how any programs (IDE's etc) work ▪ Offer supervised time to assist with setup ▪ Pick a location for your event with good Wi-Fi ▪ Bring a backup USB drive with all necessary setup files ▪ If all else fails, try a web console
Beginner Specific Hurdles ▪ Learning something new can be intimidating – Remember a welcoming attitude – Watch for assumptions and tone of voice ▪ The more TA(teaching assistants) the better – Small student to teacher ratios are important – multiple viewpoints – Different analogies and explanations ▪ Languages – Java is practical, but beginners often get frustrated with the syntax – Consider Python or a dynamic and flexible language like Groovy!
Current and Ongoing Challenges ▪ Wait for everyone to catch up or keep moving? ▪ Budget enough time for questions and assistance – One hour sessions aren't enough for true beginners – Consider a follow-up session if there are still outstanding questions ▪ Consider offering an intermediate level for repeat students who don't quite have enough experience for the advanced class
Marketing to Diverse Groups ▪ Don't just make it pink! ▪ If you are charging for your course, consider scholarships ▪ If your target audience includes parents, consider offering childcare ▪ Avoid using gendered pronouns and adjectives ▪ Be cautious of images used in marketing
Discussion Questions ▪ Which format did you experience when learning to program? ▪ Do you feel you would have benefited from another format? ▪ How does the initial training experience compare to continuing education? ▪ Are we just teaching the tools or concepts that will transfer as technology changes? ▪ Where should someone start who wants to learn to code? – Does your answer change depending on their age, gender, or current job?