Foundation – Universal Software Engineering for Total Beginners

  • Course level: Beginner


This is Why You’re Here:

Have you ever stared at a wall of code wondering what on earth is happening?

Have you ever been in a coding course and wondered what is this dude talking about?

Have you ever … (ok, you get the idea)

My 500,000 Student Study Says…

I’ve taught about half a million people to code online and you know what I’ve realised?

People don’t want to learn to code – they want to make things. Code is just the tool they need to do it.

Once I changed my courses to this focus I saw success in my learners many times greater than even I could have imagined!

But Code is Hard, Right?

Code, though, seems pretty complex – but in reality it isn’t. 

The problem stems from many places, but a big source is existing engineers and course developers. That’s because we want to feel clever.

Every time we use a big word or new acronym we feel great and you feel not so great. We seem to get our status by putting you down. Is it any wonder that many learners tune out?

You Need Fundamentals

In addition to that, most courses still don’t boil down the course to the fundamental issue:

You just want to learn code to build something!

What I see every day in other courses:

  1. Many courses are hyper focused on correct code (not a bad thing).
  2. But they don’t give you software engineering principles.
  3. You are guaranteed to fail if you don’t learn these principles.

I’ve watched the above dynamic play out since 2014 and is exactly why I started iAmDev. Yes, I should have started earlier, but the second best time to start something is right now!

So What Does this Course do for You?

This entire course was designed fro the ground up to be a prime example of my “engineering first” philosophy:

  • It presents code in the context of building things
  • I get you to build something after every video (that’s the best way to learn!)
  • By the end you’ll build a full text based accounting app for a coffee shop

How This Will Enhance Your Skills

Coding software isn’t about the code, really. It’s abut engineering a solution to a problem. To reinforce that I leave you with intriguing questions in every section, such as:

  • “How could you make this better?”
  • “What bugs would this introduce to your software?”
  • “Would a paying client be happy with this?”

Fundamentally, this beginner course is my way of showing you the truth behind software engineering.

Code is not hard, nor is it the goal you’re seeking.

Instead, let me show you how to become a software engineer.

About You

  1. You are confused by terms like “object, class and variable”. If you’re already a proficient engineer then this is definitely not the course for you!
  2. You like to take things at your own pace.
  3. You want principles for software engineering, which open doors to bigger and better career options.

About the Course

The course runs at a very slow pace, ensuring you understand the basic principles of all software engineering. You can always speed up playback to suit your learning style.

This course uses Python as the code language but once you’re done you’ll have the tools to use any language out there. In fact I even give tips and hints when using certain things in those other languages.

The course includes over 10 practice exercises and one large final project. To help you on your way I give solutions and hints so you can figure it out yourself!

What You’ll Come Out With

By the end of this course you’ll have:

  • The tech skills needed to make any software in any language. No, I’m not kidding – that’s the power of teaching principles!
  • A better understanding of “solution thinking”.
  • The ability to think critically about problems (useful in all areas of life!)
  • And a whole load of tips from a tutor who’s learnt, freelanced, published apps and taught others for over a decade.

I look forward to seeing you on the other side!


What Will I Learn?

  • Understand Software Engineering
  • Life Time Access
  • Real Projects Included
  • Complete in Own Time

Topics for this course

54 Lessons06h 10m

Introduction and Setup?

This introduces you to the course and sets up our environment
Setting up VS Code and Python4:49
Introduction to this Course4:57

Square Peg Round Hole – Variables and Types?

It's really simple - honest!

Stamps and Coins – Arrays and Collections?

A special kind of variable that allows you to collect multiple of the same kinds of item

Special Forces – Operators?

Operators form the basis of many things in engineering

Strawberry to Banana – Conversion Between Types?

Type conversion is a minefield. Rule of thumb -> Less conversion is better!

Mine is Bigger than Yours – Comparisons?

Comparisons form the basis of algorithms

A Merry Go Round – Loops?

Here be dragons! Loops are useful but you need to watch out!

Getting it Done – Methods or Functions?

Functions form the basis of organising your code

Get Something Back – Function Returns?

Functions can also give you something back!

Sorting Things Out – Classes?

As your software gets more and more complex classes are the solution to organisation

Confusion Reigns – Classes vs Objects?

Classes vs objects is the source of much confusion - but shouldn't be. Allow me to sort it out!

You Are Rich – Inheritance?

A useful tool for writing less code (lazy engineering is the best!)

Hide and Seek – Encapsulation?

ALWAYS hide things from other developers (including yourself....)

Tell Me What to Do – User Input?

A crucial part of any application!

The Main Project – You’re Ready!?

We build an almost full on accounting application. Yes, you're ready to do this!

Thank You and What to Do Next??

See where you can go from here


  • You Want to Understand Software
  • You Want to Learn Python
  • You Don't Want "Just Code"
  • You Want Software Engineering Principles (from the start)

Target Audience

  • You're a Total Beginner (or Code "noob")
  • You Want to Learn Python
  • You've Coded Before but Still Don't Understand things like "class, variable, object or encapsulation"