Why Codecademy Didn’t Work for Me

codecademy-didnt-work-for-meAs someone who learned how to code pretty recently, I’m frustrated by the way that coding is taught to beginners.

I wanted to learn coding because: a) I wanted to build a Web app and it’s near impossible to find good developers in this market, and b) I thought coding would be a valuable skill to have (just read the back cover of Douglas Rushkoff’s “Program or be Programmed” if you want to see what I mean).

Like many others, my first stop was Codecademy.

Admittedly, it was pretty cool. There was a novelty of being able to type code into my browser and immediately see what it did. But the novelty wore off fast. I was learning about stuff like variables, strings, and “for loops” – but pretty soon I found myself wondering, “How is knowing any of this going to help me build what I want to build?”

The idea of building anything even remotely practical out of variables, strings, and for loops is like building a skyscraper out of Lincoln Logs. That’s the point where I nearly gave up.

Then a friend showed me the Ruby on Rails Tutorial by Michael Hartl. It seamlessly taught me about not only Ruby on Rails, but also the underlying Ruby language, HTML, CSS, a bit of Javascript, and even some SQL – but most importantly it showed me how to build a web application (Twitter) in a short amount of time.

In his intro, Michael Hartl makes a great point:

“Many beginning Rails developers are excited about making web applications,
and would rather not slog through a 500-page book on pure Ruby before ever
writing a single web page.”

It wasn’t until after finishing the Ruby on Rails Tutorial that I went back to Codecademy. Only then did I really understand why I was learning it and how to apply it immediately.

Now the roles have switched, and I find myself teaching first-time web developers who are where I was only a few months ago. We have to understand that motivation and excitement is an extremely fragile thing. It’s very easy to scare people away from programming (some would argue that those people just aren’t meant to be programmers – but I think that’s pretty elitist).

Imagine a world in which everyone is technology-literate! That’s a world we should strive for.

People are hungry to create, to make, and to express themselves on the Internet. Let’s show them how.

-Mattan Griffel

  • Matthew Collins

    Teamtreehouse and Codeschool? are terrible they’re variants of Codecademy and basically directly related to each other. It doesn’t even explain what you’re paying the $25 for. or why it’s needed.

    I have rewritten a lot of the basic tutorials for Ruby because I’m going to upload it onto youtube and make an actual tutorial out of it but i need to get through all the basics.

    Coding isn’t difficult, it’s the people who create these crap sites that are making it hard.

    • Paul Simeon

      I understand if you don’t find these sites useful, but the people who create those sites aren’t making things worse. They are helping. There were no online sites to learn programming for previous generations. Now there is a plethora of sites — some free, some not — for you to choose your favorite style.

      Learning any large set of skills takes time (often years) and practice. The teaching community is trying to make things better so that it’s no harder than it needs to be.

  • Matthew Collins

    I sent you an email about something I would like you to contact me on Skype about.

  • wiz_kid

    Hey Mattan! As a 15 year old, I am about to purchase your course. I think an excellent follow up may be building iOS apps?

  • McEntire Tate

    Thank you for sharing…..

  • Greg Foley
    • PistachioPony

      All their courses include ability to email teachers!

  • Jared Smith

    Agreed, it’s hard to understand what’s useful about an array, or why you need to use a variable instead of hard coding something. My first programming class taught me nothing of that actually uses for these things. I’ve been a developer for a few years now and I still love learning new languages and new ways of doing things. However my learning experience has to be enjoyable. No one wants to learn English by reading the dictionary, so why should be teach programming like that?

    Code academy wasn’t very useful for me either. I enjoy screencasts and a personable feel to things. Tell me why I’m doing things not just that I can. Another resource that helped me was http://code.tutsplus.com

  • hmart

    OneMonthRails is up to date to Ruby 2.1 and Rails 4.1 ?

  • Guest

    I agree, but only until you’ve gotten your foundation with a course like OMR. The advantage of One Month Rails is that it shows you exactly why what you’re learning is important, and getting a functional app up that you can see and interact with so early on in the course is a great motivator to keep on learning with the course. I’m taking the Codecademy Ruby course and already have a basis of knowledge with regards to HTML.

    Your course has been awesome and I put up a review on my site (http://imaholic.com/2014/07/27/one-month-rails-review-is-it-worth-it/)


  • anon1

    Hi Mattan i found your article by googling code academy + ruby on rails and it really reflects my thinking greatly.

    I have at various times in my life, attempted to learn C++, javascript, FORTRAN, html and nothing ever stuck.

    Like your comments I did slog through code academy for javascript but could never really envisage how learning this bit part components of loops, if’s when’s etc would bring me closer to app or web application development.

    Then i heard about Ruby on rails (from a guest post on Tim Ferriss’s blog)

    I really want to learn quickly and get into the meat of bringing my ideas to fruition, rather than the stop start blind man in the dark confusion i currently have.

    Do you have any systems or tutorials besides Michael Hartl’s initial one that would help me?


  • Clue Wire

    Bob Marlie

    The article which you have posted is great. Your site provided for me much information.Thanks for sharing this information.

  • Mark Coren

    I understand and agree with the frustration that you’re describing here. I think one thing that goes unspoken with all of these “Learn to Code!” sites is that programming is not a procedural process. As you mentioned from Michael Hartl, ““Many beginning Rails developers are excited about making web applications, and would rather not slog through a 500-page book on pure Ruby before ever writing a single web page.” Enthusiasm is great! I’m all for jumping in with both feet and getting wet.

    The nuance that isn’t being shared with all those enthusiastic new programmers-to-be is that, beyond a basic app idea or two, programming is about problem solving. When one chooses not to read the 500 page book on Ruby, part of what they miss is the rationale behind many of the choices and mechanisms that distinguish Ruby from Python, HTML or Java.

    The would-be coder chooses a language in many cases because it was pitched as cool, or is used for some project that interests them. If they crave that immediate gratification of code that works (the “how” of programming), then necessarily the intellectual, conceptual elements of their chosen language (the “why” of programming) are going to be left by the wayside at first. These coding sites are delivering exactly what the aspiring coder is asking for. That coder just doesn’t realize that’s what they’ve chosen.

    So how do we solve this? The only way that I can see to do that effectively is for coding sites to provide some sort of big-picture view of the process to these aspiring bit-fiddlers so they can make an informed choice. Of course, the reason that sites like Code Academy don’t do this is because fewer people would start the journey if they thought the road was so winding. Some who are lucky will stumble across blogs or MOOCs taught by engaging professors like Chuck Severance and dodge the bullet, getting a great introduction to both “Why” and “How”. Otherwise, they’re left to discover the “Why on their own while they race through the “How”. Hopefully, many will stay curious enough to explore programming until those two meet in their mind.

    Now that you’ve had several years under your belt with coding, how do you imagine these sites could make the transition better?

  • http://historycoder.blogspot.com Dan Dalrymple

    I have had some of these same difficulties with CodeAcademy. I also find some of their lessons can scale pretty quickly out of nowhere. I like it as an intro to stuff you have never seen, but on its own it is a bit of a struggle. At a certain point I was spending more time in the Q and A than in the actual code. I just started learning coding a month ago and I am doing this course once I finish the TreeHouse rails course followed by the Hartl tutorial. I have tried a host of different books and sites – if folks are interested I discuss my experience as a total newbie on my blog at historycoder.blogspot.com .

  • Nick Savage

    I enjoy Michael but I love learn ruby the hard way. Your right about codeacademy, I do use it but I go to other parts first to learn then come back to codeacademy and it makes sense then.