Live data from Hacker News

The Missing Semester of Your CS Education (2020)

missing.csail.mit.edu

51–60 of 347 posts

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

#51
post #39

We're teaching a course at ETH Zurich [1] where --besides the actual payload of solving partial differential equations (PDEs) on GPUs-- we put a lot of emphasis on "tools". Thus students learn how to use git and submit their homework via pushing to a repo of theirs on github, we teach testing and continuous integration, writing documentation, running code on a cluster, etc. In their final project, again submitted as…

As an alumni, thanks a lot for doing this. Looking back, all the things that I've learned in just the first few weeks in the industry made writing code so much more productive - if only someone had shown some of it already during some early semester, even just during some assistant teaching hour, it would have saved so many hours.

I remember specifically when one of the exercises for some compiler lecture contained unit tests the code had to satisfy, and I was like, wow, why didn't I already knew about this during algorithm classes earlier where I was fumbling around with some diff-tools to check my output. Let alone proper version control, now that would have been a blessing.

In hindsight, it's a bit embarrassing that I didn't bother to, well, just google for it, but neither did my colleagues - I guess we were so busy with exercises and preparing for exams that we just didn't have the time to think further than that.

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

#52

Earlier quoted context omitted.

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.

A talented developer who doesn't know how to set a breakpoint sounds contradictory to me.

As an untalented developer, I used to make heavy use of debuggers, and knew them well. Currently, as a still untalented developer, I've fallen out of the habit of using them and don't know how to for my current toolchain.

Neither situation was at all related to my talent (or lack thereof).

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

#53
At university, my co-founders and I took over teaching a few modules. We were eager to find a larger pool of students that had useful skills for a company, rather than those versed in just theoretical knowledge and Java.

To provide the students with the skills they'd need in their career, we taught them how to use real world tooling: how to make a website from a design, how to use Git, how to write backend code, identifying security risks, how to use editors that weren't JEdit or Netbeans, how to use PhoneGap, how to deploy to a server, how to use Unix.

As a result of our training, we managed to get some great students on-board. No longer were we surrounded by students who could make some ServiceFactoryBean, but instead ones who were fully capable of making real things in a real company.

It's awesome to see that MIT has a similar programme - covering all the skills that we actually did teach. Too much of university is spent theorising and not spent making students employable.

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

#54

I was blessed with a badass AIX teacher. Thank you Coleman University for allowing hackers and AIX in your facility!

Is there anything about AIX that differentiates it or makes it exceptional over other UNIXes?

Not saying you're insinuating that. Just curious about AIX.

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

#55

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.

I can't edit text files without vim. I use modern IDEs (IntelliJ) and the first thing I do when I install them is to install Vim plugin.

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

#56

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.

I use it (well neovim) exclusively now because I like it. I have in the past used Emacs, IntelliJ, and VSCode. All work, the choice between them doesn't matter a jot, and that choice has never had the slightest influence on my competence or so-called 'productivity'.

More useless words have been spent over editor choice than .. "how good is Linux?" or "how terrible is Electron!" or any one of the handful of sometimes entertaining and always vacuous areas of argument software people frequent over their peccadilloes.

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

#59

Lots of laudatory comments here about this being essential but missing teaching but I have a different take. The content looks good, nothing wrong with teaching these things. But these things can be and are learned on the job fairly quickly for anyone interested enough in the field and with enough aptitude. In fact, I would say these things can be learned on your own time as a side effect of being interested in compu…

I don't think you're wrong that you can learn this stuff on the job, but a "primer" kind of class like this which surveys several useful tools helps new engineers develop pattern matching skills around how to continue self-teaching these kinds of things. Shell/scripty/vim-ey,linux-ey stuff can be really challenging to learn how to learn for some people.

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

#60

Earlier quoted context omitted.

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.

A talented developer who doesn't know how to set a breakpoint sounds contradictory to me.

You don’t need breakpoints all the time though. If you’re familiar with the code (or just “talented”), you might have an intuition for what the problem is and it’s faster to just think through it (and maybe write a few quick prints) instead of interrupting your train of thought setting breakpoints, clicking continue, waiting for the IDE to freaking load the debugging session (cough Visual Studio), rerunning the test, etc.

Besides, every IDE has a different way to debug, so they might just not be familiar with the interface. I can’t tell you exactly how to debug in VSCode even though I’ve used it the most. I’ve had to run a debugger only a handful of times in the past couple of years and it’s always for codebases that are more tangled (e.g. .NET where there’s interfaces everywhere).

Post reply on HN