Showing posts with label CodeAcademy. Show all posts
Showing posts with label CodeAcademy. Show all posts

Monday, September 7, 2015

Free Code Camp First Impressions (Yup, another one!)

Despite my initial goal to remain committed to only a few resources, I decided to peek at Free Code Camp the other day for reasons which may later become clear.  I have always been interested in Free Code Camp and they do have a fair amount of success stories.  For those who are not familiar, Free Code Camp focuses on JavaScript development and puts the user through a 1600 (!?) hour program to get them there.  You begin with 800 hours pf practice doing lessons like Code Academy or TreeHouse and then you move into working with nonprofits to help them out and to build your own functional portfolio.  My impression is that if you work through it you will get a job, probably before you finish your 800 hours with nonprofits.  However, it has a deadly reputation in terms of difficulty.

I am around 4 hours into Free Code Camp, and I really like it so far.  They do a nice job of helping you set up your infrastructure.  You link to GitHub, Twitter, and a host of other resources if you wish.  They also help you tour through the general chat rooms and the room which features people in your area.  Spoiler alert: the Tennessee rooms aren't very active.  Finally, you begin on your Free Code Camp journey which features a long list of lessons and strange metaphorical titles for code exercises such as Waypoints, Ziplines, and Bonfires.

I have finished my first major module, which was of course pretty easy since I have gone through 3 other basic HTML and CSS courses before.  I am now about halfway through the Responsive Design and Bootstrap course.  As always, this should not be seen as a full review, because I am nowhere near done.  However, I am far enough in to offer my general early impressions.

One good thing is the people hanging out in the chat rooms seem supportive and fun.  It's not hard to see how a person could just hang out there for hours.  I just introduced myself as the beginner exercise says to do and got lots of responses.  I also saw people giving and getting feedback on code which was cool to see.  Compared to Code Academy or TreeHouse's forum system, this is much better.  You are not posting and hoping someone responds, but you can actually converse in real time.
Next, this thing is polished.  It functions more or less like Code Academy, but I like their prose a lot better.  It is clear, doable, and fun.  So far, I have not had the experience where I look at the directions, read them, and groan in confusion and I have been through around 85 little modules.  Additionally, the site is robust without being cluttered and the map is pretty clear and straightforward if not a little intimidating.

Finally the best part - if you can finish this you will be ready to apply for jobs.  There are a host of stories of folks who have learned to code on Free Code Camp and the program does provide you with the real world experience you need to go on the market.  Whereas TreeHouse badges are of limited utility in a job hunt, Free Code Camp has you covered.

The only negative I can see so far is that I know there are insanely tough challenges lurking ahead.  Every blog or review you read speaks on this, Some even threaten to be as long as 100 hours!   I don't mind if it takes a long time as long as I am not utterly confused and am actually making progress.

On a personal level, I know I should just tick with the other resources I am working with, but I wanted to experience Free Code Camp.  Also, I love the repetition of covering the material more than once, and I wanted to be able to write some type of review on it for my loyal readers here!  As I make more decisions and make more progress I will update the blog!


Resources in Progress:
Total hours into Programming: 118 (4 since last time )
Days into Programming/Hours per day: 2.6 Hours Per Day (Goal:3.0)

Progress on Shaw's Learning Ruby the Hard Way: Finished Exercise 1-13
*Going to get back to this soon, my son has been using the Ipad to watch Diamond Minecart and Stampy Longnose lately!  

My Text game: 3 hours, 118 lines
*Not sure I am coming back to this one, but I will leave it here.  

TreeHouse (3637 Points, 42 Badges)

Free Code Academy: On Course 2: Responsive Design with Bootstrap

Code Academy Points: (759 points, 79 badges)

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

Progress on Gaddis' Starting out with Python: Done With Chapter 1, Appendix A,B
*I am dumping this for now, Python is not for me right now.  


Resources Finished:

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

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

Created a Program for Teaching Evals 9/6/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 
TreeHouse Git Basics 8/25/2015
TreeHouse Installing a Ruby Environment 8/26/2015
TreeHouse Making a ToDo Rails App 8/31/15
TreeHouse Ruby Logical Operators 9/4/2015
TreeHouse Ruby Collections 9/5/2015
TreeHouse Loops 9/6/2015

Free Code Camp HTML5 and CSS 9/6/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
 

Saturday, September 5, 2015

TreeHouse Ruby Operators, Control Structures, and Collections by Jason Seifer Course Review

I decided to finish the Ruby track on TreeHouse before I continued on with Rails.  While I have worked with Ruby for quite some time, there is still much of it that I need to relearn, refresh, or learn for the first time.  While I had approached much of this material before, I definitely did needed the refresher.  I come to this review as someone who has completed Code Academy's Ruby course, worked through Chris Pine's Learning to Program, and having completed about a third of Zed Shaw's Ruby the Hard Way book.

When I saw Seifer staring me down I had some reservations.  Last time I saw this man he was speed racing through the Rails tutorial and was a major player in the coding crisis that ensued after I "halfpleted" the course.  By halfpleted I mean that I worked through it but conceded that I was essentially lost for the whole second half which i the worst case scenario of online tutorials and a scenario that played itself out many times when I worked through Code Academy.

Fortunately, my fears were unfounded.  The speed-racing alien that replaced kindly Jason Seifer seems to have left his body.  This was the friendly and kindly fellow who taught me Ruby Basics!  He moved slowly and I was easily able to follow along in Workspaces without excessive video pausing.  Generally speaking, these courses reminded me of why I subscribed to TreeHouse in the first place.  It features a nice combination of quizzes, coding, and videos.  The videos are succinct and it is not torturous to watch quite a few of them in one sitting.

These courses do a fine job of covering arrays, hashes, and programming branching in Ruby and I came away with a stronger knowledge of these subjects and was closer to mastery than before.  There is also a really nice exercise during which you have to build a grocery list.  The exercise is difficult where I had to look up some of the tough parts but not so tough where I felt lost and hopeless.

These two courses are pretty quick and accomplish their aims without much difficulty.  I did not feel like I was just doing it for the points or clicking through as I had with Rails.  They are perfectly paced and offer enough complexity to get you thinking and provide a solid foundation as we move forward.  Next up, I take on loops which has been a topic I have a basic understanding of but certainly need more practice on.

Resources in Progress:
Total hours into Programming: 111 (3 since last time )
Days into Programming/Hours per day: 2.5 Hours Per Day (Goal:3.0)

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 (3437 Points, 40 Badges)

Code Academy Points: (752 points, 78 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 
TreeHouse Git Basics 8/25/2015
TreeHouse Installing a Ruby Environment 8/26/2015
TreeHouse Making a ToDo Rails App 8/31/15
TreeHouse Ruby Logical Operators 9/4/2015
TreeHouse Ruby Collections 9/5/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

Friday, September 4, 2015

Three Tips for Sticking With Coding in Busy Times!

This week has been tough in terms of coding.  I had a lot of stuff going on at work and I was only able to do about half of what I normally do in terms of coding.  I have also passed through the early stages of coding and am now into some of the tougher stuff.  Early on, coding seems very easy!  I can make it print a number, make it branch off, etc etc.  However, as you begin to get deeper in, things get rough.  This is where I am at.  In the spirit of determination I offer you the best I have to keep on coding, even if it seems the going is getting tough.

(1) Focus on learning for its own sake, remember what drew you to it!  This probably needs to be more than a job.  If you are only learning because you want a job or an end goal, coding (or anything!) is very tough.  In order for you to really get anywhere you have to do it because you like it.  If there is no joy in simply sitting down to code, maybe you should ask yourself why you are so determined to do it.  Remember, just as you are auditioning to code, coding is auditioning for you.  Is it what you want or what you think you should want?  If you have no intrinsic motivation to learn, you will eventually quit.

(2) Have a few resources at your disposal.  I always like to have a few different types of resources I can work on.  I like to have one serious resource which requires my full attention as my top goal.  However, I have a good deal of free time when I can't focus like this.  That's when having some easier and quicker resources like Code Academy or TreeHouse can be handy.  You can review old lessons, poke into a new language, in small chunks.  This way you are not always waiting for the perfect four hour block to study (this will rarely/never come), you can use all of your time.  Only have 30 minutes?  You would be surprised what can happen on TreeHouse in 30 minutes!

(3) Force yourself to do something every day, even if it is just reading an article or working through one lesson.  Sometimes life gets busy and you miss a day.  However, for me when I miss one it can turn into two, three, and four.  When I miss many days in a row, I start to doubt myself and ask if I am serious about it or now.  This is why I try to stay as consistent as I can.  Posting daily on a blog, Twitter, and other social media can help you to stay in it even if you are not getting the time you want in.  Even though it's silly, I have a 40 day streak on Code Academy.  I do it every morning not because it teaches me much, but because it focuses me and keeps me engaged with my goal.  Everything stops being new after a while, methods of accountability are so important for when the fun slows down.

Code Report (from a tough week!)


Resources in Progress:
Total hours into Programming: 108 (4 since last time )
Days into Programming/Hours per day: 2.5 Hours Per Day (Goal:3.0)

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 (3164 Points, 37 Badges)

Code Academy Points: (748 points, 77 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 
TreeHouse Git Basics 8/25/2015
TreeHouse Installing a Ruby Environment 8/26/2015
TreeHouse Making a ToDo Rails App 8/31/15
TreeHouse Ruby Logical Operators 9/4/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 30, 2015

Curves on the Rails

I finally finished a lot of the basic context in my TreeHouse Ruby on Rails track.  I learned about Git, Ruby Basics, the command line, and a host of other basic skills.  These skills were all explained in perfect detail and offered way more hand holding than was needed.

Then I started the Build a to do list application with Jason Seifer.  If you have read my previous review of Seifer's Ruby Basics class you know that in that one he moved slowly and spoke in clear terms.  In that course, it seemed almost to be a little bit too slow.  In this one, Seifer is racing through making this application.  There is an initial explanation of the directories that "rails new" makes and then we are off to the races.  For someone with little to no experience this is kind of silly.  While there is some loose theoretical explanation, mot of it is really brief or totally absent.  There are also a host of version problems with the tutorial which I had to battle with uninstalling the newest Ruby and working backward to what Seifer uses.  

I am wondering how this could happen.  TreeHouse, to this point, has been very clear and if you are paying attention you can learn.  This is why I was happy to plunk down $25 for it this month, it was a service that was excellently done and I have been exceedingly satisfied until this course.  This one harkens back to CodeAcademy in that you are just kind of dumped into the middle of it with very little explanation.  I am writing this blog entry now from a decisive point in the road.  I am 9 videos in and am pondering if it is worth finishing.  I am not getting much out of it outside of some practice copying code into the editor.  

That said, I think sometimes you just have to trust in the process.  I am going to finish the chapter and get it done.  Perhaps I am learning more than it appears!  Signing off.

Code Report!

Resources in Progress:
Total hours into Programming: 100 (2 since last time )
Days into Programming/Hours per day: 2.8 Hours Per Day (Goal:3.0)

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 (2581 Points, 32 Badges)

Code Academy Points: (743 points, 76 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 
TreeHouse Git Basics 8/25/2015
TreeHouse Installing a Ruby Environment 8/26/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 19, 2015

TreeHouse Making a Website by Nick Pettit Course Review

About two weeks ago I decided to join up with TreeHouse.  I have finished their first full course as of this morning and in this space I will share my thoughts on Nick Pettit's course.  First off, when you go to TreeHouse you will be prompted to get on a "track".  The tracks are designed to mirror career paths, even though I have my doubts that just a TreeHouse education would be enough to get you a new career.  At any rate, most of the paths start you off doing Pettit's basic web design course.

The course covers basic HTML as well as its uglier meaner friend CSS.  How logical, friendly HTML ever fell in with a shady character like CSS I will never know but this is the world we live in.  The course is primarily videos (I am guessing around 2/3) with Pettit working in the workspace and talking you through it as he goes.  They are at their best when you work along with him.  This is a really cool feature of TreeHouse - you get to work with the videos in your own identical workspace.  This makes following along and learning code that much easier.  Generally speaking, Pettit speaks slowly and clearly, stays on message, and does not go on too long.  Most videos are around 7 minutes long with the longest being around 11 minutes.  I found this just about right.  Much longer than this and I think the videos become somewhat tough to bear.  If you have some basic computer literacy, you will have some moments of boredom as he explains everything (which I actually like).

The workspace is nicely done and does a much better job than Code Academy of attempting to replicate the kind of environment you might use in actual web design.  You can also export your creations outside of their environment which is a nice step toward moving your work beyond the shell world of TreeHouse.  That said, it is a shell world and the work you do in TreeHouse is not the same as working on your own in a standard environment.

Apart from videos, there are also code exercises.  For the most part they are pretty easy, though they do require you to really think.  I think on the whole they are easier than Code Academy but also more doable.  I had to ask one question to the forumites (I forgot a label, doh!) and I got a snappy and kindly worded answer.  However, for the most part everything was solvable, though some did take some thought on my part.

Finally, there are the big money quizzes!  You get big TreeHouse points for doing the quizzes and if you are watching the videos they are basically trivial.  I will say though, I love getting the points and the boost you get from dominating the quizzes!  Seriously, in this particular course the quizzes are super easy.

As a teacher, Pettit is clear and easy to follow if a little wooden at times.  I did, however, get lost later in the CSS section as he spoke on expanding your mobile web design to optimize larger screens.  I was particularly perplexed as he explained the mysterious and sinister sounding nth-child command.  There are also times when he is speaking about design choices and moving quickly through margins, padding, and floats and you really just need to stop and play with it yourself.  I am sure Pettit's quick explanations make sense when you are a pro, but as it gets deeper it feels like he moves faster (perhaps in the interest of keeping the videos length manageable).

Overall though, I loved it.  I couldn't wait to move through the lessons, accrue points, and listen to Pettit's explanations.  It is an excellently guided course and even includes a section on debugging, double checking, and putting your website on the internet.  I would definitely recommend TreeHouse to anyone looking to learn about coding or making a website.  My two week trial expires on August 24, and I will be paying for it after that so I definitely believe in the site.

Total hours into Programming: 76 (2 since last time )
Total Weeks Programming/Hours per week: 3/25

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-9
CSC Class Time: 1 Hour

My Text game: 3 hours, 118 lines

TreeHouse (727 Points, 9 Badges)
TreeHouse Courses Finished:  Make a Website 

Code Academy Points: 634
Code Academy Badges: 66
Code Academy Skills Finished: 2 (Make a Website, Ruby)
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  

Thursday, August 13, 2015

Entering the TreeHouse (vs CodeAcademy)

Today was a pretty busy work day, so I did not have a great deal of time to put in to my coding exploits.  That said, I have decided to try out Treehouse.  Treehouse is roughly similar to Code Academy, but features a few key differences:

(1) The worst, it runs $25 or $50 for a premium membership.  I am currently on a 14 day trial but in order to get the trial you do need to provide a credit card.  So, compared to Code Academy, this is a definite downgrade!

(2) Videos!  I always said I did not love videos because they require a measure of absolute attention which I do not often have to give (sometimes I try to sneak in lessons while my son plays with legos!).  However, the videos have so far been really helpful and explained the information much more fully than the brief text blurbs on Code Academy.

(3) Quizzes!  As a professor, I love quizzes.  These prevent you from totally zoning out during the videos and actually listening.  They also focus you more on learning and less on simply getting through the exercises.  If you missed something that was important they can also refocus you.

(4) Tracking!  When you first begin they ask you a few more questions about what you want to do with your coding training.  While, as a newcomer, I found this a bit frustrating because I don't know exactly what I want yet, the system was a a little bit more robust than CodeAcademy's.

(5) Robust Profiles!  At CodeAcademy, you get one point per lesson.  Sometimes the lesson takes 2 seconds, like ones where you read a line and click save.  Others take 20-30 minutes of struggle depending on how much willpower yo avoid cutting and pasting you have.  At any rate, getting one point becomes pretty demoralizing after a while even though this makes no real difference in how much or little you learn about coding.  Tree House has a similar points system but there are different values for different tasks and you can also get points from being a valued contributer to the forums.

At this point, I am less than 2 hours into TreeHouse and have spend well over 30 hours on CodeAcademy, so I am not really qualified to weigh in with any kind of final verdict, but those were my thoughts after just a sampling of TreeHouse.  I should also mention that I am not into the coding part yet, I am just doing the basic HTML which they sort of force you to do unless you just opt out of the tracks altogether.

Total hours into Programming: 59 (.5 yesterday, I have had faculty orientation for 2 days, its been rough)
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: 567
Code Academy Badges: 60
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 

Sunday, August 9, 2015

Review of Chris Pine: Learn to Program

Today I did not do as much coding as in day past, but I did manage to get through Pine's book and figured I would write a review/wrap up featuring my perspectives.

Chris Pine, Learn to Program, Second Edition, Pragmatic Bookshelf, 2009.
List Price: 24.95
Realistically: $5-$15 on Amazon, mostly free online:
https://pine.fm/LearnToProgram/
*I purchased the hard copy from Amazon for $15.

First off, I am coming from only having completed the CodeAcademy Ruby course.  This means that I have very little background.  If you have more experience than me, this may not be the right review for you.  However, if you are a coder-in(self)training, at the start of your journey you may find this useful.

Points of Style
First off, the book is generally a pretty quick read, it has 14 Chapters of really dense programming knowledge as well as an epilogue of sorts featuring his solutions to the exercises in the book.  This amounts to around 120 pages of material which seems pretty slim until you get into it.  Stylistically, it is written conversationally and there are regular attempts at humor.  If you hate this type of jokey writing, you will not enjoy this book.  I personally liked it because it takes the edge off of a difficult and at times intense subject.  The example programs are also full of attempts at humor.

Best Features
Pine really has a gift for making the complex seem simple.  This is especially try in chapters 1-8 as he effortlessly guides you through some of the basics of Ruby.  Beyond that, I loved his example programs.  He features copious in program notes (using #) and really tells you what is happening here.  Even in some of the later chapters when much of it was flying over my head, the programs never lost me.  This is really fine work and helped me to understand what he was doing.

On a related note, the chapters are not too deep.  Each chapter has one goal and it goes about its business pretty quickly.  You will not find yourself having flashbacks to math class marooned in the middle of a never ending chapter.  I always felt energized when I completed a chapter even if some were only 8-10 pages.  Each chapter also features a number of clearly marked headings which are also listed at the beginning of the book.

Additionally, the book is practical and gets you started on your way with your own IDE.  This means that he helps you set up your computer so you can make your own programs without needing an artificial experience like CodeAcademy or other self-training sites.  It's not complicated or crazy he just helps you get set up in around 1-2 pages.  This was a delight for me after CodeAcademy left me confused.  Now, I have Ruby, a nice text editor, and a directory full of programs!  He also has guides here for Windows, Mac, and UNIX users.

Next, I really enjoyed Pine's answer key (which you will use a lot).  In the back he has a couple of different solutions to his devious exercises spread throughout the book.  I enjoyed that he gave the alternative solutions even if many of them were way over my head.  While I wish the programs would have been notated a little more heavily, these were still really useful.

Finally, the book challenges you.  In the era of "complete this line of code" or "add an equal sign", Pine is having none of it.  He regularly challenges you and the challenges are always write your own program.  Even if I was almost universally a failure at writing my own programs, just trying and thinking the process through make you much better much more quickly than if you stick to CodeAcademy.  Unsurprisingly, the other side of the coin is that these challenges can be brutal and bring you to the cusp of 'to hell with this'.

Room for Improvement
Some of this stuff is borderline impossible for a new person.  Many (most?) of the challenges will frustrate you to the point where you don't want to go any further.  I ended up just looking at some of the answers and continuing to read on.  If you are the type of person who will view yourself as a failure if you don't get all of the answers yourself perfectly than this is going to be a tough slog.  These challenges are hard, particularly if you are brand new,

Next, Chapters 9-14 are rough.  I read them and took notes and I did learn from them, but somewhere around chapter 10 I pondered putting the book away permanently.  Do not do this!  Continue to read, but be aware that you will probably fall off your intellectual cliff at some point in this book.  I say continue on and come back to it later.  That said, this is really, really, demoralizing and probably could have been worked out with a little more "debugging" featuring newbie Rubyists.

In Final Analysis
Would I recommend it to a new coder?
Yes, but I would caution them about the cliff that comes in the chapter 9 range.

Will I sell the book, or keep it?
The book is really nice for reference.  I have already used it and will continue to use it for many of the simple syntax forms I am always forgetting.

Score out of 10 (because we all love this!)
7.5/10


Saturday, August 8, 2015

Working on Many Fronts at Once

I am not totally sure this is the best course of action, but I find myself working on many different fronts at once.  Let me explain what I am doing and where I am at on each one and perhaps I can explain why I have done such a thing!

(1) Code Academy  -  I am working though Python mostly to prepare for the Computer Programming Course I am taking in the fall.  I also stubbornly refuse to give up on my daily streak which is now up to 16.  I continue to love Code Academy as an introductory tool, but feel that you will always have to go to different and varied sources to advance.

(2) Chris Pine's Learning to Program (Ruby)-  This is my priority.  I am trying to finish going through the book.  I am currently on chapter 10 (of 14) and am feeling pretty unsure about the content right now, but I will finish it up and revisit these ideas in different forms and resources when I finish the book.  I may also work through the book again when I finish at some point.

(3) My text game -  Because I have read over and over again that in order to make it stick you have to do it, I have begun work on my text game.  I am writing my own methods and creating my arrays and encountering my own problems.  The real problems you encounter when coding are so much more interesting and seem so much more practical than some of the designed exercises.  I have learned from Pine's book that sometimes you need to work out the solution "in English" before thinking in the program language and working on my game has helped me in this regard.  As I finish more of the game, I will post versions of it here, hopefully today or tomorrow!

Total hours into Programming: 47 (2 yesterday)
My Text game: 1 hour, 51 lines
Chris Pine's Learn to Program (Finished with Chapter 9 of 14)
Progress on Hartl's Tutorial Ready to start Chapter 3! 
Code Academy Points: 502
Code Academy Badges: 56
Code Academy Skills Finished: 2 (Make a Website, Ruby)

Friday, August 7, 2015

Battleship and Pine

Continued on today with Code Academy, well over halfway done with their Python course.  I am working now on the Battleship game they have you make.  Now that I have gotten about halfway through the tutorial, there is a lot of looking up of the problems in the forums.  I often find myself pasting the correct code next to mine and comparing to see where I went wrong or what I do not know.  There was a message posted to the local forums which expressed frustration at a similar situation.  If you always have to go to the forums in every lesson are you learning it yourself and will you realistically be able to replicate it?  I say, probably not which is why I love Code Academy as a starting point but not necessarily as an ending point.

Meanwhile, I continued on in Pine's Learn to Program with Ruby.  I have finished up to Chapter 9 and have to say that I continue to enjoy the explanations and hands on activities spread throughout this book.  I have managed to completed a couple of the challenges with no help and the rest of them I have done with some guidance from his answers in the back.  Whereas I used to totally freeze up when being asked to start writing my own code in response to a problem, Learning to Program has gotten me more comfortable writing my own code without the Code Academy scaffold.  I have also learned a great deal more about the details of the syntax because you just find yourself at the prompt running test programs all the time in this volume (which I like).

Total hours into Programming: 47 (3 yesterday)
Chris Pine's Learn to Program (Finished with Chapter 8 of 14)
Progress on Hartl's Tutorial Ready to start Chapter 3! 
Code Academy Points: 495
Code Academy Badges: 54
Code Academy Skills Finished: 2 (Make a Website, Ruby)

Monday, August 3, 2015

Toy_app Done!

I finished chapter 2 of Hartl's book which is a great feeling!  Everything worked and I even had the chance to correct a few mistakes.  I also learned from a few different Stack Overflow questions and am really beginning to feel like I could perhaps do this unguided one day.  Whereas I was feeling pretty defeated a couple days ago, making slow and steady progress through the Ruby on Rails tutorial book has been rewarding.

That said, chapter 3 is really where it begins.  The earlier chapters essentially say that you will not pick much up in terms of deep understanding jut by doing them, but they do give you some momentum.  I am also getting more and more comfortable with git, bitbucket, and heroku.  I even got my app to display and work on an actual browser!

Python has gotten a little more sticky, but I have made it to around 40% through that Code Academy tutorial.  I have gotten to the dictionary portion of the tutorials and am trying to work through how to print the key with the values from two separate dictionaries in one output.

I also notices that I have made it over 40 hours on this journey so far.  Going from no knowledge at all to a decent foundation in basics in Ruby and Python as well as a solid foundation in Ruby on Rails is a pretty good start.  While I love the idea of working as a programmer, coder, or developer I am not relentlessly and desperately pushing for that at this point.  First things first, I want to be literate enough to code some of my own small programs.

Total hours into Programming: 41 (6 today)
Progress on Hartl's Tutorial Ready to start Chapter 3! 
Code Academy Points: 447
Code Academy Badges: 50
Code Academy Skills Finished: 2 (Make a Website, Ruby)

Sunday, August 2, 2015

Code Academy Python Course Review at 30%

While it is entirely possible that the completion of the Code Academy Ruby course made this one go down quite a bit smoother, I am really liking the Code Academy Python course.  I think it features the correct amount of guidance and practice to this point.  At times (even early) in the Ruby course, I felt like the exercises and lessons were not readily solvable with what I had been given in the lesson.  In Python I have probably completed over 100 lessons and have only had to refer to the forums a handful of times.  This is in direct contrast to my experience with Ruby wherein I was seemingly in the forums nearly during every lesson.  There were also a few times in the Ruby tutorial where I ceded that I would simply paste the code and move on without a true grasp of the content.

I have gotten everything so far in Python.  I think the major reason for this is that this tutorial features more practice (though I still wish there were more exercises!).  I have been trying to do the exercises with as little guidance as possible and so far I have made it through sections on basic syntax, types of variables, built in functions, control flow, modules, and built in Python modules and I have a really nice grasp on what is going on.  In short, I love it so far!

Note:  I am waiting until the quiet evening to restart chapter 2 of Hartl's Rails tutorial...wish me luck!

Total hours into Programming: 37 (2 today)
Progress on Hartl's Tutorial 2.0.0 (got the 2.2.1, but am starting this section this evening)
Code Academy Points: 419
Code Academy Badges: 48
Code Academy Skills Finished: 2 (Make a Website, Ruby)

Saturday, August 1, 2015

Python and Rails

Today I worked with Python in the early section of the Code Academy site.  I am finding that to be a kind of review of what I did in Ruby and it is satisfying to understand much of it without having to grip my skull in agony.  I have a solid grasp on if, or, not, else, elif, else, equal, less than, greater, than and most of the basics (sometimes called Control flow).  I am hard at work forming an app that converts words into Pig Latin which is a real challenge since Pig Latin on its own is more confusing to me than it should be.

I also completed Hartl's Chapter 1.  In the intro there is a introductory paragraph singing the tutorial's praises by some brave soul that completed this whole tutorial in 3 days.  I can't imagine anyone who really needs this training completing this in 3 days.  So far, I have completed an app that only displays one line to the world and in that process I have been introduced to a host of programs/websites that I had no clue existed before, memorized a basic directory structure for Rails apps, gotten basic training and a definition of version control, and deployed the app to Heroku (without success, see below).

Good news, everything went slow, but great.  Bad news, my stupid app does not run on Heroku like I desperately wanted it to.  Just as I was about to paste my app's test web address into an email and send it my wife (to demonstrate that I have indeed learned something!) , it failed to work.  I followed up on a few of the Heroku error messages such as putting a Ruby version in the gemfile, but my meager store of knowledge is not yet strong enough to troubleshoot deploying an app.  So, this was kind of bittersweet.  I completed the chapter and the exercises and feel really good, but I was robbed of my small moment of glory! That said, I remain undeterred and will start the "Toy App" tomorrow in chapter 2.



Total hours into Programming: 33 (3 today)
Progress on Hartl's Tutorial 2.0.0
Code Academy Points: 393
Code Academy Badges: 45
Code Academy Skills Finished: 2 (Make a Website, Ruby)

Friday, July 31, 2015

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

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?