Software How-To

How to Program with Java Podcast

Best Java podcast on iTunes, learn about variables, control structures, collections, data types, design patterns, object oriented programming, classes and many more step by step Java tutorials

Learn how to program using the Java programming language. This podcast will teach you step by step how to use the Java programming language to create your own applications or web applications!


EP30 - Landing the interview, a coder's guide to applying for jobs
2017-12-02 06:33:21 UTC 31:05
EP30 - Landing the interview, a coder's guide to applying for jobs

Show notes are available via

If you're interested in grabbing the new "Java Interview Prep Course" you can get a significant discount by joining the "pre-sale" version of the course before Dec. 2017.

This course will be a work in progress until it's expected launch date in Dec 2017. You'll receive dripped access to the new lessons as they are recorded.

If interested in receiving a discount of 50% or higher on this Java interview prep course, please visit


EP29 - While Loops in JavaScript
2017-12-02 06:33:21 UTC 18:35
EP29 - While Loops in JavaScript

Show notes for this episode are available via

Don't forget to check out our current "deal" for coders campus available via


EP28 - For Loops in JavaScript
2017-12-02 06:33:21 UTC 21:47
EP28 - For Loops in JavaScript

Show notes for this episode can be found here:


If you're interested in supporting the show, please leave a rating and review via


And if you are interested in taking your Java skills to the next level, consider taking advantage of our lifetime access deal here:


EP27 - Jason Kiernan - From Pharmacist to Programming Job Offer in 2 Years
2017-12-02 06:33:21 UTC 46:10
EP27 - Jason Kiernan - From Pharmacist to Programming Job Offer in 2 Years

Show notes are available via

EP 26 - IF Statements in JavaScript
2017-12-02 06:33:21 UTC 19:23
EP 26 - IF Statements in JavaScript

Show notes for this episode can be found via


Also don't forget to check out our lifetime membership to Coders Campus and get access to 130+ hours of video tutorial content on full-stack Java. Click here to learn more:


EP25 - JavaScript Data Types
2017-12-02 06:33:21 UTC 27:45
EP25 - JavaScript Data Types

Checkout the show notes of today's episode via

Also, I've started a brand new "lifetime membership" deal for Coders Campus, you can check out the details of this new offer via


EP23 - JavaScript Variables
2017-12-02 06:33:21 UTC 15:00
EP23 - JavaScript Variables

Show notes for this episode are available via

Also, don't forget about the sweet deal I have over at - you help support the show when you join our community of coders. 

EP22 - What's New in Spring 5 with John Thompson
2017-12-02 06:33:21 UTC 39:06
EP22 - What's New in Spring 5 with John Thompson

You can sign up for early access to John's new course (plus a surprise bonus from me) via

Coders Campus EP21 - Dynamic Typing in JavaScript
2017-12-02 06:33:21 UTC 21:01
Coders Campus EP21 - Dynamic Typing in JavaScript

Don't forget to check out this sweet deal on a Coders Campus via

You'll get access to over 128 hours of video tutorial content that will teach you how to become a full-stack programmer (including an entire course on JavaScript too!)

What is JavaScript?
2017-12-02 06:33:21 UTC 22:54
What is JavaScript?

Don't forget to check out the special deal that we're putting on for our podcast listeners via

EP68 - Subscribe to my new show called the "Coders Campus Podcast"
2017-12-02 06:33:21 UTC 02:59
EP68 - Subscribe to my new show called the "Coders Campus Podcast"

You can subscribe to the new show via this link:


There will be no more episodes of the How to Program with Java podcast (this podcast), all new episodes will be shared via the Coders Campus Podcast.


So please go subscribe to that one now :)

Episode 66 - Summer is here and something new is in the air
2017-12-02 06:33:21 UTC 05:36
Episode 66 - Summer is here and something new is in the air

I'm happy to announce that dropping on July 1st, 2016 - a brand new podcast will be hitting the digital shelves!

Although the How to Program with Java podcast will be coming to an end, I'll be launching a brand new series dedicated to teaching you how to become a full-stack Java web application programmer.

This new podcast will be called the "Coders Campus Podcast", so be sure to search for it in iTunes or wherever you download your podcasts :)


EP65: HTML Design & Layout
2017-12-02 06:33:21 UTC 47:01
EP65: HTML Design & Layout

Okay so you know how to add some styles and CSS to your webpage, that’s a great start, but what about deciding where all your text should go?  What if you wanted to setup your website so that you have some text on the left hand side, and some images along the right?

This is where design and layout comes into play.

The DIV tag

Probably one of the most powerful tools at your disposal for designing your webpage is the div tag.  What this allows you to do is essentially outline “blocks” or “areas” for the content on your webpage.  You can think if these areas like boundaries for your content.

Continue Reading Here

EP 64: CSS 101 Tutorial
2017-12-02 06:33:21 UTC 44:57
EP 64: CSS 101 Tutorial

Cascading Style Sheets are a bit of a tricky beast in HTML. Given this fact, I wanted to dedicate an entire section to just this topic.

Let’s start with the basics, shall we?

What are Cascading Style Sheets (CSS)?

Well, we’ve already talked a little bit about HTML formatting tags (like ), but that kind of formatting is embedded within your HTML code itself. What I mean by that is while you are typing out the HTML code for your page, you’ll actually have to type in  in order to apply styles to some of your HTML. What if you don’t want to clutter your HTML with style code, but you still want to apply styles to your website… well that’s where CSS comes in.

Cascading Style Sheets actually exist as a completely separate file to your HTML code.

...continue reading

EP 63: HTML Styles 101
2017-12-02 06:33:21 UTC 48:48
EP 63: HTML Styles 101

In this HTML tutorial I would like to introduce two concepts to you:

  • Styles

Currently as of the date this was published, web browsers are (mostly) supporting HTML 5. HTML has gone through several versions and variations over it’s lifetime, and because of this it’s highly suggested that you include something called a DOCTYPE. The purpose of a DOCTYPE is to tell the web browsers what version of HTML you are using on any given webpage. The benefit of telling the web-browser what version of HTML you are using is that you save it from having to “guess”, which can often lead to strange behavior.

...Read more

EP 62: Introduction to HTML
2017-12-02 06:33:21 UTC 34:12
EP 62: Introduction to HTML

I’m so ridiculously excited to be introducing a whole new aspect of programming. Over the next few months I will be posting new articles on the topics of HTML, Javascript and jQuery. These are all technologies that you can use to create your very own interactive website. The really cool thing about building websites, is that you can leverage your existing knowledge of Java to create ever MORE powerful websites. But let’s not get ahead of ourselves, for now we’ll focus first on HTML, then we’ll move into Javascript/jQuery. But enough big picture talk, let’s get into our introduction to html shall we?


An Introduction to HTML…

HTML stands for HyperText Markup Language, and all this really means is that HTML is not a programming language, but rather just a set of rules for structuring your text. This means that if you type out certain words in a particular way, you can create a website! Piece of cake right? For the most part, YES, it is a piece of cake

...Read more here...

HTML, CSS and JavaScript - Oh My!
2017-12-02 06:33:21 UTC 40:40
HTML, CSS and JavaScript - Oh My!

The presentation layer is one of the three main layers in object-oriented programming.

The three main layers include:

  • Presentation Layer
  • Business Layer
  • Data Layer

Now, these three layers are typically related to enterprise web applications. It’s a design pattern used to help separate your code out in three distinct areas that (if need be) can easily be switched out with another programming language or technology.

So if you keep all of your presentation layer code in one area of your application, switching presentation layer technologies shouldn’t be too difficult.

Same rules apply to the business and data layers. If you separated your code out properly, switching databases shouldn’t be too big of an issue.

Having said that, we’ll be focusing on the presentation layer.

The four big players (in terms of technology) in the presentation layer are as follows:

(Keep Reading)

Hibernate Group By
2017-12-02 06:33:21 UTC 43:05
Hibernate Group By

In our last Hibernate lesson, you learned how to fix duplicate data from hibernate queries.

In this lesson we’re going to focus on some of theaggregate functions that can be used with Hibernate, and of course that means diving into theGroup By clause.

What’s important to note is that Hibernate doesn’t ever refer to it as group by, instead they use the term projections.

So, armed with this knowledge, let’s jump into the lesson!

Grouping Data with Hibernate

In our examples, I’m going to show you how to create a query with hibernate that will group your data in some manner.

When we build our query, we will be focusing on using Hibernate’s Criteria queries, which allows for a nice way to build queries without having to know any SQL.

First, let’s start off with an example that we will build on.

...continue reading.

Fixing Duplicate Data from Hibernate Queries
2017-12-02 06:33:21 UTC 31:48
Fixing Duplicate Data from Hibernate Queries

How to Fix Duplicate Data from Hibernate Queries

This problem was the bane of my existence when I first started using Hibernate because I had no idea where the problem was coming from.

If you’re executing a query and finding that you have a bunch of duplicate records and haven’t a clue why, then you’re in the right place.

You see the problem is typically caused by having left joins (or optional joins) in your objects. When you have a base object, like say User and it joins to another table/object in an optional One-to-Many or optional Many-to-Many format, then you may get duplicates.

Consider this scenario… A User objects joins to the LoginHistory object, which keeps track of all the times a particularUser has logged into the system. And let’s say our user has logged in many times. You’ll have a situation where you have many records in the LoginHistory table.

So what happens when you run a query that joins to the LoginHistory table? Well it will return as many rows as there are entries for that User in the LoginHistory table.

So because of this, Hibernate doesn’t massage the data for you, it just returns exactly what it got from the database. The ball is in your court to tell Hibernate what to do with records it has retrieved.

There are two solutions to this problem:

  1. Declare your joining object as a Set
  2. Make use of Distinct Root Entity Results Transformer

Click Here to Keep Reading

Hibernate Persistence Life Cycle
2017-12-02 06:33:21 UTC 42:08
Hibernate Persistence Life Cycle

Now it’s time to dive into the nitty gritty of Hibernate’s mysterious inner workings.

I’m by no means an expert in Hibernate, but I do use it almost every day for my own projects, so I do know a thing or two about how it works.

One topic that had me scratching my head for ages was the Hibernate life cycle. What I mean by the life cycle is the way Hibernate interacts with Java objects at certain points in the existence of said Java objects.

Let’s start from the beginning…

What the heck is a Hibernate Life Cycle?

You see, Hibernate is picky about your Java objects. Hibernate prefers your objects to be in a certain “state”, known as the persistent state… this persistent state is one of four different states that exist inside of the hibernate persistence life cycle.

Once you have a firm grasp of the different states that an object can be in (as it pertains to Hibernate) you’ll be well on your way to mastering the Hibernate framework.

So let’s get this Hibernate persistence life cycle lesson started shall we?

Continue reading via:

Fetch Type Lazy Vs Eager
2017-12-02 06:33:21 UTC 29:13
Fetch Type Lazy Vs Eager

What the heck is a Fetch Type?

Great question! Hibernate is a very handy framework for removing your need to fully understand SQL, but it will force you to understand things such as joins.

Joining two tables in SQL is the foundation of a relational database, as joins allow you to actually define relationships between tables (objects).

Having said that, relationships are important to understand when talking about fetch types in Hibernate. This is the case because whenever you define a relationship in Hibernate, you’ll also need to define the fetch type. The fetch type essentially decides whether or not to load all of the relationships of a particular object/table as soon as the object/table is initially fetched.

For more information please see the show notes via

Hibernate @ManyToMany Unidirectional and Bidirectional
2017-12-02 06:33:21 UTC 53:00
Hibernate @ManyToMany Unidirectional and Bidirectional

Hibernate @ManyToMany Unidirectional

The Many-to-Many relationship can be best described by example.

The example we’re going to use is that of the relationship between an Author and a Book.

Authors publish Books, and Books have Authors. Any one Author can publish many Books, and any one Book can be published by many Authors, so this is why it is a many to many relationship.

Other examples of the many to many relationship are Students to Courses and Employees to Projects.

Let’s take a look at how the unidirectional many-to-many relationship is created using Hibernate... for more info please visit

Hibernate @OneToOne Unidirectional / Bidirectional
2017-12-02 06:33:21 UTC 36:21
Hibernate @OneToOne Unidirectional / Bidirectional

One-to-One Unidirectional Relationship

Since you’ve already learned about the ins and outs of how unidirectional one-to-many and bidirectional one-to-many relationships work, it’s time to learn about the One-to-One relationships.

We will start things off with the unidirectional One-to-One relationship and how it’s set up in Hibernate.

First thing is first, you need to understand how a One-to-One relationship is actually set up in a database. Once you understand that the child table declares the parent’s primary key as the child’s primary key, then we can get moving with the Hibernate stuff!

For this example, we are going to use the One-to-One relationship between an Employee and their Address. TheAddress table will be set up as follows:

For more information, please read the show notes via

Hibernate @OneToMany Bidirectional Relationship
2017-12-02 06:33:21 UTC 34:09
Hibernate @OneToMany Bidirectional Relationship

Since we’ve already learned about the unidirectional @ManyToOne relationship, we can now move on to talking about what a bidirectional relationship is like, when using Hibernate. The term “bidirectional” literally means “functioning in two directions”, which is the concept that we will apply in our relationships between two Java objects. When we have a bidirectional relationship between objects, it means that we are able to access Object A from Object B, and Object B from Object A. We can apply this logic to our real world coding example that we saw in the last post. The example we will use is the relationship between an Employer and an Employee. Previously, we only defined a unidirectional relationship, so we could only access the Employer from the Employee object and not vice-versa. Now let’s take a look at how to transform our existing unidirectional relationship into a bidirectional one.

Mapping Relationships with Hibernate
2017-12-02 06:33:21 UTC 55:48
Mapping Relationships with Hibernate

In the past we have learned about database relationships, specifically the One-to-Many as well as the Many-to-Many and One-to-One and that was all good, great and grand…

But now I want to talk about how to create those same relationships inside of Hibernate.

Specifically, I want to focus on the One-to-Many relationship in Hibernate and how we go about mapping it out in our Java objects.

But before we do, a word on unidirectional and bidirectional relationships.

Unidirectional vs Bidirectional

In Hibernate, it’s possible to map all three relationships that are available in a standard database, these include:

  • One-to-One
  • One-to-Many
  • Many-to-Many

But what Hibernate also includes is the ability to make EACH of those relationships either unidirectional or bidirectional.

This means that we can have a unidirectional One-to-One and a bidirectional One-to-One mapping, as well as a unidirectional One-to-Many and a bidirectional One-to-Many, as well as a unidirectional Many-to-Many and a bidirectional Many-to-Many relationship.

That’s a lot of relationships!

So what exactly are unidirectional and bidirectional relationships?

Learn more on the show notes page via

Hibernate - Creating Data Access Objects (DAOs)
2017-12-02 06:33:21 UTC 59:29
Hibernate - Creating Data Access Objects (DAOs)

Data Access Objects – What are they?

Data Access Objects (or DAOs for short) are used as a direct line of connection and communication with our database. DAOs are used when the actual CRUD (CRUD = Create, Read, Update, Delete) operations are needed and invoked in our Java code. These data access objects also represent the “data layer” of our application.

These objects are still just plain old Java objects that incorporate the use of some Hibernate annotations to give them the functionality we need from them. Again, that functionality being the communication with the database.

Also, believe it or not, the concept of creating a file specifically for accessing the database is a design pattern. It’s called the Data Access Object Pattern and you can read more about it from this nice short Wiki article.

What Hibernate Annotations Should We Use?

Okay, so now that you’re somewhat familiar with DAOs, it’s time to learn how to integrate these plain old Java objects with our Hibernate framework (so they actually do the work we need them to do).

There are two main annotations that you need to be familiar with:

  • @Repository
  • @Transactional

To learn more, visit our show notes page via

Hibernate's most important annotation - @Entity
2017-12-02 06:33:21 UTC 59:24
Hibernate's most important annotation - @Entity

What You’ll Learn

The focus of this podcast / blog post is to teach you how to create the connection between your Java objects and the SQL Database tables. Remember, the whole point of the Hibernate framework is for you to be able to write Java code that allows you to communicate with your database.

When I say that the goal is to communicate with your database, what I mean is:

  1. Create the tables (if they’re not already there) that will represent your Java objects
  2. Give Java the ability to send queries and execute scripts on your database
  3. Establish a transactional means by which to perform CRUD operations

What we’re going to be tackling in this post will the step #1, how to get Hibernate to create our tables for us.

Hibernate Persistence for Beginners
2017-12-02 06:33:21 UTC 01:01:10
Hibernate Persistence for Beginners

What is a Persistence Framework?

As the name implies, it has something to do with persisting things... this means that we're still talking about databases.  But what is it that we are persisting with this framework?

Objects (of course)

A persistence framework is something we use in Java to bridge the gap between Java and SQL.

Hopefully we've gone through all of my previous tutorials and have learned a thing or two about Java and SQL.  But one thing I haven't taught you yet, is how to put your knowledge of SQL into Java.

That's what I'll be teaching you throughout these Hibernate (persistence framework) tutorials.

And if you haven't guessed it already, Hibernate is a persistence framework that you can use in Java.  It's what allows you to write Java code (staying true to Object Oriented programming practices) and yet still be able to communicate with your database.  Cool eh?

For more information on this, check out the show notes page via:

The SQL Subquery
2017-12-02 06:33:21 UTC 48:11
The SQL Subquery

The SQL Subquery

Now that you’ve learned about SQL Joinsaggregate functionsand the group by keyword, it’s time we moved on to our final topic in our SQL tutorial series. Today you’ll be learning all about SQL Subqueries, how to use them and when you should use a SQL subquery.

So, what is a subquery?

First and foremost, let’s get the jargon out of the way. A subquery can also be referred to as a nested query. It’s just like having a nested if statement in your Java code. Essentially what you’re doing with a subquery is you are constructing a regular old query (select statement) which could be run all by itself if you wanted to, but instead of running it all by itself, you’re jamming it into another query (select statement) to give you more specific (filtered) results.

What’s very important to note here is that the SQL subquery can almost always be re-written as a join with a whereclause attached to it.

More info on this via

SQL Group By
2017-12-02 06:33:22 UTC 47:00
SQL Group By

After having talked about all the SQL Aggregate functions, there’s one more topic that goes hand in hand with what we’ve already learned… The group by keyword.

This particular keyword allows us to take a bunch of data and mash it all together into matching groups and then perform aggregate functions on those groups (like sum and avg).

You might ask yourself why you’d want to “mash together” a bunch of data. The answer to this is best explained with an example, but let me try to put it in regular words before we jump into our example. Grouping data together allows us to look at aggregate data in relation to unique piece of data (or rows), a typical use case would be to group all the matching data together so you can get a count of the number of occurrences of specific data. An example related to grouping and counting could be a presidential election, you’ll have all the votes in a database and you’ll want to group that data together to get the total votes for each unique candidate...

For more info, check out the show notes via


SQL Aggregate Functions
2017-12-02 06:33:22 UTC 32:12
SQL Aggregate Functions

In today’s podcast episode you’ll be learning all about the aggregate functions that exist in SQL.

What the heck is an aggregate function? Well that’s what I’m going to try and teach you today, and I promise, it’s not a difficult concept to grasp. Just think of an aggregate function as a method that you’re calling that will process data in your database and return a value. Obviously the returned value will depend on which of the aggregate functions you choose to use.

So that begs an obvious question, what are the aggregate functions that we can use in SQL? I’m glad you asked, here’s the ones that I use all the time in MySQL:

  • MAX
  • MIN
  • SUM
  • AVG

Okay, great! So now we know what the names of these functions are, now let’s see some examples of them in use!

Database Joins
2017-12-02 06:33:22 UTC 57:26
Database Joins

There are three categories of joins that you can make use of in SQL:

  •   Inner Join
  •   Outer Join
  •   Cross Join


But before we dive into the categories of joins, we first need to have an understanding of what a join really is.

Joins are used in SQL to bring together all the relevant data from multiple database tables.  Remember that we've broken data down into multiple tables and established relationships between the tables.


... More via show notes:

Enforcing Database Relationships Part II
2017-12-02 06:33:22 UTC 55:31
Enforcing Database Relationships Part II

In this SQL tutorial episode/post we’re going to learn how to enforce our SQL relationships that we’ve already learned about. We’re going to be tackling the one-to-one and many-to-many relationships and we’re going to learn how to write the code to enforce these relationships in our database.

As outlined in the podcast, we are going to be focusing on the many-to-many relationship with the author and bookexample. Remember that one author can publish many books, and one book can be written by many authors. This indicates a many-to-many relationship and I’m going to show you how to enforce that relationship in your database...


Show notes available via

Creating Database Tables in MySQL
2017-12-02 06:33:22 UTC 01:02:19
Creating Database Tables in MySQL

You’ve learned all about how to create sql queries to read, write, update and delete data… but you haven’t yet learned how to create the tables where you’ll be doing the reading, writing, updating and deleting.

So that’s what today’s podcast is all about, be sure to click the play button above this to listen to the show and then follow along with the notes via

Database Relationships: Many-to-Many and One-to-One
2017-12-02 06:33:22 UTC 44:01
Database Relationships: Many-to-Many and One-to-One

Show Notes available via:


In this post we will be expanding on the topic of database relationships and touch on two that are less common but just as useful.

Many-to-Many Relationship

The many-to-many database relationship is used when you are in the situation where the rows in the first table can map to multiple rows in the second table… and those rows in the second table can also map to multiple (different) rows in the first table.


One-to-One Relationship

A One-to-One relationship means that you have two tables that have a relationship, but that relationship only exists in such a way that any given row from Table A can have at most one matching row in Table B.

Database Relationships – One to Many
2017-12-02 06:33:22 UTC 32:16
Database Relationships – One to Many

We’ve talked about relational databases already, and we’ve learned why this type of database management really dovetails with the object oriented programming model. So now I want to dive into the specifics when it comes to relationships.

What are the different types of relationships in SQL?

There are three types of relationships you can have in SQL, they are:

  1. One-to-Many
  2. One-to-One
  3. Many-to-Many

In this episode we are going to be focusing on the One-to-Many relationship as it’s the most commonly used in my opinion.

Database Terminology - Relationships, Joins and Keys
2017-12-02 06:33:22 UTC 00
Database Terminology - Relationships, Joins and Keys


It's the foundation when learning any new concepts.  In this episode of the "How to Program with Java Podcast" we will be talking about some new database terminology.

One of the most important aspects of modern databases is the fact that they allow you to define relationships.

Relationships between tables allow you to break data up into its individual "areas of interest".  But when you break the data up, you'll need to know how to put it back together.  This is accomplished using relationships, keys and joins.

There's plenty to learn about these concepts and we will start by scratching the surface in this episode.

Exciting Announcement

As you'll hear in the first few minutes of this episode, I've recently had an epiphone!  

I realized that there's no great communities dedicated to programmers.

So I took it upon myself to create the very first community dedicated to programmers and the pursuit of knowledge and advancement of our common goals (to excel as programmers).  You'll learn lots about this community in the episode, so I won't go in to details here, but if you're interested in checking it out - please visit:

CRUD Operations - Syntax for Interacting with your Database
2017-12-02 06:33:22 UTC 55:16
CRUD Operations - Syntax for Interacting with your Database

What’s all this CRUD about?

  • Create
  • Read
  • Update
  • Delete

This is the at the heart of all databases and SQL. A database essentially carries out these four operations over and over again for the duration of its existence.

In this podcast, I talk about these four database operations in detail and the actual syntax that is used in a flavour of SQL known as MySQL.

Intro to Databases and SQL
2017-12-02 06:33:22 UTC 00
Intro to Databases and SQL

Ladies and gentlemen the time has come for you to start learning about Databases and SQL.

In this episode I will talk about the very basics of databases and why it is they exist in the first place.  You'll learn things like:

  • What exactly is a Database, and what ulitimate purpose does it serve?
  • Why are modern databases referred to as relational databases?
  • What a database does, day in and day out, it's sole purpose in life is essentially CRUD!
  • How does SQL fit into the database equation
  • Why it was that Trevor failed his first database course in university!  For shame!

Learning and understanding databases is more is less a required skill in these modern days of programming, and at the very least, having knowledge about databases will give you a leg up on any competition.  So pay attention boys and girls, and strap on your thinking caps, because this ride is getting started.

Let's talk AJAX - It's not just for cleaning anymore!
2017-12-02 06:33:22 UTC 32:15
Let's talk AJAX - It's not just for cleaning anymore!

AJAX (Asynchronous Javascript and XML) is a techonology used to create Rich Internet Applications (RIA).  

If you're asking "what the heck does that mean!?"  You're in the right place

In this podcast episode we will talk about the uses for AJAX and how it can lead to a much nicer web browsing experience for your Java web applications.

What else will you learn about in this episode?

  • The difference between an HttpRequest and an XMLHttpRequest
  • Why it's annoying when your website has to refresh every time you submit a form
  • The workflow behind how websites like Google Finance or live sports scores work
  • What JavaScript frameworks make dealing with AJAX easier
  • Why AJAX isn't really AJAX anymore (it's more like AJAJ, but that doesn't roll off the tongue!)

Intro to Algorithms and Big-O Notation
2017-12-02 06:33:22 UTC 54:12
Intro to Algorithms and Big-O Notation

An algorithm is essentially a well defined set of instructions that get carried out by a computer in an automated fashion to solve a problem.  A good example of this is to say "How would you tell a computer to figure out which of the 5 balls I've given to you is the heaviest (or lightest)".  In order to solve this "problem", you'll need to define a set of steps for the computer to carry out in order to reach a conclusion and solve the problem.

Algorithms are very common in programming, as you are constantly trying to tell the computer how to solve problems in a step by step manner.

The Big-O Notation is the way we determine how fast any given algorithm is when put through its paces.  

Consider this scenario: You are typing a search term into Google like "How to Program with Java" or "Java Video Tutorials", you hit search, and you need to wait about 30 seconds before all of the results are on the screen and ready to go...  Would you still use Google?  Or would you start shopping around with other search engines to find one that is faster?  My guess is you'd start shopping around.

Speed is everything these days, and building slow software is infuriating to users even if they aren't even paying for the software.

Spring Security
2017-12-02 06:33:22 UTC 49:37
Spring Security

Ever wondered how you could properly restrict access to certain parts of your web application?  

Do you have an application that has a user registration page and a user login page?

Spring Security is the answer if you have a web application created with the Spring Framework!

Spring Security will restrict access to any URLs that point to your web application based on your custom configuration.

Learn how in this week's How to Program with Java podcast.

Data Binding with Spring Framework
2017-12-02 06:33:22 UTC 42:43
Data Binding with Spring Framework

So, the Spring framework is a wonderful help for programmers, but sometimes it needs a bit of help.  It does a good job of trying to match fields on a webpage to Java objects (aka Java Beans), but sometimes when the "mapping" is complex, Spring needs our help.

In this episode I will explain exactly how you can go about something known as "custom binding".  This process allows you to take any text from the presentation layer and convert/bind it to the appropriate Java object (Java Bean) on the server side.

Spring Framework - Fun with Controllers
2017-12-02 06:33:22 UTC 55:07
Spring Framework - Fun with Controllers

In our last episode I talked about controllers and how they are used in Spring.  In this episode I will be diving even further into Controllers in the Spring Framework and I will talk about the different parameters that can be passed into each method within each Controller.

For example, there are HttpServletRequest objects, Model objects as well as @RequestParam and @ModelAttribute annotations that can be used within your Controller's methods.  The beauty of the Spring framework is that you can pick and choose which ones you want to include within any given method.

Intro to the Spring Framework
2017-12-02 06:33:22 UTC 49:17
Intro to the Spring Framework

Well, so far we've been focusing on a bunch of topics that align themselves around the Java programming language in general.  But now we're going to take things into a slightly new direction, we're going to be talking about the Spring Framework -- more specifically, Controllers and the Spring Framework.

You see, my goal for this blog and podcast has been to not only teach you the Java programming language, but also teach you how you can build a web application.  So, this is the first step in that direction.

Java Observer, Observable Design Pattern
2017-12-02 06:33:22 UTC 40:18
Java Observer, Observable Design Pattern

Today let's talk about some design patterns, namely the Observer design pattern which can be used in Java.  Following the Oberser design pattern in Java is as easy as extending the Observable object and implementing the Observer interface for the appropriate objects.  

Don't have a clue what the appropriate objects are?  Well then that's what this episode is all about!  You'll learn what the design pattern is, how it can be used, and how BIG companies have used it in their powerful frameworks.  Don't miss it!

Interview w/ Self-Taught Programmer Troy Davis
2017-12-02 06:33:22 UTC 01:14:51
Interview w/ Self-Taught Programmer Troy Davis

In this epsidoe of the How to Program with Java podcast, I talk with a self-taught programmer who has started up his own very successful marketing product based on his programming knowledge.  Troy was graduated with a degree that would have had him working as an audio engineer, but instead took a 180 and pursued his passion for tech and programming.  Now he's the big cheese (CTO) and living the dream.  Find out how he did it, and how YOU too can do it on this great podcast interview.

The Agile Development Methodology
2017-12-02 06:33:22 UTC 42:17
The Agile Development Methodology

If you've worked as a developer for a corporation, you've likely been exposed to the waterfall model of software development... If not, consider yourself lucky.  I've worked in this model before and it had its issues, but thankfully I was introduced to the Agile development methodology in the latter years of my career as an employee and I got a lot from the experience.  This podcast episode is dedicated to talking about the Agile methodology and recounts my experiences with it and how I went through my days using the Agile process.

In the episode we will talk about:

  • Standup meetings
  • Backlog grooming
  • Story Planning
  • Review and Retrospectives
  • Story Cards and estimation points
  • Sticky Notes for Tasks
  • and more!

Plenty to learn about, and plenty to get excited about!

Alan Robbins - Self-taught Programmer Success Story
2017-12-02 06:33:22 UTC 43:52
Alan Robbins - Self-taught Programmer Success Story

Alan Robbins is a self-taught programmer who dabbled with programming in college.  After not doing to well in the post-secondary system with respect to programming, he changed his major and graduated with a degree in Business Economics and a minor in Psychology and Philosophy.

After graduating, he decided that he had a knack for programming (even if the "system" told him otherwise) so he ended up getting an entry level job as a programmer.  Since then, he's started up a couple of businesses and is now running a very successful software development company with 40 employees and "lives the dream" by working from home.

The Software Development Life-Cycle
2017-12-02 06:33:22 UTC 52:11
The Software Development Life-Cycle

Knowing how to program with Java is only some of the battle when it comes to developing software, the other major part of the battle is knowing HOW to distribute the software.  There are entire schools of thought that surround the ways that you can release software, but in this podcast episode we will focus on two methodologies.

The software development life-cycle is the broad term that defines methodologies like:

  • Waterfall Model
  • Agile Development

Have a listen, get informed and happy learning!

From self-taught programmer to self-made success story - Interview with John Sextro
2017-12-02 06:33:22 UTC 45:20
From self-taught programmer to self-made success story - Interview with John Sextro

Keeping on our theme of becoming a success story with programming as a self-taught programmer, I interview a successful self-taught programmer by the name of John Sextro.  As a seasoned programmer and agile coach with no degrees or diplomas, John made it to 'the big show' by impressing one of the gatekeepers of that coveted 'entry level programmer' position.  Find out how he managed to kick start his career in today's interview.

Getting a Job as a Self-Taught Programmer
2017-12-02 06:33:22 UTC 38:44
Getting a Job as a Self-Taught Programmer

Landing a job as a self-taught programmer is not impossible, and I will have an in-depth conversation about why this is the case.  I will talk about strategies like creating your own software product based on your own interests, then slapping that on your resume and impressing potential employers.  Finding programming contracts and getting paid to learn how to program and building up your marketable experience.  I will also cover how to meet people and get interviews ON THE SPOT so you can land a job and get that all important real world working experience!  Have a listen and take action!

Encapsulation and Final Keyword in Java
2017-12-02 06:33:22 UTC 39:55
Encapsulation and Final Keyword in Java

Learn all about one of the four major principles of Object Oriented Programming (encapsulation) as well as the "final" keyword.  In this episode I also dive into the popular topic of Java Certification.  Learn what certifications you can get, what you should do to prepare, as well as what materials I'd suggest picking up to give yourself the best chance of success!

Java Interview Question - Part II
2017-12-02 06:33:22 UTC 38:20
Java Interview Question - Part II

In this session I will cover some additional Java interview questions that you should be able to answer.  I also cover some general tips that you should keep in mind when being interviewed (as it's not just these questions you'll need to be able to answer if you want to land the job).

Java Interview Questions Part I
2017-12-02 06:33:22 UTC 45:51
Java Interview Questions Part I

This is part I of a series of episodes dedicated to common questions that are asked in entry level Java interview situations.  The questions covered in this episode are some basic questions that I uncovered across the internet (and there are even questions I've asked in an actual interview situation myself).  Enjoy!

Mocking in Java
2017-12-02 06:33:22 UTC 45:54
Mocking in Java

In this episode you'll hear what mocking is all about and how it can be used to help you in your unit testing journey.  Mocking is all about testing chunks of code in solutide, without having any dependecies on other Objects (as this would sully your unit test).

Unit Testing in Java
2017-12-02 06:33:22 UTC 38:50
Unit Testing in Java

This is a very important topic of discussion, as it's probably the most important activity you can participate in as a software engineer.  I'm absolutely convinced that you can save yourself and your company truck loads of money if you learned how to unit test your code.  So if you've never heard of this before, it's time to put on your thinking caps!

Casting in Java
2017-12-02 06:33:22 UTC 30:42
Casting in Java

Trevor Page takes you through all the nail biting action that is casting in Java.  This episode will teach you what casting is and why it's needed in Object Oriented Programming languages.

Custom Sorting Algorithms in Java
2017-12-02 06:33:22 UTC 42:47
Custom Sorting Algorithms in Java

Trevor Page teaches you exactly how you would go about implementing a custom sorting algorithm for your Collections or Arrays.  By default, Java has the methods "Collections.sort()" and "Arrays.sort()" to sort your Lists/Arrays for you... but what happens when you want to change the way these methods sort?  Find out in this podcast!

Constructors in Java
2017-12-02 06:33:22 UTC 25:04
Constructors in Java

Constructors are used to initialize Objects in Java.  These are not mandatory to use, but anytime you've got an Object that maintains state, you should always think about properly initializing your Object.  The constructor isn't limited to just initializing though, so have a listen and find out what you can do!

Packages in Java
2017-12-02 06:33:22 UTC 28:34
Packages in Java

Did you know Java allows you to organize all of your files in folders for a "neat" programming environment?  Well it does, so learn all about Java packages in this week's episode of the How to Program with Java podcast.  

Regular Expressions in Java
2017-12-02 06:33:22 UTC 39:27
Regular Expressions in Java

This week I will cover the topic of regular expressions in Java.  This topic came as a request from a listener, so I was thrilled to record it for them.  You'll learn everything you need to know to get started with regular expressions, and I even leave you with an assignment for you to do at home!  So let's get to it!  Be sure to check out the shownotes at

Collections in Java
2017-12-02 06:33:22 UTC 44:04
Collections in Java

In this episode of the How to Program with Java podcast, I will be covering the topic of Collections.  What is a Collection in Java?  Some popular examples are: List, Set and Map.  These are all interfaces, so what are the most common implementations of these interfaces?  You'll find out and much more!

Finally and StackTrace in Java
2017-12-02 06:33:22 UTC 45:06
Finally and StackTrace in Java

In this week's episode of the How to Program with Java Podcast, we talk about the last important piece of Java Exceptions, and that is the "finally" block.  Also, I'll touch on what a Stack is and how it relates to the StackTrace and to Exceptions!  Exciting stuff people!

Exceptions in Java
2017-12-02 06:33:22 UTC 33:40
Exceptions in Java

In this episode you will learn what the Java Exception handling framework is and how it works with a few example scenarios.  You'll understand why you would use something called a try/catch block of code and how it is used.

Show notes via

String Type in Java
2017-12-02 06:33:22 UTC 33:39
String Type in Java

Learn all about the Java String variable type.  The String is a widely used and fairly complex variable type, but we will cover everything you need to really understand what it's all about!

Inheritance in Java
2017-12-02 06:33:22 UTC 25:57
Inheritance in Java

In this episode, you will learn the ins and outs of Inheritance.  This concept is one of the three key concepts of object oriented programming, so it's an important one to understand.

Objects and Static Keyword in Java
2017-12-02 06:33:22 UTC 31:27
Objects and Static Keyword in Java

This episode will talk in depth about the Java Object and what it's so important to the Java programming language.  We will also touch on the static keyword, as it pertains to the Java Objects with respect to the Class blueprint.

Primitives in Java
2017-12-02 06:33:22 UTC 23:26
Primitives in Java

In this episode of the How to Program with Java podcast, we'll learn about Primitive data types and why they are used in Java.  We'll talk about the difference between the primitive types and their Object Wrapper counterparts.  We will cover when to use one over another and some important things to understand about Primitives!

Arrays in Java
2017-12-02 06:33:22 UTC 32:11
Arrays in Java

In this episode of the How to Program with Java podcast, we will learn about Arrays in Java, why they are useful and what important things we should know about Arrays before we start to use them.

Methods in Java
2017-12-02 06:33:22 UTC 27:12
Methods in Java

This how to program with java podcast episode will teach you everything you'll need to get off the ground with what a method is an how they are used in Java.

Java Hello World
2017-12-02 06:33:22 UTC 22:46
Java Hello World

In this episode you will learn how to create your first Java program.  This is usually known in the programming community as your "Hello World" program.  This signifies that you have everything properly setup and you have written the most basic code to get your first program running and operating correctly.

Syntax and Tools in Java
2017-12-02 06:33:22 UTC 21:12
Syntax and Tools in Java

In this episode of the How to Program with Java podcast, we will talk about what Syntax is in the Java programming language, and why it's the toughest part of learning the language.  Also, we'll talk about some tools that will make your life easier, especially when it comes to syntax!

Data Structures in Java
2017-12-02 06:33:22 UTC 30:15
Data Structures in Java

This episode of the How to Program with Java podcast talks about Data Structures.  How they are used in Java, why they are important and when to use them.  Examples of Data Structures:  List, Map and Set.

What are Control Structures in Java?
2017-12-02 06:33:22 UTC 26:56
What are Control Structures in Java?

Control Structures   Wiki: A control structure is a block of programming that analyzes variables and chooses a direction in which to go based on given parameters. The term flow control details the direction the program takes (which way program control “flows”). Hence it is the basic decision-making process in computing; flow controldetermines how a computer will respond when given certain conditions and parameters.   -describe it in more human terms   - code read LINE BY LINE from top to bottom, and for the most part left to right) - CODE FLOW   - choose your own adventure... only you can have loops   - computer has a decision to make   - What are the different kinds of control structures   - IF statements   - Loops     - For     - While     - Do While   Contact me with any questions here:

Variables in Java
2017-12-02 06:33:22 UTC 31:38
Variables in Java

Fundamentals of Programming with Java

- All programming languages share common traits - Java in particular is an Object Oriented programming language - Everything can be represented as an Object (think of of nouns in the English language) - a Chair, a Desk, a Person, a User etc.


- What is a variable? - In computer programming, a variable is a storage location and an associated symbolic name which contains some known or unknown quantity or information, a value.

- cryptic, here's what it really means: - Store information for later use, and store it in a way that you can reference it - this is known as a variable name! - variable name is just a word, a word that represent's what you're storing

- if you go to a website, website asks for your name, you type it in, boom that's a variable

Variables have Types

- String - store a regular sentence (alphanumeric - numbers and letters) - Integer - Whole numbers on (no decimals) - Double - Number with decimals (about 16 significant figures) - Float - Number with fewer decimal places than Double (about 8 significant figures)

Your Homework

Intro - Who is Trevor Page?
2017-12-02 06:33:22 UTC 19:33
Intro - Who is Trevor Page?

Here's episode 1 of the How to Program with Java Podcast.  I'm very excited to kick off this podcast and can't wait to see where this journey takes me! Who am I? - Trevor Page - 29 Years old - I Live in Toronto, Ontario, Canada What do I do for a living? - Senior Software Engineer / Product Development Lead What is this podcast about? - Helping people - Compliments website Here are the links I mention in the episode: