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.