Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Mastering the Craft

Avatar for blz777 blz777
November 02, 2015

Mastering the Craft

A talk based on Stefan Kanev's talk on the same topic:
https://speakerdeck.com/skanev/mastering-the-craft

Avatar for blz777

blz777

November 02, 2015
Tweet

More Decks by blz777

Other Decks in Programming

Transcript

  1. Based  on  Stefan  Kanev’s  talk  on  the  topic. If  you

     understand  Bulgarian,  leave  the  room  and  go  check  it  out:     h2ps://www.youtube.com/watch?v=7n3eqmc7VxY  
  2. Plan 1. Being  a  programmer  and  some  truths  about  it  

    2. Things  I  wish  I  knew  10  years  ago   3. What  can  you  begin  with  today  
  3. Plan 1. Being  a  programmer  and  some  truths  about  it  

    2. Things  I  wish  I  knew  10  years  ago   3. What  can  you  begin  with  today  
  4. Imagine  a  few  programmers  in  a  room  talking   about

     languages,  good  pracWces,  code  style..  
  5. I  am  a  non-­‐accredited,  overly   logical  psychologist,  therapist,  

    mechanic,  diplomat,  businessman,   and  teacher  working  in  an  industry   that  is  sWll  defining  itself  each  and   every  day.                  -­‐-­‐  Ka  Wai  Cheung  
  6. Wri$ng  code  is  the  easiest  thing.  Everything  else   is

     more  difficult  and  you  cannot  do  without  it.   Truth  №1  
  7. As  programmers,  we  have  to  convert  unknown   problems  into

     clear  code  while  we  are  under   stress  and  s$ll  learning  new  things.  
  8. If  you  don’t  love  programming  and  all  its  aspects  

    think  again  whether  this  is  your  craA.   Truth  №2  
  9. • Today  a  lot  of  people  use  Ruby  and  that  is

     safe.   • 7  years  ago  this  was  a  risk.   • 7  years  earlier  using  Java  was  a  risk.   • Before  that  people  had  to  manually  manage   memory.  
  10. Programming  is  not  just  a  9  to  5  job.  

    It’s  a  craA  you  will  be  doing  your  whole  life.  Be   ready  to  devote  to  it.   Truth  №3  
  11. Plan 1. Being  a  programmer  and  some  truths  about  it  

    2. Things  I  wish  I  knew  10  years  ago   3. What  can  you  begin  with  today  
  12. Lesson  2:  Process  and  approach Constantly  analyze  your  working  process.

      Try  to  structure  it.  Keep  enhancing  it.    
  13. Think  about  the  following  things: •  How  do  I  test

     my  program?   •  What  am  I  working  on  at  the  moment?   •  What  do  I  want  to  achieve  today?   •  When  do  I  go  and  ask  for  help?   •  When  do  I  revert  my  approach  to  a  task  and  start  over?   •  When  do  I  have  a  break  and  how  long?   …  
  14. Lesson  4:  Discipline You  must  be  disciplined.  Programming  is  a

      complex  thing  and  if  you  don’t  rely  on  habits   you  will  get  lost  pre2y  quickly.  
  15. Lesson  5:  Take  notes Develop  a  system  for  taking  notes.

     Describe   everything  you  learn.  Read  them  regularly.   Make  that  a  part  of  your  process.  
  16. Lesson  6:  Ritual  for  improvement Make  learning  new  things  a

     ritual.  Keep   at  it  fanaWcally.  Revise  it  periodically.  
  17. Lesson  7:  Learn  a  lot  of  languages Learn  a  lot

     of  languages.  Learn  them  in   depth.  They  need  to  be  different.  
  18. Don’t  be  conservaXve  and  skepXcal •  “Ruby  is  too  slow

     and  is  not  for  big  projects.”   •  “Java  is  too  slow  and  is  not  for  big  projects.”   •  “RelaWonal  Databases  are  a  good  academic  exercise  but  they  are  not   for  real  projects.”   •  “Structured  programming  is  a  good  academic  exercise  but  it  is  not  for   real  projects.”   •  C  is  too  slow  and  is  not  for  real  projects.  
  19. Anyway,  Haskell  will  never  be  important! •  ..it’s  too  slow

     and  is  not  for  big  projects   •  ..it’s  a  very  good  academic  exercise  but  it’s  not  for  real  projects  
  20. Lesson  8:  Create  do\iles Most  of  the  unix  instruments  can

     be   personalized.  Do  that  aggressively.  Put  the   doniles  under  version  control.  
  21. Lesson  9:  OpenSource Deal  with  open-­‐source.  You  will  meet  a

     lot  of   interesWng  people.  You  will  learn  a  lot  of   things.  
  22. Lesson  10:  Stay  healthy There  are  a  lot  of  health

     risks  in  our  job.  Staying   sWll  for  a  long  Wme  and  being  under  stress  is   devastaWng.  Think  of  that  in  advance.  It  might  be   too  late  when  problems  appear.  
  23. •  Lesson  1:  Text  Editor   •  Lesson  2:  Process

     and  approach   •  Lesson  3:  Version  Control   •  Lesson  4:  Discipline   •  Lesson  5:  Take  notes   •  Lesson  6:  Ritual  for  improvement   •  Lesson  7:  Learn  a  lot  of  languages   •  Lesson  8:  Create  doniles   •  Lesson  9:  OpenSource   •  Lesson  10:  Stay  healthy  
  24. Plan 1. Being  a  programmer  and  some  truths  about  it  

    2. Things  I  wish  I  knew  10  years  ago   3. What  can  you  begin  with  today  
  25. 1/5  Register  in  Github. Today.  Create  a  profile.  Upload  what

     you  can.   Start  following  interesWng  projects.  
  26. 2/5  Start  learning  a  text  editor Choose  a  text  editor

     and  start  using  it   exclusively  for  everything.  
  27. 3/5  Create  your  do\iles $  mkdir  doniles     $

     cd  doniles     $  git  init  .    
  28. 4/5  Choose  books  and  a  language One  language  for  the

     year.   A  few  books  for  the  upcoming  months.  
  29. 5/5  Start  your  own  pet  project Start  your  own  pet

     project  to  work  on  and  learn   with.  Keep  at  it.