A few weeks ago, I started to learn some code.
Am I hoping to become a coding whiz-kid, build a cool little tool and sell it after 2 years to Facebook for 1 billion dollars (insta-what? insta-billion!). Sure! Sadly, being almost 30 kinda puts a damper on my whiz-kid status.
Honestly though, I think it is important and useful in today’s world to understand, at least roughly, how the programs and apps we so often use in our everyday lives actually work.
Now once upon a time, I wrote a little C and messed around with HTML. I played with Max-MSP and tinkered with sound frequencies in MATLAB. But that was some time ago.
So now I need to go back to the basics.
Before getting started, I had to decide which programing language I wanted to learn. While there are some general concepts that are common throughout all programming languages, the format, structure and capabilities of every language is different.
My goal is to get a good overview of a few different programming languages as well as create a basic – but original – application, mainly through online tutorials. While I am sure a number of languages could suit my needs, I settled on Ruby on Rails. I had heard it was a cleaner clearer language, closer to regular english, and a little easier for beginners to pick up.
Also I like the name.
I am still at the beginning of my coding education and am quite certainly no expert on the topic. But I have found a couple of great starting points that I want to share with other non-programmers who may wants to give it a try.
First of all I got Learn To Program by Chris Pine. Pine’s writing style is totally encouraging, easy-going, funny and clear. This is a great introduction to the basics and really good examples and exercises. The fact that, throughout the book, Pine references my favorite TV show of all time – Buffy! – only added to my joy and motivation to learn.
Ex. instead of a “while true” statement he uses ” while ‘Spike’ > ‘Angel’ ” While I think the last point is actually debatable (Is Spike truly greater than Angel?), this is definitely a Ruby book after my own heart. ♥
Next up? Watch Getting started with rails from Railcast. It is a great quick video introducing you to everything you need to know to set up rails on your computer. I installed, as they had recommended, HomeBrew and RVM to get going with Ruby. I also needed to update a few other things on my machine, like Xcode, before everything was really working smoothly.
Usually any snag that you hit along the way can be solved with a quick google search, or a look at Stack Exchange‘s Stack Overflow (a fantastic resource for all programming related questions). Once you start, you may also want to bookmark API.rubyonrails.org and APIdock, key lookup tools, which can be found through the rubyonrails.org website.
When the tools have been installed and the very basics have been covered, it’s time to start playing around. But where would you start? First stop, Code School’s Try Ruby tutorial. It’s fast, easy, and should familiarize you with the Ruby. You actually don’t use your terminal for this; all the action happens in your browser.
Next, check out Code School’s other free tutorials. Rails for Zombies, which offers you a step by step tutorial showing you how to make a Zombie version of Twitter (well a lite version at least), was fun and fast. This will help you to understand how data is created, accessed and stored in your files.
If only coding looked so green and matrix-y
So that is how far I have come, I still have yet to really build an application of my own, though. Looking around, I figure my next steps should be:
– Follow the step by step tutorial from Phusion of how to start building an app on Macs here.
– Try out more sites that offer additional free tutorials and literature about Ruby like Programming Ruby: The Pragmatic Programmer’s Guide, or one of these additional tools.
– Explore the other Code School pay-for tutorials.
– Explore Code Academy, which covers a larger range of programming languages including Ruby.
– Keep my eye on this Stack Exchange thread about Ruby for beginners and try out some of the suggestions I found there.
-Attend the next local Rails Girls workshop.
– Watch tons of RailCast tutorials (although I get the impression these may be a little advanced)
– Simply decide what app I want to build and just start already!?
This last step is the one I am most looking forward to but also most dreading! What happens when I hit a snag? Do I know enough to start?
Clearly it won’t be all easy. Still, to peek under the hood of the technologies that are ever more intertwined with our lives is well worth the effort.