My adventures in programming began in the Fall of 2011 when I took Nancy McCracken’s IST 256: Application Programming for Information Systems course. I was almost instantaneously hooked. I had taken only a handful of School of Information Studies courses at that point and had yet to find a concentration area that truly clicked. I liked networks, but I didn’t love them. I liked systems administration, but I still longed for the feeling that I had built something on my own—without Active Directory’s help. I began to believe that programming could be my niche after finishing my first project and not only enjoying it, but wanting more.
As the semester went on, I continued to love the feeling that I had created something, but I began to grow frustrated with the programming language in which the class was taught. Java is a wonderful, robust and sometimes trying programming language. I had no experience with a different language, but I couldn’t help but feel that there must be an easier way. I spent too many nights wondering ‘what on earth is a buffered reader?’
Fast forward to this past Spring semester and I had accepted a position as the Teaching Assistant for the iSchool’s Java Applications Programming course as well as an intern role this Summer at Rounded Co. in the Syracuse Tech Garden. I went to a few orientation sessions at Rounded Co. and was introduced to the language that would change everything for me: Ruby.
I began learning under Brian Weinreich’s instruction and he recommended sites that would be useful in my endeavors. Thanks to TryRuby.org and Rails for Zombies, I quickly gained traction and learned to do things in Ruby in 5 lines of code that used to take me 15, maybe 20 lines of code in Java. I was completely blown away at how much simpler Ruby’s syntax was than Java’s.
Well then, why aren’t all classes taught in Ruby?
Although I will admit that I haven’t touched Java since I wrapped up my responsibilities as a TA, I am not here to tell you to skip out on Java or C in favor of ‘easier’, startup-worshipped languages such as Ruby or Python. Unless you’re looking to learn a language based strictly on how cool the name sounds. In that case, go with Python every time.
However, if that’s not the case, I would suggest not overlooking Java or C. They’re complex languages, and they cover a large number of features that are present in other languages. I think that I appreciate – and am so enamored with – Ruby because I came to it already knowing the basics. Not only that, but I appreciated the simplicity and cleanliness of the Ruby syntax. I believe that any first programming language is going to be a hard one. I was fortunate enough to have the opportunity to learn mine in a college environment where I had someone making sure that I wasn’t falling behind—and most importantly—that I was doing the work.
I tend to be an independent learner. This is a trait I think is shared widely throughout the tech community. But, no matter how little structure you feel you need to learn, I would still recommend learning your first programming language in a university, community college, or otherwise ‘in-person’ environment if you can. Being able to raise your hand and ask why your code won’t run is infinitely easier than searching through countless forums online. Additionally, colleges tend to teach languages like C and Java. They may be more difficult, but you’ll benefit in the long run from learning the basics with them. Not only because many job opportunities will look highly upon you knowing them, but because they will make it easier to broaden your horizons once you decide to move on to your second language, or your third, or your fourth….
Now that you’ve heard about my experiences as an amateur programmer, I’d love to hear about yours. Did you have success with a different approach? Reply in the comments, email me at SRuddy@syr.edu or tweet at @samiiruddy, I’d like to continue the conversation!