Saturday, October 26, 2013

Discovery of Great Learning Material

I think I may have found a great bridge across the gap between Java introductory lessons and getting into game development.  I found that gaps in content occur in a great many tutorial sets that I came across on YouTube (I still don't fully grasp why that has to happen, it seems like some good advance planning and making sure you start where the last video left off could prevent that).  As a result, I went back to trying to read about Java and found myself again frustrated by having tremendous amounts of reading material present to further elaborate on things that I understood well enough to use.  Sure, I am one who usually appreciates as much knowledge on something as I can get, but even for me there comes a point where lessons presented as reading material explain just a little bit too much what's going on behind the scenes.  Yeah I love knowing a lot of that, but there is a line that has to be drawn somewhere between knowing how computers are built and knowing how to program them - otherwise those wouldn't be two separate jobs, right?  In the end, I admit, this is coming to a single point:  while I'm certainly patient enough to learn "behind the scenes" stuff (and in fact greatly enjoy a good amount of that) I'm just not patient enough to learn every process behind every concept presented by tutorials that one can read online.  That's why I settled for YouTube video tutorials, but that gave me the opposite extreme:  most video makers assume you know more than I do at this time.

I was trying to go through a series by DesignsByZephyr and by the middle of the first video my screen was showing substantially more errors than his.  I fixed most of them, only to see it get worse by the time the first video ended.  While I sincerely believed I'd followed along perfectly, and verified that by going back and re-watching, there was something I just wasn't understanding and therefore couldn't fix.  This is when I found it:  ForeignGuyMike on YouTube.  His video set left me equally frustrated, but when I went to the comments to obtain some of the resources his tutorial used, I found another link to a spectacular collection of PDF files (or a physical book if one wished to purchase it.)  That link was http://fivedots.coe.psu.ac.th/~ad/jg/index.html and it covers the beginning stages of 2D game programming and just takes off from there into a pretty crazy amount of derivative material.  It branches out a bit here and there, using some stuff to control external devices, using external devices as UI, etc. up to 3D game stuff, mobile 3D, etc.  It looks like it may contain all the content I need to cross from my very basic understanding of the language to being able to keep up with these videos properly.

A word of advice though on that link:  start with the first "Chapter 1" link and follow through it using the "next" links on each lesson.  It mostly follows the structure that this index I linked to shows, but there were a few differences later on (which, if you're just following along anyway, may be less of a problem but if, like me, you're downloading all the PDF files and .zip files with example code to study offline at your own rate, this advice might be pretty handy.)  The downloads are available on his website, no cost whatsoever.  They cover a truly insane number of topics, and I was blown away just perusing the prefaces to each chapter displayed on all the lesson pages that contain the links to the actual PDF and resource files.  He provides everything you need to follow along, or so it appeared to me as I looked through it all.  I'm sure I'll be back to talk about it more as I go through it, but currently I'm working on Chapter 2 and it looks pretty awesome about showing you a bunch of code then explaining what is happening and such, and I feel like I already understand the concepts taught way more than I did with the YouTube video tutorials.

The real final point today:  I though YouTube was the way to go because it could be a lot more like a classroom setting, explaining things step by step as we go along.  This seemed especially handy since programming is seldom done in a perfectly sequential line-by-line way, you're essentially guaranteed to be bouncing back and forth, and up and down, through all your classes, methods, etc.  That's why I really thought YouTube would hold the best, and in a lot of ways it actually could, but if it is there then I failed to find it.  When that failed, some good old fashioned reading was there to cover me.  It may feel like it lacks a bit, which really stems from the fact that you have to apply yourself a bit more, but it really is a pretty powerful method if you can bring yourself to focus on it.  If you can't, well once more I say perhaps this subject isn't for you (though I'm sure someone out there will prove me wrong somehow or other.)

No comments:

Post a Comment