Resources for Software Developers

This page contains my recommendations of web sites and books related to software development that are not covered in our other articles. The books and links are all ones that I have found useful, as an experienced software developer, so they probably tend more to be references rather than tutorials. Everyone has his/her own preferred style of books, and these are all my style -- so I suspect you'll either love all of them or hate all of them.

Disclaimers: For the books, I have not listed the complete publication information, since many come out with frequent new editions. Several of the book titles, publisher names, and technologies below are trademarked, so assume they all are referenced as such.

General Software Development Techniques

  • Book: Code Complete, by McConnell (Microsoft)
  • Book: Writing Solid Code, by Maguire (Microsoft)
  • How to write unmaintainable code (of course, this is a tongue in cheek prodding on how to make maintainable code)
  • Book: Testing Computer Software, by Kaner, Falk, and Nguyen (Wiley)
  • Book: Extreme Programming Explained, by Beck (Addison Wesley)
  • Extreme Programming site (an intriguing software project philosophy)
  • Book: Data Structures and Algorithms, by Aho, Hopcroft, and Ullman (Addison Wesley)
  • Book: Numerical Recipes in C, by Press, Teukolsky, Vetterling, and Flannery (Cambridge)
  • Book: Graphics Gems (series), by various authors (Academic Press)
  • Joel on Software, Joel Spolsky's pages on "painless software management"

Software Development Utilities

  • Emacs, a full-featured programmer-friendly text editor
  • If you are getting into more complex projects, you will want to get some kind of version control system set up. Subversion is the best open-source version control system I am aware of, and it rivals many commercial systems. You might also want to install the Eclipse platform and its SubVersion plugin (SubClipse).
  • Cygwin, a Linux-like environment, complete with X-Windows and compilers for various programming languages, that runs under Windows
  • Free setup utilities - for making installation programs for software. I've checked out several of these, and my favorite is NSIS (NullSoft) - a straightforward, small, flexible, script-based installer.
  • Bugzilla - a free, web-based bug tracking system (based on Perl and MySQL).
  • SourceForge.net, a repository for open-source software projects, including (volunteer) help wanted listings; freshmeat.net is a database containing the output of many of these projects, and other free utilities

Java

Java is a freely-available object-oriented graphics/general programming language.

  • Sun Java home page
  • Book: Java in a Nutshell, by Flanagan (O'Reilly)
  • Book: Practical Java, by Haggar (Addison Wesley)
  • Book: Java Enterprise in a Nutshell, by Flanagan, Farley, Crawford, and Magnuson (O'Reilly)

Miscellaneous languages

  • Our article on resources for web developers has a lot of resources for web-related languages
  • Book: The C Programming Language, by Kernighan and Richie (Prentice Hall)
  • Books: Visual Basic (insert version here) for Dummies, and More Visual Basic (insert version here) for Dummies by Wang (IDG Books) (note: there are all kinds of versions of these books for different VB versions, such as "Visual Basic 5 for Windows for Dummies" -- that's what the "insert version here" thing means)
  • Book: Access Database Design and Programming, by Roman (O'Reilly).

TeX

Tex is a freely-available text formatting language, used for making formatted documents, books, presentations, etc.

  • Book: TeX for the Impatient, by Abrahams, Berry, and Hargreaves (Addison Wesley)
  • Book: The TeXbook, by Knuth (Addison Wesley)
  • TUG (TeX User's Group) home page - the first place to stop when looking for information/downloads/etc.

Comments

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a>
  • Lines and paragraphs break automatically.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
minus three equals one
Solve this math question and enter the solution with digits. E.g. for "two plus four = ?" enter "6".