Hudzilla Coding Academy: Introduction
“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 TuxRadar.com 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.