• “College is needed” comments are so weird in a field that can be done on an island with a solar battery. CS isn’t medicine or engineering, and the field is so young that requiring a “formal education” most likely will have negative effects of teaching poor practices that are not up to date

    • I want to add that getting a degree likely will create a social network and provide experience of working in a team. These days that may be replaced by contributing to open source and going to free conferences (although these seem rare 😢).

      So even though I am pro getting at least one first year of CS degree (because it’s the most useful one because teaches to think rather than specifics), I agree that it can be fully replaced by a well though out self-education, and from purely CS standpoint self-education might even be of a better quality.

      But yeah, I must disclose that I am a European rubbing free education, and I studied in university not college. So my opinion may be influenced by that and I don’t know if first year in college would’ve been as useful as it was in university.

  • I’m going to toot my own horn here, because I hate these lists, because it does not show you a clear order in which to learn things.

    https://thaumatorium.com/articles/mit-courses/mit.drawio.svg

    This svg is a dependency graph of most, if not all, Programming/Math related courses from MIT, which means the leftmost courses are dependencies for those to the right. The lines are the dependencies. They are color coded for your convenience.

    I made this because I tried to follow a course I was missing dependencies for, where I found out most courses have dependencies and this provides a nice overview of what you’d need to learn to get to the point you want to reach.

  • Whi getting through college, I was always bummed that we have to learn a lot of stuff that seemed super irelevant to my future carreer, while also being annoying. Stuff like prolog, Phyro, Lisp, Assembly, or bunch of obscure math.

    It was only years later when I finally realized why it was important - the school wasn’t for teaching me to be the C#/Java programmer, but it taught me to be A programmer. I can pick up and start successfully writing anything I need, in any language, relatively quickly and without issues, nonmatter whether it’s functional, objective, or wharever style of language, because I’ve very probably already had to deal with, learn, understand and pass exams in language that is similar to it, since college made me learn a language from almost every style or flavor of languages there are.

    I was surprised when I first saw colleagues struggle with picking up languages other than the ones they work in, and that was when I finally realized why and how sneakily did the college make me a universal programmer without me noticing it. And that’s something that’s harder to get when self-taught, because you don’t get exams and it’s easier to miss the point and just skip courses on lisp, prolog or lambda calculus, because it seems irrelevant, but the different point of view and approach used when writing in those languahes is what will teach you the most.

  • I never did a CS degree but recently I’ve been doing some things that make me wish I had. But it isn’t any of this stuff which seems mostly programming things that you can easily learn outside academia.

    The stuff I would like to understand which I haven’t yet been able to learn on my own is the hard computer sciency stuff: lambda calculus, type inference (how do you read that weird judgement syntax?), how SAT/SMT solvers work, dependent typing systems… Does anyone have any good resources for those sorts of things?

  • I am piggybacking a comment that I can’t find anymore, but let me state again their concerns:

    • No logic? No automata theory? Language processors?
    • What about math that isn’t usually part of every course in engineering but is in CS, like discrete math?

    It’s all over the place.

    • The ReadMe suggests these courses are administered and taught by Universities. I’m genuinely curious if you know of any Computer Science courses taught at any of these reputable universities that utilizes Rust or C?