Keynote talk: How to stay in love with programming (with notes)

21
1

description

Keynote talk from !!con 2014

Transcript of Keynote talk: How to stay in love with programming (with notes)

Page 1: Keynote talk: How to stay in love with programming (with notes)

1  

Page 2: Keynote talk: How to stay in love with programming (with notes)

We  are  all  here  because  we  are  passionate  people,  and  programming  is  our  passion.  It  is  most  likely  also  going  to  be  your  career,  at  least  for  a  period  of  <me.  There’s  a  saying  that  “the  quickest  way  to  lose  interest  in  something  is  to  make  it  your  job”  How  do  you  maintain  that  passion  and  joy  for  programming  throughout  the  years  of  your  career?  

2  

Page 3: Keynote talk: How to stay in love with programming (with notes)

I  will  tell  you  about  my  personal  journey  of  passion,  and  some  of  my  own  wins  and  challenges  that  have  led  me  through  my  career.  I’m  so  happy  to  give  this  talk  aGer  Mike’s  excellent  keynote  yesterday,  because  I  believe  in  many  ways  our  talks  are  a  Yin  and  Yang  to  each  other.  Mike’s  key  to  advancement  is  obsession.  My  key  to  advancement  has  been  observa<on.  Each  has  some  of  the  other  in  it,  but  one  will  probably  resonate  more  closely  to  you.  S<ll,  I  think  between  the  two  of  us  we’ll  cover  the  field.  Let’s  get  started.    

3  

Page 4: Keynote talk: How to stay in love with programming (with notes)

Programming  is  magic!    It  is  the  closest  thing  to  being  a  wizard  in  this  modern  world.  

4  

Page 5: Keynote talk: How to stay in love with programming (with notes)

It’s  not  easy,  at  <mes  it  is  extremely  discouraging.  

5  

Page 6: Keynote talk: How to stay in love with programming (with notes)

How  do  you  s<ck  with  it  through  good  <mes  and  bad,  richer,  poorer,  sickness  and  health?    Programming  doesn’t  love  you  back,  so  it  is  all  about  your  personal  journey  to  love.  

6  

Page 7: Keynote talk: How to stay in love with programming (with notes)

My  journey  begins  at  the  beginning.  The  beginning  of  love  is  generally  infatua<on,  and  also  frequently  frustra<on.  

7  

Page 8: Keynote talk: How to stay in love with programming (with notes)

Started  playing  in  high  school  Wen  to  college  for  computer  science  Was  in  love  with  the  idea  of  programming,  at  least  Many  different  ideas  AI  Theory  Programming  Languages  Compilers  

8  

Page 9: Keynote talk: How to stay in love with programming (with notes)

I  got  through  undergrad  partly  through  sheer  determina<on  Took  a  full  <me  job  in  an  area  I  thought  would  be  interes<ng  I  floundered  Went  to  graduate  school  intending  to  work  in  PL/Compilers  Wasn’t  any  good  at  it  Switched  to  computer  architecture  And  a  bit  of  opera<ng  systems  I  was  in  fact  pre]y  good  in  a  course  called  Distributed  Systems,  but  that  wasn’t  a  very  “cool”  area,  so  I  didn’t  think  to  pursue  that.  But  realized  I  wasn’t  a  great  grad  student  

9  

Page 10: Keynote talk: How to stay in love with programming (with notes)

AGer  over  8  years,  undergrad,  full  <me  work,  countless  internships,  and  finally  graduate  school,  I  was  wondering  when  I  would  ever  find  my  calling.  Maybe  this  just  wasn’t  for  me.  I  took  the  LSATs  and  pondered  my  next  move.  

10  

Page 11: Keynote talk: How to stay in love with programming (with notes)

I  took  a  job  in  finance,  not  knowing  anything  about  finance.  Instead  of  trying  to  pretend  I  knew  everything,  I  went  into  that  job  assuming  I  knew  nothing,  and  just  asked  a  bunch  of  dumb  ques<ons  whenever  I  was  confused.  

11  

Page 12: Keynote talk: How to stay in love with programming (with notes)

Up  un<l  this  point  I  was  dominated  by  my  “shoulds”  I  should  be  good  at  programming  languages  I  should  be  a  good  graduate  student  I  should  be  able  to  do  it  without  help  I  should  know  it  all  already  Stop  judging  yourself.  In  reality,  I  didn’t  know  enough  to  know  what  was  “hard”  and  what  wasn’t,  what  was  cool  and  what  wasn’t  I  had  to  give  up  my  expecta<ons  of  myself,  and  discovered  that  I  liked  wri<ng  code  that  delivered  clear  business  value.  I  liked  working  in  an  itera<ve  way.  I  didn’t  really  care  about  finance,  but  I  liked  being  connected  to  a  business.  That  distributed  systems  stuff  that  I  was  good  in  grad  school  turned  out  to  be  something  I  was  good  at  in  the  real  world,  too,  and  I  accidentally  happened  upon  a  major  trend  in  compu<ng  without  realizing  it.  

12  

Page 13: Keynote talk: How to stay in love with programming (with notes)

I  learned  the  intricacies  of  Java  I  learned  Unit  Tes<ng!  I  learned  garbage  collec<on  and  libraries  and  my  IDE  

13  

Page 14: Keynote talk: How to stay in love with programming (with notes)

The  obstacle  between  me  and  solving  problems  was  no  longer  me!  I  achieved  mastery.  

14  

Page 15: Keynote talk: How to stay in love with programming (with notes)

What  is  mastery?  What  does  it  look  like?    It  doesn’t  come  fast  or  cheap,  it  takes  focus  and  years.  For  me,  it  happened  about  10  years  in.  I  don’t  know  the  exact  number,  but  I  know  that  it  takes  <me.  It  looks  like  understanding  the  details  of  your  language.  Understanding  the  garbage  collector,  or  the  details  of  the  STL,  or  what  exactly  the  GIL  means  for  your  programs.  Knowing  what  libraries  are  solid,  which  are  suspect.    Importantly  knowing  how  to  get  shit  done  efficiently  in  your  language  of  choice.  Mastery  will  sustain  you  throughout  your  career,  if  you  go  into  management  and  get  away  from  hands-­‐on  programming,  it  will  never  totally  go  away.  

15  

Page 16: Keynote talk: How to stay in love with programming (with notes)

Mastery  is  so  key,  but  it  isn’t  the  only  thing.  As  you  con<nue  in  your  career,  other  things  become  important  in  a  way  that  isn’t  as  prominent  when  you’re  s<ll  growing.  

16  

Page 17: Keynote talk: How to stay in love with programming (with notes)

A  more  recent  part  of  my  career  was  leaving  the  job  I  had  loved  for  many  years  at  Goldman  Sachs  to  go  to  a  startup  I  was  missing  a  value  alignment:  I  value  transparency,  and  banks  do  not  Wanted  to  work  in  public  Wanted  to  go  to  a  place  where  I  felt  as  an  engineer  I  could  make  a  huge  difference  An  engineer  of  the  world,  not  a  par<cular  company    

17  

Page 18: Keynote talk: How to stay in love with programming (with notes)

Allowed  to  be  crea<ve  in  your  own  way,  have  your  own  style  Mike’s  keynote  yesterday  was  awesome  wasn’t  it?  I  wish  I  could  be  that  guy,  but  I  have  accepted  that  I  will  never  be  that  guy  (and  I  will  never  be  Mike,  for  that  ma]er).  I’m  not  an  obsessive,  but  I  am  an  observer.    You  don’t  have  to  be  “original”  to  be  crea<ve  Expose  yourself  to  new  things,  if  only  to  remind  yourself  that  the  old  things  aren’t  that  bad  Side  projects  are  not  a  requirement.  

18  

Page 19: Keynote talk: How to stay in love with programming (with notes)

You  don’t  have  to  work  for  a  company  whose  product  you  find  purpose  in,  but  finding  the  job  role  that  you  find  purpose  in  is  important.  Align  what  mo<vates  you  to  your  job  <tle  and  company.  I  like  to  build  soGware  that  moves  a  business  forward.  You  may  like  to  find  secrets  in  data,  or  to  help  developers  do  their  jobs  be]er,  or  to  create  beau<ful  interfaces  that  people  love  to  use.    You  are  more  affected  by  the  values  of  your  company  and  the  purpose  of  your  job  internally  than  the  thing  the  company  does.  Find  purpose  externally,  in  higher-­‐order  work,  that  leads  to  empathy:  Write  blog  posts  Give  talks  Mentor  Volunteer  Work  in  open  source  Cheer  on  your  friends  

19  

Page 20: Keynote talk: How to stay in love with programming (with notes)

20  

Page 21: Keynote talk: How to stay in love with programming (with notes)

Growth,  to  give  you  confidence  Authen<city,  to  align  your  values  and  be  true  to  yourself  And  Purpose,  to  direct  your  passions  and  to  go  outside  of  yourself  and  see  the  world  through  other  eyes  

21