I recently came across a report from Vision Mobile about a survey of what developers want from a developer program.
Since I’m celebrating fifteen years this month of working full-time with developers (it’s hard to believe I started as a Java Evangelist at Sun in January 2001) it seemed an interesting topic to look at.
Although the report is focused on developers working on mobile applications, much of what is revealed in the highlights is applicable to developers in general and Java developers in particular.
Of the top ten insights, these are the ones that look interesting:
- Developers want the resources to teach themselves – almost 70% are self-taught.
- 44% of developers contact a developer program every day – it is about community as much as support.
- Documentation and sample code matter the most to all developers. More than 70% of developers put these in the top three features.
- Very few developers care about live events; live events go down well with journalists and bloggers, but those writing code don’t seem to care.
Let’s look at these specifically from the point of view of Java developers.
1. Developers want resources to teach themselves:
In this day and age, this seems to be an absolute necessity. Assuming you study some sort of computer science related discipline at university you should leave with a fundamental understanding of the basics: the process of software development, the way different languages work, what an operating system is and does, and so on.
Most universities use Java as a teaching language, which makes sense; Java is consistently the most popular language offering many opportunities for post-graduate employment. In addition, Java’s easy to read syntax makes it a good choice for learning about things like object-oriented programming.
However, once you start your career as a software developer you will find that the rate of change in terms of technologies and techniques can be quite overwhelming. Although most employers provide some level of training, it really falls to the individual developer to keep their skill set up-to-date and relevant if they want their career to progress.
The Java community really excels in providing these types of resources. The literally hundreds of Java User Groups (JUGs) around the world run numerous sessions aimed specifically at increasing developer’s knowledge of related subjects. A friend of mine, Simon Maple, even runs the VirtualJUG, a JUG that you can be part of from the comfort of your own home.
For more in-depth training materials there are places like Java Code Geeks, which has a variety of open-source courses, as well as the usual places like Udemy and Coursera. Many of the larger Java conferences also run ‘hands-on labs’. These typically run for half a day and allow developers to work on their own laptop using technologies in an instructor-led environment.
Before I left Oracle we ran a massive open and online course (MOOC) on Lambdas and streams in JDK 8. This was completely free and we actually had to close registration when we had 10,000 people registered. The only reason we couldn’t let more people take the course at that time was that the e-mail system for keeping attendees informed had a spam limit of 10,000 e-mails a day! Clear evidence of that this type of material is valuable to Java developers. This is definitely something I’d like to do again at Azul.
2. Many developers contact a developer program every day:
This is all about sharing experience. There’s a wonderful quote (which, sadly, I couldn’t find the origin of), “A clever man learns from his mistakes, a wise man learns from other people’s”. This is especially true in the world of Java and software. Fortunately, with the rise in popularity of sites like Stackoverflow, it’s easy to find people who not only have faced the same, or very similar problem to you but have then posted the answer it took them potentially a lot of time to find.
3. Documentation and sample code matter most to developers: I can [just] remember back to when I started programming in BASIC on a TRS-80. I would literally spend hours typing in programs published in computer magazines. The real learning experience came from:
- Getting the code to work, since I’d frequently make typing errors, which gave great insight into debugging techniques.
- Modifying and enhancing the code to add new features to the application. This really helped to understand how BASIC and general development worked.
This is still relevant today; I frequently look for a sample piece of code to solve part of my problem, which I then integrate and modify into my application. With so many Java developers in the world and many of them blogging about their activities, it’s often easy to find what you need.
4. Very few developers care about live events:
Whilst this might be true for mobile application developers, it is certainly not the case (in my experience) for Java developers. Java developers tend to be a very social group of people and seem to like nothing more than getting together and talking about, well, Java. If I wanted to, had the travel budget and was prepared to abandon my family I’m fairly certain I could spend almost the entire year traveling the world and talking at either JUG meetings or Java/Developer conferences almost every day.Events like Devoxx, hosting several thousand people, consistently sell out well in advance and have now grown to include events in France, U.K, Poland and even Morocco. There are many other sizeable developer events that are either focused on Java or contain a significant proportion of Java related content: Jfokus (where I’ll be in February), JavaLand, JavaZone, Oredev and, of course, JavaOne to name but a few.In addition to providing really great content and speakers to help developers understand the latest technologies, I find that there’s as much value in the conversations I have with other developers over coffee or a beer.
At Azul, we are working on helping developers in the Java community.
One of those initiatives is Zulu, a tested and certified build of the OpenJDK. Zulu is completely free to download and use.
For JDK 7 and JDK 8 we have builds for Linux, Windows and Mac OS X. For the real diehards, there is even a JDK 6 build on Linux only. For those wanting to work on the bleeding edge, we’re tracking development of JDK 9 with early access builds for Linux, Windows and Mac OS X (please be aware that, because project Jigsaw is not yet in the main OpenJDK source tree our JDK 9 binaries do not have modularity support).
Given how many Java developers there are in the world, I’m making it my goal to get five thousand active members on the Zulu forum by the time JDK 9 is released.
Will you join me?