Mop up
[Part 12 of 11]
Ok, so there's 12 parts! But this is a bit of a 'mopping up' part, just to briefly introduce some of the core Java elements we didn't have time for, and to give you some hints for continuing your coding in the future.
Other key stuff:
First off, some stuff we haven't covered. There's actually not much in the way of core information you'd want to cover in a basic Java course that we haven't covered. There are a few features of the language that were added in Java 1.5 and Java 7 and 8 which we haven't covered. For these, see:
Java 1.5 ("Java Language Features")
Java 7 ("Java Programming Language")
Java 8 ("What's New in JDK 8")
Other stuff we haven't covered, but which might be useful, includes:
Cloning objects (copying complex objects).
Swing (better GUIs).
Java Native Interface (docs) (how to connect to non-java code)
RXTX (how to connect to hardware using serial ports, e.g. scientific equipment)
Commonly used data formats: XML, and JSON
(see the useful links page and
w3schools for tutorials)
Useful to know about:
The course is very much aimed at the core language, with a bit of interest to social and ecological modellers. If you did a full computer science course, the main extra stuff you'd get would be on structuring data and sorting/searching data. You can find books on these kinds of elements on our Recommended Texts page.
Other stuff that it might be useful to be aware of for the future, includes:
Java2D (better image and drawing manipulation).
JavaFX (better GUIs).
Java Webstart (a way of getting your programs to run over the web)
JavaBeans (a way of allowing other people to develop programs)
Servlets (programs to produce web pages)
JavaServer Pages (programs to embed data in webpages)
Other languages:
If you've coped even vaguely ok with this so far, you'll probably find the languages to the right pretty easy to pick up. One of the reasons we teach Java, as opposed to simpler languages is that once you've learnt Java, picking up other languages will be relatively simple. There are suggested books on the Recommended Texts page, and reading one book will probably get you up and running with these.
Most modern programming languages won't prove difficult to pick up, now you have the basics. Most languages you hear about fall into a family called the Imperative Programming. languages (these include Fortran, C++, Objective-C, etc.), and these are all similar to Java. There is a separate family of languages, called the Functional Programming languages that have a very different style, and include languages like Prolog (for modelling logic) and LISP. Despite the differences, even these you should find not too bad, now you've spent a bit of time thinking like a computer.
Languages:
Python: a much easier language than Java, with some really nice elements in it, especially for text processing (it sounds lovely! Why don't we teach that!? See: Why Java?!).
Javascript: not Java, but the basics are very similar to Java because it was based on Java to an extent. The main differences come with something called prototypes which is a bit like rewriting the class of objects as they are running (sounds like fun, hu?). If you embed the Javascript within a webpage, you'll also need to know how to refer to bits of the page using a tree-like description called the Document Object Model (DOM). A great training site for both is w3Schools.
Visual Basic.Net: very influenced by Java in terms of the underlying structure, but different keywords, and strongly embedded within Windows. Great for quick and easy applications that integrate well with Windows (though you can also write Windows 8 apps in Javascript).
LOLCODE: just because...
Final advice:
The final thing to say is just some advice for moving forward with your coding.
Like learning any other language, the secret to practice. Try to put yourself in the position where you have to build small bits of code to help with projects. A good start, if you don't have a core project to do is to write some code for little tools you can later adapt, for example:
- Code for running through directories, reading all the text files and
doing some search and replace.
- Code for reading in image files and converting them to text data files.
- Code for a basic Agent-Based Model.
- Code for a basic Applet that shows data processing results.
Giving yourself little tasks to do will get you to a high level of coding confidence quicker than anything else.
The second thing to say is Read. There's no subsitute, in terms of become a good programmer, for seeing the code produced by good programmers, and the easiest way to do this it to read textbooks. It's also true that computing is a field that moves very fast -- try to read one good computing text in an area you don't know, every three months or so. You might also like to sign up for email alerts / RSS feeds from some of the blogs and websites listed on the useful links page.
In the meantime, here's a few links that you might find helpful:
Teach Yourself Programming in Ten Years
How to be a programmer
New 2 Java
Other than that, good luck, stay in touch, and if there is anything we can do to help, don't hesitate to get in contact!
Quiz:
Finally, fix this code to finish!
public class HelloWorld
_____
public static void main (String args[]) {
System.out.println("Hello World!");
}
}
;
^
{
)
;^)
Hello You!