Live data from Hacker News

The Missing Semester of Your CS Education (2020)

missing.csail.mit.edu

71–80 of 347 posts

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

#71
That's funny. This is much of what I teach my own IT Product Development students in the first year course The Web of Things at my CS Department, Aarhus University. My goal for the course was precisely to introduce tooling and techniques, and to habituate the students to their use through the construction of systems integrating Web and IoT. It's a busy seven weeks, but students further along often tell me that they learned a lot and are still using the same tools.

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

#72
At my uni this is a course in the first semester, called introduction to operating systems, covering command line, git, encryption, bash and all that. It's pretty good for second year student that are TA's because it's quite some infrastructure needed to teach the labs(containers, configuring vms, custom autograders) so

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

#74
Always think we should do this at uni and even for our PhDs. Some students are actually much better in control of those tools than their advisors, but it is still a minority. Always lacking the time to teach this. German system lacks incentives for actual sensible courses IMHO (applied universities might be a bit different)

BTW: Pops up every year seemingly. E.g. 3yrs ago with more than 1000 comments:

https://news.ycombinator.com/item?id=22226380

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

#76

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 never bothered learning how to use the debuggers for those languages. I don't miss them. This could be causal.

You'd have to assume that the python and go debuggers do something that C debuggers don't do.

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

#77
post #69

I would add jq to the data wrangling section https://stedolan.github.io/jq/ Being moderately competant at jq on a team that doesn't know jq is a super power.

Any reason why you would use jq over Python? Certainly this can be attributed to my lack of knowledge in jq, but anything beyond a simple query is going to be done with Python for me. Beyond not having to look up query syntax, doing it in Python (or any script) is easier to read (both during and after writing it) due to auto formatting in an editor.

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

#78

Earlier quoted context omitted.

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

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 am also this person. I'm a systems programmer (kernel and systems software, often in C, C++, golang, bit of rust, etc)

What I find is that if my code isn't working, I stop what I'm doing. I look at it. I think really hard, I add some print statements and asserts to verify some assumptions, and I iterate a small handful of times to find my faulty assumption and fix it. Many, many times during the 'think hard' and look at the code part, I can fix the bug without any iterations.

This almost always works if I really understand what I'm doing and I'm being thoughtful.

Sometimes though, I don't know what the hell is going on and I'm in deep waters. In those cases I might use a debugger, but I often feel like I've failed. I almost never use them. When I helped undergrads with debuggers it often felt like their time would be more productively spent reasoning about their code instead of watching it.

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

#79

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.

Depending on what kind of programming you're doing. I think it's fairly command in sysadmin stuff. But I can't imainge doing, say, Android development in vim. (Of course it's physicall possible, but...)

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

#80
post #69

I would add jq to the data wrangling section https://stedolan.github.io/jq/ Being moderately competant at jq on a team that doesn't know jq is a super power.

Any reason why you would use jq over Python? Certainly this can be attributed to my lack of knowledge in jq, but anything beyond a simple query is going to be done with Python for me. Beyond not having to look up query syntax, doing it in Python (or any script) is easier to read (both during and after writing it) due to auto formatting in an editor.

Readability is important if you're writing actual code, but for things like debugging a giant JSON blob from an API request JQ is far faster IMHO.
Post reply on HN