Live data from Hacker News

The Missing Semester of Your CS Education – Revised for 2026

missing.csail.mit.edu

121–130 of 139 posts

Re: The Missing Semester of Your CS Education – Revised for 2026

#121

Earlier quoted context omitted.

I think I would do it more like: find /bin/ /usr/bin/ /sbin/ /usr/sbin/ -executable -type f -exec whatis "$(basename {})" \; | sort -u > commands.txt

You would need to make those double-quotes into single-quotes. Double-quotes will interpolate the $() immediately, running basename before find runs. Single-quotes will not interpolate the $(), so the whole string gets passed to find for it to execute each time

It worked when I tried it. Upon investigation, this is because `basename {}` returns `{}`, which is interpolated; thus the exec just uses the full file paths; but as it turns out, `whatis` works fine with those paths.

It won't work with single quotes because `find` won't do that interpolation when it processes the `-exec` arguments; `whatis` ends up receiving a string with a literal dollar sign etc.

I think the kind of interpolation I originally had in mind isn't possible with `find`. Thankfully it apparently isn't needed (at least with my local `whatis`).

Re: The Missing Semester of Your CS Education – Revised for 2026

#122

Earlier quoted context omitted.

I prefer comments like "I'm sorry about this, I know it's ugly but I'm in a rush and it's the quickest way to get it working"

As long as there's a "TODO" tag in the comment to easily search for, then I prefer those comments as well.

I prefer all "TODO" comments to be well-defined and have a specific ticket number attached to them to ensure they are tracked.

I don't see any harm to the occasional "I'm sorry" or humorous comment

Re: The Missing Semester of Your CS Education – Revised for 2026

#123
post #27

Earlier quoted context omitted.

If most people are not using a tool properly, it is not their fault; it is the tool's fault. Git is better than what came before, and it might be the best at what it does, but that does not mean that it is good. - The interface is unintuitive. - Jargon is everywhere. - Feature discoverability is bad. - Once something goes wrong, it is often more difficult to recover. If you're not familiar enough with Git to get your…

Right on. Git is good at what it does, but its CLI is too low-level. It feels more like an assembly language than an end-user language, and a haphazard one at that. There are wrappers that make it much more approachable. IntelliJ’s Git frontend, for example, is pretty nice.

IntelliJ's Git frontend makes the Git command line look like a relic for people who would rather type "outlook forward email" than use a GUI. I was disappointed they gave up their attempt to make it a standalone app.

Re: The Missing Semester of Your CS Education – Revised for 2026

#124

Earlier quoted context omitted.

I prefer comments like "I'm sorry about this, I know it's ugly but I'm in a rush and it's the quickest way to get it working"

As long as there's a "TODO" tag in the comment to easily search for, then I prefer those comments as well.

The number of people I know who honor TODOs is pretty slim, but I find it does in fact help if you get people to stick their initials next to it. Over enough refactors a TODO can lose its meaning and author.

TODO (DKH) - This should handle negative numbers

can be helpful later if there's nothing in the requirements about negative numbers. Why do we need to handle negative numbers? Is it for some mystery feature? Performance? Security? What? Why?

'DKH' might recall what they were thinking if you prompt them.

We see what we want to see, and a TODO when we are in a hurry probably won't trigger much guilt or associated motivation to do something about it. Or at least, not as much as if we see our own initials in the TODO.

(Also handy when prepping a commit, since you might have left breadcrumbs in case you get interrupted, and then forget one or two of the tasks you still had outstanding afterward)

Re: The Missing Semester of Your CS Education – Revised for 2026

#125
post #122

Earlier quoted context omitted.

As long as there's a "TODO" tag in the comment to easily search for, then I prefer those comments as well.

I prefer all "TODO" comments to be well-defined and have a specific ticket number attached to them to ensure they are tracked. I don't see any harm to the occasional "I'm sorry" or humorous comment

My first team figured that out after a year or so. If it’s really TODO, it should either be addressed before the WIP feature is considered “completed”, or it needs to show up in our work tracking system. Otherwise it just fell through the cracks and would never be prioritized.

Re: The Missing Semester of Your CS Education – Revised for 2026

#126
I would remove the AI stuff entirely. At best it's not useful for students to learn about AI, at worst it's actively harmful (because they will rely on it and never learn). AI isn't yet to the point where it's actually a useful tool, so it doesn't make sense to devote learning time to it.

Re: The Missing Semester of Your CS Education – Revised for 2026

#127

Earlier quoted context omitted.

No it's not -- powerful CLIs with lots of features are made to be wrapped

Even as a CLI it’s not great. git checkout is extremely overloaded.

Not really. The basic entity of git is the commit and git checkout is meant to restore the working tree to the state when the commit has been created. It may act on the whole tree, a specific part and if no commit has been specified, it uses the index as the source. And with branches being just pointers to commits, it's quite easy to see where the range of options comes from.

Git has its model for version control and it's something that most tutorials don't explain. The CLI is giving you maximum control over this model. For daily operations, it's quite easy to wrap it in a much amenable interface.

Re: The Missing Semester of Your CS Education – Revised for 2026

#128
post #104

Earlier quoted context omitted.

Git is much easier to master than the piano. I played piano for years and can only just play two-handed melodies if they aren't well-aligned. I've read a few blog posts and half a book on git, and I don't remember the last time I had issues with it. I also don't recall a junior ever having trouble uploading files with git. Unless they're in an interactive rebase, which wouldn't happen your first time trying out git.

There’s inherent beauty in mastering the piano. It’s worth it to spend time practicing. Git is just a means to an end. Heck, it’s usually a means to a means to an end: it is only a tool for version control of code, and the code itself is just a means to education or running the actual business.

It can be that. In the same vein, playing a guitar can just be the means to an end. Some people play music to get paid. Do you think playing your 60th wedding gig feels beautiful or meaningful?

I personally think git is a marvel of engineering. Hackers are people who are capable of seeing beauty in systems. We're at least nominally on "hacker news", even though a better name might be "VC news".

Re: The Missing Semester of Your CS Education – Revised for 2026

#129
post #27

Earlier quoted context omitted.

If most people are not using a tool properly, it is not their fault; it is the tool's fault. Git is better than what came before, and it might be the best at what it does, but that does not mean that it is good. - The interface is unintuitive. - Jargon is everywhere. - Feature discoverability is bad. - Once something goes wrong, it is often more difficult to recover. If you're not familiar enough with Git to get your…

Git has poor design because it forces users to learn its model of things rather than meeting users where they are . There’s way too many leaky abstractions that pop out as soon as you stray from the happy path, and you might not even know you’re straying when you do it. Instead, the complexity of your mental model should scale with the complexity of the thing you’re trying to do. Writing a “hello world” in Java does…

> Git has poor design because it forces users to learn its model of things rather than meeting users where they are.

If the users are unwilling to put even a minimum of effort and thought into it, that is pretty much impossible. I see that as the main problem.

Re: The Missing Semester of Your CS Education – Revised for 2026

#130
post #57

Great to see a chapter on version control. It is such a shame that almost no CS program teaches proper version control. VCSs and the commit history can be such a tremendously valuable tool when used correctly. git bisect/blame/revert/rebase/… become so much less useful when VC is treated as a chore and afterthought, and basically amounts to: “Feature is done, my work is complete, just do `git commit -am "changes"` an…

"Almost no CS program teaches proper version control" This is just false. In the UK, you would learn version control in the first week, then submit all work through version control for the whole course. I find it hard to believe that Americans just don't use version control at school. It doesn't make any sense.

> It doesn't make any sense.

Exactly. But that is sadly the state of things.

Post reply on HN