views:

231

answers:

7

I think I am good at programming, so will call myself computer engineer in the sense that to solve a problem I do find good solutions but I wouldn't say I have deep knowledge of computer science as such, which I do want to learn, but I do not want to buy any book a) they are heavy b) they are costly

So what online resources you think I should read and things I should do to become a better computer scientist?

+2  A: 

Structure and Interpretation of Computer Programs

To Dissect a Mockingbird

Algorithms (S. Dasgupta, C.H. Papadimitriou, and U.V. Vazirani)

Exotic Data Structures - mostly persistent (immutable w/ efficient sharing in functional programming)

Okmij (a mixed bag of advanced topics)

wrang-wrang
I'm not convinced that the "To Dissect a Mockingbird" link is that useful.
Mitch Wheat
"To Dissect a Mockingbird" looks good read at first glance
A: 

MIT Courseware (sorry for lack of link, but I'm sure 10 seconds of Googling will find that for you :)

DVK
+2  A: 

MIT OpenCourseware has quite a few good teach-yourself courses for free. I blogged about Algorithms resources recently.

Mitch Wheat
+1 I was going to suggest this site myself but you posted it first
APC
+4  A: 

If you want to be a computer scientist, step away from the computer and grab a pencil and paper.

Computer science is a branch of mathematics.

You can find books or online articles, but they'll not seem cohesive.

If you want to get a sense, start with wikipedia, and start skipping to the footnotes and reading the original papers, etc.

90% of the time, people who have a passion for programming find that they have very little interest in doing actual computer science.

If you're in that 10%, you should consider doing it right, and getting yourself into a good university (not a trade school!)

The MIT Opencourseware stuff is pretty cool, as others just mentioned.

timdev
+1  A: 

As a Python fan I recomend you: Think Python, How to Think Like a Computer Scientist

Michał Niklas
+1  A: 

As others have already indicated, MIT OpenCourseware is a valuable resource.

Here are some additional links to online CS courseware:

Brandon E Taylor
A: 

Just take a topic and google it...you will find millions of blogs and articles on that particular topic and even at times e books.

renilative