Computer System Engineering
ocw.mit.edu
ocw.mit.edu
Of every class I took, the lessons from this class have helped me the most in the real world.
Algorithms, though heavily covered in lame interview tests, pale in significance to the benefit of understanding how to architect systems at a high-level.
And a knowledge of how existing computer infrastructure and platforms are architect-ed (DNS, Ethernet, etc.) provides a deep pool of successful, tested concepts for whatever new system is being built.
Highly recommend completing this course via OCW if you want to improve as an engineer.
For instance, the splay tree is arguably one of the more incredible data structures in all of computer science, and we didn't discover it until 1985. Think about all the undiscovered applications that may exist out there regarding such an algorithm. Contrast with how long mathematicians have had to play around with the ideas of Newton, et. al.
Another fun data structure is the skip list. This is probably the simplest probabilistic data structure you could hope to invent, and we didn't figure it out until 1989. 4 years after the splay tree. To me, this says "keep looking".
What do you mean by this?
Yes, and even just a trade-off based on context for where it will be used.
I've realized that lots of libraries I use are generalized (by nature of being an OSS lib) so they aren't going to be hyper-refined for my particular use case.
Usually an OSS lib will be better than something you can write in a day but if something is part of your product's competitive advantage, then you will probably be able to make a more optimized version than an open source lib.
In terms of elegance, I believe it is a fight between CoDel [1] and Union-Find [2].
Speaking of Skip Lists, see also Fenwick Trees, not similar but you'd find them particularly interesting [3].
Also, on the topic of Splay Trees, because we are on Y Combinator, we mustn't go without mentioning Zippers [4].
[0] https://en.wikipedia.org/wiki/Burrows%E2%80%93Wheeler_transf...
[1] https://queue.acm.org/detail.cfm?id=2839461
[2] https://algs4.cs.princeton.edu/15uf/
[3] https://cp-algorithms.com/data_structures/fenwick.html
[4] https://stackoverflow.com/questions/380438/what-is-the-zippe...
Actually, looks like both versions are using the 2005 videos (but with different UI: one embeds, one links to YouTube).
[0]: https://dspace.mit.edu/bitstream/handle/1721.1/56581/6-033Sp...
[1]: https://dspace.mit.edu/bitstream/handle/1721.1/118791/6-033-...
The THERAC paper, the X11 paper, the Kerberos sequence—still resonate 22 years later. But the big lesson wasn’t in any of the papers, but in the structure as it communicated that engineering was not a solitary enterprise.
What is the point of posting and upvoting these course pages here? The most charitable answer I can find is that it informs that there exists such a body of knowledge. The uncharitable one is that it lets people gloat about their alma maters here in the comments.
Any other explanations, anyone?
Coursera and edX each had some great courses at their peak but the vast majority were lower-level, they came from a wide variety of institutions and most were time-restricted. As a result, even for subjects like mathematics or computer science there just wasn't a path for an ambitious learner to piece together the full material from a bachelor's degree. These days, even automated graders are behind the paywall and the promise of an education for all is more distant than ever.
OCW is truly an invaluable resource worth supporting and sharing!
https://youtube.com/playlist?list=PLrw6a1wE39_tb2fErI4-WkMbs...
But, yes, totally free content is somewhat limited at this point and, generally, MOOCs have to be seen as a disappointment to anyone who saw them as a radical free substitute for a university education.
Perhaps interestingly, when OCW launched, MIT presented it as very much not a substitute for an MIT education but rather as raw materials for educators to assemble their own courses. Which I'm sure was at least in part a matter of internal politics but still. (And, of course, ubiquitous video of lectures wasn't a thing at the time anyway.)
That would be a more recognizable credential than a "micromasters".
You may be different, but I'd have increased confidence in someone's general comfort with mathematical problem-solving if they posted good scores on a test covering this: https://www.ets.org/gre/subject/about/content/physics/
It completely makes sense from the university's perspective, though.
In general, I'd if there's a course by MIT on edX for the topic you wish to learn, I'd check it out.
[0] https://www.edx.org/course/probability-the-science-of-uncert...
[1] https://www.edx.org/xseries/mitx-18.01x-single-variable-calc...
[2] https://www.edx.org/xseries/mitx-18.03x-differential-equatio...
In the case of OCW you are presented with THE SAME EXACT course the kids at MIT are taking and many many courses have full lecture notes, quizzes, and so on. You could argue that the experience is not the same but at least the content is, you don't have to sign up for anything, the institution is actually world-class and the cost is 0.
https://handbook.uts.edu.au/directory/smj03034.html
Interesting is how different the two courses are. I learnt a bunch of hardware design and build (cpu, embedded, electronics) as well as software design and build.
I expect MIT also teaches RT/Embedded also but probably calls it something along those lines.
Both skillsets are necessary, and IMHO not enough programmers are exposed to real-time systems in school. It's a very different style of coding and all modern desktop systems would work better if their designers had a better understanding of real-time principles.