Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Chippewa Valley Code Camp Gr8Workshops Talk

jlstrater
November 14, 2014

Chippewa Valley Code Camp Gr8Workshops Talk

Discussion of current teaching methods of programming to adults and helpful hints learned from the Gr8Workshops initiative.

Chippewa Valley Code Camp
November 15, 2014

jlstrater

November 14, 2014
Tweet

More Decks by jlstrater

Other Decks in Technology

Transcript

  1. Gr8Workshops: Teaching
    Groovy to Beginners
    Chippewa Valley Code Camp November 15, 2014
    @jennstrater @gr8ladies

    View Slide

  2. Jenn Strater
    – Software Engineer
    – Healthcare Communications
    Division
    – Minneapolis, MN
    – Co-Founder
    – Focus on Retention and
    Professional Development
    Company Redacted…

    View Slide

  3. 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

    View Slide

  4. 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

    View Slide

  5. 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

    View Slide

  6. Outline
    ▪ Why teach programming to
    adults?
    ▪ Traditional Education Models
    – Traditional College and
    Universities
    – Community & Technical Colleges
    ▪ Alternative Models
    – Online Education
    – Code Schools
    – Weekend Code Camps
    ▪ Summary
    ▪ Lessons Learned
    ▪ Open Discussion

    View Slide

  7. 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!

    View Slide

  8. Why should YOU teach adults to program?
    ▪ Learning By Teaching
    ▪ Social Good
    ▪ Recruit new developers for
    your company
    ▪ Self-promotion
    ▪ Networking

    View Slide

  9. 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

    View Slide

  10. 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

    View Slide

  11. Traditional Education Models

    View Slide

  12. 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

    View Slide

  13. Community and Technical Colleges - US
    ▪ Job skills focused
    ▪ Much shorter completion time
    ▪ Certifications may be available
    ▪ $30,000 on average3

    View Slide

  14. Alternative Models

    View Slide

  15. 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

    View Slide

  16. 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

    View Slide

  17. 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

    View Slide

  18. Weekend Code Camps
    ▪ Language/stack focused learning for various experience levels
    ▪ Free or low cost
    ▪ Examples
    – RailsBridge8
    – ClojureBridge
    – Gr8Workshops

    View Slide

  19. 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

    View Slide

  20. 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

    View Slide

  21. Lessons Learned from
    Gr8Ladies Gr8Workshops

    View Slide

  22. 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

    View Slide

  23. Assess Technical Background Knowledge
    ▪ Basic Web Skills
    – Html
    – Css
    – Javascript
    ▪ Tools
    – source control
    – command line
    – Integrated Development Environment(IDE)
    ▪ General Programming Concepts
    – Object Oriented Programming (OOP)
    – Functional programming concepts
    – File handling
    – REST/APIs in general
    ▪ Define all jargon and acronyms
    ▪ Simplify exercises
    – avoid industry specific examples (even mathematics)

    View Slide

  24. 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

    View Slide

  25. 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!

    View Slide

  26. 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

    View Slide

  27. 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

    View Slide

  28. General Questions?
    ▪ Resources
    – http://gr8ladies.org
    – @gr8workshop
    – @jennstrater
    – http://sites.google.com/site/jenniferstrater/speaking

    View Slide

  29. 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?

    View Slide

  30. References
    ▪ 1http://www.itworldcanada.com/article/it-hiring-slump-to-bring-about-skills-
    shortage-survey/88069
    ▪ 2http://www.collegedata.com/cs/content/content_payarticle_tmpl.jhtml?articleId=
    10065
    ▪ 3http://www.collegecalc.org/colleges/minnesota/hennepin-technical-college
    ▪ 4http://www.newyorker.com/science/maria-konnikova/moocs-failure-solutions
    ▪ 5http://www.academicpartnerships.com/sites/default/files/MOOCs_Expectations_a
    nd_Reality.pdf
    ▪ 6http://flatironschool.com/
    ▪ 7https://www.hackerschool.com/faq
    ▪ 8http://www.railsbridge.org/

    View Slide