Wanted : Microsoft Visual Basic .Net trainer

It may not be worth USD 135,000 per year, but a colleague asked me to post this requirement of a Microsoft Visual Basic .Net trainer. Experience in Visual Basic and VB.net required, even better if you’ve delivered training before. Location is Ireland (sorry to be deliberately vauge).
Drop me a line at Paul@Firstpartners.net and I’ll pass on your details. Even better, post me a link to your blog.
We’d do it ourselves, but we’ve the problem of being ‘nicely busy’ and everybody that I’d recommend is likewise.

Introduction to Visual Basic and the .Net Framework

Microsoft’s .NET

The .NET Framework and the Common Language Runtime

Test-Driving a Visual Basic Application

Introduction to Object Technology and the UML

Overview of the Visual Studio 2005 IDE

Menu Bar and Toolbar

Navigating the Visual Studio IDE

Using Help

Using Visual Programming to Create a Simple Program

Displaying a Line of Text

Creating Your First Console Application in Visual Basic

Displaying a Single Line of Text with Multiple Statements

Adding Integers

Memory Concepts


Decision Making: Equality and Relational Operators

Using a Message Dialog to Display a Message

*Introduction to Classes and Objects *


Classes, Objects, Methods and Instance Variables

Declaring a Class with a Method and Instantiating an Object of a Class

Declaring a Method with a Parameter

Instance Variables and Properties

Value Types and Reference Types

Initializing Objects with Constructors

Validating Data with Set Accessors in Properties

Control Statements: Part




Control Structures

If … Then Selection Statement

If … Then … Else Selection Statement

While Repetition Statement

Do While … Loop Repetition Statement

Do Until … Loop Repetition Statement

Visual Basic Programming in a Windows Application

Essentials of Counter-Controlled Repetition

For … Next Repetition Statement

Examples Using the For … Next Statement

Do … Loop While Repetition Statement

Do … Loop Until Repetition Statement

Using the Exit Statement in Repetition Statements

Using the Continue Statement in Repetition Statements

Logical Operators

Methods: A Deeper Look


Modules, Classes and Methods

Subroutines: Methods That Do Not Return a Value

Functions: Methods That Return a Value

Shared Methods and Class Math

Notes on Declaring and Using Methods

Method Call Stack and Activation Records

Implicit Argument Conversions

Option Strict and Data-Type Conversions

Value Types and Reference Types

Framework Class Library Namespaces

Passing Arguments: Pass-by-Value vs. Pass-by-Reference

Scope of Declarations





Declaring and Allocating Arrays

Examples Using Arrays

Passing an Array to a Method

For Each … Next Repetition Statement

GradeBook Case Study: Using an Array to Store Grades

Sorting an Array with Method Sort of Class Array

Searching Arrays

8. Searching an Array with Linear Search

8. Searching a Sorted Array with Method BinarySearch of Class Array

Rectangular Arrays

Variable-Length Parameter Lists

Jagged Arrays

Using the ReDim Statement to Dynamically change array size

Passing Arrays: ByVal vs. ByRef

*Classes and Objects: A Deeper Look *


Time Class Case Study

Class Scope

Default and Parameterless Constructors

Overloaded Constructors

Partial Classes


Using the Me Reference to Access the Current Object

Garbage Collection

Shared Class Members

Const and ReadOnly Members

Exception Handling


Exception Handling Overview

Code in a Try and Catch Blocks

Catching Exceptions

Uncaught Exceptions

Termination Model of Exception Handling

Flow of Control When Exceptions Occur

.NET Exception Hierarchy

ApplicationException and SystemException

Determining Which Exceptions a Method Throws

Finally Block

Exception Properties

User-Defined Exception Classes

Graphical User Interface Concepts: Part 1


Windows Forms

Event Handling

Control Properties and Layout

Labels, TextBoxes and Buttons

GroupBoxes and Panels

CheckBoxes and RadioButton s



NumericUpDown Control

Mouse-Event Handling

Keyboard-Event Handling


MonthCalendar Control

DateTimePicker Control

LinkLabel Control

ListBox Control

CheckedListBox Control

ComboBox Control

TreeView Control

ListView Control

TabControl Control

Multiple Document Interface (MDI) Windows

Visual Inheritance

User-Defined Controls



Thread States: Life Cycle of a Thread

Thread Priorities and Thread Scheduling

Creating and Executing Threads

Thread Synchronization and Class Monitor

Multithreading with GUIs

Files and Streams


Data Hierarchy

Files and Streams

My.Computer.FileSystem Object

Creating a Sequential-Access File

Reading Data from a Sequential-Access File

Random-Access Files

Creating a Random-Access File

Writing Data Randomly to a Random-Access File

Reading Data Sequentially from a Random-Access File

Creating a Sequential-Access File

Reading Data from a Sequential-Access File

Free Struts 2 Training (Outline)

Every company now has a web site. Struts is the most widely used Java framework for building these websites. Struts 2 is a radical overhaul, making it easier to use, yet more powerful at the same time.

In January, I will start delivering a course on Struts 2 for IACT – the Irish Academy of Computer Training.

Struts 2 Logo

This course is an overview to programming for the Web using Struts 2 and Java (free course outline here), including an introduction to the language for people already programming in other languages like Visual Basic. It covers what is different about developing web applications, the problems the Struts 2 framework solves, and how to develop applications within it using the Eclipse IDE. Optional components include JUnit, Ant, Log4J and building Web-Database applications.

If you’re a Struts 1 Developer looking for more than the free outline then I do plan to blog about upgrading your skills over the coming weeks. If that isn’t quick enough, you can always hire me for a 1-2-1 mentoring session 🙂

Update: The Course notes are now also available on the wiki / knowledgebase.

Open Java changes everything

Now that the dust is beginning to settle on Sun’s Decision to open source Java , what does it actually mean for you? That’s you as in a Business user, you as in a Java Developer , and you as a member of the wider IT Community?

  • In the short run (i.e. next 6 months), once the buzz dies down , not much. Remember that it took several years after the Netscape code was open source for Firefox to emerge and change the dynamic of the browser market.
  • In the medium term (between 6 and 24 months) expect some interesting packagings of Java to emerge, similar to the way the various Linux Distros work today. Consider these ‘green shoots’ or prototypes with interesting ideas. A ‘small footprint’ version of Java targeted at Applet developers seems to be one popular opinion of what might emerge. However, unless you are ‘bleeding edge’ or in a niche area the chances are you won’t notice them at this stage.

It is in the longer term (2 years plus) that open source java really makes it’s mark. Some predictions that you can quote back to me later:

– In the same way as JBoss and Geronimo have commoditised the app server market programming languages and runtimes will become a commodity. Expect the .Net platform to be opened (not just standardized) in some limited form.

– Java will become more like .Net with multiple languages running in the standard JVM. We have JRuby and Groovy. It wouldn’t be too hard to add C# to this list. Visual Basic in the JVM (the Sun Semplice Project) is already on it’s way.

– Oracle , IBM , SAP and others already committed to the Java market will become focussed on Java as an even bigger part of the core strategy. Just like the app server market, each will seek to differentiate themselves, perhaps by Service (IBM), by a core database (Oracle) or by leading a niche (SAP). Expect tension between the desire to differentiate (and fragment) and the GPL which seeks to ‘bind them all’.

Apache Harmony , a clean room implementation of Java will continue to gain momentum. It will get picked up by a major vendor in a similar manner to Apple using BSD code.

– Microsoft .Net will end up in a ‘death march’ with Java trying to gain a lead in a feature set. Open source is very good a mimicing existing products (as it makes an easy spec for dispersed developers to write on – just look at Open Office), so (unless software patents get thrown into the mix), it’s hard to see .Net getting a fundamental and lasting edge over the Java Ecosystem.

Update: I’m not saying that .Net is going to go away (nor should it), just that both it and Java are going to be around for a long time to come. Joe and John also have more commentary.