3 ms·
https://missing.csail.mit.edu/ https://missing.csail.mit.edu/
by jodoherty 4y ago
https://missing.csail.mit.edu/ https://missing.csail.mit.edu/
- somethoughts 4y agoThe Missing Semester of Your CS Education Classes teach you all about advanced topics within CS, from operating systems to machine learning, but there’s one critical subject that’s rarely covered, and is instead left to students to figure out on their own: proficiency with their tools. We’ll teach you how to master the command-line, use a powerful text editor, use fancy features of version control systems, and much more! Students spend hundreds of hours using these tools over the course of their education (and thousands over their career), so it makes sense to make the experience as fluid and frictionless as possible. Mastering these tools not only enables you to spend less time on figuring out how to bend your tools to your will, but it also lets you solve problems that would previously seem impossibly complex. Topics include: Shell Tools and Scripting, Editors (Vim), Data Wrangling, Command-line Environment, Version Control (Git), Debugging and Profiling, Metaprogramming, Security and Cryptography
- aireo 4y ago@jodoherty and @somethoughts -- thank you. This was my experience during the first semester. We were shown various tools to use, but little time was taken to show us _how_ to effectively and efficiently use them. Git and debugging were too major topics that were touched upon but, imo, needed more thorough explanation. I'll dive deeper into these topics. Thanks again for sharing.
- bruce511 4y agoI agree that how to use tools like editors is super important. But it's not "left out" of CS courses. Rather you're expected to figure that out yourself using any of millions of existing resources to do so. In other words, instead of spending a week teaching you Git, you are shown the concept of version control and the course moves on. You are _expected_ to Google "how to use git". Precious CS time should be spent teaching concepts not products. This has the advantage of making you flexible. You learnt Git at college but you got a job at a shop using Mecurial? No worries, you did it once you can do it again, just Google "how to use Mecurial". It's the same for language. It really doesn't matter what language you learn, what matters is that you learn how to program. You can learn another language in a matter of days. ( At college level we once did 10 languages in 10 days, with an assignment in each, just to prove the point. Clearly we didn't turn into experts but it showed how the concept of language matters more than the syntax. Switching between functional (lisp like) and imperative (c like) is more interesting but by that point we already had exposure to both.