6 ms·
Read the curriculum of an undergraduate computer science course and read up on the things you haven't heard of. Some courses will even have lecture notes availa
by Robin_Message 7y ago
Read the curriculum of an undergraduate computer science course and read up on the things you haven't heard of. Some courses will even have lecture notes available.
E.g. these four pages are the university of Cambridge masters in computer science:
https://www.cl.cam.ac.uk/teaching/1819/part1a-75.html https://www.cl.cam.ac.uk/teaching/1819/part1a-75.html
https://www.cl.cam.ac.uk/teaching/1819/part1b-75.html https://www.cl.cam.ac.uk/teaching/1819/part1b-75.html
https://www.cl.cam.ac.uk/teaching/1819/part2-75.html https://www.cl.cam.ac.uk/teaching/1819/part2-75.html
https://www.cl.cam.ac.uk/teaching/1819/part3.html https://www.cl.cam.ac.uk/teaching/1819/part3.html
(Or a MOOC, but the links above are easy to browse text, syllabuses and lecture notes, not a load of videos.)
- rat9988 7y agoThank you very much. This is very valuable.
- JoeMalt 7y agoTo clarify: the first three links are for each year of the (three-year) undergrad program, the fourth is for the Masters. The Cambridge course isn't perfect, but they do a very good job of making as much teaching material as possible publicly available.
- learc83 7y agoI support this 100%. I worked for years as a self-taught programmer. When I went back for my CS degree, I was shocked at how much I didn't know that I didn't know. Numerous times I'd be sitting in a class and we'd go over a solution to some theoretical problem, and I'd realize that this solved a problem that had taken me days to discover on my own (and this solution was usually better than what I'd come up with). If you are the kind of person who can work through everything on your own (including what may seem like the the boring parts), I highly recommend doing so.
- 147 7y agoCould you give an example of one of the times something theoretical helped you solve a real world problem? I've thought about going back for my CS degree a lot but can't really justify the cost and time investment vs self teaching. But it's something that's always been in the back of my mind.
- phaedrus 7y agoNot the OP, but I too was a self-taught programmer as a teen who got a CS degree in my 20s. I independently came up with the idea binary search in sorted data structures. But the first time I encountered hash tables in the course of getting my CS degree my reaction was "That's impossible! You can't get O(1) efficiency!" (Sadly though this exposure was not in the context of a theoretical course on data structures, but rather in the context of reading the docs for HashMap as my university dropped older courses and languages to jump on the bandwagon of becoming a "Java school".)
- learc83 7y agoSure. It's been a while, but the first one is that comes to mind is when we went over Floyd's Tortoise and Hare cycle detection algorithm. I realized it was a much cleaner solution to detecting cycles in a linked list than a solution I developed on my own over several days. Another example: the automata class I took went over pushdown automata, and I immediately saw that it would solve the issues I'd been having with a finite state machine I was using to handle input for a game. Oh and recently I needed to put different sections of a screen on different layers so that no 2 adjacent sections were on the same layer. I realized that this was basically just graph coloring, so I was able to find a solution in minutes instead of hours. I'm sure their are people who can get through most of a CS curriculum on their own, but I'm not that disciplined. I've also never met anyone who was. It has been immensely helpful.
- hackerc 7y agoDoes an offline copy of this exist? Do you think it will go down when the term probably ends soon?
- samwyse 7y agoDo you know about curl/wget? Each one does pretty much the same thing as the other, but you can start a religious war by suggesting that one is preferable. Anyway, either of them will let you mirror a website so you never have to worry about it going down.
- bigiain 7y agoAnd, since every Unix command line tool inevitably gets mined and turned into a web service, you could always submit those urls to archive.org instead of or as well as curl-ing/wget-ing them.
- voltagex_ 7y agohttps://github.com/ArchiveTeam/grab-site https://github.com/ArchiveTeam/grab-site if you're super serious. Also archive.org will probably accept those output warcs.
- toomuchtodo 7y agoContent mentioned above has been archived.
- mwilliamson 7y agoI would expect the material stay up: at the moment, everything back to 1998/1999 is still accessible: https://www.cl.cam.ac.uk/teaching/material.html https://www.cl.cam.ac.uk/teaching/material.html
- saagarjha 7y agoFWIW, I've found many undergraduate computer science courses to lag behind on tooling, so take the recommendations they have with a grain of salt.
- fredley 7y agoThe Cambridge course is much more theoretical than most others, afaik. Tooling on programming language semantics, for example, doesn't change that much.
- samrat 7y agoDo Cambridge courses not have labs/projects? I looked at the course materials on a few of the courses and couldn't find any. Or are they given out to students separately?
- superlopuh 7y agoThere is a system of supervisions, that is a bit like doing homework and going over it in a private (1/2/3 students to one prof) lesson once every two weeks. Sometimes the questions would be standard for a course, sometimes the professors chose their own. They are not necessarily directly tied to the course as lectured.
- longer_arms 7y agoThere are hardware and software labs, which are administered on paper by PhD students. These include(d): ML (the functional programming language), FPGA/soft core development, Java tasks, breadboarding some logic, prolog and probably some different ones now (looks like some machine learning tasks?). Some of them are referenced and described on the links above. There's also a group project in year 2, a dissertation individual project in year 3, and a small holiday project between 1 and 2. Overall, a few students get through it without being able to properly program, but most basically self teach.