Friday, January 17, 2014

Taking A Different Approach To JavaScript

I enjoyed my Codecademy experience in learning JavaScript, but especially toward the end, I felt like I was having to look up things constantly. I posted a query on their forums and got a very nice response back from one of the mods explaining that this was perfectly normal. He suggested retaking the course to help cement the new concepts and haunting the Q & A forums for more info. In the meantime, I found something else.

Interestingly enough, I found out in one of the Codecademy Q & A's about a site called JavaScript.is (Sexy). It sounds like a silly name, but I think it's actually going to be the solution to my situation. They have an eight week tutorial that I just began titled How to Learn JavaScript Properly.

There's a textbook involved, and they recommend a related reddit study group, signing up for Stack Overflow and, interestingly enough, using Codecademy for practice.

You can click the link I provided to see all of the requirements for the class, but I like the organization and structure involved. It also provides me with the format for repeating the Codecademy JavaScript course as well as adding more content via the other class elements.

Since this is a work requirement, I need to stick with it and I guess that's the secret, especially for people like me who aren't "natural" programmers. I write in English everyday for a variety of purposes, professional, semi-professional, and personal, so I have plenty of practice in that arena. If I did the same with JavaScript, even though I find it less intuitive than my native written and spoken language, I can only imagine that coding in JavaScript will get a little bit easier.

I haven't forgotten HTML5 and CSS3, but I'm not sure combining that with JavaScript in the same learning effort is going to be effective. I may need a different plan for that learning path. Right now, in addition to my professional and personal life, I'm focusing on this plan.

Wish me luck.

I'll be back at some point to let you know how things are panning out.

Sunday, December 15, 2013

Ten Days Down the Road

This always happens when I start studying. I get sidetracked. My actual work started to heat up, preventing me from proceeding with the CSS book. I did receive Training Guide: Programming in HTML5 with JavaScript and CSS nearly a week ago and started noodling around in that, but didn't get too far.

I was advised this would be a good book to learn from even without working in Windows 8 and with Visual Studio (I'm not interested in the certification, just learning the information), but that means I get to skip a few chapters. The book is organized in "waves," so to speak, so you first get introduced to HTML, then JavaScript, then CSS. Later, you get more advanced information on HTML, then JavaScript, then CSS again, and so on. I'm only on page 32, so you can imagine things are still pretty elementary.

On the other hand, I did start the Codecademy JavaScript tutorial, but as usual, I got bogged down toward the end of "Introduction to Functions in JS." I've appealed for help to the forums so I guess I'll see what the error of my ways is by the by. 

I thought I was doing reasonably well there for awhile, but then the problems seemed to assume more knowledge than I had. I thought I had missed some key portion of a previous lesson and went back, working my way forward again, but it didn't help. One exercise gives me both an error and also passes me on to the next exercise, so that's confusing. On top of that, I thought my code was written exactly to specs.

The other exercise is beyond me. I don't find enough information in the instructions or the previous exercises to allow me to write code that doesn't complain at me. I know for actual programmers, these lessons would be painfully elementary, but to me, they're locked black boxes with no way in.

My real problem is that I don't naturally think like a programmer. I've read arguments back and forth on the web about whether anyone can learn to code. Sort of like the message in the Pixar film Ratatouille (2007), "Anyone can cook." 

I believe anyone can cook but not that anyone can cook well. The question remains, can anyone learn to code, even at an elementary level, or is programming a skill set for a specific population that no one outside that group can acquire? I feel like Codecademy's "teaching style" is good in that they don't just lead you around by the nose, giving you all the code upfront and then simply having you copy and paste, and then run short, small programs. On the other hand, when you get stuck, you're stuck. The hints on the last two exercises weren't helpful in the slightest.

Forums can be incredibly slow to respond, depending on how attentive the mods are, so I don't know how long I'll need to wait for a clue let alone an answer. A large part of programming is debugging, but that requires a sufficient understanding of how the code works to find the problem. I'm not there yet. The point of setting these work goals is to see if I can ever get there. Now that my job performance is riding on it, I'll have to figure out a way or be prepared (at least) to eat large helpings of humble pie.

That's my report, such as it is.

Addendum: Not that much time passed and I got two helpful responses on the forum. Turns out I made some minor, newbie errors. Oh duh. Now, back on track.

Thursday, December 5, 2013

Day Three of My Forey into CSS

After the limitations I discovered in learning CSS as part of the Codecademy Web Fundamentals track, I decided I needed something a little more in-depth. I considered another online program such as Lynda.com, but they cost bucks. OK, not a lot of bucks, but I didn't feel like bugging my boss for his credit card again, especially since I already made him buy me this book.

So I decided to look through some of the other books I've collected over the years and have been ignoring, and I selected this book from 2009. Yes, I know there's a more recent edition available, but this one is in hand right now, so why wait? It seems enough to get me started and I'll have a leg up on CSS by the time the other book arrives.

The question now is whether or not to just concentrate on CSS or to do as Codecademy previously (through automation) suggested and move on to JavaScript via their tutorial? Interestingly enough, that track is telling me that I finished the first section in Introduction to Programming. I hadn't realized I'd let so many of these tasks incomplete until revisiting the site of my old haunts, or perhaps I should call them "my old sins."

I suppose it wouldn't hurt to at least see what I was supposed to have learned in the distant past. Especially since the book I ordered from Amazon yesterday addresses HTML5, CSS3, and (drumroll) JavaScript.

The CSS book I'm using at the moment is rather slow going, but it's taking me over some really basic stuff I went through at Codecademy, and I could probably use the review to continue cementing this into my leaky memory. Oh, I installed the TextWrangler code editor on my Mac at work. Not the greatest tool I've used, but it's free and does a descent job. I really miss how the online editor at Codecademy worked. You could toggle back and forth between the HTML and CSS tabs to do the editing, but the Results window instantly showed your changes. Beats having to continually refresh a web browser.

I find it interesting that after ignoring this blog for over a year, I should be writing daily blog posts here. Go figure.

Wednesday, December 4, 2013

Finished Codecademy's Web Fundamentals Tutorial, but...

I finished Codecademy's Web Fundamentals tutorials They lessons are broken down into the following sections:

  1. Introduction to HTML
    1. HTML Basics
    2. Build Your Own Webpage
  2. HTML Structure: Using Lists
    1. HTML Basics II
    2. Social Networking Profile
  3. HTML Structure: Tables, Divs, and Spans
    1. HTML Basics III
    2. Clickable Photo Page
  4. Introduction to CSS
    1. CSS: An Overview
    2. Design a Button for Your Website
  5. CSS Classes and IDs
    1. CSS Selectors
    2. Sorting Your Friends
  6. CSS Element Positioning
    1. CSS Positioning
    2. Build a Resume

Before my tutorial "hiatus" some months ago, I had stopped right after "Clickable Photo Page" and before "Introduction to CSS". A perfect place for me, actually. I did the CSS section in two days and felt pretty confident until I got into "CSS Positioning." Even though I solved all the problems (there's a lot of help) and successfully completed the tutorial (earning various "badges" along the way), when I built my Resume as the last task in the CSS section, it looked awful. Technically, the code was all correct, but the header stacked over the left and right divs and I could never figure out how to correctly style the text in the footer.

I certainly give props to the folks at Codecademy for how well this tutorial flowed. I've gotten farther in understanding CSS than half a dozen books and various websites have taken me. But when I was prompted to take the JavaScript tutorial next, I knew I was hardly ready. There's a lot more to web design than what I learned in this set of lesson. Got "intermediate web design," folks?

Tuesday, December 3, 2013

Oh man! I've really ignored this place!

I can't believe it's been over a year since I've written on this blog. Well, yes I can. My priorities have shifted quite a bit, certainly away from learning Python. I think my brain just gets stuck at a certain stage of the learning process and I can't break beyond the barrier. So I give up and pursue an avenue that's a little easier to navigate (or one that I feel more passionate about).

But that's changing.

I've made a number of abortive attempts at learning in other venues including Codecademy. I felt like I wasn't learning how to program there either, but a number of months ago (I don't remember how many), I "started with the basics," as Edna might say, and revisited Codecademy's vanilla-level HTML tutorials. I know. That's shamefully elementary, but I wanted to get back into an area where I felt comfortable and at home, and then start ramping up again...slowly.

But I got distracted again and let it slide.

However, performance evaluations have a habit of shaking one out of complacency and overcoming inertia. I perform some routine maintenance tasks on two websites for the folks I work for. No real heavy lifting, just add a blog post, insert a news item, post a job listing, that sort of thing. We hired a company to do all the design and development which I would be helpless to accomplish.

Now, one of my goals for the coming year, my official work goals, is to learn more about web design and maybe even some development work so I can take greater responsibility for our sites. My boss will pay for any training that I want (within reason). The problem is, where to look for the resources I need to accomplish my goals (and they're not tightly defined)?

I decided to revisit some old friends of mine, namely the Certforums IT certification boards. I received some suggestions besides the CIW Web Design Certification I was initially considering. You can click the link for Certforums to get the details.

While asking more questions online and pondering my options, I logged into the Codecademy site and discovered that I had stopped my last tutorial right on the edge of "Introduction to CSS".

Cascading Style Sheets (CSS) has been a sort of nemesis of mine, although I don't know why. It shouldn't be any more complicated than HTML but some sort of phobia kicked in and I dropped that one like a hot rock, too.

Today though, with new motivation in hand and no other viable option immediately available, I decided to give Codecademy another whirl and I was hooked. Everything seemed so easy (not that I've done that much yet) and I felt like an old dog might still have a few tricks left in him. Mind you, this is light years easier than programming, but I've got to start somewhere.

I've been missing this blog. It was my first blog and I have a nostalgic attachment to it. I see that fifty people are subscribed so when I post a new article after over a year, I can only imagine fifty people are going to fall over in shock...or wonder, who the heck is that, having forgotten all about me and an old blog called "A Million Chimpanzees."

If you've taken the time to read my entire request posted at Certforums and you'd like to respond with something helpful and polite on this blog, I'd be appreciative. If not, then at least I've gotten the ball rolling on this neglected corner of the blogosphere.

As I discovered when writing on another of my blogs (where I spend most of my time these days), blogging is a great way for me to process information. I think that's what I was trying to do here too, but the information wasn't sticking so my determination flagged. Since I've made learning basic web design skills a work goal along with a number of other priorities, I can't just drop it again. What I can do though, is blog about what I'm learning, what I'm not learning, where I'm stuck, and where I'm going.

I don't expect a lot of people to care (barring spammers, of course), but like I said above, any reasonable suggestions and responses are welcome.

As I make my way through the next series of Codecademy tutorials, I'll post my progress. If something else comes up, I'll mention that, too. If you've got other suggestions (books, online resources, and so on), let me know.