Live data from Hacker News

The Missing Semester of Your CS Education (2020)

missing.csail.mit.edu

131–140 of 347 posts

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

#132

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.

Meh. I use the right tool for the job, and most of the time, a simple print statement put in the right place beats any debugger. Certainly the debugger has helped me in the past, but maybe one or two times only. Besides, putting a print statement costs nothing, and one knows exactly how to do so. Debuggers vary wildly: terminal, IDEs, etc.

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

#133

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've given up on Vim a long time ago. However, every IDE or editor or notebook tool I use that has Vim keystrokes I enable that and use that. You have to let the Vim purist in you die, it's not a fight that can be won. Settle for like 80% of what you used to be able to do in Vim and call it a day.

I don't understand. Why do you need to do this? What am I settling for? I use vim daily and want for nothing.

Vim becomes a state of mind, a model for editing that is really empowering. I can translate any thought to code by doing a little dance on my keyboard. My mind is freed by this expression.

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

#134

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.

Well. a big part is curiosity, and apparently he isn’t curious not interested in what his tools do. I used to read every help file on windows / visual c++, the FreeBSD manual, plowed through the file system and tested this it. Just because I was curious

There’s limited time. One cannot vey curious about all the stuff related to programming, so we must be selective.

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

#135
post #99

I personally don't like the undertone of the class (tho very grateful that this material exists!!!) - this idea that universities are failing their students by not teaching them necessary material. I think a better phrasing is that students are failing themselves by not learning the material. I've personally never considered it the responsibility of my university to educate me - some of the classes are certainly usef…

You don't consider paying tens of thousands of dollars as creating responsibility to educate? Of course, students need to be active in the learning process. But in my experience, it is more likely that professors and departments are terrible at educating than it is for students to not be motivated to learn.

A degree takes already 3 or 4 years. In order to incorporate this “missing semester” universities would have to either a) remove existing material to make space for it, or b) extend the degree one more semester.

I don’t think universities should remove existing material in general to incorporate “bash 101”. Mainly because learning bash is easy and one can learn it by oneself without a professor. Extending the degree one more semester doesn’t make much sense either.

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

#136

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…

Yeah I pretty much agree with this comment. But I think my take on whether universities should be training for academia or for industry is "why not both?". I think these are just different valid tracks. There is a lot of education that overlaps between "computer science researcher academic" and "software engineering professional with strong fundamentals". So that should be the required set of credits. But then there are different tracks toward where you want to take your degree. Those sound like electives. Academics should learn more about research techniques and publishing and presenting at academic conferences, etc. And those on the professional track should learn more about tools and techniques used in industry.

There's no conflict or contradiction here, just different strokes for different folks.

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

#137
At my university they thought me: tons of mathematics, electronics, automata theory, compilers, and a bunch of stuff that “I don’t use on my day to day”. They didn’t teach me debuggers, profiling, or bash.

I’m glad they did that. Because I ended up learning bash, profiling, debugging, etc. all by myself. I would have never learned by myself in my free time the pumping lemma, for instance. So, all in all, I’m grateful my uni didn’t teach me “useful” stuff.

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

#138
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…

There's definitely a thing with CS that, at least at more elite schools, there's an assumption that you more or less know how to program--at least a language like Python--and you also more or less know your way around a computer well enough to use it as a tool for programming. (Or you pick it up quickly on the side along with your full course load.)

This is more or less unique among college majors outside of some arts disciplines like music. Yes, there's a requirement for some secondary school algebra and some basic science but an electrical engineering major could basically have never assembled a circuit before attending college and probably wouldn't be at any particular disadvantage.

And, per the original post, MIT is certainly one of the institutions that does this. The 6.001 MOOC(s)--basically intro to algorithms--teaches a bit of Python on the side but clearly you're intended to mostly learn it on your own.

(By contrast, back in the day, I took a FORTRAN course as part of a non-CS engineering major. The assumption was that you had never touched a computer before.)

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

#140

I personally don't like the undertone of the class (tho very grateful that this material exists!!!) - this idea that universities are failing their students by not teaching them necessary material. I think a better phrasing is that students are failing themselves by not learning the material. I've personally never considered it the responsibility of my university to educate me - some of the classes are certainly usef…

I think you’re conflating two different things: universities selecting and presenting a syllabus needed to earn a certain degree, and students actually learning the material.

The latter is the solely the responsibility of each student, but I don’t understand why the former would be. Some of the content in this course strikes me as unknown unknowns for new programmers. Why would they be to blame if no one told them to learn a particular skill?

Post reply on HN