Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Here is my latest life hack that I have been using. Pick a major from MIT and see their degree program to form a basic knowledge graph of the major. Find them on https://ocw.mit.edu/ and study yourself. Usually, taking 1-2 classes gives you a great insight in to any topic so that you can at least collaborate better with the experts of those topics in a team environment.


I'm having the weirdest deja-vu right now.

Turns out I did see a thread almost like this, with a top comment almost like this a week ago: https://news.ycombinator.com/item?id=32793139

Felt like I was going insane.


Yup, decided to repost it, since someone replied with a link that even helped me further last time, so I was hoping to start another convo :) which seems like I have successfully achieved since this even sparked a longer thread this time, which I enjoyed reading.


Good memory. I wonder how often things like this happen. hmm


Yup, recognized it as soon as I saw it here because I distinctly remember thinking, when I read the first one, "hmm, I'm not sure I'd call this a 'hack'"


Nice job finding it! Bot or not?


same, thanks for digging up the link. yeah, seriously, verbatim same comment


> Pick a major from MIT and see their degree program to form a basic knowledge graph of the major

This was exactly how I taught myself, but I used CMU as my guide, lol. It is not hard to find good quality material, many universities have them open, but this curriculum is hard to 'graph' when you don't know where to start and what is an actual logical way to organize it.

So yeah, do this if you are a self-learner.


While good materials are easy to find, it'd be much easier if all assignments and solutions were available the way they are in this MIT course. I find a lot of value in verifying my solutions, or comparing to other valid solutions.

Cheating is a major problem, but I think the benefits (at least societally) would greatly outweigh the costs. I know sometimes courses don't change enough to make releasing solutions to assignments from past years a viable compromise.


I'd love to see a site that aggregates all of this content into an easily explorable format.


I made one once! That's a story for another time, but lessons learned:

- Elite schools like MIT are cesspools of crime and corruption, at least at the top. By "crime," I don't mean metaphorical "bad stuff" -- I mean actual, genuine, bona fide scary stuff like the movies. MIT's endowment is $20M per faculty member, and if you're in control of $20B in endowment with that much slush and that little oversight, it draws the wrong people.

- Don't accept money from elite schools. You're gonna get drawn into deeper shit than you want to know about.

- Less elite schools are more honest.

- If you do get in too deep, sign an NDA and non-disparage, and make sure you're connected to powerful friends. The calculus was: (1) if bad stuff happens to me, they hit front page of NY Times (powerful friends) (2) If we're both left in peace, I'm signalling I'm probably not going to expose them (NDA+non-disparage).

What I found is that there's much better content overall one tier down, although without MIT's PR budget. You gotta know where and how to find it. If all of that were aggregate, that'd be golden.


>What I found is that there's much better content overall one tier down

Which school's content are you talking about?


It's unfortunately distributed. ASU, WPI, Georgia Tech, etc. have impressive operations, but for the most part, you need to look a lot of places.

There's a ton of little resources like this: https://ximera.osu.edu/mooculus

Needs a ton of work on CSS and styling, but the content is great.

That's why we'd need an aggregator.


What courses did you use from CMU and which major?


I basically followed this: http://coursecatalog.web.cmu.edu/schools-colleges/schoolofco...

- but "took" more courses than necessary for my self-learning (I think I read through all of Logic / Language courses, insanely fascinating topic).

- I would not recommend a self-learner to follow it rigorously. Like if you are a working programmer, look for material that will help you at your work. Idea is to apply the knowledge.

- Some courses have assignments shared so that's great if you have the time check them out too. Definitely great for their database courses.


CMU courses doesn't have videos, atleast for most of the core courses. Was that a hurdle to your learning?


No, because I dislike videos as a source of information. They usually have absolute top tier lecture notes freely available. Like the Constructive Logic course.


Yes, even for their intro course 15-122 the course notes are excellent.


Here's a comment I left on a different thread a few months ago, which you may find useful if you're looking for CS contents:

---

There are a lot of book recommendations, but I would not focus on books if I wanted to get the equivalent of a solid CS education. Instead I would work through university lecture slides, assignments, and exams -- basically fast forward through a CS undergrad leveraging what you already know. I'm partial to CMU's CS syllabus for obvious reasons, but I find that it's also one of the most open and available resources on the web; i.e. not locked in on an intranet, etc.

With pre-existing background in software development the basic syllabus is more than doable in a 3-4 months. There are two sequences below: programming and theoretical fundamentals; you can do them in parallel.

Programming:

15-211: Introduction to Data Structures. Used to be in C++; now looks like it's in Java. https://www.cs.cmu.edu/~mjs/121/lectures.html

15-212: Principles of Programming. Still in ML. https://www.cs.cmu.edu/~me/212/schedule.html | https://www.cs.cmu.edu/~fp/courses/96-212/ (unlocked assignment pages)

15-213: Intro to Computer Systems. I hesitate to recommend this; 90% of the value in this course is in the labs and assignments, so it's difficult to do on one's own, but I would at least go through the slides and try to work through exams. https://www.cs.cmu.edu/~213/schedule.html

Theoretical:

15-251: Great Ideas in Theoretical Computer Science. Used to be Discrete Math with a heavy CS lean; it may have evolved. https://www.cs.cmu.edu/~15251/schedule.html

15-451: Algorithms. Here's a decade worth of lectures, exams and assignments - take your pick: https://www.cs.cmu.edu/~15451/ The 2013 course looks pretty complete: https://www.cs.cmu.edu/afs/cs.cmu.edu/academic/class/15451-f...

Next steps:

Since you are interested in VR, etc, you should probably look into the Computer Graphics courses. Note that the undergrad and grad courses are combined; the only difference is the expectations:

15-462: Computer Graphics http://15462.courses.cs.cmu.edu/fall2020/ Exam problems and solutions are gold: http://15462.courses.cs.cmu.edu/fall2020content/exams/finals...

15-463: Computational Photography http://graphics.cs.cmu.edu/courses/15-463/

15-464: Technical Animation http://graphics.cs.cmu.edu/nsp/course/15464-s21/www/syllabus... http://graphics.cs.cmu.edu/nsp/course/15464-s21/www/assignme...

Hope this helps. Good luck!


I did a couple of MIT projects in some of their graduate classes (OS, distributed systems) which was a lot of work. At least one week full time for each of them. And that's just the lab, I barely looked at the lectures (which were based on key research articles on the field).

But looking at the first classes of each topic to have a broad view seems like a good idea too.

I wish I could go back to school. CS is changing so fast, it's impossible to keep up to date within your free time.


> I wish I could go back to school. CS is changing so fast,

Is it, really? I got an undergrad degree 25 years ago, and looking at the requirements for the same at a few different universities, they appear largely the same, other than a few extra courses on ML. You still have pretty much the same math courses, theory courses, algorithm/OS/network/database courses, etc. The languages and tools have changed, but the fundamentals have not.


I got my degree 25 years ago too. At that time, a lot of things which are pervasive now barely existed. Virtual machines, clouds, smartphones, javascript, CI/CD... Fundamentals haven't changed but the tools/languages/systems we need to understand to do our jobs have changed a lot. The fundamentals are important but they are a fraction of the things we need to know.


I have also come to the same conclusion, and I believe it would be a very great idea to create a program that graph’s a topic’s “dependency courses”, perhaps with some must-read books for each subject.


It is not such a great idea, the dependency courses. Most prerequisites for a self-learner are kind of overblown IME. If you're applying the knowledge and / or you don't have time to go through them like a college student, your prerequisites have a different function for you (the least amount that makes you understand the main topic you want to understand in order to apply that knowledge, this might mean just literally skimming a paper or reading a subchapter of a chapter in some other book - you are not there for the prerequisites).

I talk about applying the knowledge a lot because it is a wonderful constraint, it makes it so that you don't accidentally read things cover to cover, but do like a depth first search into the subject instead.


The authors that can write a book such that you can understand it without previous knowledge are wonderful, but it is heavily dependent on the subject. It’s hard to talk about differential equations without first knowing calculus.


It is not possible and I didn't mean to imply that. There'll be endless prereqs. most of the time.

Just that if you need to understand differential equations, and you don't know calculus, the answer in this context isn't reading Spivak from start to finish (here I am assuming a working programmer / self-learner that wants to apply the knowledge - constrained by time and application much more heavily than a student of mathematics for example).


Could you please expand on what you mean by applying knowledge? But sure, I don’t believe reading a book from cover to cover is necessary in most cases, and I seldom do so with scientific books.


I firmly believe you need a software problem / idea to go with your learning. When you run into problems fixing / making what you want, search for what might help you.

Like most algorithm courses are fairly abstract form of programming (writing a line of code) where as a working programmer is a software engineer constrained by time and resources. This means that for example this algorithm course, it teaches you to generalize your solutions but that's not always realistic goal, or even desirable goal, in software engineering, and you might find out this if you implement one of the algorithms to do something for you in a small program.

Applying what you've learned in some software project of yours constraints you nicely such that you can't waste your time reading stuff from cover to cover.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: