Injustice - Developers Among Us (SciFiDevCon 2024)
An Experiment In Rapid Skill Acquisition: Teaching Someone How To Program In 5 Days
1. An Experiment In
Rapid Skill Acquisition:
Teaching Someone How
To Program in 5 days
3/24/2014
Tony Tran
email: tony@5dayprogrammer.com
twitter:@quicksorter
4. DiSSS Method
● Deconstruction - breaking up your target skill into
smaller components.
● Selection - 80/20 principle. Work on things that will
get you the most bang for your buck!
● Sequencing - Order/Schedule what you learn in an
efficient way!
● Stakes - putting something on the line!
5. DiSSS+ Method
● Deconstruction
● Selection
● Sequencing
● Stakes
I would like to add ...
● Feedback - having someone correct you
helps out A LOT!
6.
7.
8. Patient Zero
● Non-technical background
● Product Manager
● Been trying to learn how to program for 2+
years
○ Attempted: Ruby, Python, Javascript
○ Invested a lot of time/money on learning.
○ Does not have strong grasp of languages.
■ Can not recall proper syntax for fundamentals
10. Selection: (My Goals)
● Teach students enough to be “deadly”:
○ Be able to recall fundamental concepts quickly
○ Be able to write text processing scripts
○ Be able to write simple libraries
○ Be able to write a simple web service
● Teach students how to be resourceful
○ Know where to look for answers
○ Being comfortable with being uncomfortable
11. Sequencing:
● Fundamentals first
○ Using the terminal
○ types, variable assignments, functions, if/else, for
loops, built-in data structures
○ Using helper functions
● More interesting things:
○ Using libraries, writing libraries
○ Writing scripts
12. Stakes
On the 5th day…
● Be able to write a script that reads in a file
and does some processing.
● Be able to write a library.
● Be able to write a simple Flask web service.
13. Day 1
● 4 hour session
● Student already knew:
○ How to use the terminal
○ Familiarity with REPL
○ Variable assignment
● What we went over:
○ Types, helper functions, if/else statements, for-
loops, functions, data types
14. Day2-Day5
● Homework to introduce new material
○ Review questions
○ Coding Assignments
○ DUE 11:59PM every night.
● Day2 - More Review
● Day3 - Scripts/Writing libraries
● Day4 - Using libraries/Writing libraries
● Day5 - Web service
15. Success Factors
● Consistency in practice
○ Practice everyday! No break days!
● Doing homework!
● Knowing your weaknesses and deficiencies
○ WORK HARD TO IMPROVE IN THESE AREAS!
○ Having a coach can help immensely
■ help you identify weaknesses
■ provide guidance for improvement
16. What I learned
● I can make $$$ off of this!!!
● Strategies for me to quickly acquire new
programming languages
● Inspiration for me to try to learn new things
quickly! (not just programming)
17. Other Experiments
● Boxing
● French (Parlez-Vous Francais!?!)
● Cooking
● Quantitative Finance
● ANY SUGGESTIONS!?!
18. Resources:
● DiSSS
○ The Tim Ferriss Experiment
○ 4 Hour Chef by Tim Ferriss
● Language (non-programming) Learning
○ Fluent in 3 Months by Benny Lewis
● My Site (coming soon)
○ www.5dayprogrammer.com
19. Lastly ...
If you could learn anything in
5 days, what would it be?
Let me know: @quicksorter