Geertjan is a DZone Zone Leader and has posted 459 posts at DZone. You can read more from them at their website. View Full User Profile

Interview: Becoming a NetBeans Platform Trainer

01.28.2009
| 17394 views |
  • submit to reddit

Thomas Würthinger is a researcher and PhD student at the Institute for System Software at the Johannes Kepler University Linz in Austria. His main research interests are virtual machines, modular programming, and visualization tools. Recently, he developed a new array bounds check elimination algorithm for the Java HotSpot VM. His Masters thesis was about a visualization tool based on the NetBeans Platform called the Ideal Graph Visualizer. Currently, his focus is on development for the meta-circular Maxine VM as well as on the implementation of dynamic software updates for the HotSpot VM.

The interview below is focused on a recent NetBeans Platform Certified Training that he participated in as a trainer, together with Toni Epple from Eppleton (a Munich-based consultancy specializing in the NetBeans Platform) and Jaroslav Tulach the lead NetBeans API architect and author of "Practical API Design, Confessions of a Java Framework Architect". His successful participation as a trainer in this course qualifies him as a NetBeans Platform Certified Trainer.

You've been using the NetBeans Platform for some time, can you say something about that? My first usage of the NetBeans Platform was during the development of the visualization tool as part of my Masters thesis. Especially the NetBeans Visual Library helped me a lot when building the application. My Masters thesis can be read here:

Visualization of Program Dependence Graphs

For my Bachelor thesis, I contributed to an originally Eclipse-based project (c1visualizer), but our experience with the NetBeans Platform was so good that we later ported the project to the NetBeans Platform (click to enlarge the screenshot below):

Java HotSpot Client Compiler Visualizer

The NetBeans runtime container (its module system) and the System Filesystem are easy to work with. And, especially, the Lookup concept is one my favorites. A series of screencasts of these features can be watched here.

For writing a debugger for the metacircular Java Maxine VM, I wrote plugins that extend the NetBeans Java debugger. This approach shows that also the NetBeans IDE itself is designed to simplify software reuse.

Recently you participated as a trainer in the NetBeans Platform Certified Training. What kind of training is that? What are the main things that are taught? The goal of a NetBeans Platform Certified Training is to teach the main concepts that are needed to build applications on top of the NetBeans Platform. It is not about the NetBeans IDE itself, but about the underlying infrastructure only. After finishing the training, it should be relatively straightforward for anyone to build their own NetBeans Platform application. The main things taught are the module system, the System Filesystem, the Lookup concept, the explorer views and Nodes API and some other useful APIs that make developing a Java application on top of the NetBeans Platform simpler.

How was it to be a trainer on the course? What did you teach? What did you learn? It was quite fun being a trainer as it is not a mandatory course, so all the students sitting there are quite motivated to learn something about the NetBeans Platform. I tried to add pratical demos to the course such that the students would not get sleepy when listening to too much theory! The demos are published and can be found here:

Besides a general introduction to the module system, the System Filesystem, and the Lookup concept, I did a presentation about the NetBeans Visual Library.

I find that the trainer is the one who always learns the most during a course! That's mainly because for the making of the slides and the demonstrations, you have to be very clear about what are the essential things to teach and what is not primary. I think this selection process is the most difficult thing when giving such a course. Hopefully, I solved this problem such that also my students learned a lot during the course as well. :-)

What are the main problems that students have with the NetBeans Platform? The concept of modular programming is usually not deeply covered in standard programming studies. Additionally, for a small student project it does not matter whether the application is designed in a modular way or not. In this case, it is a rather unnecessary overhead. So, it is difficult to get students to accept that those concepts are important in larger applications.

Here's a screencast that addresses this topic in some detail:

The remainder of the series can be viewed here.

Do you think the course was helpful to cover these problems? I hope so, at least I tried to underline the importance of modular programming. In order to finish the course, the students need to apply the learned things by building an application or a plugin on top of the NetBeans Platform.

How was the reaction from the students? The students will give a short presentation when they finish their projects. This will be the time I will ask for feedback on the course, as well as when I will get an impression of their first experiences with the NetBeans Platform.

Will you continue being a NetBeans Platform Trainer? Sure, because I think it is important that ongoing programmers learn how building upon a platform leads to high levels of code reuse and that modular programming is an important concept when it comes to building large applications.

 

AttachmentSize
fig-1.png31.79 KB
fig-2.png425.3 KB
Published at DZone with permission of its author, Geertjan Wielenga.

Comments

Abhay Bakshi replied on Wed, 2009/01/28 - 9:51am

A person by name Masoud Kalali -- on his blog at "http://weblogs.java.net/blog/kalali/archive/2008/05/netbeans_platfo_1.html", a user commented as below (Note: I won't jump to conclusions based on someone posting a comment):

"I hate the idea of certification. Sounds like useless bureaucracy to me. I fully appreciate Netbeans posting training material online but I don't like the idea of someone asking me in the future if I've been Netbeans-certified. Eek! Just my 2 cents :)"

Again, I won't jump to conclusions based on someone posting a comment somewhere. I like certifications, but also value other people's judgments in a given context.

I have a neutral opinion at this point, and just wanted to mention here. :)  Ok.

Abhay Bakshi replied on Wed, 2009/01/28 - 10:14am in response to: Abhay Bakshi

I was trying to remember the name -- Masoud Kalali.  Here we go: he is an editor on the Architect Zone on the DZone networks (http://architects.dzone.com/users/Kalali).

Geertjan Wielenga replied on Fri, 2009/01/30 - 1:50pm

Hi Abhay, I understand the point you're making, but I disagree with it. Only partly is the purpose so that someone can ask "in the future if I've been Netbeans-certified". It is mainly intended to give a structured understanding of the NetBeans Platform and what it can do for you. The certification is a nice way of rounding off the training, a kind of "closure", there is a nice finality to it, as well as a ticket to continuing to explore the NetBeans Platform, which then results in other levels of certification. More than anything, it is one of several different ways of motivating the students on the course.

Abhay Bakshi replied on Fri, 2009/01/30 - 3:27pm in response to: Geertjan Wielenga

Thanks, Geertjan.  I agree.  I'm a trainer myself and I like certifications.  Still, it is good to keep other peoples' judgments in the back of our mind.  Good day!

Ovidiu Ovidiul replied on Wed, 2011/03/02 - 2:30pm



Join to our newest gaming comunity and you can find or make tutorials for every game.
 thextop.org Soon maybe we will be the best gaming tutorial comunity!!!

Matt Coleman replied on Fri, 2012/02/03 - 12:14am

a certification validates one's ability to teach/train others..so this is good buffalo web design

Jaffa Wify replied on Fri, 2012/04/27 - 1:37am

Academic coaching is an evolution of mentoring applied to academics. Mentoring implies the student is an empty vessel into which knowledge is poured. Coaching involves a more collaborative approach, assuming the student is already in the game of learning. Coaches help students learn how they best learn and how to operate in an academic environment. Thanks. Regards, gmat tutoring nyc

Jaffa Wify replied on Thu, 2012/05/17 - 3:29am

The computer is a programmable machine designed to automatically carry out a sequence of arithmetic or logical operations. The particular sequence of operations can be changed readily, allowing the computer to solve more than one kind of problem. Thanks. Regards, contract engineering jobs

Cata Nic replied on Mon, 2013/09/02 - 3:45am

 Looks like a team full of experts. In this moment I think the most important thing is the power of the team .

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.