10 votes

The missing semester of your computer science education

3 comments

  1. Micycle_the_Bichael
    Link
    I would have killed for this course at my university. I have spent an absurd amount of time in my current role learning UNIX, Linux, scripting, how to use VIM, and basic networking. I feel so far...

    I would have killed for this course at my university. I have spent an absurd amount of time in my current role learning UNIX, Linux, scripting, how to use VIM, and basic networking. I feel so far behind the 8 ball all the time and tasks will take 2-3 times longer for me than my peers because of it. Or I'll just not know how to do something or why something isn't working because I don't understand how Linux works under the hood. IMO a course like this needs to be mandatory.

    5 votes
  2. [2]
    ClearlyAlive
    Link
    There’s a course like that at my uni and from what I gather from those who do it (as it’s obligatory for CS), it sucks and it’s boring. Most people will choose their own tools and develop their...

    There’s a course like that at my uni and from what I gather from those who do it (as it’s obligatory for CS), it sucks and it’s boring. Most people will choose their own tools and develop their own proficiency as they go along anyway.

    2 votes
    1. reese
      Link Parent
      I took a course (kind of) like that years ago and it was my favorite one. I learned Linux, C, concurrency, and got my feet wet with Vim (the prof preferred Emacs, but encouraged us to learn...

      I took a course (kind of) like that years ago and it was my favorite one. I learned Linux, C, concurrency, and got my feet wet with Vim (the prof preferred Emacs, but encouraged us to learn whatever text editor we wanted). Now all I do is write concurrent code on Linux with a Vim extension all day, that is when I'm not being an asshole on Tildes. While I haven't touched C in a long time, I had to use a pointer a couple days ago to hack managed data into a job system. ¯\_(ツ)_/¯

      I understand what you mean about wanting to choose your own tools. I think what made my class work well was that expectations of us were so high on C and Linux that we were forced to learn tertiary subjects ourselves in order to survive. In our exams, for example, we had to write compilable C on paper, shell commands that could produce wanted output (sometimes we got hints on which ones to try), and demonstrate understanding of memory management. All the code we submitted was ran against automated tests, which is surprisingly still not as prevalent as it should be today.

      Now I'm halfway through my master's, and what I'd now like to see is required Git commits throughout a given week, which would disincentive plagiarism even further than having to check in our code occasionally for automated tests, and it would force people who have somehow not used a VCS to get with the fucking program.

      This missing curriculum looks great to me. Sure, it's a little opinionated, but it's incredibly informative at the same time. There's stuff here I'm rusty on, to be candid, so I'm glad OP shared this. I will say that, for many CS students, this truly is a missing curriculum. I've known so many people who entered their software careers not knowing any of this stuff, and holy shit has programming/troubleshooting been difficult for them. I hope resources like this become more popular and don't get hand-waved away with inconsequential and vague criticisms.

      2 votes