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.
"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 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 learned most of these stuff (stuff as oblique as Martin Lohf's System F, which most modern polymorphic types are derived from) on my own. I have 'Handbook of Satisfiability' put aside so I can learn how SAT/SMT solvers work. I need them for my electronics circuit simulator. Keep in mind that there are other NPSPACE and NPTIME solvers, for example, BDD solvers (Binary Decision Diagrams). BDD solvers are much easier if you wanna give it a try!
People who say "you don't need college" are seriously missing out on key stuff that helps them understand their day-to-day tasks. Like, in my self-studies, I learned about some neat, oblique stuff. For example, I learned about dataflow languages and Lucid. I learned about Church-Rosser's confluence. I learned about Curry-Howard Isomorphism. I learned about so many cool stuff!
I'm going back to college because college is cheap here, but I'm a 3rdie, college is cheap but even the cheapest college from the US or Europe is much better than "Payam Nur University" is it not? (That's the college I'm going to, it's state-funded studies for prisoners!)
Also, Americans will have a much easier time getting into an European university. You guys could try that. College is almost-free for me but you guys have access to much better technological foundations in Silicon Valley. Here, you have to include your own batteries. For example, to fund my college (not the tuition, but I have to live right, and my uncle is having a hard time supporting a dozen people, sanctions are getting rough) I'm going to open up a 'keyboard workshop'. Like I make mechanical keyboards and send it to people.
So if you don't wish/can't study in college, there's always self-study. This book began my journey, just like many others:
Introduction to the Theory of Computation, 3rd edition -- Michael Sipser
You also need to read papers. So here's your first homework: Find this book on Google Scholar. You'd be needing it _a lot _!
It's sort of a 'meme'. Dip in. Self-learning is not 'second bests' of college students! Especially some shithole like mine. Imagine this, your computer is like a calculator. Use it to learn computation!
Cool, but where's the accreditation? At least Coursera has a bit of accreditation. Accreditation is very important. I quit my last college after 3 semesters because it was basically a meme college. It was very close to our home though.
I'm going back after 5 years, not to the meme college, but to a much more accredited college.
The special thing about this college is that it's a state college ('state' referring to the country, I am not from US), and it's got good rankings (+1000 but I never aimed for much!) but it's very, very cheap because for non-lab classes, it's basically "here's a bunch of books, study them, and come back for tests"!
I know this 'seems' like a meme college, but it's truly not. It's very accredited.
That is why OP's course might just help me. I have been studying like mad for the past 3 months. So I starred this.
All this being said can e summed up in a single 'thank you'.
And an advice to others, go [back] to college. It's the only way to get a job these days. The days of "self-taught wiz-kid" are over.
Don't worry if you are in your mid-20s, or early-30s like I am. Or even mid-30s or even if you are at death's door. College is great.
And an advice to others, go [back] to college. It's the only way to get a job these days. The days of "self-taught wiz-kid" are over.
Wut lol, definitely not. At least in tech/programming careers and it has been starting to spread to other industries (slowly, but spreading none the less). A solid project portfolio, well written resume and maybe a few applicable well chosen certifications can get you far.
I'm decently high up with the ability to hire and fire and I can tell you I def choose the self-taught person with a solid portfolio full of cool personal projects and self taught over someone just fresh out of college with the college-standard portfolio just about every time
Yes, but what about both? Would that not carry you further? My portfolio has never landed me a job and I keep adding more and more stuff to it. Like atm I am working on a simple tree-walked interpreter for a Lua-like language with partial evaluation and hopefully meta-tracing. I still don't think that would be enough, however, if I had a degree and even half of this portfolio, I would be set! Right?
I would like to know your assessment as someone with firing/hiring power. Keep in mind that I have never done 'aggressive applying'. I think I have applied for a job less than 10 times. I used to get jobs from my friends and I earned a good amount of money from it. But then my friends stopped having jobs to give me lol.
I don't even know what I'm doing, or why I'm doing things. Check out all the repositories that I have not listed in my README.md file. I just hope going to college would give me some sort of confidence? I'm not sure. I just feel less 'sure' about myself without a degree.
Besides there's the social element. I know I said the college is 'self-study' but labs are not. And I still get to 'network' with guys and gals who attend the same class on some messaging app don't I. I've just been so lonely during the past 3 years since my brother kicked it.
I know I should not have had prescribed it to everyone. I mean people have brains. If you have hit a slump in your life, try college. That's all I can say.
Would love to know what kind of cool personal projects you've seen! I'm trying to get my first job in web dev and feel like i have a hard time coming up with stuff to do for my portfolio.
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?
Compsci is not really about 'languages'. I mean they are, but they are not about 'x language vs. that language'. It's about 'how to make languages'. Just one of the subjects! It's much more expansive. I think a course with a lot of language-focused stuff is either garbage, or SWE! Most computer science students need to learn how to use any language, any time. Take me for example, I gave my education history (and future) in other posts ITT. I don't have any issues picking up a new language's syntax. Because of "Curry-Howard Isomorphism" (or "Correspondance") the "syntax" of languages is always the same. Another thing is Church-Rosser confluence. All syntactic constructs are confluence to one another if they can be reduced to the same mathematical bases! As for learning the standard library, which is the harder task, well there's always documentation! I think standard libraries are the essence of these languages. Not the syntax of them.
Apologies if this came out as too dick-ish. I'm just trying to open people up to new dimensions of thinking. Download Michael Sipser's book which I explained how to get in my other post ITT and get learnin' Automata theory!
Also AFAIK, it's highly country-dependent but most American colleges teach functional languages like OCaml or Haskell for obvious reasons (they are more 'theoretical').
Interesting, but means little without accreditation.
EDIT: Also, why's it all Java?
EDIT2: Addressing the downvotes: If you really think that any employer these days is going to be happy with "Learned from a list on Github" on your resume then you're sorely mistaken. It doesn't matter if the courses match an accredited program. The accreditation is what matters because no accreditation = no diploma. Employers like diplomas.
The ReadMe states these are all courses taught at reputable universities. Do you know of any courses taught at these universities that utilizes Rust or C/C++? Not asking to criticize or anything, I'm legitimately curious because I too would like to see more focus on these languages over Java.
Idk about American universities, but C++ was taught at Memorial University of Newfoundland when I attended 8 years ago. Granted it was a robotics class so maybe it's different. Either way, makes more sense to me to learn C/C++ since most things are programmed in that.