DEV Community

Abdelrahman Mohamed Abdelnabi
Abdelrahman Mohamed Abdelnabi

Posted on

Fill in the Gaps of Your CS Education with MIT

So you are studying for a computer science degree or you are self taught programmer or a software engineer who recently joined the workforce. You feel there are little gaps in your CS foundations which is affecting your confidence and making you feel like an imposter.

Luckily, MIT CSAIL (computer science and artificial intelligence lab) has just published an 11 lecture course for free on the internet along with lecture notes and exercises. And guess what! the course title is "the missing semester of your CS education". (link is at the end)

What is it about

The course walks you through most of the tools you should know as a software engineer.

It begin with the shell, how it works, how to use, what is the PATH environment variable, writing bash scripts, and piping commands together.

Then it talks about text editors like Vim that you should start using. If you don't know what vim is then you should read my article on it here on DEV. They also talk about "tmux" which is a a very useful tool for managing terminal sessions and grouping them into panes and windows.

Next up is data wrangling, which is just a fancy name for transforming data from one format to another. This is a great lecture which talks about some of most useful linux commands like sed, awk, grep, head, tail, cat, ssh, sort and uniq.

The course then talks about the command line environment, processes, how to kill them, background/foreground them, command aliases, dot files, terminal emulators. Then it introduces git, the most popular version control system.

Finally, it switches to more advanced topics like debugging, profiling for code optimization, build systems (the make tool, package/dependency managers, CI systems), security and cryptography.

The course ends with topics chosen by students. They discuss a lot of separate but very interesting (mostly linux) tools and tricks that you must know and then exits with a Q&A lecture.

Should I watch it?

Absolutely, if the description I wrote in the introduction applies to you, then you should definitely take it. Luckily, the course isn't too long and you should be able to finish it quickly. Trust me, it will make you life (especially on linux) much easier as a software engineer.

Where is it?

So without further ado, here is the link.

Top comments (0)