Hey there! Sign in to join this conversationNew here? Join for free

The Programming Resources Thread Watch

Announcements
    • Thread Starter
    Offline

    0
    ReputationRep:
    The TSR Programming Resources Thread
    Having seen many questions on this forum requesting for book suggestions/pathways to learning certain languages I thought what was needed was a place where all these questions can be answered.

    The aim of this thread is to become a repository of resources for both new and experienced programmers.
    The resources have been split roughly by language (In no particular order) and into several sub sections(Beginner, Intermediate and Advanced)

    This thread will be updated with links to all the books mentioned.


    x86 ASM
    --Beginner--
    Assembly Language Step-by-Step - Programming with Linux, 3rd Edition Jeff Duntemann
    PC Assembly Language Paul A. Carter

    --Intermediate--
    todo

    --Advanced--
    The Art of Assembly Language Programming Randy Hyde
    Intel Architecture manuals
    AMD Architecture Manuals


    C
    --Beginner--
    The C programing Language Brian W. Kernighan and Dennis M. Ritchie*

    --Intermediate--
    Practical C Programming, 3rd Edition Steve Oualline
    C - A Reference Manual S. P. Harbison and G. Steele

    --Advanced--
    Expert C Programming Deep C Secrets Peter van der Linden
    Unix Network Programming, Volume 1: The Sockets Networking API (3rd Edition) W. Richard Stevens, Bill Fenner, and Andrew M. Rudoff
    UNIX Network Programming, Volume 2: Interprocess Communications (2nd Edition) W. Richard Stevens
    Advanced Programming in the UNIX Environment, Second Edition W. Richard Stevens
    POSIX Threads Programming Blaise Barney, Lawrence Livermore National Laboratory

    C++

    --Beginner--
    C++ Programming for the Absolute Beginner Mark Lee
    CPlusPlus.com
    Sams Teach Yourself C++ in 21 Days, 4th Edition Jesse Liberty

    --Intermediate--
    Boost Libraries
    The C++ Programming Language Bjarne Stroustrup
    Accelerated C++ Andrew Koenig and Barbara E. Moo

    --Advanced--
    todo


    C#
    --Beginner--
    Professional C# Various authors
    --Intermediate--
    --Advanced--


    Python
    --Beginner--
    How to Think Like a Computer Scientist, Learning with Python 2nd Edition Jeffrey Elkner, Allen B. Downey, and Chris Meyers
    The Python Tutorial

    --Intermediate--
    Dive into Python Mark Pilgrim

    --Advanced--
    The Python Language Reference


    Java
    --Beginner--
    Thinking In Java Bruce Eckel
    The Java Tutorials
    --Intermediate--
    --Advanced--
    Java 6 Reference

    Pascal
    --Beginner--
    --Intermediate--
    --Advanced--


    Delphi
    --Beginner--
    --Intermediate--
    --Advanced--


    PHP
    --Beginner--
    --Intermediate--
    --Advanced--




    This thread will be updated periodically. If you have any useful suggestions (missing languages/books) don't hesitate to post them below.

    *This book adhears to the ANSI C standard as of 1988, it does not take into acount several revisions made to the ANSI C standard since then (most recently ISO/IEC 9899:1999 or "C99" ) However it is a very good resource and I'd recommend it whole heartedly.

    09/12/2010: I'll Update this later tonight to add the rest of the books I know of.
    Offline

    0
    ReputationRep:
    For C++ you recommend "Sams Teach Yourself C++ in 21 Days, 4th Edition Jesse Liberty"? 7 years ago I wrote a review on Amazon saying it could be worse but was a bit rubbish. A few years later someone else quite rightfully commented that I was being far too kind, it could in fact not be any worse. It really does totally suck. He then wrote his own review saying "Out of date and confusing". True it also has a bunch of 5 star reviews, but the people giving it poor reviews come across as far more knowledgable than those giving it good reviews.

    Accelerated C++ is much better, though I'm sure there are other good books too.

    I'm not sure why Dive Into Python and the Python Tutorial are marked as "intermediate" rather than "beginner".

    Professional C# is quite a good introductory C# book, Thinking In Java is quite a good introductory and intermediate Java book (plus old versions are free online). No idea why anyone would want to study Pascal nowadays, does anyone really still use it? The same can mostly be said for Delphi, there are far more useful languages to learn.
    Offline

    2
    ReputationRep:
    Java 6 reference:

    http://download.oracle.com/javase/6/docs/api/index.html

    who needs a book?
    • Thread Starter
    Offline

    0
    ReputationRep:
    To James Gregory:
    For C++ you recommend "Sams Teach Yourself C++ in 21 Days, 4th Edition Jesse Liberty"? 7 years ago I wrote a review on Amazon saying it could be worse but was a bit rubbish. A few years later someone else quite rightfully commented that I was being far too kind, it could in fact not be any worse. It really does totally suck. He then wrote his own review saying "Out of date and confusing". True it also has a bunch of 5 star reviews, but the people giving it poor reviews come across as far more knowledgable than those giving it good reviews.
    I stumbled upon an ebook/html version of the book and 'flicked' through it. I found it quite suitable. Everything is laid out clearly, there is a set progression and the core concepts are well explained for those who have never had any programming expereince.
    As for out of date, It complies with the ISO/IEC 14882:2003 standard so I'm not sure in what sense it would be out of date.
    Will it teach you C++ in 21 days? No, not even close, but its not a bad book to get you started
    Would I buy it? Probably not, but if you can find it somewhere lying around it may be worth a read.
    Accelerated C++ is much better, though I'm sure there are other good books too.
    Added under intermediate C++.

    I'm not sure why Dive Into Python and the Python Tutorial are marked as "intermediate" rather than "beginner".
    Python Tutorial has now been moved into the beginners section.
    Dive Into Python has been classed as intermediate because to somone who has never programed before it could be quite overwhelming, it does rush into things rather quickly.
    To quote the author: "Dive Into Python is a Python book for experienced programmers"


    Professional C# is quite a good introductory C# book, Thinking In Java is quite a good introductory and intermediate Java book (plus old versions are free online).
    Added under the relevant sections.
    No idea why anyone would want to study Pascal nowadays, does anyone really still use it? The same can mostly be said for Delphi, there are far more useful languages to learn.
    Agreed, however this is The Student Room. Alot of FE colleges/sixth forms offer pascal/delphi as their language of choice to complement the computing A-Level, as such I thought it prudent to include any resources I have on those languages to help our fellow students.

    Thanks for the book recomendations


    To alex h-s:
    Java 6 reference:
    Thanks, Added under the Java section
    who needs a book?
    Those who have never had any programming expereince whatsoever but are interested in getting started? If you handed a raw beginner a coppy of the Java API Spec. I doubt they'd come back with a "Hello world" program.
    Offline

    2
    ReputationRep:
    http://www.amazon.co.uk/Programming-...1915900&sr=8-1
    It is quite expensive, but out of all the books and internet tutorials I've come across, it's by far the most coherent for a beginner. It's made programming no longer an obstacle for me.
    Though it does get really nerdy sometimes, and I really hate the analogies the author sometimes uses('now, imagine Victorian agricultural processes...'), though tbh, I do think at times it can be quite funny and makes me smile a bit when I compare the paragraph's content I'm currently reading to the chapter(no resemblance, what so ever).
    I'm rambling a bit; honestly, it's just a great book for beginners.
    BTW, for those say under 13(maybe younger... personally though I wouldn't be able to have handled C++ at 13 though I know some who have done/would be able to), idk if there'd be any, you might want to add a section for QBASIC or Liberty BASIC. It's nice to introduce concepts like variables and if statements, etc. and can be learned quite easily with-in a week. Though I don't know what resources I used tbh since it was so long ago.
    EMZ=]
    • Thread Starter
    Offline

    0
    ReputationRep:
    UPDATE: 14/11/2010
    Added several books by W. Richard Stevens and Co. under the advanced section.
    Also added C++ Programming for the Absolute Beginner by Mark Lee on Emor's recomendation.
    Also added links to Many of the books mentioned, I will continue to update. Adding more books and links.

    We are quite heavy on the C/C++ side of things so if anyone knows of any good PHP/Pascal/Depli Books out there let me know, I must confess I'm quite ignorant when it comes to PHP.
    Something I should probably remedy with a little help from TSR Members' book recomendations eh? eh? :yep:
    Offline

    19
    ReputationRep:
    Introduction to Pascal Programming. Welsh, J. & Elder, J. (1988)

    few second hand copies on amazon - used to be a recommended text on some 1st year CS courses... allegedly. The book is pretty complete in terms of the language's features iirc.
    I thought it was well written and useful - bit of a blast from the past when computer books didn't compete on sheer size.

    dunno if anyone would bother with an advanced Pascal book (writing or reading) tbh - though maybe I'm just prejudiced about it being a beginners language.
    Offline

    2
    ReputationRep:
    Koening & Moo go onto recommend reading The C++ Programming Language after finishing ACPP and doing some more programming, I believe, which suggests it should be advanced.

    Good shout on Paul Carter's assembly book. As long as you understand a bit of C, it really does take you right the way through the basics you need to get started in asm. As far as I know, there aren't really any good intermediate assembly books. The whole point is that you learn the basics (e.g. memory models and units, format of x86 instructions, how to assemble and run your results etc.) then, through experimentation and using instruction references on the net, get yourself to a point where you can read more advanced books. Once you understand a certain amount (e.g. conditional jumps as the main control structure), it becomes more a task of learning about new instructions than a matter of style.
    Offline

    19
    ReputationRep:
    (Original post by trolololol)
    Koening & Moo go onto recommend reading The C++ Programming Language after finishing ACPP and doing some more programming, I believe, which suggests it should be advanced.

    Good shout on Paul Carter's assembly book. As long as you understand a bit of C, it really does take you right the way through the basics you need to get started in asm. As far as I know, there aren't really any good intermediate assembly books. The whole point is that you learn the basics (e.g. memory models and units, format of x86 instructions, how to assemble and run your results etc.) then, through experimentation and using instruction references on the net, get yourself to a point where you can read more advanced books. Once you understand a certain amount (e.g. conditional jumps as the main control structure), it becomes more a task of learning about new instructions than a matter of style.
    There's probably going to be an 'intermediate' gap a lot of the time cos a decent beginner book should actually take you quite a long way imo.

    once you've got the basics down and done some practice you're ready to look at the specialist - e.g. networking.

    maybe general/specialist would be a better split than beginner/intermediate/advanced?
    Offline

    2
    ReputationRep:
    I think languages like C++ and Java still have a clean division between beginner/intermediate/advanced books though.

    For example, something like <any of the myriad beginners C++ books here> for beginners, Accelerated C++ for the more intermediate level and something like The C++ Programming Language for the advanced -- or perhaps a more specialised book like Exceptional C++. But there's certainly a full spectrum out there for some languages.

    Personally, I believe more in reading through only to a knowledge level and then experimenting (perhaps supplemented with more specific tutorials etc.) to reach the understanding stage. I certainly think a "specialist" category would be a good addition.
 
 
 
  • See more of what you like on The Student Room

    You can personalise what you see on TSR. Tell us a little about yourself to get started.

  • Poll
    Will you be richer or poorer than your parents?
    Useful resources
  • See more of what you like on The Student Room

    You can personalise what you see on TSR. Tell us a little about yourself to get started.

  • The Student Room, Get Revising and Marked by Teachers are trading names of The Student Room Group Ltd.

    Register Number: 04666380 (England and Wales), VAT No. 806 8067 22 Registered Office: International House, Queens Road, Brighton, BN1 3XE

    Quick reply
    Reputation gems: You get these gems as you gain rep from other members for making good contributions and giving helpful advice.