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

Monday, August 31, 2015

3 Ways to Improve TreeHouse's Rails "To do App" Course

I have spent many, many hours working through TreeHouse's Rails Track.  I love TreeHouse.  I have raved about TreeHouse on this very blog since I started it around three weeks ago.  I like Seifer and enjoyed his Ruby basics course.  I waded through many hours of TreeHouse to finally be able to work with Rails and I have been looking forward to it for weeks!  I am about halfway through this course and it is really disappointing.  I was initially thinking of writing a fairly negative review of the course and opening up on it.  However, as an educator of well over 10 years myself, I understand that teaching people stuff is hard.  Therefore, I decided to spin this and make it about improving the course instead of attacking it.

Before I start, let me say that I have about 100 hours into coding and am basically new to it.  That said, I have finished the first three chapters of Hartl's work on Rails.  So, if you are a little more advanced, this course might be a better fit for you than it was for me.

(1) Slow it down!  When Seifer introduced us to Ruby, he was slow.  Something has happened between then and now.  He is now super fast.  There is very little explanation in between the commands and some of them are performed too quickly to even keep up if you are simply typing as fast as you can!  At times it feels like this tutorial is more about him making the "To Do" app rather than about teaching the students.  Again, I am an educator.  I know how grueling it can be to crawl through material you are very familiar with.  That said, this is simply too fast and if students can't follow along they are going to quit on you.

(2) Divide it Up!  In this tutorial, there is a lot going on.  It could easily have been divided up into more sections with more context.  In this course, he deals with gems such as capybara and rspec.  I have divined through watching and doing that these are gems meant to help test your app as you go.  We need more explanation about what they are!  Where did they come from?  Why are we doing this?  Leading up to this, we took entire courses on the command line and on Git.  Now new gems are thrown at us and if you are like me you don't have the faintest idea what they do or why we are utilizing them without reading between the lines in the course.

(3) Testing based development needs explanation!  Throughout the process, you will develop an app, but more time will be spent programming tests to make sure your code works.  You will probably make more tests than app before you get done.  The tests are complex and very confusing and there is scarcely an introduction to the whole process.  This is very frustrating for the newcomer.  I read in the forums that testing based development is a good practice and eventually helps to develop more efficient and error free software.

I am sure that's true, but if you are new it's really clouding the issue.  I teach college students history.  There are countless "best practices" that I have to overlook in the name of teaching them on a basic level that they can grasp and do.  Would it be nice if I could teach them the ins and outs of citations, historiography, and deep reading of primary materials starting on day 1?  Yes!  However, if I try to go into all of that in a 200 level course, nobody will get it and nobody will like history.  In the name of trying to familiarize them with best practices and save time, everyone hates it and before long they won't be interested in anything I have to say!  I think testing based development needs a lot more context here.  Seifer never explains what it is and so we are left not sure what we are doing and most likely not doing it very well.  Teach us to crawl before we walk!

At the end of the day, I still love TreeHouse and I think Seifer is a fine instructor.  I just think some decisions were made that were not consistent with the rest of this course.  In Ruby Basics, Seifer is slowly showing you how to make Ruby print text.  5 hours later, he reappears and is absolutely crushing you with fast moving Ruby on Rails lessons that are pretty demoralizing.

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

Friday, August 28, 2015

Beating Coding Fatigue

Well, it finally happened.  My initial push into coding got me through around 34 days.  My enthusiasm combined with free time in the summer sustained a pretty impressive push of over a month.  This, however, is where things get difficult.  I have learned most of the easy syntax.  I have said "Hello World" and mastered much of the easy to learn stuff.  Now, I am sitting about halfway through the Rails tutorial on TreeHouse and about 1/3 of the way through Shaw's Ruby the Hard Way book.  Life is going to get a great deal more difficult, but I am determined to push through and keep working hard!

One of the major issues I have always come to in my life is what happens when you lose the initial push of momentum?  This blog entry represents my bold intention to work through a few hours of coding tonight and stay the course even though work made it impossible to code on Wednesday and Thursday.  I am rusty and tired, but tonight I code!

Thanks for reading and if you have any tips for beating fatigue please holler at me!



Code Report!

Resources in Progress:
Total hours into Programming: 98 (0 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 (2558 Points, 32 Badges)

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

Thursday, August 27, 2015

TreeHouse Git Basics by Tommy Morgan Course Review

Git is confusing to new programmers.  It is "version control software" and my only introduction to it prior to this tutorial was through the early chapters of Hartl's Rails tutorial.  While "version control" sounds like a scary thing and is really confusing at first, this tutorial is so strong at helping to clear up any confusion about Git which at its core simply helps track changes and empower programs to collaborate by allowing them to work on the same code separately.

This tutorial gives you everything you need and explains things in clear and precise terms.  Morgan not only tells you how to use Git, but explains how Git helps to both track many iterations of a project over time and how it can enable collaboration and sharing through GitHub.  Going into this, I had a rough idea that Git helped to save your work and could allow you to go back in time if you messed stuff up.  However, the finer points of branches, merging, pushing, pulling and the reasoning behind the software were lost on me.

In a relatively short period of time, Morgan gets you competent with Git and explains why you need it.  The illustrations of branches, remote repositories, and the art of pushing and pulling are just perfect.  If you are confused my Git, or even feel like you are almost there but need a little more explanation, you need to do this tutorial.  Additionally, Morgan works you through an introduction to GitHub.  GitHub is going to be crucial if you are going to share your work and become part of the programming community, but it is intimidating if you are brand new.  Morgan guides you through it and even shows you how to set up your own public repositories.

I came out of the course with the ability to explain what Git does and understanding everything from basic commits (saving your program to the repository) to what happens when Git is merging different versions of the program and how the programmer resolves conflicts between versions.  The course also features numerous opportunities to practice the commands and features manageable videos.  If you read my other reviews, you know I really loathe long videos and this section tops out around 6 minutes.  What this means is it is nicely broken down into teaching and practice.  I think it achieves a nearly perfect balance in this.

As a teacher, Morgan proves that you don't have to wear a funny hat or pack your lessons with jokes to be effective.  He is pretty low key,  but pulls this off admirably.  Taking me from loosely aware of Git to confidently understanding its purpose and being able to execute most basic commands is all I could ask from this course and it delivers strongly.

Well done TreeHouse!

Code Report!

Resources in Progress:
Total hours into Programming: 98 (4 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 (2558 Points, 32 Badges)

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

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

Tuesday, August 25, 2015

Coding: The Best Path for Career Switchers?

As a history professor with well over 10 years of university and another 7 years of teaching on the tenure track, I know a fair bit about the world of higher ed.  Students arrive with great hopes of finding themselves, their dreams, and their calling all in one four year stay on campus.  For this training and admittedly life altering experience students pay a hefty price often accruing tens of thousands of dollars in student debt.  As a recipient of my own tens of thousands in debt, I feel perfectly fine about the exchange as I am sure most people with fulfilling careers do.  I would much rather be in debt with my current job than debt free doing something I totally loathe, even if I might be a little more wealthy in the long run.

However, if one ever wants to enter a different career path, college is pretty daunting.  Not only does one face the cultural adjustment of returning to school, a host of real life challenges such as family, but the possibility of accruing even more debt with less time to pay it off.  That said, for entry into most alternative career paths, a person will likely need to go or return to college.  For most people, this just is not realistic.

Enter: coding.  Since I first took a notion to start coding in July, I have logged in nearly 100 hours working on it.  My total expenditures on the endeavor total $41.  I have paid for Pine's Learning to Program book (which I could have gotten for free online) and $25 this month for TreeHouse which is a service I really love.  Compared to university, this is pennies.  If I keep my TreeHouse subscription all year and buy one new book a month for $20 (and honestly, most of them are actually free!) I will spend under $600 this year on coding.  This amounts to 2 credits (of a minimum load of 24 annually) at a university and if I mastered 12 books and worked TreeHouse all year I would be in a good spot to at least consider applying for jobs competitive or better than those college graduates would compete for after 4 years in college.

The magic of coding is that it is an measurable (as we say in the academic world) skill.  If one successfully navigates themselves to the point where one can code, the proof will be in the pudding.  That person can create a host or programs for local businesses, non profits, or even just to build a portfolio to prove they can code and share it with the world on GitHub.  Unlike many fields, coding can be assessed - you either can or you cannot.  This makes it much easier to break into than other degreed fields.  With skills you can demonstrate, you are employable.  While I am not discounting a computer science degree, I am sure this is actually much more well rounded and includes a lot of deep theoretical knowledge that practical self study simply can't provide, for a career switcher coding is gold.

The languages are free, the editors can be had for free (or for less than a basic into biology book if you really want a nice one), the training materials range from free to cheap, many of the best books and tutorials are free online!  Additionally, coding has a tremendous community.  In the past month, I have met so many super nice people who are encouraging and helpful - many of whom are already successful programmers!  Unless you sign up for one of the high priced bootcamps you can figure out if coding is for you primarily with an investment of time.

Finally, let me also point out what an amazing time we live in for all of this stuff to be to accessible.  When I was a teenager, coding training, languages, etc were hundreds of dollars, now they are there for the taking!   To me, making computers do new and interesting things is one of the most powerful things we could ever learn to do in 2015.  We do not have to pay dearly for this power, we only need to apply our time and efforts to learning it.  If I told you all the ways that programming a computer could help change the world you would expect it to be very expensive training with a line out the door to learn and an elitist community hellbent on protecting their interests.  Actually, it is a welcoming community which freely exchanges training materials and is seeking to recruit more people to help do this important, interesting, and potentially revolutionary work.  I am by no means a programmer yet, but right now I can't think of a better investment of my evenings.


Resources in Progress:
Total hours into Programming: 92 (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 (1939 Points, 24 Badges)

Code Academy Points: (704 points, 72 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 Ruby Course 8/5/2015


Code Academy Make a Website Course 7/29/2015