[HN Gopher] The Missing Semester of Your CS Education
       ___________________________________________________________________
        
       The Missing Semester of Your CS Education
        
       Author : anishathalye
       Score  : 88 points
       Date   : 2020-02-03 17:25 UTC (5 hours ago)
        
 (HTM) web link (missing.csail.mit.edu)
 (TXT) w3m dump (missing.csail.mit.edu)
        
       | lkbm wrote:
       | In the lab for my second or third CS course, the professor was
       | walking us through intro Unix usage, but he didn't take
       | attendance so it ended up being just 2-4 of us showing up. After
       | a few weeks, he cancelled the lectures and told us he'd just be
       | around to answer questions, help with homework, etc.
       | 
       | The last lecture before he cancelled things was an intro to Vim.
       | The next would've been Emacs.
       | 
       | And that's the story of how I became a life-long Vim user. :-)
        
       | trillic wrote:
       | Here's a link to a similar course offered by UMich EECS. I really
       | enjoyed it when I took it as an undergrad.
       | 
       | https://github.com/c4cs/c4cs.github.io
        
       | dahfizz wrote:
       | I really wish this practical stuff was more emphasized. I
       | graduated with a lot of very smart people who could write great
       | code - but they could not compile, run, test, or check it into
       | VCS to save their lives.
       | 
       | It made group projects hell.
        
       | wes1350 wrote:
       | This course is wonderful! I've read through all the material and
       | watched all the lectures and I can say it has helped me
       | tremendously thus far. I'm still trying to master all the tools
       | they've mentioned but I already feel much more proficient with
       | e.g. version control, vim, using the command line, etc. If you're
       | an experienced dev then you might already know all of these
       | things, but if you feel that you have some gaps in your knowledge
       | with some of these tools, this course will likely point you in
       | the right direction.
        
         | floatrock wrote:
         | If you're an experienced dev, you use all these every single
         | day.
         | 
         | God save me if I'm asked to implement quicksort though...
         | theory is nice, but for me, academia largely forgot about this
         | practical stuff.
        
       | Jonhoo wrote:
       | Over the years, we (@anishathalye, @jjgo, @jonhoo) have helped
       | teach several classes at MIT, and over and over we have seen that
       | many students have limited knowledge of the tools available to
       | them. Computers were built to automate manual tasks, yet students
       | often perform repetitive tasks by hand or fail to take full
       | advantage of powerful tools such as version control and text
       | editors. Common examples include holding the down arrow key for
       | 30 seconds to scroll to the bottom of a large file in Vim, or
       | using the nuclear approach to fix a Git repository
       | (https://xkcd.com/1597/).
       | 
       | At least at MIT, these topics are not taught as part of the
       | university curriculum: students are never shown how to use these
       | tools, or at least not how to use them efficiently, and thus
       | waste time and effort on tasks that should be simple. The
       | standard CS curriculum is missing critical topics about the
       | computing ecosystem that could make students' lives significantly
       | easier.
       | 
       | To help mitigate this, we ran a short lecture series during MIT's
       | Independent Activities Period (IAP) that covered all the topics
       | we consider crucial to be an effective computer scientist and
       | programmer. We've published lecture notes and videos in the hopes
       | that people outside MIT find these resources useful.
       | 
       | To offer a bit of historical perspective on the class: we taught
       | this class for the first time last year, when we called it
       | "Hacker Tools" (there was some great discussion about last year's
       | class here: https://news.ycombinator.com/item?id=19078281). We
       | found the feedback from here and elsewhere incredibly helpful.
       | Taking that into account, we changed the lecture topics a bit,
       | spent more lecture time on some of the core topics, wrote better
       | exercises, and recorded high-quality lecture videos using a fancy
       | lecture capture system (and this hacky DSL for editing multi-
       | track lecture videos, which we thought some of you would find
       | amusing: https://github.com/missing-semester/videos).
       | 
       | We'd love to hear any insights or feedback you may have, so that
       | we can run an even better class next year!
       | 
       | -- Anish, Jose, and Jon
        
         | floatrock wrote:
         | Love this. I remember it wasn't until junior year when I was
         | reading about the theoretical underpinnings of the unix kernel
         | that I learned what the pipe operator I'd been copy-pasting on
         | psets really did. I mean, it's great to learn those
         | underpinnings, but most course 6 classes assumed you already
         | knew all these tools... if it wasn't theory, it wasn't their
         | responsibility to teach it.
         | 
         | "Missing Semester" describes it perfectly. Wish there had been
         | something like this back in my day... I remember I felt as if I
         | had learned all the theory behind fluid mechanics but didn't
         | know the first thing about fixing a leaky faucet in my kitchen.
         | Keep up the good work!
        
         | ericd wrote:
         | Ha some MIT alum friends and I were just talking about how
         | great it would be if something like this existed, rather than
         | having it be left to one's first years as a junior engineer in
         | a company. Thanks for doing this, it's sorely needed.
        
       ___________________________________________________________________
       (page generated 2020-02-03 23:00 UTC)