C Programming

If it has been a while since you programmed in C, or if you really know Java rather than C, these might be the right references for you. Many of these are shamelessly cribbed from the CS 4410 web pages.

Software Carpentry

In the feedback from past versions of this course, many students (mostly not from formal computer science backgrounds) told me that the most useful things they learned were everyday software development skills for UNIX environments, like how to use make or how to use version control. If you feel like you would like to pick up these skills in a less ad hoc fashion, you may be interested in the slides and videos for the online Software Carpentry Course put together by Greg Wilson.

UNIX programming tools

Even if you don't feel like going through the software carpentry course, there are some UNIX tools that you should really know about. They will make your life much easier.

Programming lore

If you're an okay programmer but feel like you should sharpen your skills, here are a few books that I enjoyed that you might enjoy as well.