Live data from Hacker News

The Missing Semester of Your CS Education (2020)

missing.csail.mit.edu

271–280 of 347 posts

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

#271
Looking through the links, I noticed most of the course was video, so I immediately turned it off. Compared to text, videos are an inefficient learning tool, and I think a lot of people aren't aware of that. Actually, I hate video learning materials. Though it's better than going to a classroom.

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

#272

My university had Dijkstra's quote "Computer science is no more about computers than astronomy is about telescopes". They made us aware of tools and we were free to use them as little or as much as possible to do the science. I always assumed that software engineering degrees focused on tools more than computer science degrees (among other differences).

Completely agree. Things like shell scripting, debugging tools, IDE usage can all be naturally picked up on the job given whatever tools that they recommend you use at their company. You know what you're not going to be able to pick up at your first software engineering position? Discrete mathematics or linear algebra.

Not trying to dismiss the importance of knowing discrete math etc. in general, but I would posit that vast majority of entry level swe positions require no knowledge of it.

However, knowing the tools of the trade is something that is invaluable. And yes, it can be picked up on the job, but deliberate learning and practice is more effective and less stressful.

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

#273
post #36

Earlier quoted context omitted.

Once I learned how to use vs code productively it really changed my mind. The other day I needed to do a quick base64 encode and vs code had that. Same goes for formatting some json or doing a diff. It's all available in a single tool with no learning curve. Hell it even has git and git blame in there.

Vs Code is the gateway drug of real IDE's. Last time I checked, it still cant do things like navigate to definition, or rename a calss along with all mentions of it in comments. Or count TODO: comments

I don't think this is accurate - at least not anymore. VS Code supports LSP configuration which means all those features should be available.

That said - I haven't used it in years. Way too heavy and Vim does all of those + modal editing.

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

#274
post #36
post #15

Earlier quoted context omitted.

I use (Neo)vim as my daily driver, professionally (for the past 4 years, coming from Goland). I've found every other editor to be too heavy/slow (VScode/Jetbrains), or too noisy (regarding features). Neovim allows me to specify the precise minimum I desire to have a fully functional IDE-like experience (basically treesitter + LSP + DAP + minimal extra plugins). It's super fast, I'm already in my shell, and my memory…

Once I learned how to use vs code productively it really changed my mind. The other day I needed to do a quick base64 encode and vs code had that. Same goes for formatting some json or doing a diff. It's all available in a single tool with no learning curve. Hell it even has git and git blame in there.

Yeah - to each their own. I have all these tools in my terminal too. I'm just a lot faster in the terminal, and I don't really think it's possible to be faster in a GUI (even if there are shortcuts - there will surely be shortcomings before you eventually just re-invent a terminal via VSCode).

Plus - modal editing :)

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

#275

Earlier quoted context omitted.

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,…

Can you elaborate on how not knowing those things specifically is what led to you not being able to find work Did your interviews ask specific questions about Git, Linux things not covered in a standard operating systems course, and command line editing?

go on indeed, search for "software engineer", look at how often those things crop up in the "essentials" section

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

#276
I love the content, and I'd like to add another semester in the same tone about people and communication : - how our brains work (in particular, emotions !) - group behavior theory - non violent communication - scientific method - design/ergonomy 101 - written communication (how to reach an understanding with someone through slack?)

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

#277

Earlier quoted context omitted.

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…

This doesn't fit my experience. I mean, yes, this was me. I came in knowing most/all of this. I knew six (or more?) programming languages, had at least played with CVS/SVN, had installed Linux (read: fought with the Linux bootloader to get my AMD CPU to boot without crashing), had dipped my toe in a few open source communities. But I was a tutor in college and I interacted with a bunch of people who didn't come in wi…

I went to college in the late 90s. Didn't even own a computer until I was a freshman (used my loan money to buy one). Math and science had always been my subjects, so I started college pre-med. But, this new computer I just bought kept sucking me in. I'd stay up all night reading how to make it faster, learn all the tricks, and finally make it do what I wanted through programming. Next semester I took a programming class just to see how it went, then dropped everything, and switched majors. I got a part time job writing custom software for local companies as a sophomore/junior (late 90s dotcom was just ramping), and I guess it has all worked out ok.

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

#278
post #138

Earlier quoted context omitted.

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 art…

My school handled this cleverly by taking people with prior programming experience into a Haskell sequence, which suitably kicked our asses to the same degree as what the first-time programmers were getting.

My CS course at the University of Sussex, UK did this (in 1988) with ML, the functional programming language. Plenty of us had already been coding in C or Pascal before starting at college. None of us had done any functional programming. I loved ML: it seemed all elegant and beautiful and magical.

When I hear people starting their CS degree with C++ or Java, it makes me cringe.

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

#279

Earlier quoted context omitted.

Completely agree. Things like shell scripting, debugging tools, IDE usage can all be naturally picked up on the job given whatever tools that they recommend you use at their company. You know what you're not going to be able to pick up at your first software engineering position? Discrete mathematics or linear algebra.

Not trying to dismiss the importance of knowing discrete math etc. in general, but I would posit that vast majority of entry level swe positions require no knowledge of it. However, knowing the tools of the trade is something that is invaluable. And yes, it can be picked up on the job, but deliberate learning and practice is more effective and less stressful.

> Not trying to dismiss the importance of knowing discrete math etc. in general, but I would posit that vast majority of entry level swe positions require no knowledge of it.

Directly, sure. I do think there is something about the rigor of the math thought process that lends itself to writing software. Thinking through algorithms and proofs is really not much different than writing code or debugging.

Even with tools I think learning concepts are better. I've used so many IDEs through my career, but they are all roughly the same conceptually. One thing that has helped though is embracing vim keystrokes and using them everywhere.

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

#280

I have tried in vain to get this implemented at our uni. I can say a few things I find interesting: - Students used to get this stuff but no longer do, for example all workstations used to be unix, so when you left, you "knew" "unix" (shell, vim, etc) - Due to things like ABET, classes are crammed with need-to-know-for-accreditation info so, well, some items need to go by the wayside (many are in the MIT list) - Ther…

> I do not know many others who implemented something like that. the school I did in france, ENSEIRB-MATMECA, started with three weeks where you only learn shell commands, emacs, LaTeX etc before doing anything else. Here are the slides (in french sorry, although they all have useful reference cards at the end): - intro: http://mfaverge.vvv.enseirb-matmeca.fr/wordpress/wp-content/... - unix, shell: https://cours-mf.g…

Thank you for the links... I actually read enough French to get by, so those are great to look at for more ideas.
Post reply on HN