I'm excited to announce that Groovy Programming, the latest training course from Virtual Pair Programmers (my second course for them) is now available to purchase!
As with all Virtual Pair Programmers' courses, Groovy Programming is written from scratch for delivery by video, but is based on many years of experience in working with and teaching the language. We believe you'll learn far more quickly than from reading books - in fact you'll cover everything you need to be a competent Groovy programmer but at a fraction of the cost of a face-to-face course, and naturally with the convenience that our unique training methods give - the ability to download and keep all the video files, so you can study at a time and place that suits you!
Groovy Programming contains 12 hours of video, but with lots of practical exercises it will take most students around a week to complete. Also included with the download are complete code for all worked exercises, and guidance notes for the tasks, as well as all the software you need (except Groovy and Eclipse, but we cover on the videos how to install and configure these!)
There's a full breakdown of the content of Groovy Programming on our website, but if you have any queries about this course, you're welcome to contact me through https://www.virtualpairprogrammers.com/contact.html.
In the meantime, thank you for your continued support, and we hope you continue to enjoy our courses.
Thursday, 1 May 2014
Monday, 3 March 2014
Running db-derby with recent releases of Java
This blog post is an errata item for my Java Fundamentals course, and will also apply for the other Virtual Pair Programmers courses where we use the db-derby database.
I discovered while recording the upcoming Groovy course that there has been a security change in the most recent release of Java (1.7.0.51) that has meant that the default configuration for db-derby no longer works. Running db-derby with the startNetworkServer command will result in an error message which says somewhere early on in the error message:
access denied ("java.net.SocketPermission" "localhost:1527" "listen,resolve")
The easiest and quickest way to overcome this seems to be to run the database on a higher port number, such as 50000 - to do this, instead of running the startNetworkServer command, run the following instead to start the db-derby database:
NetworkServerControl -p 50000 start
In your code, you'll need to change the connection strings to incorporate the new port number, so that the line of code which creates the connection includes the port number - it should look like this:
conn = DriverManager.getConnection("jdbc:derby://localhost:50000/library");
This should overcome the error - if you find you have any further unexpected errors that you can't resolve however, do get in contact via the Virtual Pair Programmers contact us page!
I discovered while recording the upcoming Groovy course that there has been a security change in the most recent release of Java (1.7.0.51) that has meant that the default configuration for db-derby no longer works. Running db-derby with the startNetworkServer command will result in an error message which says somewhere early on in the error message:
access denied ("java.net.SocketPermission" "localhost:1527" "listen,resolve")
The easiest and quickest way to overcome this seems to be to run the database on a higher port number, such as 50000 - to do this, instead of running the startNetworkServer command, run the following instead to start the db-derby database:
NetworkServerControl -p 50000 start
In your code, you'll need to change the connection strings to incorporate the new port number, so that the line of code which creates the connection includes the port number - it should look like this:
conn = DriverManager.getConnection("jdbc:derby://localhost:50000/library");
This should overcome the error - if you find you have any further unexpected errors that you can't resolve however, do get in contact via the Virtual Pair Programmers contact us page!
Saturday, 8 February 2014
Groovy Course coming soon
One of the topics that we've been asked to provide a course on at Virtual Pair Programmers a number of times over the last few years is Groovy... so I'm pleased to announce that I'm currently making good progress on creating the Groovy Course, which I hope will be released around the end of March 2014.
While I've been talking about the Groovy course to fellow Java programmers and trainers, in particular I've had a number of conversations about what it should cover , everyone seems to agree that once you start with Groovy you don't want to switch back to plain old Java, and I guess this is primarily because everything you can do in Java can be done in Groovy, often more quickly, and of course you can do more too. I've come to the conclusion that for many Java programmers it's really quite easy to get up and running in Groovy, but to really harness it's power, and get the most out of the language, it needs a really quite thorough course.
For anyone who doesn't know what Groovy is, I've pasted below a response to the question "what is groovy" taken from Stack Overflow... although this isn't the top answer on that site, it's the one that I like the most as I think it gives a real flavour of what Groovy is really about from a programmer's perspective:
The chapter list for our forthcoming course isn't quite complete, but the likely structure and outline content is as follows:
We'll put an update on progress nearer the release date, but in the meantime, if you're welcome to contact me through www.virtualpairprogrammers.com
While I've been talking about the Groovy course to fellow Java programmers and trainers, in particular I've had a number of conversations about what it should cover , everyone seems to agree that once you start with Groovy you don't want to switch back to plain old Java, and I guess this is primarily because everything you can do in Java can be done in Groovy, often more quickly, and of course you can do more too. I've come to the conclusion that for many Java programmers it's really quite easy to get up and running in Groovy, but to really harness it's power, and get the most out of the language, it needs a really quite thorough course.
For anyone who doesn't know what Groovy is, I've pasted below a response to the question "what is groovy" taken from Stack Overflow... although this isn't the top answer on that site, it's the one that I like the most as I think it gives a real flavour of what Groovy is really about from a programmer's perspective:
Groovy is a dynamically typed language that runs on the Java platform and includes some features that a lot of people wish were in Java (ex: closures). One nice thing about Groovy is that it reduces the amount of code needed to do common tasks such as parsing XML files and accessing databases. While learning Groovy you can always mix in straight Java code. This is nice since it allows you to ease into Groovy at your own pace while delivering functional code. If you've been using Java for a while I think you'll appreciate the simplicity of using Groovy since you can program more functionality using less keystrokes. The inclusion of closures was a big selling point for me. One word of caution: if you use Groovy for production code you should make sure there is descent test coverage (since Groovy is a dynamic language). Even if you decide not to use Groovy, it's not a huge time investment to learn and experiment a bit.
The chapter list for our forthcoming course isn't quite complete, but the likely structure and outline content is as follows:
- Introduction: The difference between Groovy and Java, installing Groovy and setting up a development environment
- Part One: Getting started - looking at the power of key aspects of programming in Groovy, such as objects, methods, strings, operators, closures, ranges and looping and unit testing
- Part Two: Case Study - using everything we have learned to start to build a working application - our example is going to be a hotel room booking system
- Part Three: Going deeper - more on closures, working with files including XML, databases, Meta Object Protocol, using stubs and mocks in unit testing and finally packaging and deployment
We'll put an update on progress nearer the release date, but in the meantime, if you're welcome to contact me through www.virtualpairprogrammers.com
Friday, 6 December 2013
Java Fundamentals - follow up post on Automatic Resource Management
This is the second of two follow up videos for the Java Fundamentals course. In this video, I take the Java try with resources statement a little bit further to tidy up the code we created in chapter 26 of the course.
The video is hosted on youtube - for best viewing results, watch in full screen and choose the HD quality option if that doesn't come up by default when you click on play!
The video is hosted on youtube - for best viewing results, watch in full screen and choose the HD quality option if that doesn't come up by default when you click on play!
Saturday, 22 June 2013
Follow-up video blog on the keyword Static
One of the topics that didn't make it into the Java Fundamentals course was an explanation of the keyword static... so I've done a short follow up video which goes into detail about that. In the video, I cover what the keyword means and how to use it correctly (both static methods and static variables).
The video is hosted on youtube - for best viewing results, watch in full screen and choose the HD quality option if that doesn't come up by default when you click on play!
The video is hosted on youtube - for best viewing results, watch in full screen and choose the HD quality option if that doesn't come up by default when you click on play!
Thursday, 20 June 2013
Java Fundamentals now live
Well I'm pleased to say that after months and months of hard work, the Java Fundamentals course is now live and available for purchase from https://www.virtualpairprogrammers.com/training-courses/Java-Fundamentals-training.html
I'm really pleased with how it has turned out - it's a really comprehensive course now, about 12 hours in length, and I think we've covered object orientation in a really accessible way, which I'm most proud of!
Just want to thank Richard Chesterwood, my fellow VPP trainer, for his help and guidance throughout this process - and I'm looking forward now to starting work on the next one!
I'm really pleased with how it has turned out - it's a really comprehensive course now, about 12 hours in length, and I think we've covered object orientation in a really accessible way, which I'm most proud of!
Just want to thank Richard Chesterwood, my fellow VPP trainer, for his help and guidance throughout this process - and I'm looking forward now to starting work on the next one!
Thursday, 28 February 2013
Content of the new introductory Java Course
The new Introductory Java course is now being edited. As a result I have a pretty good idea of the final content and running order, although the editing and review process will highlight any key areas that need to be changed, or added, so this might not exactly match the final course content or structure.
I have written the course from the perspective of someone with some programming experience (in any language, such as C, Visual Basic, PHP or just JavaScript) and so this is very much a "conversion" to Java. The first part focuses on how to do things in Java that you are likely to be familiar with in another language, such as declaring variables, conditions and loops, and the second part then covers topics that are more unique to Java and so may be completely new.
I'm conscious that some people will want to use the course having done little programming before, so I've been careful to make sure that any concepts not fully explained are easily understandable by the novice if they are willing to spend a bit of time doing their own online research.
So here's the likely running order:
1 - Introduction to Java
2 - Installing Java and Eclipse
3 - Key aspects of Java syntax
4 - Introduction to Object Orientation
5 - Structuring applications
6 - Java libraries and Javadocs
7 - More advanced Object Orientation (including inheritance and abstract classes)
8 - Exceptions
9 - JUnit
10 - Collections
11 - Yet more object orientation (Interfaces and polymorphism)
12 - Databases
13 - Distributing your software
In any of the books or other courses I have seen on Java, I find that trainers struggle with object orientation (OO) - the issue is finding an example that individuals can understand and relate to. I have been really careful to ensure that we build up the OO aspects in a practical and logical way, and rather than talking about something that is really not related to programming, such as the number of legs on an insect (I do remember that being the example when I first learned about object orientation, and I certainly didn't get it at the time), our examples are hopefully modern, understandable, and useable in real world applications.
Throughout the course we have a key project that we work on together, and while we don't fully complete the application, we do end with a good solid framework and code base that could be extended to be a live, functional and useful application.
I've give another update as we get close to the launch date.
I have written the course from the perspective of someone with some programming experience (in any language, such as C, Visual Basic, PHP or just JavaScript) and so this is very much a "conversion" to Java. The first part focuses on how to do things in Java that you are likely to be familiar with in another language, such as declaring variables, conditions and loops, and the second part then covers topics that are more unique to Java and so may be completely new.
I'm conscious that some people will want to use the course having done little programming before, so I've been careful to make sure that any concepts not fully explained are easily understandable by the novice if they are willing to spend a bit of time doing their own online research.
So here's the likely running order:
1 - Introduction to Java
2 - Installing Java and Eclipse
3 - Key aspects of Java syntax
4 - Introduction to Object Orientation
5 - Structuring applications
6 - Java libraries and Javadocs
7 - More advanced Object Orientation (including inheritance and abstract classes)
8 - Exceptions
9 - JUnit
10 - Collections
11 - Yet more object orientation (Interfaces and polymorphism)
12 - Databases
13 - Distributing your software
In any of the books or other courses I have seen on Java, I find that trainers struggle with object orientation (OO) - the issue is finding an example that individuals can understand and relate to. I have been really careful to ensure that we build up the OO aspects in a practical and logical way, and rather than talking about something that is really not related to programming, such as the number of legs on an insect (I do remember that being the example when I first learned about object orientation, and I certainly didn't get it at the time), our examples are hopefully modern, understandable, and useable in real world applications.
Throughout the course we have a key project that we work on together, and while we don't fully complete the application, we do end with a good solid framework and code base that could be extended to be a live, functional and useful application.
I've give another update as we get close to the launch date.
Subscribe to:
Posts (Atom)
