5 THINGS I WISH I
S O M E O N E H A D
TOLD ME ABOUT
PROGRAMMING
1
Tuesday, April 22, 14
Slide 2
Slide 2 text
5 THINGS I WISH I
S O M E O N E H A D
TOLD ME ABOUT
PROGRAMMING
2
Tuesday, April 22, 14
Slide 3
Slide 3 text
NIRD.US
3
Tuesday, April 22, 14
Slide 4
Slide 4 text
ADA DEVELOPERS ACADEMY
4
Tuesday, April 22, 14
Slide 5
Slide 5 text
TALLYING RESPONSES
5
Tuesday, April 22, 14
Slide 6
Slide 6 text
№1 IT’S SUPPOSED
TO BE HARD
6
Tuesday, April 22, 14
Slide 7
Slide 7 text
TYPICAL LEARNING CURVE
7
Tuesday, April 22, 14
Slide 8
Slide 8 text
THE LEARNING CURVE IS A CLIFF
8
Tuesday, April 22, 14
Slide 9
Slide 9 text
“ SOMETIMES IT WILL BE FRUSTRATING.
IT'S OK TO BE FRUSTRATED. USE THAT AS
TOOL TO GUIDE HOW YOU WRITE
SOFTWARE OR DOCUMENTATION AND
LEARN WHAT KINDS OF PROGRAMMING
AND WRITING YOU DON'T LIKE.”
-- PETE HIGGINS (@PETE_HIGGINS)
9
Tuesday, April 22, 14
Slide 10
Slide 10 text
“IT'S EASY TO GET THE WRONG IDEA AND THINK
THAT BECAUSE YOU'RE SPENDING MOST OF
YOUR TIME ON THINGS THAT ARE HARD FOR
YOU, YOU'RE NOT DOING A GOOD JOB. YOU
HAVE TO SPEND MOST OF YOUR TIME ON
THINGS THAT ARE HARD FOR YOU IN ORDER TO
DO A GOOD JOB.”
-- ANDREW GORCESTER (@MARGINOFERROR)
10
Tuesday, April 22, 14
Slide 11
Slide 11 text
“DON'T BE AFRAID OF TOPICS THAT
SOUND DIFFICULT. SOME
CONCEPTS IN CS ARE INHERENTLY
HARD TO THINK ABOUT, BUT NOT
AS MANY AS YOU MIGHT THINK.”
-- SAM LIVINGSTON-GREY (@GEEKSAM)
11
Tuesday, April 22, 14
Slide 12
Slide 12 text
1 - IT'S SUPPOSED
TO BE HARD
ERROR DRIVEN
DEVELOPMENT
12
Tuesday, April 22, 14
Slide 13
Slide 13 text
“YOU’RE THE WORST!”
13
Tuesday, April 22, 14
Slide 14
Slide 14 text
“YOU'LL BE TOLD YOU'RE WRONG
REPEATEDLY, BY THE COMPILER, BY
YOUR FAILING TESTS, BY BUG
REPORTS, AND THAT'S TOTALLY
NORMAL AND OKAY.”
-- MARY ANN MIERAU (@MABMIERAU)
14
Tuesday, April 22, 14
Slide 15
Slide 15 text
15
Tuesday, April 22, 14
Slide 16
Slide 16 text
1 - IT’S SUPPOSED
TO BE HARD
HAVE FAITH
16
Tuesday, April 22, 14
Slide 17
Slide 17 text
1 - IT’S SUPPOSED
TO BE HARD
HAVE COURAGE
17
Tuesday, April 22, 14
Slide 18
Slide 18 text
№2 YOU DO YOU
18
Tuesday, April 22, 14
Slide 19
Slide 19 text
DEFAULT ASSUMPTIONS ABOUT RUBYISTS
• "We all use vim"
• “We all do TDD"
• "We all enjoy whisky"
• "We all hate PHP"
19
Tuesday, April 22, 14
Slide 20
Slide 20 text
AVOID PEER PRESSURE
20
Tuesday, April 22, 14
Slide 21
Slide 21 text
2 - YOU DO YOU
BE NICE TO YOURSELF
21
Tuesday, April 22, 14
Slide 22
Slide 22 text
"ALWAYS WANTED TO GO BACK IN
TIME TO TRY FIGHTING A YOUNGER
VERSION OF YOURSELF?
PROGRAMMING IS THE CAREER
FOR YOU!"
-- ELLIOT LOH (@LOH)
22
Tuesday, April 22, 14
Slide 23
Slide 23 text
“TAKE CARE OF YOUR HEALTH,
BOTH PHYSICAL AND MENTAL. GIVE
YOURSELF A BREAK FROM TIME TO
TIME, AND BE MINDFUL OF YOUR
MENTAL STATE.”
-- ELIZABETH NARAMORE (@ELIZABETHN)
23
Tuesday, April 22, 14
Slide 24
Slide 24 text
№3 THERE'S NO MAGIC
24
Tuesday, April 22, 14
Slide 25
Slide 25 text
“IT’S ALL JUST
CODE”
-- ME, ALL THE TIME
25
Tuesday, April 22, 14
Slide 26
Slide 26 text
“YOU DON'T HAVE TO
LEARN IT ALL AT
ONCE.”
-- @JC_SOCAL
26
Tuesday, April 22, 14
Slide 27
Slide 27 text
27
Tuesday, April 22, 14
Slide 28
Slide 28 text
“YOU ARE MUCH MORE COMPETENT
THAN YOU THINK YOU ARE. IF YOU
WERE HIRED FOR THE JOB, YOU CAN
DO IT! DON'T DOUBT YOURSELF.”
-- Cordelia Dillon (@cordeliadillon)
28
Tuesday, April 22, 14
Slide 29
Slide 29 text
“BEING GOOD AT
PROGRAMMING DOESN'T
LOOK LIKE BEING GOOD AT
OTHER THINGS.”
-- AN ANONYMOUS ADA STUDENT
29
Tuesday, April 22, 14
Slide 30
Slide 30 text
№4 HONE YOUR CRAFT
30
Tuesday, April 22, 14
Slide 31
Slide 31 text
“EDUCATION IS A
PROCESS, NOT A
DESTINATION.”
-- KEVIN STEVENS (@KEVDOG)
31
Tuesday, April 22, 14
Slide 32
Slide 32 text
“ALWAYS KEEP PUSHING YOURSELF
AND LEARNING MORE. THE
INDUSTRY MOVES FAST AND PART
OF EVERY DAY SHOULD BE
LEARNING SOMETHING NEW.”
-- GREG TARNOFF (@GREGTARNOFF)
32
Tuesday, April 22, 14
Slide 33
Slide 33 text
“BEING A PROFESSIONAL PROGRAMMER
IS BEING A PROFESSIONAL LEARNER,
BECAUSE THE CORE SKILLS REQUIRED FOR
THE JOB ARE VAST, VAGUELY DEFINED,
AND LITERALLY EVERY FEW YEARS.”
-- ANDREW GORCESTER (@MARGINOFERROR)
33
Tuesday, April 22, 14
Slide 34
Slide 34 text
“YOU CAN'T STOP PUTTING IN THE
TIME LEARNING NEW THINGS. YOU
CAN'T REACH A CERTAIN POINT
AND SAY TO YOURSELF ‘THAT'S IT,
I'VE MADE IT, AND NOW RELAX’.”
-- CHRIS ANN O’DELL (@CHRISANNODELL)
34
Tuesday, April 22, 14
Slide 35
Slide 35 text
ALWAYS BE LEARNING
• MONKEY PATCH ALL THE THINGS!
• Make everything a gem
• TDD the living snot out of the next bug you fix
• Use an IDE you don’t normally use for a month
• Don’t use the letter ‘G’
• Make all actions happen through observers
35
Tuesday, April 22, 14
Slide 36
Slide 36 text
“THE USER WILL BE
ABLE TO CONVERT
A TEMPERATURE IN
CELSIUS TO
FAHRENHEIT, AND
VICE VERSA.”
36
Tuesday, April 22, 14
Slide 37
Slide 37 text
TEMPERATURE _CONVERTER.RB
• Make it a gem
• Release it on Github
• Make it a website
• Make it a mix-in on Numeric
• Make it an API
• Find other temperature scales you
could convert to and from
• Have it attempt to resolve the
user’s location and give automated
temperature conversions
• Have it query wikipedia to offer
information about the resulting
temperature
• Have it record the average,
median, and min/max the user has
calculated
37
Tuesday, April 22, 14
Slide 38
Slide 38 text
№5 FIND YOUR
COMMUNITY
“Find your people, and take part in the community.”
-- Elizabeth Naramore (@ElizabethN)
38
Tuesday, April 22, 14
Slide 39
Slide 39 text
“EVERYBODY THINKS DEVELOPMENT IS
HARD SOMETIMES. GOOGLE ANY
PROBLEM YOU'RE HAVING AND YOU'LL
FIND HUNDREDS OF PEOPLE WHO SWEAT,
STRUGGLED, SOBBED AND SWORE OVER
THE SAME THING!”
-- JAIME LYN SCHATZ (@EDUPUNKN00B)
39
Tuesday, April 22, 14
Slide 40
Slide 40 text
“MUCH OF YOUR DAILY ROUTINE IN
PROGRAMMING IS ABOUT
COMMUNICATION. TO EXCEL IN THE
CRAFT ONE MUST COMMUNICATE AS
WELL (OR BETTER) WITH HUMAN BEINGS
AS WITH CODE.”
-- ZANDER HILL (@_ZPH)
40
Tuesday, April 22, 14
Slide 41
Slide 41 text
“IT'S ESSENTIAL TO FIND THAT
DEV ON YOUR TEAM WHO IS
WILLING TO TAKE THE TIME
TO TEACH YOU THE ROPES.“
-- MITCHELL LEE (@THEEVILDEV)
41
Tuesday, April 22, 14
Slide 42
Slide 42 text
SHARE THE LEARNING
• Teach a class
• Volunteer at RailsBridge or GDI
• Study Group
• Book Club
• Write a blog post
• Give a lightning talk
42
Tuesday, April 22, 14
Slide 43
Slide 43 text
“THE BEST THING I DID FOR MY
PROGRAMMING CAREER WAS
FOCUSING ON LEARNING
BOUNDARIES AND
COMMUNICATION SKILLS.”
-- SONIA CONNOLLY (@SONIA_PDX)
43
Tuesday, April 22, 14
Slide 44
Slide 44 text
№6 GET STARTED
44
Tuesday, April 22, 14
Slide 45
Slide 45 text
“SOFTWARE IS
NEVER ‘DONE’”
-- @CAROL NICHOLS (@CAROLS10CENTS)
45
Tuesday, April 22, 14
Slide 46
Slide 46 text
CULT OF DONE MANIFESTO
• Accept that everything is a draft. It
helps to get it done.
• Pretending you know what you're
doing is almost the same as knowing
what you are doing
• Laugh at perfection. It's boring and
keeps you from being done.
• Failure counts as done. So do
mistakes.
46
Tuesday, April 22, 14
Slide 47
Slide 47 text
5 THINGS I WISH I KNEW...
• It’s Supposed To Be Hard
47
Tuesday, April 22, 14
Slide 48
Slide 48 text
5 THINGS I WISH I KNEW...
• It’s Supposed To Be Hard
• You Do You
48
Tuesday, April 22, 14
Slide 49
Slide 49 text
5 THINGS I WISH I KNEW...
• It’s Supposed To Be Hard
• You Do You
• There’s No Magic
49
Tuesday, April 22, 14
Slide 50
Slide 50 text
5 THINGS I WISH I KNEW...
• It’s Supposed To Be Hard
• You Do You
• There’s No Magic
• Hone Your Craft
50
Tuesday, April 22, 14
Slide 51
Slide 51 text
5 THINGS I WISH I KNEW...
• It’s Supposed To Be Hard
• You Do You
• There’s No Magic
• Hone Your Craft
• Find Your Community
51
Tuesday, April 22, 14
Slide 52
Slide 52 text
5 THINGS I WISH I KNEW...
GET STARTED
52
Tuesday, April 22, 14
Slide 53
Slide 53 text
“YOU'LL ALWAYS BE MAKING
IT UP AS YOU GO ALONG AND
THAT'S THE MOST ENJOYABLE
PART ABOUT PROGRAMMING.”
-- ERIC HODEL (@DRBRAIN)
53
Tuesday, April 22, 14
KERRI MILLER (@KERRIZOR)
• glass artist
• Vespa mechanic
• lighting designer
• author & teacher
• player of games
• software developer
55
Tuesday, April 22, 14