Monday, September 7, 2015

Migrated!

If you are somehow still seeing this, I moved over to thehistorycoder.com on September 7, 2015!  Please find me there.


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
 

Sunday, September 6, 2015

Programming Practice Vs. Programming Tutorials

I love tutorials.  I especially love tutorials that give me points and badges.  This is one of the reasons why I will do an exercise every day on Code Academy despite the fact that I have long ago given up on it as a great resource for me to learn code.  I have moved on to TreeHouse which I really love.  However, is there a time when tutorials hinder more than help?

Tutorials are wonderful for a number of reasons.  You are always making progress, you are always learning new things, and there are a number of built in confidence boosters.  Even if you are not understanding as I experienced with the Rails course, you are still getting points and moving along!  However, if you are not careful, you will end up knee deep in the tutorials and stunting your progress.

One of the dangers of hanging out in the tutorials is that you can become very reliant on their environments, forums, and constant positive feedback.  When you work on your own, you don't get any badges and some of the problems you face may take hours to solve.  You may fail to solve some of them or there may not be a solution at all!  You have to search high and low to find what you need and it is rare when the answers are in any kind of easily digestible format.

However, making your own programs is the goal!  Yesterday I was buoyed by my creation of a very simple program which simply takes information I input and processes it into a usable format.  As a professor every semester we need to take a series of archaic numbers and turn them into averages.  Now, I have a program that will do it for me!  It made use of my work with loops, but there are still more improvements I want to make.  That said, it was very gratifying to help solve a real world problem with my programming knowledge.  It is also empowering to make something on your own without a friendly face (who you are paying for) guiding you every step of the way.

Am I going to stop using tutorials?  Of course not!  However, I am going to work on getting out of them more often so I can refocus on the task at hand: making programs on my own.  Even though I ran into a host of problems making my little program, it was so empowering to solve them based on my own research!


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

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

My Text game: 3 hours, 118 lines

TreeHouse (3637 Points, 42 Badges)

Code Academy Points: (753 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


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

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


Wednesday, September 2, 2015

Beginner Coding Resources and the Curious Case of the Cliff

One of the most amazing things about learning to code is that there are so many resources out there!  You will want to do them all and you will want to complete them all, I know that's how I feel/felt.  That said, all resources are not created equally, even if they all often bill themselves as being beginner friendly.

I have found that there is a curious learning curve in beginner resources including Pine's Learn to Program, Code Academy, and the TreeHouse Rails track I just took.  The curve, or cliff as I call it, usually happens around 75% of the way through the resource.  Whereas they will spend inordinate amounts of time explaining the most simple of tasks early on, there comes a point where things start racing and zooming and explanation is at a premium.  Terms, language, and sophistication pick up at a rapid pace and you (the beginner) begin to feel like a total jackass which should not be the pedagogical goal.

In the case of Pine, he has you knee deep in problems that his previous 75 pages simply do not prepare you for.  In the case of the Rails track on TreeHouse, Seifer seems to start in the middle of an intermediate course on test based design and literally races through making an example app.  One of the things I realize this field needs is a guide to the guides.  Many of these resources that have "cliffs" are probably not that bad for the intermediate, but for the true beginner, they are absolutely demoralizing.  In fact, spending 15 hours building up to a Ruby tutorial that did not end up working out for me has left me pretty salty about the whole thing.  It's called the Rails track and that's the one thing that is not explained in any kind of detail!  I love the points, the interface, and the teachers, but in the end, it did not help me learn rails.  I learned many thing leading up to this, but at the end of the day, the course fell short.

Where do I go from here?  I think I am going to try to scale back to more Ruby programming fundamentals, finish up Shaw's book, take the Ruby course in TreeHouse, and then get into a new book I have discovered which draws rave reviews from beginner by Daniel Kehoe entitled learn Ruby on Rails.

Frustrated but not defeated!

Tuesday, September 1, 2015

Diving into SQLite DataBases with TreeHouse

A my previous posts indicate, my experience with TreeHouse has overall been very positive with the exception of the Rails example app course.  Ultimately, I decided to simply watch the course and take the quizzes without a serious attempt at doing it myself.  For reasons outlined before, I found the course pretty much impossible to do at my level.  While this experience did have me second guessing myself a bit, I have decided to push through the Rails Track and then find another source for learning Rails foundations.  The early leader is Daniel Kehoe's Rails for Beginners.

In the meantime, the TreeHouse courses seem to have reverted to their normal accessible selves.  After Rails is a course on database fundamentals which I have been enjoying quite a bit. Previously I had to idea what "SQL" was and I am enjoying learning some basics about it.  One of the things that's pretty overwhelming about learning to program is the sheer volume of information, languages, development tools, and directions you can go.  You are always learning brand new things and always approaching something totally cold.  I love it, but it can get overwhelming at times.  Currently, I am feeling the full weight of that.  Learning new things gets tougher as you get older, I think.  I am only 36, but it feels like there is always a voice in the back of your head saying :forget about this, you can't do it!", especially after the last course.  That said, I am pressing on, I will figure this out!


Code Report!

Resources in Progress:
Total hours into Programming: 104 (4 since last time )
Days into Programming/Hours per day: 2.7 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 (2806 Points, 34 Badges)

Code Academy Points: (745 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

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