logo sm wt

Learn Engineering, Not Just Code.

Discover the secret ingredient for success that other courses won’t show you.


This is Me


As a long time educator I’ve taught 500,000+ students to code. In that time I’ve learnt one thing about you, the coding student….

You don’t want to learn code,
you want to build stuff!


Software Engineering for Total Beginners

A 6 hour online course that teaches you how to write software from scratch. The language is Python but the principles are universal. By the time you’re done you’ll have principles you can apply to any programming language.


What You'll Gain


Beginner Friendly

The course explains everything in simple, understandable language. No tech jargon here!


"Whys" Included

Sometimes, learning to code leaves you with more "why" than "wow". This course serves an XL helping of "wow"!


All Languages

The course is in Python, the world's most popular language. But the principles taught are used in all languages.


Well Rounded

Everything is aimed at making you a fully fledged software engineer - not just a code monkey.


Good Habits Now

I show youthe best way to think about problems and what you're making. Good habits now = better software later.



Discover my stories of freelancing and some truly horrific coding (but those apps still earned $100k+).


Join Over 800,000 Satisfied Students!

Mashin headshot

He explained everything really well and I was easily able to understand what he said. Most of the other courses I have taken have only shown you how to do stuff, but he really explained what each thing was doing and why we were doing it which was super helpful!

Mashin Naqvi

Programming Basics

Michael R

Great match. Everything is explained clearly and the visual is a huge help.

Michael Richards

OOP Principles

Even More Student Reviews

A few more reviews (there are over 18,000 to choose from!):

  • Instructor is very clear and concise. Much appreciated. – Juliene Love
  • Very clear. Brilliant! – Chris Alfred
  • Great and simple explanations for a Beginner. I would recommend this course. – Emmanuel Asman
  • Very clear and hands on right away. the quick intro into classes and inheritances was very well done and simple to understand! – Marco Pérez

The Course in Detail

The Project

"Every Single Concept You Need"


After years of teaching online I've discovered the only true method you need to become a software engineer. Each section in this course is modelled after that realisation in the following way:


A BASIC explainer video with me chatting face to face and drawing on my iPad. I want to you to "get" the concept before we touch a single line of code!


A real world coding example that you can either watch or follow along with. It's in Python but the principles apply to all languages.


Then I set you a task just outside of your comfort zone. Yes, you need to think. Thinking like that will elevate you above 95% of your peers.


We then look at my solution and I ask you some hard questions about the code. Just like the questions you'd get in an interview - except those guys have nothing on me!


“Square Peg Round Hole”


We start by explaining the concept, using pictures (on my iPad) and real life analogies. I want you to understand what variables and types are, plus how they are used effectively.


For example, do you know why we have variable types? If you don't know that then you'll have a hard time in an interview.


Also, not knowing why will lead to dreadful mistakes in your code. Mistakes in code cost millions. Just ask any company that's had an outage and they'll confirm it!


So, join me in session 1 to discover the untold secrets of variables!


“Stamps and Coins”

A collection of objects is a convenient way to store unknown numbers of the same kind of item.


Although I say "unknown", sometimes these collections expect a known quantity. That distinction can be the difference between a win or a fail!


In this section I will show you the properties of each and their pitfalls. You will also see these in action in the task section.


You are guaranteed to save about a year of developer time if you nail this topic!


“Special Forces”


A real tricky section. The concept is simple but reality needs a bit of explanation (by yours truly).


For example:


How do you multiply things? What if you multiple apples with bananas?


What happens if you “add” two words?


What happens if you add a word and a number? Hint - This actually works and you may do it pretty often.


Operators can be tricky, but with my help you’ll see right through their devious ways!


“Strawberry to Banana”


Hot on the heels of variables we have conversions, a very tricky subject.


The problem lies in human perception. For example: When we "see" a number it can equally be part of a maths equation or part of a sentence. Simple enough.


BUT computers (code) cannot see the same thing as our brains so we have to specify a conversion on occasion. 


There are many pitfalls here and this subject is probably the one area that gives beginners a “crashy” application.


Fear not though, I’ll get you through this!


“Mine is Bigger”

Comparisons form the basis of most "logical flow" in your apps. 


They are used in EVERY LANGUAGE AND EVERY FRAMEWORK since the dawn of (computer) time.


Comparisons form the basis of algorithms. In fact, I would go so far as to say that comparisons are computing. Not only that, comparisons are also the root of Artificial Intelligence. 


With my help you'll soon be comparing many things and really getting into the spirit of how a software engineer thinks!


"All Aboard the Merry Go Round!"

Loops are insanely useful but also insanely dangerous! 


Many beginner developers come undone when attempting loops because they can get stuck in "endless loops". These are a logical trap that will destroy your application. 


Loops also let you query arrays efficiently (you'll probably also perform comparisons at the same time!).


Watch me as I lay out when to use loops, when not to use them and most importantly how to use them.


"Getting it Done!"


Functions can be tricky and for that reason it's where most beginners get stuck!


Functions are actually a VERY simple concept (a block of code). However the problem lies in how simple that block should be and when you should divide up the block.


Unfortunately most teachers leave out that extremely important concept! 


Behold in wonder and amazement as I unravel this complexity of the universe! Bonus: I will make you 30-50% more productive once you get it (that's not an exaggeration by the way).


"Sorting Things Out"


Variables and functions are the fundamental building blocks of applications, but we need something more. We need classes.


Classes exist for 2 reasons:


To organise your code logically.

To "blueprint" things. 


Classes are THE MOST misunderstood concept out there. My YouTube video explaining them is by far the most popular in my channel.


Get even more understanding by completing this section!


"Fixing Confusion"


I added in this extra section after many hundreds of comments on my YouTube channel about this subject.


Those comments were directed at a single video demystifying "classes vs objects", a normally very confusing subject for beginners.


Once you understand the difference you'll a key element behind successful software design thinking.


"You're Rich!"


Well, no, not that kind of inheritance (unfortunately).


When making an app you can find yourself repeating code in similar classes. Wouldn't it be nice to avoid that problem?


Inheritance is one of the solutions for that but it should be used sparingly and in the right contexts.


I'll show you why and when to use inheritance to write less code and save more time!


"Shh, It's a Secret"


Now this really is a subject you must know at any cost.


Encapsulation may seem subtle at this point in your learning path but later on it will be more valuable than diamonds!


If you get encapsulation right then your colleagues will thank you. Your future self will thank you. Even your mother will thank you (because you'll save so much time that you can take her out for a nice meal instead of pulling your hair out from debugging "spaghetti" code).


The art of encapsulation is what keeps ALL software running smoothly.




"Tell me What to Do"


All apps need a way for the user to interact with them. Even a very basic Python app needs it!


Here I show you how to do it, when to do it and how to structure your inputs.


The knowledge here doesn't just apply to Python. I also drop my years of hard won knowledge concerning "do's and dont's" when it comes to generating a User Interface for your users.


This section applies to all languages and frameworks because interaction is driven by human nature (and not by the language you're using).


Get interaction right and your app will absolutely take off!


Not to be missed!

The Project

"You Can Make Software Now"


Once you've completed this course you're ready to make software.


No, that's not a joke.


In fact I'll prove it to you. In this section you will make an accounting app that keeps track of sales and costs for a coffee shop. 


Not only that, you'll also calculate the shops daily profit and be able to recall previous days figures all in a simple to use command line app. No fancy graphics required!


Yeah, I bet you didn't think you'd be capable of making a full application so soon in your learning journey 😉 


Bonus: I challenge you to make the app better. I also point out that 2 more additions to the app would make it a product that people would pay for!

Your Quality Guarantee

My philosophy is to give you 100% satisfaction. No "ifs", "ands" or "buts".


Permanent Access Assured

All lessons and assignments are accessible 24/7 online. Lifetime access is guaranteed (I’m not going anywhere!)

100% Money Back Guarantee

If you are unsatisfied for any reason whatsoever I will give you a full refund. No quibbles (but I may ask why after I have refunded you – so I know what went wrong!)

Free Updates Forever

When this course gets updates, so will you. No extra charges. No subscriptions. Just quality content for life.

What Do I Need To Run the Course?

Just a web browser and your computer (Windows, Mac or even Linux!). All code editors are totally free!

So Are You Ready to Begin Your Journey?

Tempus Fugit – Time Flies. The best time to start your journey is right now.