tags:

views:

90

answers:

4

I have been writing PHP, Ruby, ColdFusion, and javascript (not a language, I know), for several years.

But I am really wanting to get more into the world of Computer Science and writing in lower-level languages.

What are some good resources for starting out? It seems like every book I have gotten has been extremely elementary, and that isn't at all helpful. I need something that skips the basics.

A: 

A CS education would start out with something like SICP (Structure and Interpretation of Computer Programs) - available free online.

The easiest thing I think would be is to find the website of a local university, find the course curriculum for a CS degree, and see what textbooks are required for those courses. Many times, you may be able to find a free online version.

Ankur Goel
+2  A: 

MIT's OpenCourseware material is a good place to look.

Looking through this list, the following look like they hit some of the core CS topics:

6.001 Structure and Interpretation of Computer Programs   Spring 2005
6.006 Introduction to Algorithms                          Spring 2008
6.033 Computer System Engineering (SMA 5501)              Spring 2005
6.042J  Mathematics for Computer Science                    Fall 2005
Randy
That looks like an awesome resource! Thank you!
Brandon Hansen
A: 

CLICK HERE

These blog posts are really helpful

  • More on My Ideal CS Cirriculum
  • A Better CS Degree?

If you love learning new languages and want to get hands wet.
I suggest Haskell or F#.
Functional programming is advanced computer science stuff and "fun".

Learn You a Haskell for Great Good.

I highly recommend Algorithms and Discrete mathematics. And there is lot more to computer science than just that for example Artificial Intelligence, Data Mining, Computational Geometry, Distributed Computing etc.

TheMachineCharmer
A: 

For computer science, I would recommend starting with discrete mathematics. A good book is the Rosen book, which my university uses. From there, you can move on to Concrete Mathematics, Introduction to Algorithms, and Introduction to the Theory of Computation. I can't speak much about Introduction to Algorithms - it's still on my wish list. But the other two are very good. That should cover the basics of computer science.

From there, you can go down any route. Some major fields in computer science are theoretical computer science (logic, automata theory), computational theory (computability theory and complexity theory), algorithms and data structures, computer architectures (parallel processing), operating systems, computer networks, graphics, vision, databases, AI...You would have to decide what interests you the most and investigate that particular topic area in more depth.

Thomas Owens
I am currently watching a course on Introduction to Algorithms in iTunes University. Not sure what U it is from, but I am enjoying it nonetheless.
Brandon Hansen