Live data from Hacker News

The Missing Semester of Your CS Education (2020)

missing.csail.mit.edu

101–110 of 347 posts

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

#101
post #66

Earlier quoted context omitted.

I'm not a talented developer but I did spend my day on an F# piece of code that builds a databale based on a record type using reflection (and eventually realized it was going to need to be recursive) and I probably would've just quit if I wasn't allowed to use a debugger. Now maybe if I was better that wouldn't be the case, but even the cleanest "wish i thought of that" functional code i've seen still looks like it'…

> I'm not a talented developer > [uses F#] That has to be humblebragging. The average .net developer is terrified of or doesn't even know about F#.

It's an interesting phenomenon because F# is far easier to learn than C#.

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

#102

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'm surprised anyone would object to this. Universities have a responsibility to prepare their students.

When I saw the title I figured it was another "computer science" class. But the curriculum was a significant portion of what I lacked when I graduated, which prevented me from finding work for a year.

Had someone at university told me before I graduated that I'd have no chance of finding work if I didn't know Git, Linux, REST, how to use the command-line, how to use an IDE, how to use an editor on the command line, and bash, I would have prepared myself for those things.

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

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

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.

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

#104
post #86

Earlier quoted context omitted.

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

I didn't use debuggers since switched from C to Rust. By the way I switched from emacs to VSCode and I do not know how to debug here. I never used debugger with lisp. Debugging is a language dependent technique.

I like debugging Lisp because the debugger is built in. A break here, an invoke-debugger there and the REPL takes me where I want to be.

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

#105

Earlier quoted context omitted.

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

I read a long time ago, that either Kernighan or Ritchie said they never use a debugger and just sprinkle printf() statements.

Concluding that using printf to debug is superior to using a debugger would be a mistake!

I’ve been programming in C for nearly 20 years and primarily used printf for debugging for the first 12-15 years, and have used debuggers more and more. I use Emacs, and its gud mode is so nicely integrated into everything that using gdb is truly much, much faster than the alternative. I don’t use print debugging at all anymore.

It takes less time and cognitive overhead to just stop the program on the same line you would have inserted your printf, but you can now inspect the entire program state.

Obviously I’m not saying anything revelatory if you use an IDE on a regular basis… I guess this comment is for the folks who eschew IDEs.

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

#106

Earlier quoted context omitted.

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

I read a long time ago, that either Kernighan or Ritchie said they never use a debugger and just sprinkle printf() statements.

This works well mostly and I use this. I usually implement a logging system where I can enable/disable individual components but use a debugger to examine functions which are not behaving as intended.. or core dumps. Usually in connection with an unit test that fails or started failing caused by my changes to the codebase that I'm working on.

Logging alone is fine, but it can often be difficult not to drown in information. I do embedded programming in C mostly.

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

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

A CS course isn't programmer occupational training in name only. Practically, there aren't many CS research jobs and working as a programmer is more often than not the career path for someone with a CS degree.

Universities can choose to be puritans about what CS is as you seem to be advocating for, or they can be realists and fill a very real gap in skills and knowledge.

Your point about "the topics needed for the degree to be granted" is also a very purist view of the role of university. Is the role of university solely to teach a curriculum that aligns with some abstract ideal of what a particular degree title means? Partly it is. But again, that doesn't match the expectation and the practical reasons why students choose a course. There are very few students studying CS for the beauty of it. Those that do probably do end up in academia and don't need this course. The rest are there for jobs, and they certainly could benefit from this.

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

#109
post #66

Earlier quoted context omitted.

I'm not a talented developer but I did spend my day on an F# piece of code that builds a databale based on a record type using reflection (and eventually realized it was going to need to be recursive) and I probably would've just quit if I wasn't allowed to use a debugger. Now maybe if I was better that wouldn't be the case, but even the cleanest "wish i thought of that" functional code i've seen still looks like it'…

> I'm not a talented developer > [uses F#] That has to be humblebragging. The average .net developer is terrified of or doesn't even know about F#.

I’ve encountered the same thing. I’m a terrible programmer but find f# way clearer than most C#/java. But I work with tons of great developers who would rather cut off their finger than learn f#, it bothers me because it exposes some fundamental difference between us I dont like to believe exists.

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

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

Not sure if that fits, but it reminds me of Gary Bernhardts "Unix Chainsaw" talk

https://www.youtube.com/watch?v=ZQnyApKysg4

It's all about leveraging "simple" cli tools and combine their powers to cut through work very swiftly. The opposite of many days for many people.

Post reply on HN