Live data from Hacker News

The Missing Semester of Your CS Education (2020)

missing.csail.mit.edu

181–190 of 347 posts

Re: The Missing Semester of Your CS Education (2020)

#181
post #2

The content taught here is the highest payout thing you can learn, in my opinion. Certainly more important than actually writing code or learning algos. What this content covers should unlock iteration speed, which is the single greatest lever in learning and growing faster (on a computer). Thus it gives you more cycles to go back to improving your code, experimenting with algos, etc. Probably also highly correlated…

I have this feeling that the kids who appear better at uni are the ones who happened to pick up certain not-quite-programming skills before they started. Basics of networking, how installation of programs happens, how to use the command line, that kind of thing. I looked over her shoulder as my wife was doing a CS degree, and I realised there's a bunch of these little things that make life a lot easier if you know th…

Yeah, I remember taking this machine architecture course with a friend who was getting a journalism degree and had never written any code or done anything more technical than playing StarCraft brood war before college.

One of the later assignments they gave us this "bomb" executable and we had to use gdb to pick it apart and modify the instructions or find ROP gadgets or something to make the code not "explode". He was my partner in the assignment and I spent most of the time trying to teach him what I was doing in gdb. And trying to express that, sincerely, he wasn't stupid GDB is just really hard and he didn't have the background knowledge to make learning it easier.

Re: The Missing Semester of Your CS Education (2020)

#182

I love vim, it's great to know how to navigate it, but I have met very few people who use it professionally. I'd love to hear others' experiences, there.

70% of my coworkers use vi but most of us are in our 40's. About 20% use emacs and the other 10% use some other usually GUI text editor.

Re: The Missing Semester of Your CS Education (2020)

#183
post #2

The content taught here is the highest payout thing you can learn, in my opinion. Certainly more important than actually writing code or learning algos. What this content covers should unlock iteration speed, which is the single greatest lever in learning and growing faster (on a computer). Thus it gives you more cycles to go back to improving your code, experimenting with algos, etc. Probably also highly correlated…

I sat with a talented developer whilst we wrestled with a threading issue this past week. I wanted to inspect the value of a variable within a method during execution and asked him to set a breakpoint. He didn't know how to do that in the IDE, which he'd been using for over a year. Debugging is indeed a skill which needs learning.

I learned this stuff without having people show me.

Re: The Missing Semester of Your CS Education (2020)

#184

I have tried in vain to get this implemented at our uni. I can say a few things I find interesting: - Students used to get this stuff but no longer do, for example all workstations used to be unix, so when you left, you "knew" "unix" (shell, vim, etc) - Due to things like ABET, classes are crammed with need-to-know-for-accreditation info so, well, some items need to go by the wayside (many are in the MIT list) - Ther…

> I do not know many others who implemented something like that.

the school I did in france, ENSEIRB-MATMECA, started with three weeks where you only learn shell commands, emacs, LaTeX etc before doing anything else. Here are the slides (in french sorry, although they all have useful reference cards at the end):

- intro: http://mfaverge.vvv.enseirb-matmeca.fr/wordpress/wp-content/...

- unix, shell: https://cours-mf.gitlabpages.inria.fr/if104/docs/01-unix.pdf

- emacs: https://cours-mf.gitlabpages.inria.fr/if104/docs/02-emacs.pd...

- latex: https://mfaverge.vvv.enseirb-matmeca.fr/wordpress/wp-content...

- "advanced" shell scripting: https://cours-mf.gitlabpages.inria.fr/if104/docs/05-scripts....

Re: The Missing Semester of Your CS Education (2020)

#185

Kind of ironic that this course is from MIT and it teaches Vim without even mentioning Emacs. I get that they chose Vim because it's more popular, but it feels as weird as taking a course from Apple that teaches you how to use Windows.

I think it's because it's a course focused on Linux and not Emacs. Different operating systems.

Re: The Missing Semester of Your CS Education (2020)

#186

Hmm, my education must have been better than I give it credit: I definitely was taught all of these concepts at uni.

I don't think it's so much a case of better or worse--but rather that some schools see a place in the CS curriculum for a Computers, Programming, and Tools 101 course and others do not--figuring you know a lot of this stuff or can pick it up.

Re: The Missing Semester of Your CS Education (2020)

#187
post #24

It's amazing how many CS programs fail to teach you even the basic tools of being a software developer. Yes, yes, CS is not programming, but there is a non-trivial amount of CS that is indeed programming, and that is generally what people do with their CS degrees, so it'd make sense for a CS program to teach the basics. Maybe even more than the basics.

CS programs prepare you first and foremost for a PhD in CS. They're great for learning the theory and fundamentals, but teach practical Software Engineering skills as a side effect.

Ironically, as a CS PhD student I spend an enormous amount of my time on the subject matter listed. There are very few research areas in which PhD students can get away with ignorance of the command line, shell environments, build systems, version control, debugging, etc.

A common scenario is that I want to reproduce and extend some earlier research, and there's a GitHub repository for it that hasn't been touched for the last seven years, which was forked from an even older repository that some grad student hastily pieced together. And I need to run components of it on our high-performance computing cluster, where I don't have sudo privileges. So it's whole lot of moving things around between VMs and Docker containers, figuring out what to do about ancient versions of packages and libraries that are dependencies (especially everything that's still written for Python 2.7); either refactoring things to update it all, because I want to take advantage of newer functionality, or setting up some isolated environment with older releases of everything built from source.

Re: The Missing Semester of Your CS Education (2020)

#188

Earlier quoted context omitted.

I had a guitar tutor once and I asked him if I honestly had a chance to get into the Royal College of Music. He said absolutely, no problem, as long as you practice for at least two hours per day. Every day. For the next ten years... High-level CS is the same and I don't see any reason why it should be different. There is just no, or very little, time to teach introductory programming classes at most universities.

Am I unique in not romanticizing computer science? I see it more as a trade. There can certainly be some beauty to it. I’m sure coal miners hold some of their own in special regard too.

Coal miners also do stuff like massively die in gas explosions and are kind of a poster child for labour exploitation. Wouldn't it be crazy if this line of work held the same prestige to hold in special regard?

Re: The Missing Semester of Your CS Education (2020)

#189
Could have done with a small guide to how the filesystem works and what XDG dirs are, and stuff like that. A lot of newbies trip on these while figuring out how configuring anything on linux works, because it's a very alien concept if you're moving from windows.

Re: The Missing Semester of Your CS Education (2020)

#190

I have tried in vain to get this implemented at our uni. I can say a few things I find interesting: - Students used to get this stuff but no longer do, for example all workstations used to be unix, so when you left, you "knew" "unix" (shell, vim, etc) - Due to things like ABET, classes are crammed with need-to-know-for-accreditation info so, well, some items need to go by the wayside (many are in the MIT list) - Ther…

This "class" was run by our CS library computer lab and was something your TA might push you to attend, but not part of the formal curriculum. That worked around some of the admin nonsense but still got help to motivated students.
Post reply on HN