Readit News logoReadit News
vincent-manis · 2 months ago
I once proposed a similar course at a major CS department where I was a junior faculty member. The response was “This is a university, we don't do things like this.” Result: students who couldn't use a debugger, did not know how to use source control systems, did not know how or why to write a shell script. Mostly, students didn't know how to use online help and documentation, leading to superstitious behaviour when doing lab work: “My friend told me to do this, I don't know why it works.” Yes, some of this can come in other course, but it's the first part to be dropped if time runs out. Even though a course like this should count for few if any credits, it is essential: helping students get more out of their other courses should be what is done at a university.
commandersaki · 2 months ago
I agree this shouldn't be part of the curriculum and instead be extracurricular, which my understanding this course is at MIT.

This would be more appropriate to fit in a curriculum of a vocational IT course or bootcamp.

Meekro · 2 months ago
This feels like biblical Pharisees putting ritual cleanliness above practical concerns. The professors see themselves as pursuing higher intellectual goals, but the reality is most of their students want programming jobs, and need to be taught skills that will be essential to those jobs (like using git).
aleph_minus_one · 2 months ago
The purpose of universities is to prepare the student for academic research. If you really want a tertiary education that is more focused on practical considerations, at least in Germany there exist Fachhochschulen.

When you attend a university, but you at least want to have the option to get a programming job if you realize that academic research is not for you (which is in my opinion a very good idea considering the job prospect uncertainty in academia), you will of course additionally invest an insane amount of your free time (outside of your academic studies) to learn the necessary skills for this. If you don't do this, don't complain.

Discordian93 · 2 months ago
These skills are also useful for reproducible computational research
olooney · 2 months ago
I've been building up a similar list of topics that nearly every programmer will at some point be forced to learn against their will and which are not adequately covered in undergrad:

* Text file encodings, in particular Unicode, UTF-8, Mojibake

* Time: Time Zones, leap day / seconds, ISO-8601

* Locales, i18n, and local date/number formats

* IEEE 754 floats: NaN and inf, underflow, overflow, why 0.1 + 0.2 != 0.3, ±0, log1p

* Currencies, comma/dot formats, fixed-point decimal representations, and exchange rates

* Version strings, dependencies, semantic versioning, backwards compatibility

There's another list for web/REST developers, and one for data scientists, but this is the core set.

What'd I miss?

aleph_minus_one · 2 months ago
> * Currencies, [...], and exchange rates

Having colleagues for who this topic is "daily business", I really don't know what you intend to teach about this topic to computer science students:

It's either

- basically trivial: you use the provided exchange rate tables which can vary from day to day; you thus just have to thoroughly pay attention concerning the exchange rates of which day you have to use for a given calculation (but this is something the business people will tell you), the rest is like unit conversion, which you learn in school: If the "exchange rate" between yards and inches is 36 in/yd, then 2.5 yd = 2.5 yd * 36 in/yd = 90 in. Similarly, if the f/x rate that is to be used is 1.1612 USD/EUR, then 2.50 EUR = 2.5 EUR * 1.1612 USD/EUR = 2.903 USD (you now just need to ask the business people whether they want to use this raw result, or the result is to be rounded. In the latter case, they will tell you which kind of rounding they want).

- or it is something that you rather need to become an auditor (or a similar qualification) for.

olooney · 2 months ago
I just don't want them to design a data model with a single `numeric(10,2)` columns for "sale_price", or hard-code their PowerBI report to show the last five years of data using whatever the exchange rate was on the day they wrote the report. You're right - it could be covered in five minutes, but since we don't currently bother, every junior has to learn it the hard way...
shrikant · 2 months ago
CSV/Delimited file format management, for sure. (Reading, writing, choice of field/record delimiters, escaping, working with Excel's CSV quirks, etc.)
NetMageSCW · 2 months ago
In a wider scope, I’ve always thought there is an entire area on data processing and manipulation that is missing in CS (and CI) curricula. Not just CSV files, but XML, JSON, maybe some HL7, Pivot Tables, today Excel dynamic array formula, SQL and some functional style processing like data structure LINQ. Plus tools for doing processing like RE, grep, sed, maybe even AWK.
badc0ffee · 2 months ago
> IEEE 754 floats: NaN and inf, underflow, overflow, why 0.1 + 0.2 != 0.3, ±0, log1p

High school AP computer science had this in the 90s.

throwaway127482 · 2 months ago
This was covered in my computer architecture class, which was mandatory for my CS degree.
akoboldfrying · 2 months ago
Good list. Versioning is hugely important in practice. I'd add:

* Similar to encodings and locales: Variation in line endings, path separators, command line quoting, case sensitivity

* OS and language-specific package management

* CI/CD

* VMs, containers

* Licenses

tomhow · 2 months ago
Previously:

The Missing Semester of Your CS Education (2020) - https://news.ycombinator.com/item?id=41125733 - Aug 2024 (16 comments)

The Missing Semester of Your CS Education (2020) - https://news.ycombinator.com/item?id=34934216 - Feb 2023 (336 comments)

The Missing Semester of Your CS Education (2020) - https://news.ycombinator.com/item?id=27154577 - May 2021 (185 comments)

The Missing Semester of Your CS Education - https://news.ycombinator.com/item?id=22226380 - Feb 2020 (196 comments)

tjpnz · 2 months ago
Needs to be a module on how to play politics in big corporations. If you don't you'll spend your career watching incompetents breeze ahead of you while being consigned to keeping the ship from going under.
aleph_minus_one · 2 months ago
> Needs to be a module on how to play politics in big corporations.

It's a strange game. The only winning move is not to play.

lisbbb · 2 months ago
If your manager is from India and you are not, you don't have a prayer.

I liken my career to having a tiger by the tail. Also use the "knife fight" analogy.

Deleted Comment

linhns · 2 months ago
Loved it when I went through the course. Deserve an update now.
vismit2000 · 2 months ago
Agreed. I thoroughly went through this before joining my first job and that massively accelerated my onboarding. I have seen new hires spending lot of time picking up the tools on the job because of lacking fundamentals!

Deleted Comment

pjmlp · 2 months ago
As in some other comments, this is usually done in Software Engineering degrees.
kristianp · 2 months ago
One thing that struck me after doing two database courses was that I didn't know how to do an sql query involving dates. It's a practical thing you'll need pretty quickly in the workplace and date types tend to vary between dbms.
baconbrand · 2 months ago
I had this course. I can’t remember what they called it. But a very enthusiastic guy in shorts taught us how to use Linux, the command line, git, etc.
noosphr · 2 months ago
I went through this course in the astronomy department of all places.

This quote is very relevant for my career progression:

>Within a month of his arrival, Randy solved some trivial computer problems for one of the other grad students. A week later, the chairman of the astronomy department called him over and said, “So, you’re the UNIX guru.”

>At the time, Randy was still stupid enough to be flattered by this attention, when he should have recognized them as bone-chilling words. Three years later, he left the Astronomy Department without a degree, and with nothing to show for his labors except six hundred dollars in his bank account and a staggeringly comprehensive knowledge of UNIX.

lisbbb · 2 months ago
In the 90s, pretty much all the Math, Physics, EE, etc guys and gals all become software developers or generally worked in IT. There were no jobs in those other areas. Well, Intel was hiring CEs for awhile there. Now there are no dev jobs, either.
BubbleRings · 2 months ago
Ha. Reading the book again now. My all time favorite.

Neal Stephenson’s Cryptonomicon

A wonderful historical fiction novel with two main timelines, WW2 and the 1990’s, that includes the invention of the first computers, cool as heck battle scenes, adventure love sex music math statistics horror Churchill Turing Goering and wow the wrecked German submarine U553 crashing up and down on an exposed coral reef in the North Atlantic waves.

How do you benefit from reading someone’s mail without letting them know you are reading their mail?

sn9 · 2 months ago
I had a systems programming course that was (I would later realize) basically Kernighan and Pike's Unix Programming Environment followed by Oreilly's Learning Perl.