Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie

Recommended Reading

Options
  • 25-09-2006 3:08pm
    #1
    Closed Accounts Posts: 7,230 ✭✭✭


    So we're all either working in the software development industry, like coding as a hobby, or are students currently undetaking software development courses/modules. I'd like this thread to be a recommended reading thread, whereby we list books which have helped us along to way. The don't have to be entire books, but certain chapters which were influential. The topics can be vast, from good software engineering books to books about language syntax.

    Basically, if you were running a project what books would you like the team you're working with to have read? For me it would definitely be:
    • The Pragmatic Programmer
    • Code Complete's Chapter 33 - Personal Character.

    I think that anyone currently undetaking a software engineering or software development course should definitely read both of these as it will help you immensely not just with writing code, but with self improvement and working in a team environment.

    Are there any other books others would recommend? Or has anyone read these books and did you like/dislike them?


Comments

  • Closed Accounts Posts: 323 ✭✭Robin1982




  • Closed Accounts Posts: 7,230 ✭✭✭scojones


    Any specific reason you are recommending these? I was hoping for a discussion. :)


  • Closed Accounts Posts: 453 ✭✭nuttz


    Test-Driven Development By Example - Beck
    This book is easy to understand and not a huge amount material in it, just enough to understand test driven development and how code in this manner.

    Java Concurrency in Practice - Goetz,
    Covers basic/advanced features in Java, testing concurrent programs, as well as the new concurrent features in Java 5.

    I'd also recommend the two books suggested by Robin1982, they are comprehensive, the design patterns book is not specific to any one language, the refactoring book gives examples in Java.


  • Registered Users Posts: 1,391 ✭✭✭fatherdougalmag


    We recently attended a brainstorm/internal training course in one of our German offices and a copy of the Design Patterns book was purchased for each of our R&D locations. Haven't had a chance to dig deep yet but I'm looking forward to it.

    One thing that they didn't emphasise a lot of in college with us was code maintenance. Some of the paradigms and methodologies out there apply moreso to newly developed code but when there's a need to maintain other people's code, that can be a different thing altogether. Especially when that code is in a different language to what is used in the company's day-to-day activities.

    Only today did I come across the term 'refactoring' when watching some clips from channel9.msdn.com (specifically C# Express Edition IDE). Still need to look into it more and I'll look at that Java book referenced by Robin1982.


  • Registered Users Posts: 21,264 ✭✭✭✭Hobbes


    Second on The Pragmatic Programmer here. They actually broke it up into further books btw.

    Code Complete is good. I would recommend more then that chapter although I think you have a later version then mine as personal development chapter is 31 in mine. :)

    I would also recommend "Rapid Development" Microsoft Press. Brillant book. Nearly everything I have seen right or wrong about a project has been documented in it and explains why.

    If your studying J2EE another must for your collection is core J2EE patterns. Sun press.

    Lastly I would recommend reading "The Art of demotivation. Dealing with your least valuable asset. The employee". Read it back to back and never implement anything it says in that book. (It's total satire but you may see parallels to real life).
    http://www.despair.com/artofde.html


  • Advertisement
  • Closed Accounts Posts: 7,230 ✭✭✭scojones


    Hobbes wrote:
    Second on The Pragmatic Programmer here. They actually broke it up into further books btw.

    They did? Hmm interesting. /me googles.


  • Registered Users Posts: 21,264 ✭✭✭✭Hobbes




  • Closed Accounts Posts: 7,230 ✭✭✭scojones


    Cheers mate. :)


  • Registered Users Posts: 15,443 ✭✭✭✭bonkey


    Hobbes wrote:
    Code Complete is good. I would recommend more then that chapter although I think you have a later version then mine as personal development chapter is 31 in mine. :)

    I would also recommend "Rapid Development" Microsoft Press. Brillant book. Nearly everything I have seen right or wrong about a project has been documented in it and explains why.

    Rapid Development is a classic. Its also written by the same guy who did Code Complete....Steve McConnell.

    McConnell also wrote "Software Project Survival Guide" which is quite good, but probably not at the top of my list. Definitely not as good as CC or RD.

    The Mythical Man Month is also essential reading, as far as I'm concerned, despite being 20 years and more in age.

    While it might seem odd to be telling developers to read a book primarily about project management....its not.

    No argument about The Pragmatic Programmer either. Great read.

    Design Patterns (Gang of Four), as mentioned, is another classic. Personally, I'm not convinced its the best Design Patterns book out there, but its worth a read.

    You may also want to consider "Antipatterns" (but I can't remember who wrote it).

    Oh...and something on UI Design / Usability. I've not found anything subliminal in this field, but Joel Spolsky's "User Interface Design for Programmers" isn't bad. He's got a version of it available free on his site (www.joelonsoftware.com).

    Spolsky's site is a worthwhile read. I don't agree with him in everything he says, but he's generally an interesting and thought-provoking read. Some excellent stuff in the archives, if you can plough through them.


  • Closed Accounts Posts: 323 ✭✭Robin1982


    bonkey wrote:
    ...Design Patterns (Gang of Four), as mentioned, is another classic. Personally, I'm not convinced its the best Design Patterns book out there, but its worth a read...

    When I first was reading this book as an inexperienced Developer I felt the way it was written was quite challenging (plus being Java focused with the samples mostly in C++). I tended to focus just on the Structure diagram given with each pattern rather than reading the Implementation section. Truth is patterns themselves are abstract and that the structure diagram given is in fact just one sample of how to implement the nature of the pattern - often a variation will provide a better solution. I haven't many other patterns books out there - though GoF was the best.

    The book actually takes quite a bit of work to get through, hence many give up on it. However, once familiarity with patterns have been established, an OO designer/developer can now approach complex software design problems with a catalog of proven design strategies. This leads to code that is in an order of magnitude better than "designing-on-the-fly".

    The Refactoring book is a classic too, again a reference book of strategies rather than a start-to-finish document. This book is great ally of the GoF book mentioned above because - and this is important and has already been mentioned - the vast majority of software development students that finish college leave with ideas of designing projects start to finish when - IMHO - 95% of them will start in their new job by working on existing code - code that has often been thrown together to suit some business requirement.

    This book encourages developing with best practices and demonstrates that skilled system designers can take bad code and make it well-designed. Or it can just get you thinking about simply making your code more efficient - the amount of times I saw the following from people in my college:
    ...
    if (something > somethingelse) {
      return true;
    } else {
      return false;
    }
    ...
    

    instead of:
    ...
    return (something > somethingelse);
    ...
    

    just simple things like that - but it gets people thinking about what else they can do - replacing conditional with polymorphism etc.

    My two cents worth...


  • Advertisement
  • Closed Accounts Posts: 7,230 ✭✭✭scojones


    Nice one bonkey. I totally forgot about The Mythical Man Month. It really is an essential read. I'll checkout Spolsky's site this evening when I get home.

    Asides from this genre, the dragon book( Compilers: Principles, Techniques, and Tools ) is a great read. It is a bit dated which means you should be able to pick up a 2nd hand copy on amazon for fairly cheap. Essential for anyone interested in compiler design and parsers.


  • Registered Users Posts: 21,264 ✭✭✭✭Hobbes


    return (something > somethingelse);

    About the only issue I could see with that is that it can be annoying to debug sometimes.


  • Registered Users Posts: 2,082 ✭✭✭Tobias Greeshman


    1. Programming Windows by Charles Petzold - (OK its using WIN32 SDK, which is pretty much obsolete at this stage, but I've worked on projects where this book helped out no end).
    2. The MFC Answer Book by Eugene Kane (so handy especially with MFC being such a pain to use at times, this book shows you how to do stuff you need, plain and simple).


Advertisement