Showing posts with label Zed Shaw. Show all posts
Showing posts with label Zed Shaw. Show all posts

Wednesday, August 26, 2015

TreeHouse Console Foundations by Jim Hoskins Course Review

I approached this tutorial with minimal Unix experience and having worked through Zed Shaw's command line crash course which can be found in Learning Ruby the Hard Way's appendix.  First off, I think we should acknowledge that Hoskins has a really hard job here.  Whereas many of the other courses have the user doing various things, the console on its own does nothing for us.

While you need working knowledge of the console (particularly for the Rails track I am on), demonstrating its use in a vacuum is at times pretty slow and tedious.  While other courses empower the student by creating with them, the console course does not really have a product.  Therefore, Hoskins is to be really commended for working through a tough tutorial and helping to show us some of the uses of the console.

Hoskins is neither deeply enthusiastically engaging nor wooden and horrible.  The deliver is fairly natural, though at times does feel more delivered than spoken.  One thing I did notice was that his work was a bit more natural.  He will make mistakes and do a few things he did not exactly intend.  I think this is pretty common and helps to humanize the experience a little bit.

In terms of the material, it is a nice companion to Shaw's quick crash course.  I finished Shaw's course in about 2 to 3 hours and I think I spent around 4 hours on this one.  Shaw will get you comfortable with basic commands and this tutorial takes you to the next level including particularly interesting lessons on installing programs, the mysteries of Unix user permissions, and even some awesome background regarding the background in Unix.

The lesson was quite easy to understand, I never found myself perplexed even as someone who touched Unix for the first time 3 weeks ago.  It has a nice Unix prompt set up in Workspaces and works really well.  If you stay patient, watch all the videos, and keep your attention focused, this lesson will not be difficult.  How well that translates to actual meaningful console usage remains to be seen, but I do feel pretty confident about it after working through both this one and Shaw's.

Through no fault of Hoskins, this just is not going to be a super fun lesson.  The videos are kind of long (some around 12+ minutes) and the quizzes in between are short and quite easy.  It felt a lot less interactive than previous lessons and at times I was really tired of watching and taking notes on videos.  As I said, mostly you are learning stuff that will come into play as you get deeper into the Rails track (or whatever other track this one is needed for).

Code Report!

Resources in Progress:
Total hours into Programming: 94 (2 since last time )
Total Weeks Programming/Hours per week: 4/23

Progress on Gaddis' Starting out with Python: Done With Chapter 1, Appendix A,B


Progress on Shaw's Learning Ruby the Hard Way: Finished Exercise 1-13

My Text game: 3 hours, 118 lines

TreeHouse (2173 Points, 27 Badges)

Code Academy Points: (729 points, 74 badges)

Progress on Hartl's Tutorial Ready to start Chapter 3! 

Resources Finished:
Josh Kemp's No Degree, No Problem 8/14/2015


Chris Pine's Learn to Program 8/9/2015

TreeHouse Make a Website Track 8/17/2015
TreeHouse Ruby Basics 8/20/2015
TreeHouse JavaScript Basics 8/22/2015
TreeHouse Console Foundations 8/24/2015 

Code Academy Make a Website Course 7/29/2015
Code Academy Ruby Course 8/5/2015
Code Academy HTML and CSS Course 8/24/2015

Sunday, August 23, 2015

Three Ways to Help Retain Coding Knowledge

A few days ago one of my friends in higher ed posted this article regarding student learning.  The article explores whether taking notes on the computer is more or less effective than taking notes in the old school pen and paper fashion.  This hit home for me as I have been engaged in my own coding journey for around a month now.

(1) Repetition
When I first started to code I was obsessed with the "best" online resources.  I only wanted to utilize the top books and tutorials because I imagined that I would only be doing a few of them.  What I have learned is that you will probably end up doing more than one book and/or tutorial about each language, track, or topic you want to learn about.  I have found repetition to be crucial!

Early on, I started with Code Academy and went through their Ruby, HTML, and most of their Python lessons.  More than anything, this was a warm up.  I retained little from these early days.  Since that time I have worked through additional TreeHouse tutorials on many of these topics and read other books and tutorials about the same topics.  Each time I do a new one, I understand a little bit more and I get a little bit more understanding before everything becomes a mush of confusion.  Don't beat yourself up if you have to go through many resources on the same topic, I am pretty sure this is very normal.

(2) Note Taking
The next thing, that I try to do is take copious notes.  I have these cheap ass 17 cent notebooks that I bought a boatload of for use in my coding journey.  As I do anything I take notes.  This slows me down a bit, but it definitely helps retention.  I do not take notes to reference, the internet is probably better to reference than my handwritten notes.  However, just the act of writing helps to add these terms and syntax to my brain.  If you are learning coding but not taking notes, I suggest you add note taking.  It is kind of annoying, but I think it helps a lot.

I do organize them by resource.  I have one for books, one for online tutorials, and one specifically reserved for Hartl's tutorial since I think that one is really important.  I also think if you are really committed to mastering commands and syntax that you could make flashcards as Zed Shaw says.  Yu don't need to run them all the time, but carry them around with you and flip through them when you have a second.

(3) Practice
Finally, there is the one I am bad at - putting it into practice.  I think this is a crucial way of making the knowledge stick.  Make a few programs using the commands, even if they are not very long or intense. This is more or less what Shaw suggests in Learning Ruby the Hard Way.  He makes you type into the editor and create programs.  However, ultimately, you need to build your own stuff.  Right now, I don't feel like I can build much anything of any real use so I don't do this that much which is probably a mistake.  That said, I really just want to keep learning more right now until I can do functional work.

How do you retain your knowledge?  Do you any other ideas for me?

Code Report!

Resources in Progress:
Total hours into Programming: 87 (4 since last time )
Total Weeks Programming/Hours per week: 4/21

Progress on Gaddis' Starting out with Python: Done With Chapter 1, Appendix A,B


Progress on Shaw's Learning Ruby the Hard Way: Finished Exercise 1-13

My Text game: 3 hours, 118 lines

TreeHouse (1549 Points, 19 Badges)

Code Academy Points: (672 points, 70 badges)

Progress on Hartl's Tutorial Ready to start Chapter 3! 

Resources Finished:
Josh Kemp's No Degree, No Problem 8/14/2015


Chris Pine's Learn to Program 8/9/2015

TreeHouse Make a Website Track 8/17/2015

Code Academy Ruby Course 8/5/2015
Code Academy Make a Website Course 7/29/2015

Friday, August 21, 2015

Month 1: Looking Back

I started this in the strangest way.  I am a gamer and in mid July, I read an article on Kotaku about the "Exceptional Beauty of Doom 3's Source Code".  I did not really read the article deeply but have since read it many times.  The article (re)flipped a switch and  reminded me that I was very interested in code in high school (around 1995).  I even worked a whole semester on a project in BASIC under one of the math teachers at my high school.

I did not pursue coding because I was already in the process of deciding to hate math at that point.  When I got to college I saw that one would have to take many math courses to do anything with computers and so I turned from it pretty quickly.  Everyone was pretty surprised because I was a computer geek from age 13 on and worked pretty consistently with them after I bought my first one in the summer of 1993.  I think tying computers and coding to math makes some sense, but we are also losing a lot of great people to this marriage.  Coding has math in it, but it is also about logic, creativity, and critical thinking.  I also did not code then because the software was so expensive.  I always wanted to learn Pascal, but it was $100s of dollars and I never could muster up that much desire.  Now, it is all more or less free which is so amazing!

At any rate, this article reminded me of coding and so I googled it a few days later and came to a kids coding website with inspiring interviews from Bill Gates, Facebook guy, and a host of others.  I was intrigued!  Shortly thereafter, I discovered CodeAcademy and since then I have been off and running.  Let's take stock of where we are now:

The Good:
(1) I love it!  Learning new commands and solving mysteries you previously did not understand is so refreshing.  I am no master, but I have come so far in a month and have really loved learning every bit I have.  Coding is super fun!  (Yesterday I worked on understanding ARGV in Ruby!)

(2) I am working on it every day, because I like it!  I wondered when I first started how long I would do this for.  I do not dread it and I do not do it because I want to "finish what I started".  I look forward to learning, finding new resources and gaining confidence and skill.  Over the past month I have done something with coding every single day.

(3) I have found many (too many?) resources ranging from Pine and Shaw's books to TreeHouse, Code Academy, and Code Newbie.  I have made friends and acquaintances and have come to really love the community.  It is welcoming and inspiring!

The Bad:
(1) I need to focus fire.  I am doing too many things at once.  Currently I am working on 3 books, TreeHouse, and Code Academy.  This is probably too many.

(2) I have nothing to show for my study yet outside of a basic shell of a Ruby text adventure game.

(3) I am still a bit confused by GitHub and how to share work and I do harbor a fear that I will never actually be able to create things on my own!

Where is this going?  I have no way of telling if coding will be my next career move, but right now I am absolutely in love with it and can't get enough of it!  I am definitely open to pursuing options in coding, but before I commit to that, I want to prove to myself that I can write a piece of code that works and is useful.  As always, thanks for reading!

Wednesday, August 12, 2015

Ruby the Hard Way: Early Going

I did not have a ton of time to work tonight, but I made sure to get in some exercise even though I was not deeply feeling it.  This is about the time when I would normally start to feel like I want to do something else or get bored with this mission, so I am trying extra hard to remain committed!  I went through the fist 5 lessons in Ruby the Hard Way and here are my initial thoughts:

(1) Very hard not to read fast, skip stuff, and not do it the hard way.  Shaw has you on some seriously rote stuff especially early on.  I am trying to respect the process and not cheat.  I am typing in every last comment and doing all of it even if it at times seems inane.

(2) I am counting on this to continue!  One of my problems is that I do not type in the commands or use them enough and then I am presented with a situation and I end up stumped before I even start because I am scrambling trying to remember basic syntax.  I think Shaw's book will help me drill the syntax a bit harder.

(3) It is hard to go back over things you feel like you understand, but to be honest I still make so many basic mistakes that this is clearly needed.

(4) I love the format of the book, it is very straightforward, nicely written, and follows a predictable repetitive pattern.

Early returns are good, but then they almost always are.  I will reserve judgement (praise or critiques) for the later chapter when I see if Shaw is more successful than Code Academy or Pine at teaching me some of the more advanced methods.  It's also true that repetition is required to learn so even if Shaw does unlock the next level for me, I probably always needed to do the previous work to get to this point (if that makes sense?).

Total hours into Programming: 58.5 (1.5 yesterday)
My Text game: 2 hours, 107 lines

Progress on Shaw's Learning Ruby the Hard Way: Finished Exercise 1-5

TreeHouse (105 Points) Code Academy Points: 564
Code Academy Badges: 59
Code Academy Skills Finished: 2 (Make a Website, Ruby)
Progress on Hartl's Tutorial Ready to start Chapter 3! 

Books Finished:
Chris Pine's Learn to Program 8/9/2015 

Tuesday, August 11, 2015

Learning the Powershell

So I cracked into Zed Shaw's Learn Ruby the Hard Way and was immediately met with a bit of a choice.  Do some follow up background on the command prompt or dive right into the book?  I decided to go ahead and do the legwork and get some knowledge of the command prompt in no small part because Shaw seems to have a gift for guilting you into doing things the right way.  Apparently, my hundreds of hours screwing around on the computer in the early 1990s have earned me something - a pretty solid knowledge of the command prompt.

These days, you never find a computer at C:\ unless something has gone horrifically wrong.  Back in the day, this was pretty much all you had (woot, Dos!)...I mean there was a version of Windows (3.0, 3.1!) but we harshly mocked people that used it.  I still remember the shrieks of barely computer literate high school keyboarding instructors "GET OUT OF THE DIRECTORIES" as we installed games and other less savory programs on the school's computers.  Back in the day it was pretty rare to have any idea what this structure was and I think it is even more rare now.

That said, I do remember a lot about the "Directories" as I spent hours editing "autoexec.bat" and "config.sys" files as I tinkered with my computer and attempted to get games to work.  While some of the commands are slightly different, most of it is pretty much the same.  I must say, after having some tough times on Code Academy and at the end of Pine's Learn to Program book it was nice to go through something that made sense to me....even if it had nothing to do with Ruby.  At any rate, I got it done tonight and tomorrow I will begin in earnest on the Ruby Exercises.

So far I enjoy Shaw's no nonsense writing style.  I can understand how a person might find it abrasive if you are taking it the wrong way, but I think he is trying to be a straight shooter and tell you realistically what you need to know in order to succeed.  My son (age 6) once had a swimming instructor that always told him he was doing great even though he was more or less flopping around at times.  Under that type of instruction, nobody gets better.  I am hoping Shaw's insistence on memorization and practice will help me to extend my understanding of Ruby.

Total hours into Programming: 57 (5 yesterday)
My Text game: 2 hours, 107 lines

Progress on Shaw's Learning Ruby the Hard Way: Appendix Finished, Ready for Exercise 1

Progress on Hartl's Tutorial Ready to start Chapter 3! 

Code Academy Points: 564
Code Academy Badges: 59



Code Academy Skills Finished: 2 (Make a Website, Ruby)

Books Finished:
Chris Pine's Learn to Program 8/9/2015 

Monday, August 10, 2015

Learning Ruby the Hard Way by Zed Shaw

Tonight after having finished Pine's Learn to Program, I begin a new course - Learning Ruby the Hard Way by Zed Shaw.  At first glance, Shaw's work seems pretty focused on repetition, typing, learning, and practicing.  I like this.  I am looking forward to working through slowly and repetitively and hoping that more of it sticks.  I have been through the basic of Ruby on both CodeAcademy and in Learn to Program.  I have some of it down, but I feel I need more of the basics hammered down more tightly like iterating through an array and a list.  I need more hands on coding practice so I am feeling good about this.  I have not purchased the physical copy of the book, but may if I find it to be irritating to switch back and forth between the book and the editor on my pc.


Total hours into Programming: 54 (2 yesterday)
My Text game: 2 hours, 107 lines

Progress on Hartl's Tutorial Ready to start Chapter 3! 

Code Academy Points: 564
Code Academy Badges: 59



Code Academy Skills Finished: 2 (Make a Website, Ruby)

Books Finished:
Chris Pine's Learn to Program 8/9/2015 

Sunday, August 9, 2015

On Perseverence

One of the things that's really hard for me to work through at times is being confused.  I don't like being confused and this is, in fact, the only thing that can prevent me from reaching my goal of being a competent coder.  Confusion leads to a loss of confidence which can inspire feelings like "this just isn't my thing", "I am no good at this".  As I read through more and more stories of people coding I have seen over and over again that being baffled is a natural part of learning to code.

In this spirit, I have continued on with Pine's Learning to Program and have nearly finished reading it and taking notes on it.  While I am not capable of doing all of the exercises, the book still has a great deal to teach me and I have learned quite a bit by reading and taking good notes even if it is not all clear to me.  Three weeks ago, I knew nothing, now I have a solid foundation in terminology and can write basic programs.


Total hours into Programming: 52 (5 yesterday)
My Text game: 2 hours, 107 lines
Chris Pine's Learn to Program (Finished with Chapter 12 of 14)
Progress on Hartl's Tutorial Ready to start Chapter 3! 
Code Academy Points: 546
Code Academy Badges: 58
Code Academy Skills Finished: 2 (Make a Website, Ruby)