Sunday, October 19, 2014

Drum Roll Please: An Attempt by Someone to be Positive on the Internet

In a mere couple days, I will be relocating once more.  It won't be the last time, however it will at least be to the vicinity of where I fully expect to settle in.  I'll finally live near my kids again, and I will be near the school I will be attending.  When that finally happens, I can at long last achieve the final few tasks I need to in order to enroll in classes and begin learning programming in a properly structured manner.  I know my posts hear have been dominantly negative about my experience, but I really do have some very positive feelings about what I have learned in general.  I would just like to very briefly rehash a couple of those things.

First of all, to some of the YouTubers I've mentioned that taught me a great amount, I'm incredibly grateful.  To Oracle themselves for their tutorial systems, I am grateful, but also agitated with to a point, due to what I feel is a slightly out-of-order chain of lessons.  For instance teaching the syntax of anonymous classes and lambda expressions before getting to some more basic core things a programmer should know like some of Strings methods and such.  It created some great confusion to me at that time trying to follow their examples of what these were pointing to and accomplishing when I didn't even understand what the actual expressions within these classes and referenced methods were accomplishing.  It just made it harder to really follow the chain of events, and thus the potential uses of it all.  However, the lessons on these things ARE there, and often even cross-referenced so it wasn't very difficult to bounce around a little bit as I felt the need.  So, again, I'm very thankful I have Oracle as a resource that's so readily available.

At the end of the day, as with all things internet, there is a lot of sifting through "trash" in order for anyone who wants to find valuable information, but those are ultimately the only resources I would vouch for personally.  I would probably start with some basic YouTube videos then just dive into Oracle's tutorial.  That was ultimately what helped me the most to avoid my previously mentioned issue of being presented with material I couldn't even properly experiment with on my own to further understand it.  These basic video tutorials gave me some ideas I could play with and simple ways of performing tasks, so I could then attempt to do similar tasks in slightly different ways just to play with new things.

For a field in which I think I've forgotten more than I've learned after all the times I either turned away from it or was pulled away from it (the former in my earlier years and the latter in more recent times), I would just say above all else the only thing more valuable than knowing where to turn is having the will to keep at it.  Rather than being overly frustrated with myself for ever having stopped all that time ago, I'm kinda grateful for first-hand knowledge of what a pain it is to come back way later and have to start from scratch again when, somewhere inside, I certainly wanted to dive in and just start hard and fast.  Not wanting to relive this experience again is a tremendous motivation for me now.  Plus, frankly, to regret going the route I chose would essentially equate to regretting all the other valuable experiences and lessons I've had through things like my time in the military, or my time as an electrician, or factory worker, or...  well you name it.  I bounced around thinking I'd find that great job I needed to provide for my family the way I wanted to, and now I know one thing for sure.  For the past eight years, I learned a little bit about a great many things, but that's not really any use when it comes to making progress on a career level (duh, right?)  This time of my life is thankfully very well set now for me to really bite down and focus on just doing one thing.  The one thing that I was better at in my school days than any other thing.  The one thing that after all this time, I've never completely stopped wanting to do.

So, here's to trading my current frustrations over trying to learn today to all of the frustrations faced in the life of an actual, professional programmer tomorrow (which I strangely suspect will often be less about actually "how do I write this complex bit of code?" and more about the political games involved in, oh, every job I've had ever).

Thursday, October 16, 2014

Bitterswee... Well, Just Bitter

Alright Lynda.com is not a good resource for learning Java programming.  It's YouTube all over again, though admittedly the introduction level stuff was way better than I've seen elsewhere.  The problem is, once you get past those, there's almost literally nothing.  I have no idea how I seemed to be looking at so many video options for Java specifically when I signed up, and now have nothing left to watch without skipping to the handful (literally, can be counted on one hand) advanced tutorials.  There was actually one more video I tried to start, but he immediately has you install some other things to try out a variety of ways to use Java- which sounds great at first.

The issue was, it amounted to installing things that I couldn't even name a purpose for, just as an accessory to the cause of Java experimentation.  Where it fell apart for me really was that, while I could see that one of these programs, WAMP, appears to be a kind of server testing environment for the computer, I haven't begun to even think about developing for such a purpose.  Still, given the quality up to that point, I went along with it in the hopes it would contribute to something useful.

If spending hours scouring the internet for how to make WAMP work, which ultimately only leads into an entire world that I just can't even pretend to comprehend any better than I would a night drinking with a rowdy crew of German soccer hooligans.  I'm a little blown away that the most recommended "next" (and apparently last) video for me jumped straight from some pretty early level java language stuff into...  that.  I mean, props to me and all, I did manage to figure out what to do when this program I don't understand at all wasn't operating like his was.  Then, when I followed his suggestion to set a password for it, and it proceeded to insist that I wasn't allowed in anymore because my computer wasn't supplying the password (though no apparent prompt for me to enter one) I even found a solution that entailed finding certain details in the config files that got me past that.  Then, just when it looked like I was up and running, after hours of pulling out what precious little hair I have left, it just appeared to die completely.  Naturally, this is probably the result of some idiot (me) fumbling around in the config files to some extent, but hey it did work- briefly.

So...  cancelling Lynda.com subscription.  Even for what some users claimed was its best feature, keeping up-to-date with the ever changing technologies of your field, well I only saw a couple of advanced Java videos anyway (and am of the conspiracy-theorist's opinion that pre-subscription there must be a "prop" page full of non-existent videos or something).

Back to the only thing that hasn't really let me down too completely yet, the official Oracle documentation.  It's a bit harder from a beginner stand-point, leads to a great deal of searching around for explanations on things, that put one at risk of finding feasible-sounding misinformation, but it's there and nothing has managed yet to teach me more than it has.  Slow and steady wins the race, after all...

But still.  21st century 'Murica here.  If someone's willing to pay a little for a subscription, there should be at least SOME kind of option that fits the bill.  If, one day, I hear that Lynda.com expands their selection by at least a couple dozen videos spread out nicely to bridge the gap between "what's a computer" and "okay, I know some syntax and how to think logically now, what's next?"

Final note, kind of a disclaimer.  I don't genuinely feel the internet community owes it to anyone to give this knowledge away, even at a low price.  I know there's a good reason some of those programs cost much more, and that's because (some of them) provide real quality.  I just get frustrated when I let myself get sucked into something, thinking it's one thing, but getting another.  I do feel reasonably confident I should have been even more attentive when considering Lynda.com to begin with, and I mean it wasn't even a complete waste as I did gain some valuable knowledge from what little they do offer.  I knew I was setting out on a difficult task when I started this to begin with, trying to learn this stuff with so little (effectively no) money to invest in getting a decent start.  I guess if anything IS the actual point of all this, it's just that I felt like writing out some aggravation at another dead end in an endless sea of online "possibilities."  As one with respect for reality, I knew it would be hard to get very far before I actually get to start school (which is later than I last posted, mostly due to getting out of the military later than I anticipated).  Soon, I'll be able to look back on this and think, "Oh, I wrote on a blog back then?"

Life's Many Pauses

As an overwhelmingly recurring theme in my efforts to learn to be an actual programmer, massive amounts of change came my way and my journey was once again delayed.  Strictly speaking, there's still a lot of change happening, but at least it's change that permits me a little time of my own once again.  The short version is after my workload picked up at work, then tapered off to be replaced by all the things I needed to focus on to prepare for my departure from the military, then in trying to re-plan it all as things continuously insisted upon going completely against plan (which, strictly speaking, I did kind of plan on happening, and I hope that makes this sound incredibly convoluted now), I started looking back into this.

Still frustrated by the issues I've expressed in the past, I began my search anew for the resources I would use to learn programming.  As before, I found the massive numbers of "from the very beginning" lessons, and not a whole lot beyond that.  Actually, to be more accurate, the vast majority of what I found was the exact same lessons I came across before.  Apparently not too many people have made any new materials for the past year, at least not that had it's SEO squared away to any reasonable extent.  So, I knew that now was as good a time as any to do what it really took to get some quality learning done, and start comparing some paid sites (with great scrutiny).  My true dream website either does not exist or is just borderline impossible to find through conventional means.  Obviously, cheap is a must.  I'm not looking for some kind of widely accepted certifications, I'm just doing this because I really want to learn it at the moment.  If I want documented proof I can do it, it'll be my major in school coming up soon.

So, to break paragraphs in a really awkward manner here (just because it suits how I've bounced around anyway), though cheap was important I did inherently require a level of quality if I'm going to spend money on it.  Naturally, I'm not expecting a 1 on 1 video session with Dr. Computer McProgrammer, but I do absolutely demand the ability to learn with some reasonable structure.  So far, these expectations weren't too terribly difficult to find.  The place it fell apart, sadly, was the one part I thought would be inherent in all of them.  To find a cheap but sensible lesson structure that gives you a lot of freedom to explore a path that suits your goals, and to attain what I've found to be a very pleasing level of quality, I feel I've had to give up hopes it would also come with some "here's an exercise for you to try to practice what you've learned" thing that is all relevant to what has been taught.  Of course, I love tinkering on my own and all, but I was definitely hoping for that addition of the possibility of being presented specific challenges along the way that I might not have thought of trying to tackle on my own.  Of course, the 'net abounds with practice ideas, and it's not that difficult to just pick and choose pieces or set aside ones that are almost within the scope of what I've learned until I get a bit further, but it was still a sad moment.

In spite of that actually minor let-down, after what I had seen, I started a basic membership on www.lynda.com and, only a few days in, I was actually quite surprised with the quality of instruction.  People who really seem very proficient in the topics present them in a clear order, and most importantly, they're not fully staffed with a bunch of "professional lesson starters" who just kinda fizzle out, like, say, 100% of the YouTube community (sorry to those who did provide quality videos, I just wish they could have ended at clearer points rather than just all with the famous last words spoken on a chain of YouTube tutorials, "Then in the next video, we're going to be doing some really exciting stuff.")

The moment I knew I'd be pleased for the immediately foreseeable future with lynda.com wasn't the first moment I embarked into new programming levels beyond what anyone ever dreamed of covering on YouTube.  I'm actually still a decent way behind that moment, having been away from programming for such a length of time once again.  Just to be thorough, I started- yet again- at square zero.  What blew me away was how much even that taught me that I never even learned in my actual programming class.  I was just watching some kind of "absolute programming fundamentals" set that didn't even begin to discuss a specific language, and I was able to learn some pretty awesome stuff already.  As I progressed into language-specific lessons after that, I was met with almost as much brand new beginner-level information as I was refresher material for me.  The best part is that while the beginner level stuff isn't absolutely 100% all based on the most up-to-date versions of Java, it's been much more so than about 99.9% of YouTube, and the only actual difference I've encountered between the version being taught to me and the current version was very minor, and in fact the instructor for that video even covered exactly how it would look in the "next update" at the time he shot the video, so for me I was instantly able to see what I could actually do now, since I have the latest version.

As a slightly unexpected side-effect, getting back on the programming goal has come with some benefits above and beyond just being happy to be doing it again.  I've been struggling for the past few years with feeling like my own mental faculties were decreasing.  I was far less capable of focusing, maintaining a logical train of thought, and understanding things that just honestly should not have been so difficult for me.  Almost the minute I started to feel the ol' programming gears starting to turn a bit again, I started to feel a very noticeable difference.  There's definitely a major use-it-or-lose-it quality to the brain, though.  Beyond just the fact that people say it, I mean, there's plenty of evidence in the field of neuroplasticity to back that up.  I had been allowing my mind to essentially vegetate, and it was doing just that to the best of its ability.

Just as a final note, though I can certainly say that lynda.com appears to offer a massive variety of different lessons in things in and beyond programming, I wouldn't begin to know who to say it's best for, but I will say that if you want to learn some kind of programming language (or maybe the graphical design, 3D, animation, photography, and some other stuff they offer), and might consider shelling out $25/month for some quality, I figure it's at least worth perusing the available lesson sections and watching some of the free stuff.  I will say, however, while each series is clearly structured and presented, it does look to me at the moment like it might be complicated trying to pick which series of videos I might watch after the one I'm on.  Regardless, I'll probably either come to sing the sight's praises when I see how easy it is upon completion of this one or to sit back and complain and rant about how I was so angry I demanded a refund and was promptly forwarded to the answering machine of an actual orphan child who proceeded to call me back to tell me that if I did not continue the path I had paid for surely the entire world would explode or something.

Wednesday, November 6, 2013

Brutal

I'm sure glad I haven't been working on a tutorial series or anything (since I myself am still trying to even find good enough ones to learn a great deal from) because if I was I would be seriously eating words tonight.  Words, instead of that super awesome pizza dipped in ranch and hot sauce...  Kinda makes me want more.  But no, I don't get more.  I don't get more because I refuse to gain any more weight than I have already.  It's bad enough that I had to cut down to only one as it is, but ultimately that's not even really the root problem.  Even considering the occasional frozen pizza dipped in ranch in hot sauce, the majority of my days are only roughly 1500 calories in meals and, basically, everything I ingest before the evening comes.  Once it's past about 4:00 or 5:00 in the evening, I face my real weight gain enemy:  rum and Dr. Pepper 10.  Even switching to Dr. Pepper 10 was a huge thing to me, I used to be quite possibly diet soda's firmest opponent, until I broke 200 lbs for the first time in my life...

So, to completely get back to what I started saying, which will probably prove ironic when I get to my ultimate point here, my programming dedication has drastically dropped.  Instead of probably 2-4 hours of programming every day after work, and 4-8 per day on weekends, I'm at more like 2-4 every other work day and about 4 on weekends, and there is one thing to blame.  In spite of their apparent fault, I find it hard to be upset about it:  Dethklok.  Ever since Doomstar Requiem:  A Klok Opera aired, I just can't stop watching massive amounts of Metalocalypse.  Sure, if I was plenty knowledgeable, I could most definitely come up with maybe a weekly tutorial at least, but given what I said about normal tutorial makers losing interest just when their lesson starts to produce a product that excites the novice student, it could be a potentially word-eating-worthy fact that my dedication is down to probably 50% or even ever so slightly less.  It feels a bit false to put it that way, since I still feel the sense of dedication just as strongly as before, but it's just not enough to overcome my love for Dethklok.  Not the irony I hinted may be picked up though.  That wasn't directed at the word-eating potential, but at even as I talk about my getting distracted from programming, I get distracted from this very post about just that talking about something totally different.

I did however see something online today on my phone that a small part of me felt could have been an incredibly freakin' awesome idea, the greatest source of learning in quite some time aside from an actual education maybe, but ultimately all I saw was the next flop:  Google has a new "people teaching people" service out.  I honestly can't even remember what it's called specifically but it was something like "Help Out," and I could see exactly what might make it spectacular, but let's be honest here.  In this day and age, anything that advertises a chance to make money (not their selling point, but a fact none the less) will typically become severely overpopulated by the exact wrong people.  It won't call real experts, or even real almost-experts a lot of the time.  I mean, they may appear from time to time, but they'll probably become drowned out in the search results.  If they're really awesome at what they do in programming at least, I foresee them already being pretty busy in their field and only maybe putting out a small number of live-stream lessons compared to those who watched some beginner crap on YouTube and decided, "I could totally go make some cash on Google's Help Out or whatever it was called!"  Note:  It's not a requirement charge money to put up a live-stream help out video, it's up to the "helper" offering the "Help Out."  So, if "regular jack-ov, just watched the Java for Absolute Beginner's Series" dude who isn't already swamped in real programming work can pump out, say, two to ten times as many "Help Outs," how will their profile look compared to a real expert?

All in all, maybe there are some fields that will absolutely thrive on Help-Out-or-Whatever, but while there are already programming help opportunities available I just don't see this being "the place."  Still, while I feel like it's difficult to really get truly specific through free online tutorials in programming, there isn't a single source from which I have learned more from than Oracle's official tutorial trails, followed closely by The New Boston (even if he does have a pretty apparent tendency to just not care about this or that subject anymore and just goes on to beer making, wilderness survival, biology, etc.)  To some maybe this sounds kinda cool, but I long to be a "subject matter expert," not "that guy who knows one or two things about everything but absolute jack in any one particular subject."  I still feel (not based on experience quite yet) that real school is the best place to acquire this even considering the requirement to take a variety of classes, mostly just because the truest truth I know in life is that if something is free, then you get what you paid for:  nothing.  Still, I won't give up trying to get the biggest head-start I can find, since I don't see myself free of the army, school benefits arranged, and beginning classes until next fall and I absolutely don't want to just waste the next nine-or-so months.

Dethklok rules.  Fact.

Wednesday, October 30, 2013

Slow and Steady Can Make You Hate the Race Sometimes

While I did expect that no set of online lessons (especially free ones) would be perfect, I don't think I was adequately prepared for how hard it is to find a high quality series that takes through for any real length of time.  I'm all for everybody doing things their own way, but when you try to piece together complete concepts using bits and pieces picked up from 10 different people who all code things differently, using different API's and different combinations of methods...  It's practically impossible to understand.  Only now, after watching at least ten different sets that call themselves lessons in game programming with Java and trying to read what was definitely a great wealth of knowledge, but substantially outdated, do I feel like maybe I can wade back through it all and start to extrapolate the differences between them all and how they each contribute to different techniques to start a project.  Yeah, just start one.  None of them except for the previously mentioned PDF set go very far, people on the internet just have way too short of an attention span I guess, so they just drop everything and go a completely different

so then I went in and told him, "hey, I'm not gonna take this anymore!"

Alright, sorry, I couldn't resist the irony.  It was too strong for me.  So, if I come to decide once I have a good understanding of how to accomplish this from start to finish to put up what I know as lessons in any format anywhere, I have my list of what I wish to prioritize most:

1.  Smooth lesson transition:  don't leave people feeling like you skipped ahead between videos.  It seems a lot of this comes from a good intention - planning.  It looks like they go ahead and right stuff out and change things, then go back and do it again for recording.  However, of course, this does leave a problem if they forget a side issue that they fixed or anything like that.  My method for improvement:  back up the project as it is between videos.  If you want to mess around with it for planning purposes, then go back to the backed-up copy for recording, that way any changes you had to make will ultimately be rediscovered as you go along.

2.  Completion:  I am getting ridiculously sick of "make a map, put the character on it, get him moving, and then....!"  nothing.  You'd think I'd be a pro at this by now, but again, it's just too different every time.  While I say again, I know learning various techniques is essential, so too is learning each technique from start to end.  My solution:  Don't even start releasing things until, at the very least, I'm substantially further along than the bulk of what is out there.  Then, if I still feel the same drive and not like just fizzling out, at least I'm sure to be contributing more than most people will be able to find.  Then, just apply some good ol' fashioned dedication, brought to you compliments of someone who can't stand leaving things unfinished (plus, of course, four years of military service to teach you not to just quit on things because you're "bored" or "distracted.")

3.  Planning ahead:  Perhaps my least common complaint thus far of what I've just listed, but it does still happen.  The benefit to these people though is that they are usually the ones whose videos transition seamlessly, if only because you know they didn't touch the code until they started the next recording.

So, for now, that'll be my "Top 3 Utmost Tutorial Frustrations."  I tried to just stick with the rather-outdated PDF lessons I have, but unfortunately I hadn't learned quite enough about the new methods existing in Java to correct the code for it.  I still tried to stick through it, but it kinda seemed like some of what he used just simply didn't even exist anymore and as I tried to look elsewhere for an alternate means of accomplishing it, I knew I was setting myself up for more frustration later when I tried to follow through using my newly updated code in a slightly different context for some other part of the game...  I do love fixing bugs and all that, but I'm really sick of learning 99% of the beginner stuff that one might usually learn in a clear lesson setting.  I'd rather learn the usual trial-and-error stuff through trial-and-error, but until I'm out of the Army and going to school I just don't think it's going to happen.  At this rate though I also worry a bit that I'm going to have developed quite a few terrible coding habits, but at all times I am additionally referencing what these people teach to sites like Oracle's tutorial trails to learn the proper conventions for how to use code in a reader-friendly manner.  It's tough, I'll say, to set out to learn for free on the internet but my will is strong, and my bank account is... well, not so much.  lol.  But, I know it can be done and I want, at the very least, as solid a head start as I can get before I even enter into school.  Even worst case scenario, my brain is finally getting back into working this way.  It's crazy how the very way your brain operates changes so much that what was once second nature can suddenly become, well, yet another source of further hair loss.

That's it then:  just now, I decided once I get through this, I will provide the very lesson structure I'm describing as I go along.  I was inspired just now as a song got stuck in my head again, one that has been coming and going since this past Sunday, with the airing of "Doomstar Requiem:  A Klok Opera."  If you don't know how that Metalocalypse special might encourage me to give back to the community that is slowly and painfully but surely helping me to learn, then you obviously haven't seen it and need to.  Not a matter of opinion, by the way, just science.

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.)

Tuesday, October 22, 2013

Moving On Then...

After going through another couple of videos in MrDeathJockey's video tutorial series "Intermediate Java Game" or whatever it was called specifically, I've decided I'm not going to follow that one anymore.  The further I get in the worse it gets, and it may just be that there were only a few items he skipped over and that my solutions were contributing to these new problems due to trying to implement something slightly differently than he did, but either way this is my second attempt going through his series and I'm just done trying to fix something that is being taught to me quite THIS much.  I browsed a few other lesson collections on YouTube and found a few that should teach me some promising things, but unfortunately I do feel once more like options can be limited.  Many of them teach the same things, and while I'm all for learning different techniques it seems that, as with most of YouTube anymore, it's also jam-packed with people all ripping each others' ideas off so it may take me some time to settle on one for sure.  I feel like a few more weeks at this rate though and I will be ready to expand beyond the 32x32 pixel world.  I mean, my first "Hello World" in almost a decade was less than a month ago (though I will grant that getting this far is the easy part, it's what follows that becomes difficult, or else there would probably be a lot more high quality tutorials on YouTube by now.)

The great thing is that I get opportunities from time to time during my workday to research the Oracle website's tutorials to further learn about concepts that the video makers describe, so I can pretty much triple my study time that way.  I feel like this is, for me, the greatest learning method.  I get to see things put into action while I'm at home, hear the explanation as to why and more or less what's going on, then during my smoke breaks at work get more detailed stuff on how these various packages and such work.  Before when I just tried to read things that way, there were some things that just didn't make sense without some direct context as to what it can be used for.  I highly recommend this to any who get little bits of spare time during the day but don't have the time or the opportunity to sit through entire tutorial videos.  Watch the videos during your biggest opportunities for free time, implement what the videos say and try to understand as best you can, but make note of what you need clarification on.  Combining the application of a method to its actual explanations on Oracle increased my understanding of it by a significant amount.

Where do I want to go most with all of this?  Next I want to start using my knowledge to play around with Unity once my understanding of Java is better.  Of course I could just dive into tutorials on programming stuff in Unity but I really wanted to go back and start from a more basic level.  I've played around a bit with application development (very simple ones, but at least one that I found quite useful), now with 32 bit 2D games and more on that to come for a while longer, all because I want to go into playing with things on Unity with as much understanding of Java as I could get before I kinda ran out of other tutorials to watch.  I will of course still have a tremendous amount to learn, but really anybody could say that, and at some point you have to focus on what you actually want to use this knowledge for, so that's why.  I'm not so great with 3D modeling (or, like, at all) and maybe I'll start trying to dabble a bit in it but honestly for me it's all about the programming.  I can always find resources to practice with online, and when I feel ready to make something for my own sake I know there are plenty of people out there who love 3D modeling and would just love to talk to a programmer about bringing their art to life.  That, however, is a long way from now so for the time being, back to my practicing.  The bittersweet side to that is I'm probably going to have a lot more time for this than I do now very soon, and the opportunity to go to school to even further increase my abilities.  My time in the military will not last forever longer, and that is the bitter side to the bittersweet chance at learning as much as can.  The sweet side is the school benefits, of course.

Now, I know I said before my ultimate goal as a programmer was to work on programming devices that bring automation into more and more aspects of everybody's lives, and yet all of this so far is about making simple video games.  Honestly, a big part of that is because I'm a freakin' nerd and also love video games, but also while the actual syntax is going to be different, the logic will still be pretty helpful.  It's all about taking specific input, knowing what to do with it, and making things happen.  Apply some new syntax to it and I'll be able to pick it up.