About the Blog

Its about anything and everything. I, Steven Hancock started this blog for a variety of reasons. I want to start documenting my life and sharing that with others, whether that's family, friends, strangers or my future self. I also want to start sharing my experiences with others in hopes that others can learn from me. Perhaps I can help someone set up an Ubuntu server, write a Django Web Application, or setup a Phonegap Mobile App.

That's it. I'm hear to share. Nothing more, nothing less. I will be covering a wide variety of topics so feel free to browse for the blog entries that interest you most.

Learn a new Language with Code Academy

August 11, 2013

I love learning new languages. Its amazing how often you learn some cool function in one language, only to discover it exists in your favorite language. I have managed to stumble my way through a variety of languages that I have taught myself like JavaScript, PHP, HTML, and SQL. Luckily for you, there’s a better way, CodeAcademy.

CodeAcademy is an "education company" who offers online courses that teach the fundamentals of a variety of programming languages. It currently offers a variety of popular languages such as Ruby, Python, PHP, and JavaScript in addition to offering courses on API’s such as Twitter, YouTube, and GitHub.

My Experience

I am transitioning between jobs. I am going from a position that required mostly PHP server side scripting to a position that will utilize Google App Engine using Python. I have some experience with Python; I wrote the software that powers this blog using Python and Django. I also dabbled in Python in University as I taught myself the language so I could use it in an Artificially Intelligence class. So I am familiar with Python, but I need a brush up.

As mentioned earlier, I am interested in learning multiple programming languages. I have heard from a variety of podcasts how great Ruby is, so I have decided to learn Ruby as well as practice my Python skills. After looking for a variety of possible learning resources I stumbled upon the CodeAcademy that offers courses to learn both languages. Here is a rundown on my experience using the online Academy.

The Run Down

CodeAcademy breaks topics (syntax, loops, functions, etc) into a couple courses that have anywhere from as little as five exercises to over twenty exercises. Exercises are grouped into smaller sub-topics that make working on them easy with small time commitments. For both Ruby and Python, the CodeAcademy offers an online text-editor with syntax highlighting. Simply write your little program as instructed and submit. The code is run in an interpreter and the result is displayed, either as an overlay or as a box in the right hand corner.

Some of the difficulties I ran across when completed the exercises were:

  • Some exercises were overly simplistic.
    • After being taught how to write functions there were following exercises that asked just to print the functions results. I understand they are working you up to something but several steps could be combined into one exercise.
  • Sometimes the answer is not forgiving enough.
    • Am I supposed to print the result of 1 + 1 or just hold it in a variable? Usually they tell you exactly what to do, but a few times it was unclear.
    • Multiple times I forgot an ending punctuation mark (!) in a print statement and thus was told my answer was incorrect.
  • I wish there was some example code.
    • On one exercise I could not find out what was wrong with my code. The application claims that I did not print anything, except the console is telling me I did.
    • Could be a bug, could be something stupid I am doing, either way if I had the right answer I could compare it, and be satisfied with my answer.

Some noteworthy features of the CodeAcademy:

  • The in-browser text-editor works well.
    • Good syntax highlighting for both Python and Ruby.
  • Will tell you if your code does not compile and the exact compile error message, as well as where a mistake might be if your code compiles correctly but does not function correctly.
    • If you were required to print something the application informs you what it expected and what it got.
    • Application informs you if a variable was not set that was required.

The CodeAcademy is a great way to learn or brush up on a programming language. I was able to use it effectively to learn the basics of Ruby and refresh my Python development skills. I would recommend it to anyone. Programmers as well as those who want to become programmers will benefit greatly from the exercises that the CodeAcademy offers.