, view all tags

Recommended Reading


  • RSS feeds from arxiv.org
    • hep-ex, nucl-ex, nucl-th, "the physics arXiv blog", "Physics - spotlighting exceptional research"
    • David Webber uses google reader

Programming Topics

  • This list comes from a conversation between David Webber and his engineer friend Dennis Lin on about Nov 20, 2009. This list is in no particular order, although there are some dependencies.
  • Learn C. Figure out how to munge pointers and handle recursion.
  • learn C++. Meaning learn how to structure a program and write objects
  • learn the standard template library (STL). Use vectors instead of arrays
  • Look through the boost libraries. They are a very nice set of high-powered libraries that do everything from regular expressions to serialization. In particular, look at boost::shared_ptr, which will eventually be a C++ standard
  • Learn design patters so your code is maintainable
  • take an algorythms course so you can learn what you can do
  • take computational theory so you learn what you can't do
  • take an architecture course so you know what's actually going on in the hardware (speed improvements)
  • learn a functional language to broaden your perspective (http://en.wikipedia.org/wiki/Functional_programming)
  • Learn python (or perl or ruby.) It's nice to have something to bang out code quickly in. Depending on your situation, that "go-to" language might be shell or MATLAB.
  • learning some sort of version control (e.g. CVS, subversion, GIT)


  • Deitel and Deitel, "C++ How to Program"
    • Get the 6th edition or later. Covers the basics of programming and C++ and Object Oriented Programming specifically. Detailed examples. Discusses what you should and shouldn't do, beyond the allowed syntax.
    • recommended by David Webber
  • Koening and Moo, "Accelerated C++"
    • Covers the basics of programming and C++ and Object Oriented Programming. Starts directly with C++, not assuming C or Fortran knowledge.
    • recommended by Peter Kammel
  • Teach Yourself C++ in 21 Days
    • Web based lectures.
    • recommended by Peter Kammel
  • Freeman, Freeman, Bates, Sierra, "Head First Design Patterns"
    • Conversational and brain-friendly guide to design patterns. Knowing these patterns will help you program more effectively in C++ or Java. Helps avoid having to rewrite code. The book has pseudocode examples.
    • recommended by David Webber
  • Any resource on the Standard Template Library (STL)
    • The STL is a set of templates that extend C++. For example, vectors are superior to arrays. These container classes will help you avoid "off-by-one" errors an allow you to use a lot of prewritten algorithms for sorting, etc.
    • recommended by David Webber
  • ROOT (root.cern.ch)
    • The manual and the reference guide are useful if you already know some ROOT basics.
    • recommended by David Webber

Time Management

-- DavidWebber - 16 Mar 2009
Edit | Attach | Watch | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r3 - 2009-11-24 - DavidWebber
  • Edit
  • Attach
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2021 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback