I'm mostly amused by this -
> 6. CS professors know how to program.<p>Back in grad school, we had an Algorithms Professor who was my advisor & wrote several important papers. We also had a PL professor who mostly taught Lisp/C/C++ etc. One day PL professor fell ill. So Algo Prof was sent in as a substitute. So he tried to divert the class attention by going into algorithm detail instead of focusing on programming language theory. But homework was due next week, so students asked him about some C nuance. So Prof said I don't know, but I'll let you know by next class. Then he hurried back to his room & tried to read up on C but obviously couldn't make much headway. In those days we had Usenet & that was it. So the Prof goes on Usenet & clicks on comp.lang.c. In those days I used to fancy myself a C hacker & I hung around on newsgroups trying to help out newbies. So I see this frustrated question from a newbie "HOW TO OPEN FILE FROM C ???" and I click on it so I can help this poor miserable bastard. Turns out it is from my Professor! The footer had his entire credentials like PhD, list of papers published, teaching career etc. So everybody on comp.lang was mocking this idiot who had a PhD in CS but didn't know how to open a fucking file with C. I was so embarrassed I rushed into his office & demanded how he could make a fool of himself like that. "You could have just asked me about fopen, why did you post in public that too with your real name ??! " He was like I've never used all this newsgroup stuff I barely know how to telnet. This was my first post I thought they will help me but they are just heaping abuse.
I've always blamed Microsoft Outlook for the top posting nightmare that has become email standard.<p>I just use stock Apple mail client and always bottom post (and snip as appropriate) and I get so many non tech people who approach me in the hall and ask "how do you do your emails the way you do? can you show me?"<p>My narrative has always been that Gmail simply followed the trend that Microsoft's tools set in motion with their monopoly^H^H^H^H^H^Hy^H^Hpopularity amongst business users.<p>Of course, I'm not even sure how many modern/younger readers will understand why "^H". I'm getting too old for this.
I checked the original list [1] and it's a fun read; however the following is <i>absolutely true</i> in my experience:<p>> 30. Software with version numbers ending in '.0' are buggy and you should wait until the next release.<p>[1] <a href="https://www.netmeister.org/blog/cs-falsehoods.html" rel="nofollow">https://www.netmeister.org/blog/cs-falsehoods.html</a>
| 38. Employers care about which courses they took.<p>Dark side: Employers care about your technical interviewing ability and your GPA. Technical interviewing focuses on a subset of skills around certain algorithms and data structures. The courses most relevant to interviewing will spend at most a couple of weeks on the topics you need to know well.<p>Bright side: There's so much to know in CS that regardless of what courses you take, you'll likely have to (or want to) learn more on the job. So, in college, you want to focus more on learning-to-learn technical material. Also, certain CS courses contain so much outdated/irrelevant info that you can more efficiently learn all you need to know on the job or through your own projects.
> <i>8. You should always add lots of comments[0] to your code.</i><p>If I don't do this, when I come back to the code an hour later I have no idea what its supposed to do or why I wrote it. I'll also usually add an explanation, like "3 is bad number of args because..."<p>> <i>44. Funny names are funny, you can always change them later.</i><p>This one drives me crazy, I hate when people use something like "x" or "habberdasher" instead of something functional like "newspapers"<p>[0] <a href="https://twitter.com/jschauma/status/1044581775983276034" rel="nofollow">https://twitter.com/jschauma/status/1044581775983276034</a>
I like top posting+keeping the reply text. That way, if I get CC’d on a conversation in the middle, I have all the context I need instead of a cherry-picked selection of what someone in the reply chain thought was relevant.
From the original 100<p>> 54. 'main' takes two arguments, argc and argv.<p>Is this a myth because you are supposed to think of them as one argument?<p>Or because of non-standard extension that includes envp?<p>Or because of some other nitpick?<p>I feel I have a pretty solid understanding of how processes are started for C and I think the statement is true.
> 24. Productive coders write lots of code.<p>I wish I could convince my <i>employer</i> of the low truth-value of that statement.<p>(Instead, I make sure to have a reasonable number of easy large-code-volume tasks sitting in a backlog so that I never fall behind)
> 71. The ad-driven profit model is a necessary but reasonable trade-off to make the world a better place.<p>I was glad to read that amongst the rest.
There are people still complaining about top posting? Wow. All these CS grads who invented putting the high-signal new data first clearly need to get off your lawn.<p>This article makes me feel very old.
Discussions of the larger list:<p><a href="https://news.ycombinator.com/item?id=21501720" rel="nofollow">https://news.ycombinator.com/item?id=21501720</a><p><a href="https://news.ycombinator.com/item?id=21427563" rel="nofollow">https://news.ycombinator.com/item?id=21427563</a>
As far as classes go, if I’m interviewing someone fresh out of college (or current students looking for internships), it does make a difference what classes they took. That’s somewhat specific to what I do professionally though.<p>Pretty much anything I’d hire them for would involve some degree of systems programming and/or graphics. So, having one or more OS classes and/or graphics classes are significant. Of course if they are knowledgeable about those things by learning on their own, that’s great too, but that’s even less common.<p>Once someone’s no longer fresh out of college, education specifics become a lot less important, and the focus shifts to their career history. But for people without a prior history, there’s little else to go on. For example, if a particular internship or junior position involves graphics, it’ll make a big difference if the interviewee has some sort of introductory foundation of knowledge and won’t be starting from scratch. That could be a critical difference between two otherwise equal candidates.<p>TL;DR if you are a student with an interest in any interest in a specialty that you might want to pursue professionally, and there’s a course dedicated to that specialty, by all means take that course. Whether it’s graphics, or AI, or operating systems, or whatever. It could definitely help you get that first job or internship in that field. It sounds painfully obvious, but it must not be based on my personal experiences.
I've known younger programmers think the speed difference between ++i and i++ is enormous and that using the wrong one is the sign of an incompetent programmer. But they don't necessarily know why or agree which one was the good one.
I am clearly undereducated on some of these<p>> 21. 'Privacy' and 'Confidentiality' are synonymous.<p>> 50. The error message 'No space left on device.' means you are out of disk space.<p>> 54. 'main' takes two arguments, argc and argv.<p>> 62. Dropbox is a suitable backup solution.<p>> 69. Zuck is a genius.<p>> 76. HBO's "Silicon Valley" is satire, not a documentary.<p>> 77. Jokes about recursion are funny jokes about recursion.<p>> 94. There is a "real world".
> Sure, they could go on and get a PhD, but first they'll make some money; they can always come back later.<p>Yeah, you can totally trust yourself to not take on a bunch of financial obligations that would effectively preclude the possibility of taking on a PhD. Honest.
I was hoping that refreshing the page would highlight a different three. :)<p>Blaming gmail for top posting seems odd. I can't disagree. And I like quoted messages. That said exchange, and phones, seem just as culpable.
The original list has a few I’d argue with
>95. Brooks's Law has exceptions
However, the Wikipedia article linked has a subsection of exactly that — exceptions.
27. Real Programmers(TM) use neon-green on black terminals.<p>This caused a guffaw... because I have a large screen which has a full-screen emacs session... using green on black :-)
I always ask recent graduates about interesting courses they took. Not so much to meet some kind of criteria, but to start a conversation about something in CS that interests them. Helps to see how passionate they are about their field.
The gap will be even larger, more low code UI and FaaS are going to make hiring a lot harder.<p>I think we don't spend enough time on socket level programming and concurrency.<p>I don't know how many Java devs are still writing blocking IO code..
On tge bigger 100 list, this one I kinda still believe. Mostly with games.<p>"Software with version numbers ending in '.0' are buggy and you should wait until the next release."
>Sprinkling printf statements is an efficient debugging technique.<p>I’m a senior engineer for one of the big tech companies. For some issues, printing (or writing to your logger) is certainly what you’ll try again and again and it can absolutely get you a far way or down to the root cause. It’s not the best strategy (Depending on what you’re dealing with) but it can often work.<p>Where it’s probably less fruitful most of the time is if you’re debugging some kind of distributed system that has just that one edge case which occurs < 1% of the time in production against real traffic, and it’s entirely your own damn fault for trying to reinvent distributed locking or something akin to your own algorithm that “handles” eventual strong consistency.
Oh my God… “Java is a reasonable choice” and “liberally sprinkling in your code with the print statements is an effective debugging technique“...<p>Oh the pain... my everyday pain...
From the original list:<p><pre><code> 66. Spreadsheets and powerpoint are for business majors.
</code></pre>
Spreadsheets <i>are</i> for business majors. Jupyter Notebooks are for programmers and pretty much anyone in STEM. Forcing a new programmer to use a spreadsheet as if it were a fundamental tool, the Lisp of business, is nonsense.