Great list, two nits.<p>"Open Source means it has fewer bugs and is more secure."<p>Maybe not in the absolute meaning of that expression, but I find it true when you only consider the higher quality open source projects, e.g. say the top 10k open source projects. The code that most professional software developers produce at big and small companies alike makes me in awe that their final products work as well as they do.<p>"Being able to program is the most important aspect of being a good software engineer."<p>Ehh, I would say this is true. Certainly not the only aspect but if you can't code then you just end up being someone playing office politics all day trying to hide that fact.
The biggest falsehood I believed is that companies care about writing quality code, and you will get to apply the rigor on the job that you learn at uni. On the whole, they don't really care, with some exceptions.
This is a great list. The arrogance of the recent grad is pretty astounding (in my experience) (myself included). I wish more time was spent on solving some of these misconceptions during university.
> Command-line tools should print colorized output.<p>Just add a "colorless" command line argument if you need to parse things without ASCII color codes. Better yet, detect when the program is outputting to a pipe and disable colorized output, e.g. like Git <a href="https://unix.stackexchange.com/a/19320" rel="nofollow">https://unix.stackexchange.com/a/19320</a><p>> They will use lots of math in their career.<p>The validity of this is highly domain-specific.<p>> 'git' and 'GitHub' are synonymous.<p>Aside from GitHub-a-likes (e.g. GitLab, BitBucket), what does this mean? I'm assuming that it's that you can use Git by its original use pattern (i.e. without a "single-source-of-truth-plus-issue-tracker-as-a-service" system and more as a "true" DVCS) but very few projects seem to really use it this way. They're important projects, sure (e.g. Linux) but they are few in number.<p>> Sprinkling printf statements is an efficient debugging technique.<p>This is...opinionated. As useful as GDB can be in a pinch I have often preferred to just output things to console. `printf` specifically is a bad example, as C doesn't have reflective abilities (out of the box, anyway), making debug-by-manual-print harder.<p>> Compiler warnings can be ignored, as they'd be errors otherwise.<p>I smell a Golang programmer...<p>> Using lambda in Python is a good idea because it shows others you have a CS degree and understand the "Lambda Calculus".<p>Kinda rolling my eyes at this one. Yes one can "be annoying" with FP-like concepts but lambdas can be very useful in a pinch.<p>>Object-oriented programming is the best and most common programming paradigm.<p>>Using a custom written Vector class makes your program object-oriented.<p>I feel I should add my personal falsehood: <i>"State objects with methods means your program is object-oriented."</i>
> 6. CS professors know how to program.<p>> 7. CS professors know how to use a computer / mobile device or how the internet works.<p>I'm not entirely sure how exposure to CS professors could give anyone that impression.<p>Reminds me how a CS professor proudly showed me how he managed to send an email <i>with an attachment</i>.