Live data from Hacker News

The Missing Semester of Your CS Education (2020)

missing.csail.mit.edu

111–120 of 347 posts

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

#111
post #99

Earlier quoted context omitted.

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.

There’s absolutely a responsibility to educate on the topics needed for the degree to be granted. This class is an adjacency to an EE or CS candidate. Are universities also failing their students by not offering/requiring a touch-typing class? I don’t think so, in large part because computer science is not programmer occupational training.

> Are universities also failing their students by not offering/requiring a touch-typing class?

Universities make assumptions based on the larger student body as to what requirements are needed for admission. Generally, we assume students can read and write and have general computer literacy, but actually the last assumption is starting to fray a bit; more and more, students are coming into school without basic computer desktop literacy. This hasn't been a problem for decades, as students tended just to pick up skills like touch typing. But today, some students are hard pressed to to save a file to the desktop.

I could see universities might actually have to start adding computer literacy as an entrance requirement, the same way we require basic reading and writing and English speaking, so we don't have to teach those things.

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

#112

Earlier quoted context omitted.

Hi! I'm that person! Senior engineer, decade of experience. I've used debuggers in the past, both for running code and looking at core dumps, but I really don't find them to be cost effective for the vast majority of problems. Just write a print statement! So when I switched from C to python and go a couple jobs ago, I never bothered learning how to use the debuggers for those languages. I don't miss them.

I think there's a sort of horseshoe effect where both beginners and some experienced programmers tend to use print statements a lot, only differently. When you're extremely "fluent" in programming code and good at mentally modelling code state, understanding exactly what the code does by looking at it, stepping through it doesn't typically add all that much. While I do use a debugger sometimes, I'll more often form a…

> Using a debugger is much too slow.

This varies, but in a lot of environments, using a debugger is much _faster_ than adding a print statement and recompiling (then removing the print statement). Especially when you're trying to look at a complex object/structure/etc where you can't easily print everything.

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

#113
post #43

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

Which uni was this? Presumably you're a proud alumni, even if you don't want to donate money to them, you might at least consider repping them in this context for having taught you this stuff. Fwiwi, many CS programs focus on the science end of things like Big Oh notation, and utterly fail to discuss any day-to-day, practical applications of things.

Some programs manage to sneak in some of this material in an "operating systems" or "network programming" or other such class where you do more hands-on programming. More so in technical universities and CS Engineering degrees (at least this is the case in Europe).

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

#114

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 have used neovim for a few years now. With lsp support and other additions, using a vim variant hasn't been better!

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

#116
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.

> You don't consider paying tens of thousands of dollars as creating responsibility to educate?

I get OPs point. It's like getting an english literature degree and you've never read a book on your own.

My guess is most people needing the missing semester never coded outside of their assigned tasks. Which is fair enough, but its surprising to me to meet phd candidates who marvel over the missing semester (I've met 2).

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

#117

Earlier quoted context omitted.

I think there's a sort of horseshoe effect where both beginners and some experienced programmers tend to use print statements a lot, only differently. When you're extremely "fluent" in programming code and good at mentally modelling code state, understanding exactly what the code does by looking at it, stepping through it doesn't typically add all that much. While I do use a debugger sometimes, I'll more often form a…

> Using a debugger is much too slow. This varies, but in a lot of environments, using a debugger is much _faster_ than adding a print statement and recompiling (then removing the print statement). Especially when you're trying to look at a complex object/structure/etc where you can't easily print everything.

I think there is a bit of a paradox, debugging can seem heavy, but then when you’ve added enough print statements you’ve spent more time and added more things to clean up than if you had just taken the time to debug, well, you should have debugged. But you don’t know until you know. This seems to also appear with the “it would’ve been faster to not try to automate/code a fuller solution” than address whatever you were doing.

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

#118
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 agree you should know how to use a debugger, however will also note that some companies mandate use of a specific IDE (or heavily encourage).

I have seen devs scoff at the thought of print debugging, but I recall that in systems programming there are many times you can’t use a debugger or need to rely on other tool.

I’d rather schools teach the concept of step debugging vs runtime debugging. Teach students to try to understand the code, make hypotheses, and verify them.

I have seen some people use a debugger solely because they only know how to step debug. Meaning they start from main or another entry point and step through every line of code.

My point being that, you can’t judge a developer by if they use print statements or a debugger. Judge them by the methodology of how they debug.

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

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

In my class 5 years ago, the differentiating factor was whether the kids who grew up online or not. Students like myself or my roommate who’d spent their formative years in front of a computer, not because they had to, but because it seemed like the thing to do at the time. I never realized how much I was learning during the time I spent scripting RuneScape bots and writing toy “viruses”, I did it because it was more fun.

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

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

>Basics of networking, how installation of programs happens, how to use the command line, that kind of thing.

um yea thats my job dude and i fought for it so other people should too these people waltzing in not knowing shot should not get into CS

Post reply on HN