Why Learn Programming this way?

There are two unconventional things I'm doing with these videos. Firstly, teaching assembly language to beginners, or anyone at all, is generally frowned on. Secondly, after just a couple of introductory videos, we get straight into serious programming. I'll explain why I think this is a good approach, at least for some learners.

Assembly Language

Here are my responses to some common complaints about assembly language:

In my view, trying to learn a high-level language without understanding what the underlying machine is really doing is like trying to learn algebra without understanding arithmetic. It might not be impossible, but it's needlessly difficult. These videos explain the underlying machine to give a better understanding of what high level languages really do.

Apprenticeship

Apprenticeship is a great way to learn.

These day's it's quite popular to do a "gap year" after finishing high school. What I did wasn't so much a "gap year" as a "gap career": a formal apprenticeship in motor mechanics and continuing in that trade for over 6 years.

Here are some of the key points of apprenticeship:

In the later years of my gap career, I studied for a degree in mathematics. This opened up my long-term career as a programmer.

I did an unofficial apprenticeship in that too. After university, my first job in a development team was an eye-opener. All these big tasks needed to be shared amongst team members without us all walking over each other's work. It was also a surprise that the trickiest technical problems — which you might think to be the hard part — were not the biggest challenge at all. Having the patience to steer clear of all the mundane little problems was the mark of the most valuable programmers.

It took several years learning by example from my more experienced colleagues before I was properly up to speed with the whole software development process.

I'm hoping these ArdEx videos constitute a kind of apprenticeship, You'll be seeing how a real technician goes about solving real problems. You're welcome to ask questions and I'll try answer, though it won't be as immediate as in a real apprenticeship. Then again, I won't get to tell you to mop the floor. You won't get paid while you train, but at least it'll cost you nothing.

The Goal

These videos won't make you a guru. My intention is to make clear just what the machine is doing when it runs any program. I hope this will lead to a clearer understanding of the computer and, consequently, of whatever languages you use for programming.