an experiment in rapid skill acquisition: teaching someone how to program in 5 days

20
An Experiment In Rapid Skill Acquisition: Teaching Someone How To Program in 5 days 3/24/2014 Tony Tran email: [email protected] twitter:@quicksorter

Upload: tony-tran

Post on 01-Jul-2015

190 views

Category:

Technology


1 download

DESCRIPTION

Presentation on how I helped a friend learn how to program in 5 days using techniques inspired by Tim Ferriss.

TRANSCRIPT

Page 1: An Experiment In Rapid Skill Acquisition: Teaching Someone How To Program In 5 Days

An Experiment InRapid Skill Acquisition:

Teaching Someone How To Program in 5 days

3/24/2014

Tony Tranemail: [email protected]

twitter:@quicksorter

Page 3: An Experiment In Rapid Skill Acquisition: Teaching Someone How To Program In 5 Days

DiSSS Method● Deconstruction● Selection● Sequencing● Stakes

Page 4: An Experiment In Rapid Skill Acquisition: Teaching Someone How To Program In 5 Days

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!

Page 5: An Experiment In Rapid Skill Acquisition: Teaching Someone How To Program In 5 Days

DiSSS+ Method● Deconstruction● Selection● Sequencing● StakesI would like to add ...● Feedback - having someone correct you

helps out A LOT!

Page 8: An Experiment In Rapid Skill Acquisition: Teaching Someone How To Program In 5 Days

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

Page 9: An Experiment In Rapid Skill Acquisition: Teaching Someone How To Program In 5 Days

Deconstruction● Terminal

○ ls/cp/mv/rm/python● Variable assignment● Types● Helper functions● REPL● If/Else Statements● For-loops/While loops● Functions● PIP

● Exception Handling● Creating a script● Unit Testing● Using libraries● Writing libraries● Object Oriented

Programming● Generators● Concurrency● A LOT MORE...

Page 10: An Experiment In Rapid Skill Acquisition: Teaching Someone How To Program In 5 Days

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

Page 11: An Experiment In Rapid Skill Acquisition: Teaching Someone How To Program In 5 Days

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

Page 12: An Experiment In Rapid Skill Acquisition: Teaching Someone How To Program In 5 Days

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

Page 13: An Experiment In Rapid Skill Acquisition: Teaching Someone How To Program In 5 Days

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

Page 14: An Experiment In Rapid Skill Acquisition: Teaching Someone How To Program In 5 Days

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

Page 15: An Experiment In Rapid Skill Acquisition: Teaching Someone How To Program In 5 Days

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

Page 16: An Experiment In Rapid Skill Acquisition: Teaching Someone How To Program In 5 Days

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)

Page 17: An Experiment In Rapid Skill Acquisition: Teaching Someone How To Program In 5 Days

Other Experiments● Boxing● French (Parlez-Vous Francais!?!)● Cooking● Quantitative Finance● ANY SUGGESTIONS!?!

Page 19: An Experiment In Rapid Skill Acquisition: Teaching Someone How To Program In 5 Days

Lastly ...

If you could learn anything in 5 days, what would it be?

Let me know: @quicksorter