forked from Squatconf/Talks
Merge branch 'master' of mk30/Talks into master
commit
4a71aa2609
@ -0,0 +1,164 @@
|
||||
#Get better at helping people with programming
|
||||
|
||||
Marina Kukso
|
||||
|
||||
@marinakukso
|
||||
|
||||
---
|
||||
|
||||
#things i didn't know when i was a beginner
|
||||
|
||||
* the big boy voice is bullshit
|
||||
* i am not dumb if i don't understand what you're telling me
|
||||
* it's not strange if i don't know x - i just don't know it.
|
||||
* "the DOM"
|
||||
* relationship b/w hardware and software
|
||||
* how to use sample code & install instructions
|
||||
* prog is a skill that you can learn like other skills.
|
||||
* why programming books start with data types
|
||||
* there are crystals inside computers
|
||||
* what exactly a bit is
|
||||
|
||||
---
|
||||
|
||||
#experiences i had already had when i was a beginner
|
||||
|
||||
* geocities, html
|
||||
* CS1 in college (java, eclipse)
|
||||
* fetishization of programming
|
||||
* "what it's like to be a woman at a bitcoin meetup"
|
||||
* bad outcomes when i asked questions
|
||||
|
||||
---
|
||||
|
||||
#things that didn't work for me
|
||||
|
||||
* "ok, type console.log"
|
||||
* "install firebug. you'll need it."
|
||||
* online code schools & other non-interoperable things
|
||||
* "just learn python"
|
||||
* intro to github
|
||||
* skeleton css framework
|
||||
|
||||
---
|
||||
|
||||
#things that worked for me - laying the groundwork
|
||||
|
||||
* html, geocities
|
||||
* taking a computer apart
|
||||
* bits & how computers store info
|
||||
* pen and paper registry, data structures, pseudocode
|
||||
* computer/programming "ask me anything" sessions
|
||||
* being around nice hackerpeople
|
||||
|
||||
---
|
||||
|
||||
#things that worked for me - programming
|
||||
|
||||
* figured out that i needed to learn linux before a prog language
|
||||
* bash - sit with tutee & do things via command line
|
||||
* analogies and examples
|
||||
* writing programs from scratch
|
||||
* working with node (most people will be happy to make a website)
|
||||
* concrete projects: neocities, studio.substack.net, voxel.js, hardware, scripts
|
||||
* amazing mentors, ongoing mentorship
|
||||
* mentors pushed me to ask questions until i understood
|
||||
* computerphile - "how would you make a computer do x"
|
||||
|
||||
---
|
||||
|
||||
#general tips
|
||||
|
||||
* empathy!
|
||||
* assume as little as possible about the learner - ask q's
|
||||
* constant feedback loop between you and the learner
|
||||
* reassurance (personal stories) can be helpful
|
||||
* examples, analogies, demonstrate on your comp
|
||||
* history of computing - give the context! (eg origin of text-based interfaces.)
|
||||
* help them set up an environment that will allow them to keep learning on their own
|
||||
* person who sees self as beginner may not feel empowered to ask q's
|
||||
* silence is not "i understand." check in at every step.
|
||||
* ask q's until you understand what they're confused about
|
||||
* read between the lines. xy problem. beginners often don't
|
||||
use the right words to describe a problem.
|
||||
* be aware of power you may hold in a situation
|
||||
* you don't have to help all the time. "i'm busy right now", man pages
|
||||
* jargon: focus on relevance/function; explain any jargon
|
||||
in your explanation; if you are giving a very accurate, specific
|
||||
explanation, explain why these seemingly minor
|
||||
distinctions matter.
|
||||
|
||||
---
|
||||
|
||||
#specific tips
|
||||
|
||||
* don't touch learner's keyboard
|
||||
* no, please: "it's easy"/"just do..."
|
||||
* "are you familiar with?"
|
||||
* "does that make sense?"
|
||||
* "are you stuck on anything?"
|
||||
* "do you know what to do next?"
|
||||
* man pages, googling, reading errors
|
||||
* don't say "guy" for "person"
|
||||
* be aware of how you present to others - big boy voice, don't stare!
|
||||
* as a mentor, you are responsible for the tenor of the
|
||||
learning environment - ya gotta enforce!
|
||||
* "do you have any ideas for what to work on?" if not, share
|
||||
ideas that would be within reach of that person
|
||||
* many want to learn prog for "practical" reasons, but not all!
|
||||
* if a noob seems to be using a bad/weird tool, ask about it
|
||||
& chat. (don't be dismissive or just suggest another tool
|
||||
w/no explanation. give context.)
|
||||
|
||||
---
|
||||
|
||||
#secrets you should tell learners
|
||||
|
||||
* programmers use linux
|
||||
* "which distro?" - k/l/ubuntu is well-supported
|
||||
* "which language?" = "i'm not sure what to learn first".
|
||||
start with bash!
|
||||
* how programmers use IRC
|
||||
* don't get taken in by those who use the big boy voice
|
||||
* you don't have to take hazing/trolling/dickishness
|
||||
* much of programming is not writing difficult algorithms
|
||||
* much of programming is not hot shit. boring, useless, not wizardry.
|
||||
* you don't have to memorize all the commands in the book
|
||||
* linux commands are programs
|
||||
* what built-in methods are
|
||||
* don't update linux
|
||||
* shell tips: .. , tab complete, history
|
||||
* dev environment: text editors, git & github
|
||||
* how "professional websites" get built: dev vs production, bug trackers, etc.
|
||||
* what is localhost and how to run a dev version of your thing
|
||||
* everyone googles all the time
|
||||
* pros don't just have all errors & solutions memorized.
|
||||
they've just learned through suffering through many errors.
|
||||
one day this will be you! :D
|
||||
* no: "i'm stuck on x but it's supposed to be easy!" it's
|
||||
frustrating, but the more time you spend, the faster
|
||||
you'll get. you will learn through pain :P
|
||||
* there are common patterns in programming.
|
||||
* if you don't get it, it doesn't make you dumb.
|
||||
* you don't always have to know every detail of a thing to use it
|
||||
* server program vs server computer
|
||||
* different ways that the word "API" is used
|
||||
* package manager as "free app store"
|
||||
* solving problems w/a bag of command line apps vs giant gui program
|
||||
* common command line apps - mplayer, imagemagick, youtube-dl, etc.
|
||||
* large software & bags of utilities (frameworks, d3, etc.) vs small libraries
|
||||
* types of work that's out there (front end, back end, sys admins)
|
||||
* existing controversies & hierarchies in the field
|
||||
* command line seems hard, but is easy. programming seems easy, but is hard.
|
||||
|
||||
---
|
||||
|
||||
#running a collaborative learning group
|
||||
|
||||
* space
|
||||
* mentors
|
||||
* learners
|
||||
* calendar
|
||||
* noise
|
||||
* surprise treats are great
|
||||
* encourage co-learning
|
Loading…
Reference in New Issue