Hacker News new | past | comments | ask | show | jobs | submit login
What are the best programming books around?
11 points by rishabhverma on Oct 30, 2010 | hide | past | favorite | 16 comments
I am currently 15, studying in 10th grade in India. I have been experimenting with Semantic Web technologies since like the past 8 months or so. I want to improve my core skills and would be great if could get some recommendations for some good books. I am planning to read Don Knuth's TAOCP, is that the right way to go or should I start with another book?



Structure and Interpretation of Computer Programs is a classic for a good reason. And it's available online:

http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html

You can get a lot out of SICP, if you take the time.


C is a good language, but if you're just starting off with computer programming, you should try Python.

Otherwise, TAOCP is a good book. MIT also offers some free course work at: http://ocw.mit.edu/courses/electrical-engineering-and-comput... and http://ocw.mit.edu/courses/electrical-engineering-and-comput...

Full list at http://ocw.mit.edu/courses/#electrical-engineering-and-compu...

Good luck! :)


Actually I am versed with computer programming , but the thing is I am not well versed with computer architecture and related stuff, so what are the best resources I should follow to get well versed with computer architecture?


At MIT OpenCourseWare, there are several good courses on computer architecture.

6.033 Computer System Engineering: http://ocw.mit.edu/courses/electrical-engineering-and-comput...

6.823 Computer System Architecture: http://ocw.mit.edu/courses/electrical-engineering-and-comput...

6.828 Operating System Engineering: http://ocw.mit.edu/courses/electrical-engineering-and-comput...



Knuth's TAOCP may be too much too early. Here are some links that will help you further your study. http://stackoverflow.com/questions/194812/list-of-freely-ava...

http://stackoverflow.com/questions/78955/what-are-the-best-p...

The first is list of free online books, the second programming related blogs.

Fair warning, programming is a life long learning job. I am not trying to discourage you, but you need to understand that you will need to LIKE learning to be good at programming. Good Luck!


TAOCP is awesome. If I had been advised to read it when I was 15, I probably would have either studied it as hard as I could, or given up after the first few pages. It's pretty intense material for a beginner, in my opinion. But only you can judge for yourself. Take a look at a copy of it, if you can, before you buy it. TAOCP focuses on algorithms and other microscopic aspects of programming; it may not offer much insight into building whole software applications.

Also, you might consider looking at Don Knuth's book Concrete Mathematics, which is a somewhat more casual coverage of the math chapter in the first volume of TAOCP.

You mention in a comment that you want to learn software architecture. I really like this book:

http://www.amazon.com/Software-Architecture-Primer-John-Reek...

If you're into web applications at all, perhaps the best book to understand the basics of design is:

http://philip.greenspun.com/seia/

Either way, don't give up on TAOCP. Whether if you're ready for it now, or if you want to wait a few years, it's great that you're interested in reading it, and I would encourage you to study it as much as you can, if you discover that you are indeed intrigued by the topics it covers.


Thanks, and which language should I focus on the most? Currently I know PHP and lately have started playing around with python too. Should I stick with pyhton or try out C or C++ before too as I have really less experience with C.


I suggest Python. PHP is okay enough for web applications, but suboptimal for just about anything else. C is certainly worth learning, but can be challenging to use. Python is a pretty good language to learn with, and is perfectly usable for real projects.


What are the best books for pyhton, I have started reading How to Think Like a Computer Scientist, is it good enough or should I start with some other book? P.S. I know pyhton, but want to further improve my skills in it.


I'd go with C. The fact that it's challenging is exactly why you should learn it at this stage.

Many of my generation went Basic -> Assembly, and PHP -> C is not a dissimilar sequence.


I think Knuths work might be too Mathematical in nature for you. If you wish to work on sematic web its better you start with Collective Intelligence its a good book to start with . However it uses Python for its examples. As far as Computer Architecture is concerned do you imply Software architecture or Computer Architecture


Thanks for your advice. So what is the best stage to read Knuth's work? With computer architecture i basically imply software architecture, but I want to know the basics of computer architecture too.


For low level software architecture, at the level of the firmware that drives processors (plus the electronics that are below that), as NonEUCitizen recommended MIT's 6.004 is a good bet (http://ocw.mit.edu/courses/electrical-engineering-and-comput...).

For the medium level, assembly language and on up a fair bit (at least to C), CMU's got what looks like a great course and book: http://www.cs.cmu.edu/~213/ There's enough meat on the web page for the course that it should give you an idea if you want to get the book.

For the higher levels, in addition to the MIT Computer System Engineering courses mentioned by Mithrandir (http://news.ycombinator.com/item?id=1850311), especially 6.033, check out this classic from the '70s: Lions' Commentary on UNIX 6th Edition, with Source Code (http://en.wikipedia.org/wiki/Lions%27_Commentary_on_UNIX_6th...).

Me and a lot of other people learned the basics from it, and while it's certainly dated, it has the advantage of being lucid and complete while not being too big or overwhelming, and of course nowadays if you want to go so far as running a Version 6 UNIX there are PDP-11 simulators that you can use for the purpose. I.e. it's a good foundation, like SICP is for languages and TAOCP is for algorithms (although there are less detailed and difficult books to get you started on algorithms that you might want to try first).

Good luck and enjoy!



The C Programming Language(K&R) and The Unix Programming Environment are the best to start off with.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: