
Falsehoods CS Students (Still) Believe Upon Graduating - lolptdr
https://www.netmeister.org/blog/cs-falsehoods.html
======
lacker
Bah, sprinkling printf statements is a quality debugging technique. Sometimes
everything really is a nail.

~~~
est31
It seems to me that there are two schools of thought: one school which uses
debuggers, the other school which uses printf statements and equivalents.
Neither schools are absolutely false.

~~~
irrational
A third school that does both, based on the circumstances.

~~~
kevvok
Exactly! I’ve dealt with multiple real-time embedded platforms that have a log
output channel that is waaay more convenient to use via printfs than hooking
up a whole debug apparatus.

------
mden
Great list, two nits.

"Open Source means it has fewer bugs and is more secure."

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.

"Being able to program is the most important aspect of being a good software
engineer."

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.

~~~
cperciva
_I find it true when you only consider the higher quality open source
projects, e.g. say the top 10k open source projects._

How are you defining "top" here? The _best quality_ open source projects are
not the _most widely used_ projects -- if anything, I find that the
correlation tends to be negative.

------
mc3
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.

~~~
rhizome
You wouldn't know it from interviews, which is why the falsehood persists.

------
alexbanks
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.

------
floki999
Great list. I would add: ‘Coding and software development are the same thing’

------
hybrids
> Command-line tools should print colorized output.

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
[https://unix.stackexchange.com/a/19320](https://unix.stackexchange.com/a/19320)

> They will use lots of math in their career.

The validity of this is highly domain-specific.

> 'git' and 'GitHub' are synonymous.

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.

> Sprinkling printf statements is an efficient debugging technique.

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.

> Compiler warnings can be ignored, as they'd be errors otherwise.

I smell a Golang programmer...

> Using lambda in Python is a good idea because it shows others you have a CS
> degree and understand the "Lambda Calculus".

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.

>Object-oriented programming is the best and most common programming paradigm.

>Using a custom written Vector class makes your program object-oriented.

I feel I should add my personal falsehood: _" State objects with methods means
your program is object-oriented."_

------
chc-sc
CS Students think Steve Jobs was successful _because_ he was a jerk?

~~~
maniflames
Unfortunately I really know people in my class who believe that if people are
in fear of getting fired and missing deadlines they will be more productive :/

~~~
rhizome
That's just MBA canon.

------
oldgradstudent
> 6\. CS professors know how to program.

> 7\. CS professors know how to use a computer / mobile device or how the
> internet works.

I'm not entirely sure how exposure to CS professors could give anyone that
impression.

Reminds me how a CS professor proudly showed me how he managed to send an
email _with an attachment_.

~~~
labster
Now if he could show you how to send an email with PGP, that would be
impressive.

~~~
oldgradstudent
For him, sending an email with an attachment was very impressive.

------
Enginerrrd
Alright, this one eludes me:

>Object-oriented programming is the best and most common programming paradigm.

------
cryptozeus
Sigh... “10. Compiler warnings can be ignored, as they'd be errors otherwise.“

------
ConcernedCoder
If commenting code is bad, then I don't want to be good...

~~~
cjfd
The article talks about 'lots of comments'. The occasional comment can be
helpful but many things are just as clearly expressed in code as in comments.
E.g., if you write a numerical algorithm you should probably either explain it
or add a reference. But if you start to see things like

    
    
        DatabaseConnection conn; // Connection to the database
    

things have gotten very badly out of hand.

------
tintintin
One more: "If you're coding on Windows, you're doing it wrong."

------
muststopmyths
Reads more like author's pet peeves than anything supported by data.

------
ychen306
> Sprinkling printf statements is an efficient debugging technique.

Debatable.

~~~
saagarjha
Wrong thread?

~~~
dang
Good catch; we've moved it from
[https://news.ycombinator.com/item?id=21481931](https://news.ycombinator.com/item?id=21481931).
Thanks!

------
ossworkerrights
Here is another one: Python is great for web development.

~~~
yjftsjthsd-h
eeeeh, that sounds more like tribalism; there's plenty of good webapps written
in Python... and Ruby, and Go, and PHP, and Perl, and any number of other
languages, many of which might be unexpected but work well for the people
using them.

~~~
ossworkerrights
That is correct, but some just tend to religiously adopt Python. Those who
understand that the best tool for the task at hand is the best tool for the
task at hand are fine.

