"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 think those are all Europeans rubbing their free or free to us colleges in our face :(
Individual financial cost has nothing to do with my comment
I sense that as you learn more about CS, it could change your opinion about coursework
Many courses are free and books can be purchased outside of university
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.
100%. I think most university degrees are for the social aspect, which is not to be ignored
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.
Yup, people often mistake being a software developer for learning a language or a platform. Nope knowing and understanding the underlying systems and ideas / structures you will be working with is often far more important. The code pretty much stays the same. They syntax and features just differ a little
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.
Nothing about networking?
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.
Some people still think it's 2002
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.
I second @hellofriend, I learnt C++ as practical courses in the University.
I could somewhat understand teaching Java as professional education (although it creates positive feedback loop that doesn't do much good), but not exclusively teaching Java as part of CS degree.
UC Berkeley’s intro CS course material are all publicly accessible:
CS61A.org CS61B.org CS61C.org
This is a really neat idea but I would like to see all the Java replaced with C/C++ or Rust.
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?
Linux
A community for everything relating to the linux operating system
Also check out !linux_memes@programming.dev
Original icon base courtesy of lewing@isc.tamu.edu and The GIMP