views:

114

answers:

2

Based on recommendations from episode 57 of the StackOverflow Podcast, I have purchased "Structure and Interpretation of Computer Programs", "The C Programming Language", "Unix Programming Environment", and "Introduction to Algorithms". I'm wanting to improve my fundamental programming skills, contribute to some open source projects, and improve my future employment prospects. Is there a suggested reading order for the selected texts? Also, what particular subjects/sections from the books should I pay more attention to? Thanks.

A: 

I've read these books except the Unix Programming Environment.

The C Programming Language (white book) is a good book to learn C.

Structure and Interpretation of Computer Programs (SICP), is a special kind of book. It's a book that you really have to study. It will teach you many programming concepts. The three first parts of the book are a must read.

  1. Building Abstractions with Procedures.
  2. Building Abstractions with Data.
  3. Modularity, Objects and State.

Introduction to Algorithms is a bit hard for self-learning but a good book.

I don't think you should study the books in any particular order. The important is to not skip the exercises.

Nick D
A: 

If you already have a programming background you could get use from Cormen et al quite early. I found the audio lectures at http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-046JFall-2005/CourseHome/ helpful to go with it and you might also want to read the syllabus and prerequisites.

If you need more programming then either the C book or SICP can be used. I learnt C first and came to SICP later. I was happy with that approach -- I can't say which would suit you. The C book can just be worked through sequentially.

UPE probably needs a reasonable C background to get the best from it, though it has value for all programmers.

I'm not sure how much these help to increase earnings but I enjoyed them all and was a better programmer and IT professional for working at them

I'm sure others will have different and perhaps better, at least for them and perhaps for you, suggestions.

mas
Thanks for this answer. The link to the MIT OpenCourseWare will be especially helpful.
Jacob Winn