Friday, July 31, 2015

Ruby on Rails Tutorial: Day 1

After a very confusing intro to Ruby on Rails via Code Academy (where I somehow managed to "complete" 24% of the lesson), I was not feeling so confident about apps, Ruby on Rails, or much of anything really.  Tonight, I started Michael Hartl's Ruby on Rails tutorial book which seems to be a real standard in learning the ropes of Rails.  I spent about 2 hours with it so far and have completed 1-1.4.1.  This doesn't seem like much and at the end of the day it is a very small chunk of the tutorial, but I am trying to take my time and really learn it.

So, how is it for the complete newb?  I like it a lot, actually.  I am actually working in an Integrated Development Environment, and it is really explaining in detail what is going on at every stage.  I was introduced to Cloud 9, Git, and Bitbucket today and I have a pretty solid concept of what version control is and why programmers do it.  Hartl does a nice job of explaining what is pertinent to the new coder without speaking a different language I would never understand.  I was also really happy to recognize some of the formats I had learned from the Ruby Code Academy tutorial and understood what was going on when instructed to place a method within the controller.  I also now have a clue what a gem is and understand what is happening on some basic level when rails designs the framework for your new app.  So far, I really love it!

I also worked through a few lessons on Python this morning which were much easier and faster than my early Ruby lessons.  I am enjoying the learning process and have actually had a few moments today where I knew what to do without making many, many mistakes and having to scratch my head in frustration.  Good day!

Total hours into Programming: 30 (4 today)
Progress on Hartl's Tutorial 1.4.1
Code Academy Points: 368
Code Academy Badges: 43
Code Academy Skills Finished: 2 (Make a Website, Ruby)

Tentative Plan of Action

After a long and fitful sleep, I have come up with a plan of action.  I am going to concentrate on doing Michael Hartl's Ruby on Rails tutorial when I have time to really think and concentrate.  The Code Academy tutorial was frustrating to me and did not include nearly the level of detail I wanted.
However, when I have somewhat distracted time I am going to continue to work through Code Academy's intro lessons to other languages so I have some sense of them.  First up: Python!  This way, I will be learning Ruby on Rails in a meaningful way, but also getting a wider breadth of knowledge as I go.

Based on my estimates, I am around 30 hours into learning coding so far.

Code Academy Stats
Skills: Ruby (Complete)
Make a Website (Complete)
Python: 3%
Ruby on Rails 24%

347 Points
41 Badges

Hartl's Tutorial:  Begins Tonight!

Thursday, July 30, 2015

So Many Resources

I just started the Ruby on Rails Code Academy lesson and in this natural breaking point I started to look around at different resources.  I found Joshua Kemp's blog and I don't know if it's a blessing or a curse.  It seems as though he started give or take where I'm at and has become quite successful.  One thing I am finding is that there are so many different tutorials and resources out there ranging from Code Academy to books to other stuff like free code camp.  I am thinking I also need to get myself into some type of community, but that seems like a tall order in West Tennessee, quick searches turn up nothing nearby.

A an old school video game completionist, I am really drawn to contained sites that one can work through.  This is why Code Academy drew me in, I really wanted to stick with one program and work my way up.  However, after spending 25+ hours with just Code Academy, I realize I need to do some different and varied stuff.  In the Rails tutorial (which is only 5 hours mind you!) I am already encountering some of the same stuff I did with Ruby.  The site wants you to move quickly through it, but I don't feel like there is enough explanation.  I can pretty easily earn my badges, but I want knowledge, not badges.  I think I am going to check out this Ruby on Rails tutorial I mentioned in the previous entry.  Still, I do like the badges.


Ruby: Finished!

I completed the Ruby lesson a few minutes ago and while I know a good deal about terminology (method, classes, procs, variables, modules, etc) I really have no idea how I would sit down and write a program.  The encouraging and upbeat language of the tutorial seem confident that I have some new found skills, but I don't believe it at this point.  I think that they need to come up with some additional levels or practice projects to really push the person into the realm of programming.  Code Academy does not do a good job of introducing you to anything beyond their tutorials, does not address how one sets up a coding environment on their own computer, or what the process is for turning your code into a functional program.  While I appreciate the lessons and I definitely feel like I am on the cusp of being able to create, Code Academy has, to this point fallen short on prepping me to make much in Ruby, set up my own environment, or really get started outside of their comfortable shell world.

That said, I love it as an intro and as a starting point.  I think next I am going to do the Ruby on Rails lessons in tandem with Michael Hartl's Ruby on Rails tutorial book (free online!).  While I have only read Hartl's into I can say he does a much better job getting a beginner set up to code in a real environment that Code Academy at this point.  More to come!

Code Academy stats:
Skills:2
Points: 327
Badges: 39

Wednesday, July 29, 2015

Code Academy: Pushing You Right Along

One complaint I have with Code Academy is that it seems more interested in awarding me a badge rather than teaching me context, meaning, and mastery.  The lessons are very to the point and you can get through them pretty easily.  I do feel like in terms of the nitty gritty of executing the code, you do get better by going through.  That said, it does not explain why you need to do these things or give any real qualitative explanations about why things are this way and why you might need to worry about them.  At times I must also admit that I gave up on understanding the slim text and just used the code provided by fellow students in the forums as a template for understanding.  I believe this is probably pretty common among beginners.

Other times, it goes into depth that cannot possibly be digested meaningfully by beginners and seems pretty arcane.  I desperately tried to understand why one would use lambdas vs. procs for quite some time.  They seem to be more or less the same outside of a few differences which I was not able to wrap my mind around.  Despite the fact that I did want to learn more, Code Academy pushes you relentlessly forward.  In some ways this misses the point.  I want to go through the lessons so I understand the coding process, not simply so I can earn badges.  I am hoping that as I go through more lessons and begin to code some of my own primitive projects some of this will come to make sense.

It's amazing how much resistance the brain puts up to learning new things once you reach a certain point.

For Reference:  279 points, 35 Badges

Tuesday, July 28, 2015

Ruby: 60%

I am around 60% through the Ruby tutorial section and I am stuck.  I tried to check out the Q and A stuff others have posted, but nothing directly applied.  Therefore, I have asked my first question.  Rather then wallow in failure, I have completed some small "code bits" on the site which are small exercises that primarily seem to be there to build confidence.  I did move through them quite easily which helped to dull the pain of being stuck on what I am sure is a very basic Ruby lesson.

In other news I purchased a book called "Help Your Kids With Computer Coding" by DK Publishing.  It is intended to be a resource for parents teaching their kids, but I think some of the straightforward talk about how to start, installing the IDLE, and many of the basics have been really helpful.  I really enjoyed it even though its very basic.  On a side note, my son (age 6) was interested in it as well.   I wanted to buy a more serious programming book, but the bookstore only had this one.  What has happened to bookstores?  All I could find was Ipads, Iphones, and Word for Dummies.  Really?  In the mid 1990s, we were all sure everyone would be very knowledgeable about computers by 2015.  While people are certainly more capable of using the programs, I think computers remain as mysterious as ever to most people.  (Clearly me included!)

So... I am kind of stuck but also continuing to learn.

Deep or Wide?

As I close in on completing my Ruby tutorial on CodeAcademy (69%!), I am pondering what to do next.  Should I try to work more in Ruby to develop a deep knowledge or should I work through a series of Code Academy tutorials so I have an idea which I will like the best.  I am quite sure the CodeAcademy tutorials will not get me to a functional level in any language so I am seeing them as more of an extended preview.  At this point, I am thinking I will work through at least the major lnaguages on CodeAcademy including Rails, Python, JavaScript, and maybe a few more.  Once I have some idea of how they all work, I will begin to specialize.  After all, there is no rush here.

I have also read that it is crucial to begin to make your own programs which seems pretty scary to me right now 'but I totally understand why this is the way to learn.  Living in the happy bubble world in CodeAcademy is fun, but I have already encountered lessons I have forgotten because I did not work seriously enough with them and just moved through the lessons.

Am I doing it wrong?


Sunday, July 26, 2015

Code Academy Days 1-3

As I previously mentioned, I come to this with basically no knowledge.  I did some work with basic about 20 years ago and was not very advanced then,  As a history professor, I have no day to day background in this.  This is, partly, what makes the process so intriguing to me.  Code Academy is well marketed and really does make you feel like it can help you learn to program with no real background.

So, does it work?  Well, I have been at it for 3 days.  I have around 170 points and 25 badges which equates to around 15 hours of work.   I went through the HTML introductory lesson pretty quickly and I am now around halfway through the Ruby programming language one.  Some of the lessons are smooth and very easy to follow.  Others are exceedingly vague and you have to go sifting through the forums to find your way. .  One thing is clear, I will be nowhere near ready to do anything on my own when I finish the Ruby lesson.  While the lessons teach you how to work within their nicely curated format featuring an editor and an output box which will allow you to see what your programs do, I have no idea how to open or begin to actually Program in the language at this point.

I have taken copious notes and can make things happen if I concentrate and follow along.  However, I feel sort of rudderless in terms of what I might or might not do in Ruby or any other language.  One thing I think the Academy needs is more forced practice.  While you must get your answers correct to move on in the lessons, one never really practices and masters.  One gains a basic level of familiarity and then it is on to the next thing.  Also, so far, there is very little practical talk about why I want an array.  What might I use an array for?  I have determined that Code Academy is a great first step, but that I am going to have to use it along with other resources to become a functional intermediate programmer.

Help, ideas, books?  Feel free to drop me a line!

..amazed, excited, empowered...frustrated.

Getting Started


A few days ago, I decided to see if I could learn how to make computer programs.  This happens just about every day, but in my case it is a little strange because I already have a career as a history professor.  In college I studied history and finished my Ph.D. in 2008.  Since then, I have been working at a small liberal arts college using computers but never much thinking about how they work.

Honestly, I can't think of a particular reason why I am interested in computer programming outside of my teenage years.  As a teen, I assembled my own computers, worked as "SysOp" of my own Bulletin Board System (BBS), and tinkered with my computer endlessly mostly in an effort to get it to play a host of computer games.  I worked with some Basis computer language and even did a high school independent study where I designed a lengthy but simple program.  I did some work on some very simple text games.  However, ultimately, I drifted away from this as I attended college and at this point I am no more computer literate than your average 35 year old person.

I don't know what I want to do with the skill of computer programming, but I do have a mini-goal.  I want to create an ap to go along with my basic history courses.  I don't exactly know how that will work yet, but I will be sharing my ups and downs in the coding world here.  After a basic google search, I have begin work in Code Academy which advertises itself as a (free!) site to help people teach themselves to code.  I completed the basic HTML lessons and am now around halfway through Ruby.  I also have begun to look at the MIT Open Courses (http://ocw.mit.edu/index.htm) and have started on the basic computer science course.

More to come as I have more to say!