+ All Categories
Home > Technology > Semper Ubi Sub Ubi - Things They Don't Teach You In School

Semper Ubi Sub Ubi - Things They Don't Teach You In School

Date post: 10-Feb-2017
Category:
Upload: jan-schaumann
View: 663 times
Download: 1 times
Share this document with a friend
75
Semper Ubi Sub Ubi …and other advice. An incomplete list of things they don’t teach you in school. @jschauma
Transcript
Page 1: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Semper  Ubi  Sub  Ubi  …and  other  advice.  

An  incomplete  list  of  things  they  don’t  teach  you  in  school.  

@jschauma  

Page 2: Semper Ubi Sub Ubi - Things They Don't Teach You In School
Page 3: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Know  your  Unknowns.  

@jschauma  

Page 4: Semper Ubi Sub Ubi - Things They Don't Teach You In School

@jschauma  

Page 5: Semper Ubi Sub Ubi - Things They Don't Teach You In School

@jschauma  

Page 6: Semper Ubi Sub Ubi - Things They Don't Teach You In School

@jschauma  

Page 7: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Computering,  at  its  heart,  is  a  people  problem.  

@jschauma  

Page 8: Semper Ubi Sub Ubi - Things They Don't Teach You In School

“A  concept  is  stronger  than  a  fact.”  

@jschauma  

-­‐-­‐  CharloEe  Perkins  Gilman  

Page 9: Semper Ubi Sub Ubi - Things They Don't Teach You In School

@jschauma  

Page 10: Semper Ubi Sub Ubi - Things They Don't Teach You In School

You  need  pracIcal  programming  experience.  

@jschauma  

Page 11: Semper Ubi Sub Ubi - Things They Don't Teach You In School

You  don’t  fully  understand  a  problem  unIl  you  try  to  solve  it  yourself.  

@jschauma  

Page 12: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Prototype…  then  toss  it.  (Beware  Second  System  Syndrome.)  

@jschauma  

Page 13: Semper Ubi Sub Ubi - Things They Don't Teach You In School

@jschauma  

Page 14: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Perfect  is  the  enemy  of  the  Good.  

@jschauma  

Page 15: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Worse  is  BeEer.  

@jschauma  

Perfect  is  the  enemy  of  the  Good.  

Page 16: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Worse  is  BeEer.  

@jschauma  

Perfect  is  the  enemy  of  the  Good.  

“Good  enough”  oPen  is  the  enemy  of  “actually  good”.  

Page 17: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Simplify.  

@jschauma  

Page 18: Semper Ubi Sub Ubi - Things They Don't Teach You In School

“This  is  the  Unix  philosophy:    

Write  programs  that  do  one  thing  and  do  it  well.    

Write  programs  to  work  together.    

Write  programs  to  handle  text  streams,  because  that  is  a  universal  interface.”  

@jschauma  

-­‐-­‐  Douglas  McIllroy  

Page 19: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Know  Unix.  Embrace  the  command-­‐line.  

@jschauma  

Page 20: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Know  your  $EDITOR.  

@jschauma  

Page 21: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Know  how  to  use  a  debugger.    

printf(“here: x is now %d\n”, x);��

does  not  count.  

@jschauma  

Page 22: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Meet  your  new  friends,  the  Straces:  

 dtrace(1),  ktrace(1),  strace(1)  

@jschauma  

Page 23: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Use  boring  technology.  

@jschauma  

Page 24: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Use  boring  technology.    

Write  boring  code.  

@jschauma  

Page 25: Semper Ubi Sub Ubi - Things They Don't Teach You In School

$ echo ‘import this’ | python

@jschauma  

Page 26: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Readability  counts.  

@jschauma  

Page 27: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Refactor  if:  -­‐  code  trails  off  right  side  of  your  window  -­‐  your  funcIon  does  not  fit  into  <200  lines  

@jschauma  

Readability  counts.  

Page 28: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Readability  counts.    

You  are  not  charged  per  character.  

@jschauma  

Page 29: Semper Ubi Sub Ubi - Things They Don't Teach You In School

(Most)  comments  considered  harmful.  

@jschauma  

Page 30: Semper Ubi Sub Ubi - Things They Don't Teach You In School

@jschauma  

// increment x by 2 x = x + 2;

Page 31: Semper Ubi Sub Ubi - Things They Don't Teach You In School

@jschauma  

// increment x by 2 x = x + 4;

Page 32: Semper Ubi Sub Ubi - Things They Don't Teach You In School

(Most)  comments  considered  harmful.  

 Comments  should  explain  the  why,  not  the  what.  

@jschauma  

Page 33: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Write  The  Fine  Manual  

@jschauma  

Page 34: Semper Ubi Sub Ubi - Things They Don't Teach You In School

@jschauma  

$ cp /usr/share/man/man1/ls.1 hfrob.1 $ $EDITOR hfrob.1 $ nroff -man hfrob.1 | more

Page 35: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Write  The  Fine  Test  Suite  

@jschauma  

Page 36: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Write  meaningful  error  messages.  

@jschauma  

$ hfrob frumbl Error! $ echo $? 0 $ $ hfrob frumbl Unable to open file: ‘/usr/share/hfrob/frumbl’: No such file or directory. $ echo $? 1 $ ✔︎  

Page 37: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Learn  to  write  a  bug  report.  

@jschauma  

Page 38: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Try  to  understand  what  you’re  doing.  

@jschauma  

Page 39: Semper Ubi Sub Ubi - Things They Don't Teach You In School

@jschauma  

Page 40: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Sufficiently  advanced  cheaIng  is  indisInguishable  from  learning.  

@jschauma  

Page 41: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Computering,  at  its  heart,  is  a  people  problem.  

 SoPware  development  is  

a  social  acIvity.  

@jschauma  

Page 42: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Learn  to  write  an  email.  

@jschauma  http://www.phdcomics.com/comics.php?f=1795

Page 43: Semper Ubi Sub Ubi - Things They Don't Teach You In School

The  internet  does  not  forget.  Anything.  Ever.  

@jschauma  

Page 44: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Other  people  are…  …also  people.  

@jschauma  

Page 45: Semper Ubi Sub Ubi - Things They Don't Teach You In School

@jschauma  

Page 46: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Own  your  mistakes.  

@jschauma  

Page 47: Semper Ubi Sub Ubi - Things They Don't Teach You In School

You  break  it,  you  own  it.  

@jschauma  

Page 48: Semper Ubi Sub Ubi - Things They Don't Teach You In School

You  break  it,  you  own  it.    

You  fix  it,  you  own  it.  

@jschauma  

Page 49: Semper Ubi Sub Ubi - Things They Don't Teach You In School

SoPware  maintenance  is  75%  of  total  cost  of  ownership.  

 OperaIonal  support  is  the  

remaining  75%.  

@jschauma  

Page 50: Semper Ubi Sub Ubi - Things They Don't Teach You In School

ParIcipate  in  Open  Source.  

@jschauma  

Page 51: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Mind  your  filter  bubbles.  

@jschauma  

Page 52: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Seek  diversity.  

@jschauma  

Page 53: Semper Ubi Sub Ubi - Things They Don't Teach You In School

GitHub  is  (not)  your  resume.  

@jschauma  

Page 54: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Interviewing  is  bullshit.  

@jschauma  

Page 55: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Salary  negoIaIon  is  bullshit.  

@jschauma  

Page 56: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Salary  negoIaIon  is  bullshit.    

Know  what  you’re  worth.  

@jschauma  

Page 57: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Your  first  salary  defines  future  salaries  for  this  career  path.  

@jschauma  

Page 58: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Your  first  job  does  not  define  your  career,  

but  it  may  pigeon-­‐hole  you.  

@jschauma  

Page 59: Semper Ubi Sub Ubi - Things They Don't Teach You In School

There  is  no  such  thing  as  mulI-­‐tasking.  

 You  can  either  do  one  thing  well,  

or  mulIple  things  poorly.  

@jschauma  

Page 60: Semper Ubi Sub Ubi - Things They Don't Teach You In School

There  is  no  such  thing  as  mulI-­‐tasking.  

 Eliminate  distracIons.  

@jschauma  

Page 61: Semper Ubi Sub Ubi - Things They Don't Teach You In School

“One  of  my  most  producCve  days  was  throwing  away  1,000  lines  of  code.”  

@jschauma  

-­‐-­‐  Ken  Thompson  

Page 62: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Validate  all  your  input!  

@jschauma  whitelist  >  blacklist  

Page 63: Semper Ubi Sub Ubi - Things They Don't Teach You In School

“Security”  can’t  be  added.  

@jschauma  

Page 64: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Your  endpoint  security  model  should  assume  the  network  is  compromised;    your  network  security  model  should  assume  

the  endpoint  is.    

Both  in  fact  are.  

@jschauma  

Page 65: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Always  use  UTC.    

Use  an  unambiguous  format.    

2016-­‐03-­‐02T14:22:33    

03/02/16  2:22:33  

@jschauma  

Page 66: Semper Ubi Sub Ubi - Things They Don't Teach You In School

@jschauma  https://xkcd.com/1597/

Page 67: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Fallacies  of  distributed  compuIng:  

@jschauma  

 •         The  network  is  reliable.  •         Latency  is  zero.  •         Bandwidth  is  infinite.  •         The  network  is  secure.  •         Topology  doesn't  change.  •         There  is  one  administrator.  •         Transport  cost  is  zero.  •         The  network  is  homogeneous.  

Page 68: Semper Ubi Sub Ubi - Things They Don't Teach You In School

The  internet  is  awesome.    

You  should  know  how  it  works.  

@jschauma  

Page 69: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Understand  the  DNS.    

(Don’t  monkey  around  with  /etc/hosts.)  

@jschauma  

Page 70: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Know  tcpdump(1).    

Be  able  to  read  a  pcap(3)  file.  

@jschauma  

Page 71: Semper Ubi Sub Ubi - Things They Don't Teach You In School

@jschauma  

Understand  the  OSI  stack.  

Page 72: Semper Ubi Sub Ubi - Things They Don't Teach You In School

The  internet  is  awesome.    

You  can  help  keep  it  that  way.  You  can  help  make  it  awesomer.  

@jschauma  

Page 73: Semper Ubi Sub Ubi - Things They Don't Teach You In School

The  internet  is  awesome.    

You  should  help  keep  it  that  way.  You  should  help  make  it  awesomer.  

@jschauma  

Page 74: Semper Ubi Sub Ubi - Things They Don't Teach You In School

@jschauma  

Understand  the  OSI  stack.  

Page 75: Semper Ubi Sub Ubi - Things They Don't Teach You In School

Don’t  do  drugs.  Use  an  ad-­‐blocker.  Stay  in  school.  Disable  Flash.  

Anonymity  is  important.  Yes  means  yes.  

Don’t  get  phished.  Black  lives  maEer.  

Use  a  password  manager.  Wear  sunscreen.  

@jschauma  


Recommended