semper ubi sub ubi - things they don't teach you in school
TRANSCRIPT
![Page 1: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/2.jpg)
![Page 3: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/3.jpg)
Know your Unknowns.
@jschauma
![Page 4: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/4.jpg)
@jschauma
![Page 5: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/5.jpg)
@jschauma
![Page 6: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/6.jpg)
@jschauma
![Page 7: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/7.jpg)
Computering, at its heart, is a people problem.
@jschauma
![Page 8: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/8.jpg)
“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](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/9.jpg)
@jschauma
![Page 10: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/10.jpg)
You need pracIcal programming experience.
@jschauma
![Page 11: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/12.jpg)
Prototype… then toss it. (Beware Second System Syndrome.)
@jschauma
![Page 13: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/13.jpg)
@jschauma
![Page 14: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/14.jpg)
Perfect is the enemy of the Good.
@jschauma
![Page 15: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/17.jpg)
Simplify.
@jschauma
![Page 18: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/18.jpg)
“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](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/19.jpg)
Know Unix. Embrace the command-‐line.
@jschauma
![Page 20: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/20.jpg)
Know your $EDITOR.
@jschauma
![Page 21: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/23.jpg)
Use boring technology.
@jschauma
![Page 24: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/24.jpg)
Use boring technology.
Write boring code.
@jschauma
![Page 25: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/25.jpg)
$ echo ‘import this’ | python
@jschauma
![Page 26: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/26.jpg)
Readability counts.
@jschauma
![Page 27: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/27.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/28.jpg)
Readability counts.
You are not charged per character.
@jschauma
![Page 29: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/29.jpg)
(Most) comments considered harmful.
@jschauma
![Page 30: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/30.jpg)
@jschauma
// increment x by 2 x = x + 2;
![Page 31: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/31.jpg)
@jschauma
// increment x by 2 x = x + 4;
![Page 32: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/32.jpg)
(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](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/33.jpg)
Write The Fine Manual
@jschauma
![Page 34: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/34.jpg)
@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](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/35.jpg)
Write The Fine Test Suite
@jschauma
![Page 36: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/36.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/37.jpg)
Learn to write a bug report.
@jschauma
![Page 38: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/38.jpg)
Try to understand what you’re doing.
@jschauma
![Page 39: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/39.jpg)
@jschauma
![Page 40: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/40.jpg)
Sufficiently advanced cheaIng is indisInguishable from learning.
@jschauma
![Page 41: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/41.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/42.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/43.jpg)
The internet does not forget. Anything. Ever.
@jschauma
![Page 44: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/44.jpg)
Other people are… …also people.
@jschauma
![Page 45: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/45.jpg)
@jschauma
![Page 46: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/46.jpg)
Own your mistakes.
@jschauma
![Page 47: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/47.jpg)
You break it, you own it.
@jschauma
![Page 48: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/48.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/49.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/50.jpg)
ParIcipate in Open Source.
@jschauma
![Page 51: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/51.jpg)
Mind your filter bubbles.
@jschauma
![Page 52: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/52.jpg)
Seek diversity.
@jschauma
![Page 53: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/53.jpg)
GitHub is (not) your resume.
@jschauma
![Page 54: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/54.jpg)
Interviewing is bullshit.
@jschauma
![Page 55: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/55.jpg)
Salary negoIaIon is bullshit.
@jschauma
![Page 56: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/56.jpg)
Salary negoIaIon is bullshit.
Know what you’re worth.
@jschauma
![Page 57: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/57.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/58.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/59.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/60.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/61.jpg)
“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](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/62.jpg)
Validate all your input!
@jschauma whitelist > blacklist
![Page 63: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/63.jpg)
“Security” can’t be added.
@jschauma
![Page 64: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/64.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/65.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/66.jpg)
@jschauma https://xkcd.com/1597/
![Page 67: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/67.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/68.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/69.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/70.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/71.jpg)
@jschauma
Understand the OSI stack.
![Page 72: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/72.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/73.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/74.jpg)
@jschauma
Understand the OSI stack.
![Page 75: Semper Ubi Sub Ubi - Things They Don't Teach You In School](https://reader034.vdocuments.net/reader034/viewer/2022042517/589d52741a28abef688b46f7/html5/thumbnails/75.jpg)
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