Hacker News new | ask | show | jobs
by Jonhoo 2690 days ago
Hi all! We (@anishathalye, @jjgo, and @jonhoo) have long felt that while university CS classes are great at teaching specific topics, they often leave it to students to figure out a lot of the common knowledge about how to actually use your computer. And in particular, how to use it efficiently.

There’s just no class in the undergrad curriculum that teaches you how to become familiar with the system you’re working with! Students are expected to know about, or figure out, the shell, editors, remote access and file management, version control, debugging and profiling utilities, and all sorts of other useful tools on their own. Often times, they won’t even know that many of these tools exist, and instead do things in roundabout ways or simply be left frustrated about their development environment.

To help mitigate this, we decided to run this short lecture series at MIT during the January Independent Activities Period that we called “Hacker Tools” (in reference to “hacker culture”, not hacking computers). Our hope was that through this class, and the resulting lecture materials and videos, we might be able to bootstrap students’ knowledge about the tools that are available to them, which they can then put to use throughout their time at university, and beyond.

We’ve shared both the lecture notes and the recordings of the lectures in the hopes that people outside of MIT may also find these resources useful in making better use of their tools. If that turns out to be true, we’re also thinking of re-doing the videos in screen-cast style with live chat and a proper microphone when we get the time. If that sounds interesting to you, and if you have ideas about other things you’d like to see us cover, please leave a comment below; we’d love to hear from you!

We’re sure there are also plenty of cool tools that we didn’t get to cover in this series that you all know and love. Please share them below along with a short description so we can all learn something new!

Anish, Jose, and Jon

6 comments

That's funny, I recently had the same revelation (that it's hard to discover these things) with engineering students in mind. I wrote an e-book called Digital Superpowers, covering many of the same topics you did. I added some general interest things on art and publishing too. I think I like your approach better.

Anyway, my list of topics is as follows, maybe you want to consider adding a few of them to your list?

Password Managers • 2-factor authentication • Virtual machines • Package managers • Command line • Routers • QR codes • Port forwarding • Python • Pandas • Onion routing • Ad-blocking • PDF reordering • Flow charts • Regular Expressions • Time-lapses • Encryption • Column edit • Digital photo editing in RAW • Audio noise reduction • Vector graphics • Making websites • DJing • LaTeX publishing • Reference management • pandoc • git version control • Programming • Web apps • Self-hosting • Home automation • Monte Carlo • VPNs, • ImageMagick • Linear regression • ffmpeg • Sphinx • Robotics

https://www.amazon.com/Digital-Superpowers-readily-available...

That's the one?

EDIT: I guess it is, via https://digitalsuperpowers.com/. The list of topics is great, gonna check the book out!

That's it! Let me know how you like it. It's my first foray into writing books. Walking the line between utility and breadth is tough.
As a computer Science graduate with no experience doing images that section alone was worth getting the book for me. I plan on using at as encyclopaedia for future uses.

I am happy you had compatibility in mind as I am not super fussed on which operating system I use.

I would suggest adding a virtual desktop section as that has been the biggest gamechanger for me ( I use windows 10s with virtual desktop enhancer) I dont know any linux or mac equilivants though.

I'm pretty confident in claiming macOS and many Linux desktop environments natively support virtual desktops. It's really only Windows that doesn't.
Glad that was useful, thanks for saying so! Great idea on virtual desktops.
Bought it! I'll shoot you an e-mail with my thoughts once I'm through.
Hopefully you change the recommended tools based on the OS. (i.e. OSX would be slightly different from linux for certain commands). And focus on doing as much as possible from the command line?
I tried to highlight examples that are available on Mac, Linux, and Windows through the package managers, (homebrew, apt, chocolatey) and at least provided system-specific installation lines for each based on those. It is highly command-line and pure-text centric.
this is insanely ambitious, and in a weird order
You're right. And "covering" is a strong term for the book. It only introduces them, offers a few exercises, and moves on. It's still 200 pages. It's intended to help engineering students (mechanical, civil/structural, nuclear, etc.) discover these wonders and then choose which ones to go deep with based on their needs and interests.
Thanks for sharing and seems it would be useful for non-engineering students as myself as well. Going to check it out =)
> ...[universities] often leave it to students to figure out a lot of the common knowledge about how to actually use your computer.

Now I'm out in the real world (MIT class of '86!) I think this is more of an MIT thing -- many graduates of other schools get explicit training in things that the MIT faculty, fairly or not, assumes students will simply pick up. And this is despite the heavy emphasis on actually doing stuff, especially in the school of engineering. Actually I've had hit or miss results hiring freshly-graduated MIT grads (maybe less so VI-A) for this reason, though once they are up to speed they've mostly been great.

Really good use of IAP by the way!

> many graduates of other schools get explicit training in things that the MIT faculty, fairly or not, assumes students will simply pick up. And this is despite the heavy emphasis on actually doing stuff,

uh...I graduated from a low tier state school that was notable in our state for focusing on practical matters....and we didn't get 'explicitly trained' on this either. Most people do just pick it up.

I got a CS minor from a top-5 program, and while a lot of the core classes definitely covered some of these topics in various degrees, it's really nice to see all of these aggregated in a concise way.

While you definitely do pick stuff up over time, this is arranged in a way that I could see myself preferring to reference this rather than find that one stack overflow answer that clicked with me at the time. Now that I at least have a better understanding of these concepts 3.5 years into real-world web development, this seems like a good resource to cover my bases better now.

Well, I appears from my experience a surprising number of MIT students don’t, making this mini-course popular.

As an MIT grad myself I should be biased to think otherwise, and I certainly hope the credential stands for something good. But I haven’t found much difference in programmers 5 years out of school — it’s been attitude that has mattered more.

>many graduates of other schools get explicit training

From my undergrad programming class, which was a while ago, I remember that the first class had a brief intro to vim. But something like vim is an acquired taste. I never used or appreciated vim until much later when I saw others at work use it. During school, I think I used geany since that's relatively easy to use and install on ubuntu. So maybe there is some merit to spending more time on tools. However, my experience is from before everything was so easily accessible on the internet (i.e., pre github, stackoverflow etc.). So maybe these days it's not such a big deal.

I graduated from a low-tier state school and after reviewing MIT's course materials along the way, I feel the opposite. Sure there wasn't a class, but plenty was covered explicitly in the homework and labs.
All I can say is, despite my pro-MIT bias, my experience has been at best mixed, on this dimension.

(BTW, among things I’m glad that MIT has done, open courseware is top of my list. Glad you used it!)

University of Washington CSE added a practical course to get students familiar with Linux and C partly because students are expected mostly to come through other departments / disciplines where the only programming may have come from Java or Python. Students were having great difficulty in higher courses like graphics, OS, compilers, and embedded systems because we weren’t teaching programming courses in our curriculum except maybe our programming languages course itself which covers languages like ML, Scheme, Haskell, or Eiffel and OOP languages like Smalltalk.

Early pilots of the course were put together with a set of Linux guides including bash scripts and Makefiles, source control with svn (hopefully hit by now), and moved quickly into practical stuff with bison / yacc to parse complex files and work with GCC output. I never got to see how well it was received by students but I was glad to see students go through the time-honored traditions of learning CLI tools.

Will need to take a deeper look later but from a quick skim I really like the approach taken: a well curated list of time tested tools across each area, going deeper where applicable.

For me the key point above is about a lack of tool knowledge causing "roundabout approaches" and frustration. Knowledge of these tools can do so much to demystify and make the seemingly arcane start to slot into place.

Do you like that kind of talks ? https://www.youtube.com/watch?v=sCZJblyT_XM

Gary Bernhardt - The Unix Chainsaw

Thank you so much for sharing your knowledge with the world. I'm excited to follow along with this and I love your Rust streams.
https://www.youtube.com/playlist?list=PLyzOVJj3bHQuiujH1lpn8...

Thanks a lot for this! It appears like the recording doesn't really capture the screen well for multiple videos. I wish it was more professionally done, it could've been useful for years to come.

For most of the videos, we do have screen recordings (e.g. see https://www.youtube.com/watch?v=VW2jn9Okjhw).

Sadly, we're missing screen recordings for a couple videos (such as the shell video, where we had some issues with the screen recording software). We're thinking of re-doing some of those videos in a screen-cast style so that they'll be more useful for viewers.