Over a million developers have joined DZone.

Interview: Huw Collingbourne on Java & NetBeans YouTube Screencasts

· Java Zone

What every Java engineer should know about microservices: Reactive Microservices Architecture.  Brought to you in partnership with Lightbend.

Having recently met Ralph Steyer, who was interviewed about his new online NetBeans course, let's now chat with Huw Collingbourne, on his YouTube clips that provide programming tips and advice, including NetBeans insights.

Huw divides his time between teaching programming topics, mainly on his own web site http://www.bitwisecourses.com and on Udemy https://www.udemy.com/u/huwcollingbourne/.

Before that, he was a computer journalist in the UK, writing for magazines such as Computer Shopper and PC Pro. For many years he also wrote the Java and Delphi (Object Pascal) programming columns for PC Plus magazine.



He is one of the founders of SapphireSteel Software (http://www.sapphiresteel.com) which produces the Sapphire and Amethyst IDEs for programming Ruby and ActionScript with Microsoft’s Visual Studio. He's also written a book on Ruby programming, The Book Of Ruby, published by No Starch Press: http://www.nostarch.com/boruby.htm.

Direct link to the YouTube channel: https://www.youtube.com/user/BitwiseCourses 

More info on Huw here: https://www.youtube.com/watch?v=W3JInoESViI

Hi Huw, how did you get started with programming in the first place?

I began programming way back in the early 1980s, initially using Borland’s Turbo Pascal compiler which was a wonderful product for its time. In the years since then, I have programmed in many different languages such as C, C#, Prolog, Smalltalk, Modula-2, Ruby, ActionScript, JavaScript and Java.

However, I have many interests in addition to programming. For example, I do Aikido (a Japanese martial art) at least three times a week. I began studying Aikido in the early ‘80s and I now teach Aikido in North Devon in the south-west of England (http://hartlandaikido.blogspot.co.uk/). Most of the rest of my time is taken up with my two Pyrenean Mountain Dogs - they require lots of long walks every day, so that gets me away from the keyboard!

How/when did you get started with NetBeans IDE?


I’ve used various versions of NetBeans IDE on and off over the years. As I mentioned earlier, I was the Java columnist for PC Plus magazine some years ago and NetBeans was one of the IDEs I used when writing that column.

Over the past few years, however, I have mainly been programming on the .NET platform, since my company makes development environments based on Visual Studio. That explains why I hadn’t been using NetBeans for quite a while. Then, a couple of months ago, I started work on a new multimedia Java programming course that I plan to publish later in the year. I tried out a few Java IDEs and quickly decided that NetBeans was the best choice. NetBeans 8 is a really excellent IDE now – it’s much slicker and more powerful than the earlier versions I used all those years ago.

What features in NetBeans do you like most?

I mainly like the fact that even though NetBeans is very fully-featured I don’t feel that the IDE "gets in my way". Some IDEs (Apple’s XCode springs to mind!) have very specific ways of doing things. That may be fine if that is the only IDE you ever use. However if, like me, you often have to switch from one IDE to another, you just want to be able to get right down to work without having to learn everything all over again. Having worked mainly with Visual Studio over the past few years, I was surprised at how rapidly I was able to get up to speed with NetBeans. That’s great.

In terms of specific tools:

  • The Matisse GUI Builder, that is, the visual designer, is excellent.



  • The debugging tools are good too.

  • And I also really like the little margin hints that make code improvement suggestions – everything from adding overrides to splitting the declaration from the assignment; and the hints can also ‘auto-fix’ your code just by clicking the popup suggestion, which is really nice.


I regularly switch between languages that use some type of C-like syntax (C, C#, JavaScript, ActionScript and Java) and I often find that I make a syntax mistake by accidentally using the conventions of the wrong language! The NetBeans hints make it easy to find and fix simple errors of logic or style so that’s a big time-saver.

How/why do you create YouTube clips on programming topics?

My YouTube channel fulfils two main functions. Not only does it help to promote my commercial programming courses, but it also provides additional learning material for my students.

For example, novice  programmers may find that my series on "Programming For Beginners" helps to clarify some important concepts:

https://www.youtube.com/playlist?list=PLZHx5heVfgEtDDA80jp8wRF6Sk5sG_h2Y


This series of videos covers general programming topics such as Data Types, Object Orientation and Arrays without focusing on any specific language.

My NetBeans videos, on the other hand, usually focus on very specific topics. I try to keep these videos as short as possible, often as little as one minute and almost never longer than five or six minutes. People use YouTube to find information fast so it’s important to keep videos short and get right down to business without any waffle.

As for the video creation process: well, most of my videos are screencasts showing how to accomplish some task step-by-step on Windows or OS X. I also do some "direct to camera" videos, mainly because I’ve discovered that people like to see the instructor from time to time. Endless screencasts can seem a bit impersonal.

At the moment, I make my videos in a very small ‘home studio’ in my house. I am now having a dedicated studio built, however, so that I will be able to make videos of a really ‘high-end’ professional quality.

What are the highlights of your NetBeans series on YouTube?

To date, I’ve only published a fairly small number of NetBeans videos. That’s because I’ve only recently begun work on my new Java course which uses NetBeans as the default IDE.

I’ve published three short videos:

I also have a series of Java tutorials which not only explain features of the Java language but also how to design and code Java applications using NetBeans:

https://www.youtube.com/playlist?list=PLZHx5heVfgEvL4XE7fBEzlaX8ksbpdMDG

What plans are there for more in the coming period?

I am currently planning a new YouTube series on how to program a text adventure game using Java with NetBeans. It was a text adventure, Zork, that really inspired me to learn to program way back in the 1980s. The first program of any real complexity that I ever wrote (in Turbo Pascal) was a text adventure called The Golden Wombat Of Destiny. I still think that this type of game makes a great project for learning programming in a fun and interesting way.

I already have a few YouTube videos that explain the principles of adventure games – how to create object hierarchies, ‘maps’ of linked Rooms and so on. I now plan to explain the code you would need to write to create an adventure game in Java, using NetBeans. This will explore quite a range of programming topics – everything from managing networks of objects to serializing them to and from disk.

Many people think of learning to program as pretty dry and boring. I’ve always thought  that programming should be fun. And what better way to have fun than by programming a game?

Absolutely true. Thanks for taking the interview and looking forward to more of your courses about programming, Java, and NetBeans!

Microservices for Java, explained. Revitalize your legacy systems (and your career) with Reactive Microservices Architecture, a free O'Reilly book. Brought to you in partnership with Lightbend.

Topics:

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

SEE AN EXAMPLE
Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.
Subscribe

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}