, 41 tweets, 4 min read
Falsehoods CS Students (Still) Believe Upon Graduating

An incomplete 🧵based on experience and observation:
1. They "know" "C/C++”.

2. Java is a reasonable choice for almost all programming tasks.
3. Programming == Computer Science.

4. People with a CS degree are good programmers.

5. People with a CS degree know how to program.
6. CS professors know how to program.

7. CS professors know how to use a computer / mobile device or how the internet works.
8. You should always add lots of comments to your code.

9. Sprinkling printf statements is an efficient debugging technique.

10. Compiler warnings can be ignored, as they'd be errors otherwise.
11. If it builds on your laptop, it will build on everybody else's.

12. Answers posted to StackOverflow are always correct.

13. If the code is on the internet, that means you can use it.
14. Free software is free.

15. Open Source means it has fewer bugs and is more secure.
16. 'git' and 'GitHub' are synonymous.

17. 'Unix' and 'Linux' are synonymous.

18. 'Email' and 'Gmail' are synonymous.

19. 'Bash' and 'sh' are synonymous.
20. AWS and 'cloud services' are synonymous.

21. 'Privacy' and 'Confidentiality’ are synonymous.

22. 'Encryption' and 'Security' are synonymous.
23. Smart people write clever code.

24. Productive coders write lots of code.
25. Being able to program is the most important aspect of being a good software engineer.

26. Having a CS degree is a necessary and sufficient condition for being a good software engineer.
27. Real Programmers(TM) use neon-green on black terminals.

28. Command-line tools should print colorized output.
29. TED talks are Science(TM) and the information presented is accurate.

30. Software with version numbers ending in '.0' are buggy and you should wait until the next release.

31. Parsing timestamps and dates is trivial. (And all the other Falsehoods about Time.)
32. They know how to validate an email address.

33. They know how to validate a hostname.

34. They know how to validate an IP address.

35. They know how to parse HTML.
36. They are good at multi-tasking, as is evident from their ability to take notes in class and check Facebook at the same time.

37. They understand team work based on their senior design project.
38. Employers care about which courses they took.

39. Sure, they could go on to get a PhD, but first they'll make some money; they can always come back later.
40. The network is reliable. (And all the other Fallacies of Distributed Computing.)

41. Third-party services are reliable.

42. AWS is reliable.
43. Ok, but it is when you have redundancy in multiple geographic regions.
44. Funny names are funny, you can always change them later.

45. Variable names should be as short as possible; vowels cost extra.
46. I/O efficiency increases linearly with the size of the buffer you use to read data into.

47. You can read the entire file into memory.
48. You can always write to the current working directory.

49. You can always write to /tmp.

50. The error message 'No space left on device.' means you are out of disk space.

51. Ok, but in general, using temporary files is easy and risk free.
52. After a fork(2), the parent always executes first.

53. malloc(3) always returns a valid pointer.

54. 'main' takes two arguments, argc and argv.
55. If you see a process with the same PID you saw previously, that means it's the same process.

56. If you get a permissions error, chmod 777.

57. "setuid" means the program has root privileges.
58. File deletion requires write permissions on the file.

59. Race conditions are only rarely triggered.
60. Object-oriented programming is the best and most common programming paradigm.

61. Using a custom written Vector class makes your program object-oriented.
62. Dropbox is a suitable backup solution.

63. They can't be hacked or phished because they understand computers.

64. They understand computers.
65. Most of the important lessons they need to learn are behind them.

66. Spreadsheets and powerpoint are for business majors.

67. Programmers spend most of their time programming.
68. Elon Musk is a genius.

69. Zuck is a genius.

70. Steve Jobs was successful because, not in spite of being a jerk.
71. The ad-driven profit model is a necessary but reasonable trade-off to make the world a better place.

72. Software engineering is a meritocracy, because computers do what you tell them to.

73. Technology and algorithms are neutral.
74. Success implies talent.

75. Failure implies fault.
76. HBO's "Silicon Valley" is satire, not a documentary.
77. Jokes about recursion are funny jokes about recursion.

78. The humanities requirements were a waste of time.

79. They will use lots of math in your career.
80. All traffic on the internet is either UDP or TCP.

81. DNS traffic always uses UDP.

82. ICMP is only used for ping and traceroute.
83. If Google uses it, then your company should use it.

84. If Facebook does it, then it's ok for your company to do it, too.
85. If it's younger than 5 years, it's a fad.

86. If it's older than 5 years, it's obsolete.
87. Using lambda in Python is a good idea because it shows others you have a CS degree and understand the "Lambda Calculus”.

88. Rewriting an algorithm to use Red-Black Trees is worth the time.
89. They will encounter Huffman coding at least once in their career after college.

90. Two people with a CS degree will have a very similar background and shared experience/knowledge.
91. Algorithmic complexity and O-notation are used all the time in the "real world”.

92. Algorithmic complexity and O-notation are never used in the "real world”.

93. Academia somehow is not the "real world".

94. There is a "real world".
95. Brooks's Law does not apply to them.

96. Conway's Law does not apply to them.

97.. Murphy's Law does not apply to them.
98. This could never happen.

99. Nobody would enter that sort of data.

100. This list is finite.
…to be continued.

This thread on a single page: netmeister.org/blog/cs-falseh…

✌️🎓
Missing some Tweet in this thread? You can try to force a refresh.

Enjoying this thread?

Keep Current with Jan Schaumann

Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!