Useful and interesting links for new Java programmers

Please note, this page was first put together in 1998, and is now given only small amounts of maintenance - see below. In particular, this site was put together reflecting early versions of the Java language. I felt the changes introduced in Java 5 were so significant that they required a major overhaul of my teaching and thinking about the Java language, but I did not have time to re-orient this page around that, so that marks the point when I stopped active work on this page.

University Java programming course web pages
General resource sites for Java
Other relevant sites for Java
Java books sales sites
Java sites from web-indexers
Java question-answering services
General resource sites
Computing societies
University course indexes
Managing Java files
Unicode sites
On-line dictionaries/glossaries
Interesting or useful personal web-sites
Study skills and general help sites
The Real World

What this page is for

This page of links was originally produced for students on the course Introduction to Programming in the Department of Computer Science (now part of the School of Electronic Engineering and Computer Science) at Queen Mary, University of London, in the UK. However, it linked into material well beyond the scope of that course so it was made available as a public resource for anyone else who is interested.

The aim was to provide material for students learning to program in an object-oriented style using the Java language. The emphasis is more on general programming skills than the intricacies of the Java language. So I have avoided material which introduces Java with an emphasis on its graphical or networking side. There are, however, links for those who want to move ahead to look at these things. I have not given links to many of the vast number of sites aimed at Java Certification since that is more about factual knowledge of the details of Java than general programming skills.

I have also used this page to collect more general links on computer programming and related issues which I think would be of interest to new students in Computer Science.

I have tried to make all links here to original sites rather than mirror sites, so they are as up to date as possible. Also mirror sites made without permission of the original author are a breach of copyright. So far as I am aware, everything with a direct link from this site has been made available by its author to the public over the web.

This site also contains, for reference, links to other sites of a type which this is not: sites which indiscriminately list anything that can be found on Java, sites which are mainly about how to use Java to enhance your web page, and sites which are for those who already have a lot of experience with Java or C/C++ programming. The author of this site (Matthew Huntbach) disclaims responsibility for anything that may be found indirectly from pages to which it links.

The future of this site

This site was first put together in 1998, and reflects the simple style of early web pages built using raw html. Since then there have been huge changes in web technology and the scope and usage of the Java language. The emphasis of this site is intended to be on the simple basics of object-oriented programming, so its style and the approach it takes to Java is still, I hope, relevant. In any case, I don't have time to make radical changes to it.

Java 5 marked a particularly big change in the Java programming language, which had (or should have had!) an impact on even the most introductory teaching of the language. This site does not reflect the impact of those changes, but it marks the point at where I stopped actively working on the site as it would have been too much of a job to update it thoroughly to ensure it was all compataible with Java 5 and later versions of the language.

I will occasionally check and remove dead links or those which have obviously become irrelevant, but old links will stay in otherwise. I am not actively seeking new links, though if while working on other things I do come cross a site I think useful and relevant to the aims of this site, I will add a link to it here. The links to other university course pages are a particular feature of this site, but by their nature, they are fast changing, so difficult to keep up to date. Please email me if you come across any dead links, have a link you think really should be included here, or have some other comments.

I have collected a few more links, mainly to university course web pages, on a couple of other pages which are still intended mainly for courses I'm teaching:

University Java programming course web pages

Many university courses on programming have made their complete course notes publicly available through the web. The emphasis of most of the courses here is to teach programming in general using Java, rather than to teach Java in particular. Most are introductory, some are at an intermediate level. You can find links to course pages for other university courses under university course indexes.

Note 27 October 2010 - I have just checked this list and some of these links are still live, some even lead to updated course materials, but many are dead. In some cases a a dead link means a change of policy so course material is no longer public, in other cases it means the person teaching the course has moved on and taken down the public material. Sometimes, however, it just means changes in web organisation at the university meaning a different address will get the material and it just needs a little research to find the new address. Right now, I don't have time to update these links, so please just take them as they are.

University of London colleges, and other London universities

  • Matthew Huntbach, Queen Mary, University of London
  • Fintan Culwin, South Bank University
  • Dan Hanley, South Bank University
  • Colin Cooper, Goldsmiths College, University of London
  • Susan Eisenbach, Imperial College, University of London
  • Michael Huth, Imperial College, University of London

    Other UK universities

  • Simon M. Lucas, University of Essex
  • Frans Coenen, University of Liverpool
  • Paul Dunne, University of Liverpool
  • Rudi Lutz, University of Sussex
  • Rudi Lutz, University of Sussex
  • Pete Martin, University of the West of England
  • Philip Hanna, Queen's University, Belfast
  • Steve Jarvis, University of Warwick
  • W. Black, UMIST
  • K. Buckley, University of Wolverhampton
  • University of Birmingham
  • David Aspinall, University of Edinburgh
  • Rob Pooley, Heriot-Watt University
  • Arthur Norman, University of Cambridge
  • Leigh Dodds, University of Bath

    Other European universities

  • Martin Rhiger, Roskilde University, Denmark
  • Jonathan Lambert, National University of Ireland, Maynooth
  • Axel-Tobias Schreiner, University of Osnabrück, Germany
  • René Lalement, Ecole National des Ponts et Chaussées, Marne-la-Vallée, France (in French)
  • Charlie Daly, Dublin City University
  • Joe Morris, Dublin City University
  • Clark S. Lindsey, Kungliga Tekniska Högskolan, Sweden
  • David Carr, Luleå University of Technology, Sweden
  • Mark Minas, Friedrich Alexander University of Erlangen-Nürnberg (in German)
  • Debora Weber-Wulff, Fachhochschule für Technik und Wirtschaft, Berlin
  • Christophides Vassilis, University of Crete
  • Alexander Kolesnikov, University of Joensuu, Finland.
  • Kristian Torp, Aalborg University, Denmark.

    USA universities

  • Elliotte Rusty Harold, Polytechnic University in Brooklyn
  • Bradley Kjell, Central Connecticut State University
  • Stephen Wong and Dung Nguyen, Rice University, Houston, Texas
  • Mike Wessler and Lynn Andrea Stein, Olin College, Needham, Massachusetts
  • Richard Baldwin, Austin Community College, Texas
  • Ron Cytron, Washington University in St. Louis
  • Tim Teitelbaum, Cornell University
  • David Gries, Cornell University
  • Joshua Hodas, Harvey Mudd College, Claremont, California
  • Samuel Rebelsky, Grinnel College, Iowa
  • Bina Ramamurthy, State University of New York at Buffalo
  • John Santore, State University of New York at Buffalo
  • Olivier Baby, Brandeis University, Waltham, Massachusetts
  • John Sullins, Youngstown State University, Oklahoma
  • Christopher Vickery, Queens College, City University of New York
  • Jason Zych, University of Illinois at Urbana-Champaign
  • Jason Zych, University of Illinois at Urbana-Champaign
  • Mark Holliday, Western Carolina University
  • Mark Sheldon, Wellesley College
  • Charlie McDowell, University of California, Santa Cruz
  • Carl Ebeling, University of Washington
  • Manu Kumar, Stanford University
  • Xiaoping Jia, DePaul University, Chicago
  • Fawzi Emad and Rance Cleaveland, University of Maryland
  • Rebecca Hasti, University of Wisconsin - Madison
  • Dennis Frey and Susan Mitchell, University of Marylnd, Baltimore County
  • Kathryn S McKinley, University of Texas at Austin

    Canadian universities

  • Osmar R. Zaïane, University of Alberta
  • David Grimshaw, Ryerson Polytechnic University, Toronto
  • Pierre Marchand, Université Laval, Québec (in French)
  • Andria Hunter, University of Toronto
  • Jim Rodger, Queen's University, Kingston, Ontario
  • Hafedh Mili, Université du Québec à Montréal (in French)
  • Jonathan Mohr, Augustana University College, Alberta
  • Yves Lespérance, York University, Toronto

    Australasian universities

  • Peter E. Jones, University of Western Australia
  • Peter Andreae, Victoria University of Wellington, New Zealand
  • Rodney Topor and David Chen, Griffith University, Brisbane
  • Charles Teva, RMIT University, Melbourne
  • University of Sydney

    Asian universities

  • Heng Aik Koan, National University of Singapore
  • Bashir Mohammed Ghandi, King Fahd University of Petroleum and Minerals, Saudi Arabia
  • Subhashis Banerjee, Indian Institute of Technology, Delhi
  • V. Karthik Kumar, Birla Institute of Science and Technology, Pilani, India

    General resource sites for Java

    Here are some sites with links to Java "Frequently Asked Questions" (FAQ), tutorials, and plenty of other Java resources. Remember, this sort of site is going to contain a lot of material on advanced aspects of Java. So don't feel overwhelmed by the sheer amount of material here. As with the university programmig course web pages, these are sites I found useful or interesting when I was actively compiling this list of links. Better but more recent ones will only be added if I happen to come across them, and as I am not actively looking for them any more I may well have missed what are now the best sites.

  • java.sun.com from the company (Sun) which originally developed Java
  • JavaRanch
  • Cafe au Lait
  • Java Programming Resources.
  • JavaWorld with columns on introductory Java here.
  • Java Coffee Break
  • Software Technologies
  • artima.com
  • Code Style oriented towards web development, but has material on basic Java concepts (note some of this site's material requires payment to access).
  • java.net "a common area for interesting conversations and innovative development projects related to JavaTMtechnology".
  • Javabeat
  • Gamelan
  • Javacorner (in French)
  • jGuru includes a Java Intro course
  • Network Computing Java Resources Page
  • Java Channel
  • IT Toolbox
  • Java Tips
  • Java Olympus.com
  • Java Applications Programming from FunctionX
  • Gil Hansen's Java Links from Java Metroplex User's Group
  • Java links from Eric Foster-Johnson
  • Focus on Java from About.
  • DevX Java zone
  • Developer's Daily
  • RoseIndia

    Other relevant Java sites

    Here are a few more relevant sites containing material on programming in Java. As with the other sections, this reflects the situation when I was actively working on this page of links. So there may be many very good sites I have missed because I am no longer actively looking for them, and some to those listed here may be outdated or have gone away completely.

    On-line books using Java

    These are books on introductory programming using Java where the complete text is available on-line.

  • Introduction to Programming using Java: An on-line textbook on introductory programming by David Eck.
  • Thinking in Java, 3rd edition by Bruce Eckel (local copy here or without frames here).
  • Interactive Programming in Java an innovative way of introducing programming in Java by Lynn Andrea Stein
  • How to Think Like a Computer Scientist which is actually an on-line book on Java programming by Allen B. Downey
  • On to Java on-line version of the textbook by Patrick Henry Winston and Sundar Narasimhan.
  • Object-Oriented Software Design and Construction with Java by Dennis Kafura, another on-line Java book.
  • Bleeding at the Keyboard by Gregory J.E. Rawlins
  • Programming Principles in Java: Architectures and Interfaces another on-line book in development, this one by Dave Schmidt
  • Data Structures and Algorithms with Object-Oriented Design Patterns in Java: an on-line book by Bruno Preiss
  • The Design Patterns Java Companion on-line book by James W. Cooper
  • JavaTech: Introduction to Scientific and Technical Computing with Java by Clark S, Linsey
  • Structure and Interpretation of Computer Programs an influential programming text book from the MIT Artificial Intelligence Laboratory, though uses Lisp rather than Java
  • The Java Language Specification the official definition of the Java language.
  • A Little Book on Java by Fatima Ahmad and Prakash Panangaden.
  • Beginner Java Tutorial

    Text book sites

    These are given where although the complete text book is not on-line, there is a site accompanying it which contains slides and other useful material. Again, I am no longer actively compiling this list, so new sites will ony be added if I happen to come across them while doing something else.

  • Developing Java Software by Russel Winder and Graham Roberts.
  • An Introduction to Programming and Object Oriented Design using Java a set of slides to accompany the book by Jaime Niño and Fred Hosch.
  • An Introduction to Computer Science using Java another textbook website with slides, book authors are Sam Kamin and Dennis Mickunas.
  • Object Oriented Software Engineering A text book site, moves on from Java to software engineering. Includes slides in French as well as English.
  • Java Software Solutions site (including slides) for textbook by John Lewis and William Loftus.
  • Computing Concepts with Java Essentials by Cay Horstmann
  • Java by Dissection by Ira Pohl and Charlie McDowell
  • Understanding Java by Barry Cornelius.

    Miscellaneous Java links

    Again, I am no longer actively compiling this list, so new sites will ony be added if I happen to come across them while doing something else.
  • JavaLanguage page on WikiWikiWeb
  • Don't fear the OOP: A simple and entertaining introduction to object-oriented programming using Java
  • Introduction to Java by "Selena Sol" of Java Boutique
  • Making sense of Java: a balanced view of Java
  • Java Jargon by Gus Bellingham-Smith
  • The Roles of Variables Home Page with Java-specific page here.
  • Loop patterns
  • Patterns for selection
  • Java Data Structures by "particle".
  • Java reference notes by Fred Swartz Java reference notes by Fred Swartz
  • Du C/C++ à Java Java tutorial aimed at C/C++ programmers in French.
  • Brunel University Java Primer
  • Java Primer from York University, Canada
  • An introduction to Java in German
  • Ryan Stansifer's Notes about the Java Programming Language
  • Krutsch Associates Java notes
  • A Programming Style for Java by Paul Haahr a good introduction to the need to observe good programming style in Java.
  • Fresh Sources Inc. Articles on Java programming by Chuck Allison from the C/C++ Users Journal.
  • Ananda Amatya's Java Notes
  • Java in the Computing Curriculum Conference A series of conferences on using Java in teaching computing.
  • Fluffy Cat Java reference and example site.
  • Java Practices "offers concise presentations of Java practices, tasks, and designs".
  • Java Training Notes from Well House Consultants.
  • Kick Java Java API by example.
  • Java Programming (with Passion) Mainly in more advanced aspects of Java programming, but has an introductory Java programming course.
  • Jakob Jenkov Site is owned and operated by a Danish software development company, Java tutorials are a major feature of it.
  • Java Beginner introduces Java in a rather random manner.
  • JavaMex Also a bit random, covers some more advanced aspects of Java in a fairly simple way.
  • LiteratePrograms Category: "Programming language:Java" Mainly implementation of well-known algorithms and data structures in Java.

    Java books sales sites

    Books available on Java can be found from on-line book sales and publishers' sites. These will generally give you some idea of the contents, and the book sales sites also includes customer reviews.

  • Amazon.com
  • Barnes and Noble
  • Dominant Systems
  • Bookpool.com
  • Addison Wesley & Benjamin Cummings introductory Java programming
  • Addison Wesley Java for professional programmers
  • Prentice Hall Introductory Java.
  • Wiley Intro to CS - Java Programming.
  • O'Reilly
  • Thomson Course Technology
  • McGraw Hill

    Java sites from web-indexers

    The Java sections of general web-index sites are generally not as well organised as dedicated Java sites. So what I said about Java resource sites applies even more here.

  • dmoz - Open Directory Project
  • Yahoo
  • Google
  • Alltheweb
  • Best of the Web
  • Mamma.com
  • Mathtools.net
  • Nerd World
  • FindArticles.com
  • Ask
  • Vivismo
  • A9
  • CBEL

    Java question-answering services

    These are sites which promise that questions you send in on Java programming will be answered by an "expert". You can also see answers to other people's questions. Once again, note much of the material here will be well in advance of, or take a different approach from, what you would find on an introductory course. Also the expertise of some of the "experts" isn't that great.

  • ITworld.com
  • Java Answers Forum
  • DevX.com
  • AllExperts.com
  • jGuru Java Language FAQ
  • Tek-Tips Java Forum
  • esus.com
  • Kasamba
  • GeekInterview
  • FAQTS
  • IT/Developer Network theScripts
  • Nabble
  • Dream in Code
  • Go4Expert

    General resource sites

    This is a selection of general sites on Computer Science picked out because they are particularly comprehensive. Useful if you want to look things up that go beyond Java programming.

  • BURKS is the "Brighton University Resource Kit for Students", which contains a lotnof useful information and links for Computer Science students.
  • Cetus links contains large number of links on objects and components.
  • The Virtual Museum of Computing
  • Sun SITE Northern Europe: lots of free software and tools.
  • CiteSeer Computer Science Directory an index to research papers and citations.
  • Stanford Computer Science Education home includes a library of computer science educational materials.
  • Web Developer's Virtual Library: oriented towards programming web applications, but contains much general material on programming.
  • SitePoint another site oriented towards programming web applications, so its Java section quickly goes into relevant tools for that, but it also has a few introductory articles.
  • The Higher Education Academy - Information and Computer Sciences: a site about teaching Computer Science at university level.
  • intelligentedu.com: Computer Education, Training, & Tutorial Resources, including Free Java Training and Tutorials.
  • Wong's Computer Science links
  • Techie Treks: mainly Linux/Unix stuff, with some good tutorial links. Java tutorial
  • TECFA's Technologies Internet et Education a very full computing resources site, only partly in French.
  • ACM/IEEE Draft Computing Curricula 2005 What the leading computing societies say should be in a Computer Science degree.
  • Association of C and C++ Users includes book reviews and links on more than just C/C++.
  • Object Central material on object-oriented programming, though more C++ than Java.
  • Programming Languages Resources on the WWW
  • geometry "the online learning centre".
  • webmonkey "the web developer's resource".
  • Programmers Heaven with Java section here.
  • Studentzone Computing page lists to UK university Computer Science departments, and other relevant links for Computer Science students.
  • CompInfo "The Computer Information Center".
  • BUBL Link Computer Science catalogue of selected internet resources.
  • Intute Computing Gateway from the Intute site, created by a network of UK universities and partners.
  • Object Oriented Programming Web programming and computer science links.
  • Object Mentor "the industry leader in transitioning enterprises, both large and small, to Agile Software Development", its site has plenty of useful resources.
  • GeekArticles "compiles and disseminates Web programming-related resources".
  • FAQS.ORG Copies of Linux and general computing documents, and general links.
  • Free Computer Books Links to books, mainly programming oriented, available for free on the web.
  • Computer-Books.us Another site of links to books, mainly programming oriented, available for free on the web.
  • Computer Science Research Library a good page of links for general research on computer science.
  • EEVL A guide to computing resources created and run by a team of information specialists from a number of universities and institutions in the UK.

    Computing societies

    Organisations of professionals involved in computing

  • ACM
  • IEEE Computer Society
  • BCS (The British Computer Society) (see also BCS SPA BCS special interest group in Software Practice Advancement:)
  • IEE (The Institution of Electrical Engineers)
  • Australian Computer Society
  • American Association for Artificial Intelligence
  • Association for Women in Computing
  • USENIX
  • Computing Research Association
  • UK eInformation Group

    University course indexes

    These are sites that can lead you to the course pages for a variety of courses taught in computer science departments throughout the world. Compare how other universities teach material you're doing, or just sample the vast range of things that are taught within computer science. It may be of use either now or later in your student career.

  • SIGCSE Education Links from the ACM Special Interest Group on Computer Science Education.
  • Web sites of University I.T. courses another list of courses from a range of universities.
  • Kirk Pruhs' algorithms courses page mostly links to pages for the complete set of Computer Science courses for various universities
  • Stanford University Computer Science course home pages
  • Yale University Computer Science courses
  • Cornell University Computer Science course pages
  • Princeton University Computer Science Department course pages
  • Purdue University Computer Science Course Syllabi
  • Duke University Computer Science Courses
  • University of California, Berkeley, Department of Electrical Engineering and Computer Sciences, course home pages
  • University of Colorado at Boulder, Computer Science course web pages
  • Rice University course web pages
  • University of Pennsylvania
  • Brown University Computer Science web pages
  • Montana State University-Bozeman, Department of Computer Science
  • Iowa State University, Homepages for Computer Science Courses
  • Oregon State University, Classes - Electrical Engineering and Computer Science
  • University of Illinois at Urbana-Champaign, Computer Science course descriptions
  • Harvey Mudd College, Computer Science courses
  • Johns Hopkins University, Computer Science course home pages
  • University of Washington, Department of Computer Science and Engineering, course pages
  • College of Computing, Georgia Tech - Class Web Sites
  • York University Computer Science course archives
  • University of British Columbia, Computer Science
  • University of Auckland, New Zealand, Computer Science course pages
  • Victoria University of Wellington, New Zealand, School of Mathematics, Statistics and Computer Science Current and Future Undergraduate Courses
  • University of New South Wales Computer Science course pages
  • University of Western Australia, Computer Science and Software Engineering Undergraduate Resources
  • University of Cambridge Computer Laboratory, Lecture Course Material
  • Informatics, University of Sussex
  • University of Bristol, Department of Computer Science, Teaching page
  • University of Liverpool, Module Notes
  • University of Essex, School of Computer Science and Electronic Engineering
  • Software Engineering, ETH, Zurich
  • University of Western Ontario, Department of Computer Science, Instructor Supplied Course Information
  • Brock University, St Catharines, Ontario
  • MacQuarie University, Australia, Department of Computing units
  • Department of Computer Science, University of Cyprus
  • University of Kent, Computing
  • University of Strathclyde, Computer and Information Sciences
  • STS: Institute for Software Systems, Technische Universität Hamburg-Harburg
  • King Fahd University of Petroleum and Minerals, Saudi Arabia
  • Aarhus University, Denmark

    Managing Java files

    When this site was set up to support a course, I used files edited using standard text editors and run on Linux, rather than any sort of Java development environment. So for this historical reason, there are a few relevant links for this here.

    Linux/Unix sites

  • The Linux home page
  • The Linux Documentation Project
  • LinuxCommand.org "Your One-Stop Command Line Shop".
  • Short Guide to Unix from the University of Sheffield.
  • Unix is a Four Letter Word
  • UNIXhelp developed at the University of Edinburgh, including On-line UNIX manual pages
  • Extropia's Unix tutorial
  • Introduction to Unix by Graham Roberts at University College London.
  • unixreview.com web site for Unix Review newsletter.

    Text editor sites

  • XEmacs home page
  • XEmacs tutorial
  • University of Manchester Editors: A simple consumer guide
  • Vi Lovers home page
  • An Introduction to Display Editing with Vi
  • Using the Pico Editor

    Unicode sites

    Unicode is the character set officially used by Java.

  • Unicode home page.
  • A Unicode resource page
  • Unicode chart from Mark Davis.
  • FileFormat.info

    On-line dictionaries/glossaries on computing

    If you come across terms or words used in computing that confuse you, you may be able to find a definition here. Or you may just enjoy browsing the sites.

  • Glossary of Java technology-related terms. Sun's official glossary, contains only very short definitions.
  • FOLDOC the free on-line dictionary of computer terms.
  • Roedy Green's Java and internet glossary.
  • Glossary of Java and related terms by David Barnes
  • The Jargon File a rather more irreverent dictionary of terms used by computer people.
  • Webopedia Slick and commercial, but in many of its definitions, plain wrong.
  • ComputerUser High-Tech Dictionary
  • Netdictionary: a "guide to technical, cultural, and humorous terms related to the Internet".
  • whatis?com: a useful general resource site as well as a dictionary of IT-related terms.
  • IT Glossary by Thompson Course Technology
  • Category:Computing from Wikipedia
  • CodePedia compiled by volunteers and rather patchy.
  • Computer Hope's Dictionary
  • BFOIT Introduction to Programming Jargon Appendex
  • Stammtisch Beau Fleuve An amusing general glossary, with a lot of computing-related terms, and some links which work.

    Interesting or useful personal web-sites

    Here are some personal web sites I've found interesting/useful. Some are Java related, others are here because they contain a comprehensive collection of useful links, others are here just because I think they contain useful material for new computer scientists to explore.

  • Jeff Atwood writes about coding horror.
  • G.D.Thurman's GDT website contains notes for Java courses and much else.
  • Peter Norvig has some comments on programming, and he is co-author of a text-book on Artificial Intelligence along with Stuart Russell.
  • Joseph Bergin has a particular interest in patterns which he applies to Java.
  • Eugene Wallingford is someone else with a particular interest in teaching programming with patterns.
  • Eric S. Raymond is the (in)famous documentor of hacker culture (in the old sense of the word "hacker").
  • Nikolai Bezroukov's site contains vast amounts of slightly skeptical comment on software issues, and plenty of links.
  • Scott Ambler runs a Web Site for Object-Oriented Developers
  • Alex Measday's "All Things Computed" page contains a lot of useful links on computing in general.
  • Brad Appleton's page has links on software engineering and computer science, and also on design patterns for Java and distributed programming.
  • Perdita Stevens has links on software and systems engineering etc.
  • Jose Emilio Labra Gayo's page has a lot of useful links on programming languages in general.
  • Harold Thimbleby's site includes his book on Principles of Interaction Design and much else.
  • Don Norman is a "technology enthusiast annoyed by unnecessary complexity of today's products".
  • Vincent Flander's Web Pages that Suck is "Where you learn good Web design by looking at bad Web design".
  • Richard Stallman is the founder of the GNU Project.
  • Erik Max Francis has some computer science links, and also a good collection of links on artificial life.
  • Jonathan Campbell has a collection of links on programming, pattern recognition, and much else.
  • Bob Keller's web-book "Abstraction to Implementation" is a good introduction to the fundamentals of Computer Science.
  • Tuyêt Trâm Dang Ngoc's page has lots of useful computing links in French.
  • Richard Felder has written a lot of material on science and engineering education
  • Philip Wadler worked on Generic Java (incorporated into standard Java since version 1.5) and has other links, mainly on functional programming.
  • Ed Yourdon is one of the most well-known authors on software engineering.
  • Doug Lea has written on Concurrent Programming in Java.
  • Mordechai Ben-Ari has an interest in Computer Science Education
  • Jan Newmarch has a tutorial on the Jini system, and much else.
  • Mark Humphrys has an interest in computers and the internet and non-symbolic artificial intelligence.
  • Paul Graham writes on programming with an emphasis on Lisp, he also has some comments on nerds.
  • Martin Fowler is an "author, speaker, and consultant on the design of enterprise software".
  • Angelika Langer is an independent freelance trainer in Java and C++.
  • Jakob Jenkov is a software developer whose site includes tutorials on Java and related topics
  • Heinz Kabutz produces a "highly technical" Java Newsletter.
  • Joel Spolsky writes about "software development, management, business, and the Internet".
  • Allen Holub writes articles on Java and object-oriented programming.
  • Esmail Bonakdarian has some good links for students.
  • Aaron Sloman is one of the most respected figures in artificial intelligence, and also has views on things such as computing education.
  • Vince Huston has an Intro to Java section, and more on design patterns and problem solving.
  • Todd VerBeek lists alternatives to Microsoft, and also has a page on programming languages.
  • H. Conrad Cunningham has a comprehensive collection of course notes on programming.
  • Betrand Meyer is one of the pioneers of object oriented programming.

    Study skills and general help sites

  • How Stuff Works: the computer section here may also help answer some basic questions.
  • SparkNotes.com Study guide written by "Harvard students and graduates", has a Computer Science section oriented towards algorithms and data structures.
  • The alt.usage.english site. Useful general resources can be found from here, as well as material for those with a deeper interest in the English language.
  • The Mathematical Atlas A resource site for mathematics.
  • Problem Solving in Introductory Computer Science
  • Dr Ah-Clem's webpages for students
  • Links to a Better Education: links on study skills, note-taking and general tips for students.
  • Study Skills On-line by Martin Greenhow of Brunel University.
  • Greater University Tutoring Service
  • Doc Whiz's Home Page I particularly appreciate his 40 ways to P.O. the Prof
  • Success in Mathematics the study skills tips here apply just as much to Computer Science.
  • How to Succeed in Computer Science originally given as an induction talk at Queen Mary

    The Real World

    Finally, one day you'll have to go out and get a job in the "real world" (unless you become an academic like me ...). Here are some relevant links:

  • Graduate Developer Community Set up by recruiters and technical consultants "to help bridge the gap between the academic, open source and commercial worlds of the software development community".
  • JobStats the current state of the UK computing job market.
  • How to be a Programmer a long essay on the non-technical aspects of being a programmer.
  • Java Developer's Journal "The World's Leading Java Resource"
  • ADTmag.com Application Development Trends magazine website.
  • Computer Weekly website of one of the longest established UK computer trade magazines.
  • Dr. Dobb's Journal of Software Tools for the Professional Developer
  • Bitwise Magazine "a free online magazine for technically literate computer users".
  • IBM developerWorks "tools, code & tutorials for open standards-based development" with section on Java technology.
  • SourceForge "the global technology community’s hub for information exchange, open source software distribution and services, and goods for geeks"
  • ZDNet.co.uk Technology news and blogs
  • The Register "Biting the hand that feeds IT".
  • Software Reality "lively articles and debates about software development, mixed in with lashings of humour and drollery".
  • Sponsors for Educational Opportunity (SEO) London "a not-for-profit organisation that every year provides hundreds of outstanding undergraduate students from under-represented ethnic minority backgrounds the unique opportunity to gain summer internships at the most prestigious investment banks, professional service firms and corporate law firms in the UK."
  • siliconindia "Global Source For Business And Technology" (with an Indian focus)
  • Technojobs (Java section) - plenty of jobs for Java programmers, site also has useful IT and engineering links.
  • I, Cringely a column on information technology issues hosted by the USA's Public Broadcasting Service
  • O'Reilly Network "the source for open and emerging technologies".
  • Annoyances.org since in the real world we can't ignore the existence of Windows®.
  • Nut's produced by SUMit a software house from Gouda (the Dutch city famous for cheese).
  • Dilbert "provides the best window into the reality of corporate life I've ever seen" (a leading business consultant).
  • User Friendly Dilbertesque, but more techie-oriented.
  • Helen, sweetheart of the internet "Comic about a 'forthright, brilliant and tyrannical, beautiful computer geek' and her friends".
  • Piled Higher and Deeper "provides the best window into the reality of postgraduate life I've ever seen" (me)
  • Adrian Hilton's Computer Humour
  • Geek Chic "This page rocks it to the max, dude!".
  • Nice cup of tea and a sit down with some nice biscuits.
  • Faith and Hope Cards
    Matthew Huntbach
    Updated: 3 August 2011