During my first year of the Bachelor of Network Computing, I had two units on object-oriented programming in Java. The lecturer - an excitable Buffy fanatic - and the textbook were the same for both units. Unfortunately, both the lecturer and the textbook were subpar.
Last column, I spoke about how in such situations, it's up to you to use your initiative to find a better book. Hit up the bookshop or the library and find a book that suits your learning style, a book that answers the questions that the assigned textbook doesn't. The 'recommended reading' section of your course outline booklet is probably a good place to start.
Good websites are just as invaluable as books for the information technology student. In some instances, the official site of a language is just brilliant. In other instances, knowledgeable members of the coding community have set up superior websites.
Java
Trail: Learning the Java Language
Sun Microsystems' Java 'trail' is brilliant. Back when I was studying Java, the tutor encouraged us to use this as our first port of call for solutions to all of our Java problems and misunderstandings.
The 'trail' starts, oddly enough, at the very beginning - it provides logical, coherent explanations of fundamental concepts like objects, classes, inheritances, interfaces and packages. It then moves on, explaining the mechanics of each of these concepts in a reasonable - but not great - level of detail. Easy-to-understand examples are provided.
Java Beans
Java Beans is another website I can recall my tutor making frequent reference to. It has a solid library of tutorials that, it should be noted, are relevant not only to Java programmers - there's some C++ and PHP stuff here too. Too, Java Beans provides the opportunity for members of the Java programming community to contribute content to the website. There is a reasonable collection of tutorials that have been uploaded by members of the community, most of which are quite specialist.
Java Lessons
Looking at this website, I wish I'd known about it back when I was actually working on in-class tasks and assignments all those years ago. Java Lessons provides, yes, tutorials, but has a unique focus on examples. It teaches you the mechanics of the language and the purpose of each statement by providing you with a library of examples of varying complexity. Click on an example and it'll fire up the 'lesson viewer', which shows the source code in one window and an explanation for each line of code in another window. Move the cursor over a line of code and the viewer will highlight the relevant explanation. Visually, this website is ugly as all hell, but functionally it's great.
Java World Community
Java World's main page has some great articles that are probably most beneficial to those who already have a decent understanding of the language but want to expand their knowledge. Why we've included Java World in our list is its community section, which brings together the Java Q&A forum and some relevant blogs.
Java Coffee Break
I remember using this one during my university days. Java Coffee Break's library of tutorials is quite old - the author started his work back in 1996 - but is nonetheless very good if you're a newcomer to the language in search of tutorials that appeal to your learning style and specific needs.
C++
Visual C++ Developer Centre
The official website of C++ a logical and sound first port of all for solutions to any issues you may have with the language. The Microsoft Developer Network has a solid collection of useful downloads and tutorials that are just as extensive as a decent C++ programming textbook. This website is probably the best place to start if you're looking at learning the language in your own time or moving ahead of the class.
CProgramming.com
CProgramming.com has an amazing library of tutorials for both C and C++, which progress logically from the very basics to complex topics such as OpenGL. The problem with CProgramming.com is that it's not updated very often. One look at the website's homepage, for instance, will show that prior to a couple of March 2009 updates, the most recent update was in November 2008. Before that? August. 2007. Note that a lot of CProgramming.com's content seems to come from authors other than the site's creator, meaning a lot of it is probably kicking around elsewhere. The fact that it's all in one place on CProgramming.com is why this website makes our cut.
alt.comp.lang.c-c++
This is a very active Usenet group dedicated to the discussion of C++. With thousands of subscribers, there is no shortage of folks capable of answering even the hairiest of queries. Search through the many thousands of posts from as early as November 1986 and you're bound to unearth gold. If you're reasonably competent in C++, this group is still of great value, as discussing the language with like-minded individuals and answering the questions of less-skilled users well help your own learning and build your confidence with the language enormously.
LearnCpp.com
A website with some very basic tutorials. Not particularly useful for those already quite confident with the language who are in the market for a website that'll take them that bit further, but definitely worth a look if you're a beginner or having difficultly grasping some of the fundamental concepts of the language.
CPlusPlus.com
CPlusPlus.com has tutorials, of course, but the main selling points are its active forum and its collection of working examples, the source code of which can be downloaded, compiled and run in either DOS or Windows.
Visual Basic
Visual Basic Developer Centre
Once again, Microsoft have put together a top notch website. The Microsoft Developer Network's Visual Basic website offers similar content to their C++ page - there are downloads and a large assortment of tutorials. Most interestingly, there is a selection of video tutorials available. Like the Microsoft Developer Networkís C++ page and Sun Microsystem's Java trail, the Visual Basic Developer Centre orients clueless newbies by familiarising them with programming in general and then the basic concepts of the language and its syntax. For the total newcomer to programming, the Visual Basic Developer Centre's Absolute Beginner's Video Series is a most excellent resource.
Mark-up and scripting languages
W3Schools
W3Schools has a brilliant array of tutorials for the mark-up and scripting languages - most notably ASP, CSS, HTML, Javascript, PHP, SQL and XML. W3Schools' library of tutorials is very extensive. Have no fear that the desire for quantity has negatively impacted the quality of W3Schools' content, though. There are examples aplenty. You'd be hard-pressed to run into a problem - at least in one of the languages W3Schools focuses on - that wasn't covered on W3Schools. A great website for beginners and experienced developers alike.
PHPFreaks
Tutorials and a very active forum focused on PHP coding.
HTML: An Interactive Tutorial
A basic but good tutorial on getting started with HTML, which covers not just coding but the basics of website design.
YourHTMLSource/JavaScript
An accessible but nonetheless extensive introduction to JavaScript. The main part of the website, as the URL suggests, focuses on HTML.
JavaScript Kit
This website is pretty old, as demonstrated by the tutorial that talks about the Y2K bug, but it has a large library of quality JavaScript tutorials. The focus of JavaScript Kit is on tutorials that cover more specialised, advanced topics, rather than generalised newbie stuff.
SQLzoo.net
SQLzoo.net provides an introduction to SQL. Provides interactive examples that aide the learning process significantly.
HTML.net
Basic tutorials for HTML and CSS. Both sets of tutorials make no assumptions about prior knowledge and, as such, are absolutely basic. At the same time, they're nowhere near as extensive as W3Schools' collection of tutorials. Only suitable for those who are absolutely inexperienced.
The Python Tutorial
A straightforward name for a very straightforward website. The Python Tutorial introduces you to, oddly enough, the Python language and then takes you from the basics to more advanced ideas. That said, this website is probably best for those with some programming experience under their belts.
Beginners, Non-Programmers Guide to Python
A list of Python tutorials aimed at the complete newbie, including a couple aimed specifically at children.