I've been a life-long computer geek, but I ended up going to college for a non-technical field. After graduation, I wound up as a developer, and I periodically find that I'm handicapped by not having had any formal training. I end up with an odd mix of being really good at some very complex concepts because I've worked with them a lot, but being baffled when someone talks about an O log(n) method or polymorphic associations. I end up with good hands-on skills, but poor theoretical skills, which bites me not just in conversing or reading documentation, but in making architectural decisions.
Going back to school is out of the question, but I'm looking for some good resources -- be they online or just good books -- to start to learn the theory and more academic venues of computer science. The good thing about written material is that I can skip over the stuff I know well, and spend extra time on the material I don't understand at all. I do get to "practice" 40 hours a week at work, but I'd like to fill in all the gaps that people who actually majored in CS don't have. Any recommendations for a great website or a favorite book about computer science?
Well, I have never used it, a few friends of mine did for physics, calc, and all the other fun classes for engineering, so I would assume they might have it for CS. Anyhow, mit.edu, harvard, and possibly yale, I forget. MIT I know for sure at least had them. You can get class notes and video's of lectures for free. Might have to search for information as I do not have the exact links. Mixed reviews overall from what I heard a few years ago. Cheaper than textbooks at least
By reading the course descriptions you can get an idea of what material is covered in each course. Also, for several courses, there are links to the professor's webpage which may include class notes and other resources.
As already mentioned, MIT CourseWare is a good resource. They publish lecture slides and class notes in a variety of departments.
If you're looking to brush up on your theory, you'll want to concentrate on formal and discrete mathematics, propositional logic, algorithm design/analysis, and similar aspects of theoretical computer science. Good luck!