Hudzilla Coding Academy: Introduction

Hudzilla Coding Academy


“Programming is an art. Don't spend all your time sharpening your pencil when you should be drawing.”

What does it take to be a programmer? Different people will answer that in different ways. Some say that you need to be methodical, or have a mathematical brain. Perhaps that's true. Others say you need to have spent a wasted youth locked in your bedroom, but that's probably more down to them mixing up correlation and causation.

This is the Hudzilla Coding Academy, so I think it's only right that I make it clear up front what I think it ta kes to be a programmer so that you can either agree and carry on reading, or disagree and walk away. So, here goes: to be a programmer, you need to program. I know that sounds obvious, but you'd be surprised by how many people think the path to success is through reading books, attending classes or, well, doing pretty much anything except sitting down in front of a computer and typing.

Not me. I believe the best way to learn something is try to it yourself and see how it goes. Sure, going to classes might re-enforce what you've learned, or it might teach you some time-saving techniques, but ultimately I've met too many people with computing degrees who stumble when asked to write simple programs.

This course is structured around making you complete code projects. If you want to pass, those projects aren't optional. If you're coming to this with some existing programming experience, you might find the first few projects too easy for your liking, but I would ask that you go through and complete them anyway - think of them as being good practice.

The Big Plan

My teaching method skips out a lot of theory. It skips out the smart techniques that transform 20 lines of easy-to-understand code into 1 line of near-magic. It ignores coding conventions by the dozen. And perhaps later on, once you've finished, you'll want to go back and learn all the theory I so blithely walked past. But let me tell you this: the problem with learning theory is that your brain doesn't really have any interest in remembering stuff just for the sake of it.

You see, here you'll be learning to code on a Need To Know basis. Nearly everything you learn from me will have a direct, practical application to something we're working on. That way, your brain can see exactly why a certain technique is helpful and you can start using it straight away.

This course is split up into multiple projects, plus assignments. To get maximum benefit, you should start at the first project and work your way through without skipping ahead, copying from others, or leaving long gaps between your learning. It has all been structured to provide a smooth learning curve upwards, so if you're able to give this course just a couple of hours a week, you should do fine.

Most tutorials should take about an hour to complete, with the first one being the exception because I cover a lot of groundwork to make sure everyone can get up and running. From feedback I've had with previous tutorials, I'm well aware how much everyone enjoys games programming tutorials, but I'm afraid we will be covering some serious topics too - every odd project is serious and every even one a game or something similar.

Each project is a tutorial written by me that will help you produce a finished program. It will also include some homework that you should complete before moving on to the next project. The assignments are where I'll ask you to produce something based on the skills you've already learned, but - other than me giving you a few hints and tips - you'll need to produce this entirely on your own.

The importance of having a tutor

This course is being written specifically for 20 people I have personally agreed to help learn to program. If you're not one of those 20, that's OK - you can still follow along and try your best. The advantage those 20 have is that they have direct access to me to ask questions. I'll also be marking their assignments and providing tutor feedback so they can learn from their mistakes. If you're not one of the 20 and want the same kind of support system, why not post online to see if others would like to mark your work in return for you marking theirs?

If you're one of the 20 students in my group, please be aware that the project homework and all assignments are not optional. If you get stuck, please feel free to ask me all the questions you want, but you do need to complete all the homework and assignments to continue.

The small print

This work was produced for as part of the Hudzilla Coding Academy series. All source code for this project is licensed under the GNU General Public License v3 or later. All other rights are reserved.

You should follow us on or Twitter

Your comments

Can I use this tutorial...

Can I use this tutorial, because your using C# to program in, as a way of learning C# but with a different tool or do I need to install a linux distro to learn C# and all of the fundamental theories you teach here??? Because the tool I was thinking of using was Visual C# 2008 Express Edition.

Platform usage doubt.

Like the guy mentioned above, I use Visual Studio 2008 (professional edition in my case). I would be glad to have an answer to the question stated above i.e. do we need a linux distro or will visual studio do?



For most (if not all) of the programs, Visual Studio on Windows is fine.

what pkgs do i need running

what pkgs do i need running ubuntu 9.04 64 bit

Great idea!

I have enjoyed going through the Hudzilla Academy projects. It's a nice quick easy way to become acquainted with mono/c#.

Is there any chance of seeing these tutorials reworked/ported for other languages? I would really like to see these ported over to Vala since it is supposed to be ver similar to C#, but compiles down to native C code.

There aren't many tutorials out there for getting started with vala and it would be great to see a great resource like Hudzilla expanded to include more languages.

Brilliant Article!

I shall be starting these after I've done your trout wars project :D.
Out of curiosity who's writing the article? Is it Jon? It's written like one of Jon or Gregory's articles...

And one last question: Will Mike Saunders be doing any more ASM articles?

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Username:   Password: