[sdiy] (OT) theory of programming/philosophy of programming books?

Magnus Danielson magnus at rubidium.dyndns.org
Tue Feb 7 21:47:10 CET 2012


On 02/07/2012 04:58 PM, dan snazelle wrote:
> I have been spending a lot of time lately with C, mainly for the AVR, and I am learning a lot of the commands, and am getting pretty good at modifying other peoples code.
> But I am looking for some books which might go beyond just learning one particular language, books which might give some insight into how to attack specific types of problems, etc.
>
> Philosophy of programming? or theory books.
>
> I looked on Amazon but there were so many books I didnt know where to start.
>
>
> any advice appreciated.

There are several angles to this. A few different books relating to 
algorithms is recommended. They help you think about how you design your 
programs and the consequences of design-approaches. Learning about 
different complexities and the ordo-analysis is one such tool and 
eye-opener. It's not all, but it is a good education.

Thomas H. Cormen, Ronald L. Rivest, Charles E. Leiserson and Clifford 
Stein, "Introduction to Algorithms"

Robert Sedgewick "Algorithms"

Are two good books to start with, either one. They have common coverage, 
but also different strengths.

Then of coarse the grand-master of Donald Knuth "The Art of Computer 
Programming" is takes it a good step forward both good education, good 
coverage and good science.

Then, when you design large systems, there is the issue of learning the 
information hiding principles, which forms the basis of the object 
oriented programming, which then can be morphed into many other aspects.

There are several principles of organising processing, and it is very 
good to learn a number of them, since the ability to find the right one 
can dominate the performance and for that matter complexity of the 
solution. You can do bulk processing, event-oriented processing, state 
machines which get events with data, main loop with interrupts etc. etc. 
etc.

There are so many aspects, so many approaches. The only one thing one 
has to recall is that there is no silver bullet, but only more things to 
learn.

Cheers,
Magnus



More information about the Synth-diy mailing list