

Why Codecademy is overrated and missing its target audience - corinamackay
http://www.attendly.com/why-codecademy-is-overrated-and-missing-its-target-audience/

======
alissasobo
Wow. I really disagree. I suppose it's hard for me to decide if I am a "total
beginner" or "slightly intermediate" beginner, but either way, I approached
the Javacript Codecademy about 2-3 months ago with a promise to myself to
finish it, no matter what, and as a true beginner in my own mind.

I found the lessons and explanations generally very strong. There is A LOT of
review, and I mean a lot. So, if one teacher's explanation doesn't work for
you, wait 5 exercises and a huge review of the concepts will soon follow.

I understand the argument that there is "no context." Often, I find myself
wondering how I get from recursively counting sheep to building a real-live
website/app. But, big point here: as a beginner, I can't handle context. I
need something very boiled down. As far as Codecademy teaching me the basic,
boiled down concepts, I feel it has succeeded amazingly with this. I am almost
done with THE ENTIRE javascript track and have learning tons. In fact, I can
now pair with my husband and vaguely get what he is doing. "Oh yeah, there is
your array of arrays and objects!" type stuff.

In reference to getting stuck, yea, okay sometimes that happened to me. The
first thing I did was look at their Q&A forums, and someone usually had the
same problem as me. There was already several solutions and explanations
posted. I read through their code and then blindly fixed my own. If a student
is copying and pasting, well, they are just cheating themselves. I don't
believe there is anything wrong with looking at the correct code and then
going back to your own and rewriting it a few times to make sure you
understand. This was my approach. If this didn't work, I was proactive by
going to the internet and googling things. This often worked to solve my
confusion and taught me things about how "real coders" solve their problems.
If I was still stuck, I could always wait until my husband got home from work,
but this has rarely ever occurred. (I know not everyone has this resource and
all, but he wasn't that crucial to my codecademy learning as I did codecademy
during the day by myself). I have only felt a few times, in the entire
Javascript track, of over 200 or so exercises, that I had to ask a programmer
directly for help.

Overall, I really cannot relate to the qualms others have with codecademy. If
you are expecting something magical to happen... well... yea, they don't
magically make you a hirable Javascript expert in 2 short months, and, yea,
not every exercise is great. Every learner, no matter WHAT platform they are
using to educate themselves, should/must take some responsibility for helping
themselves out of problems by going to the Q&A or to the web, or occasionally,
asking a programmer friend (most of us have at least one of those). I believe
that with these tools available, the RARE Codecademy issue I ever have is
quickly solved. But again, even needing to do this for me was very rare, as
the lessons were generally good.

So, this beginner gives them an A, after the whole Javascript track completed.
I know a lot more now than I did before, and I credit Codecademy for that. I
don't think they sell this as a "2 months to becoming a Javascript ninja."
They did, however, tell me I would learn a lot about basic concepts, and that
I did.

~~~
ianstormtaylor
"The first thing I did was look at their Q&A forums, and someone usually had
the same problem as me. ... If this didn't work, I was proactive by going to
the internet and googling things. This often worked to solve my confusion and
taught me things about how "real coders" solve their problems."

This. I don't understand why people think having to Google something here or
there is a complete failure of Codecademy. If anything, that gives them a
better idea of how programmers solve their everyday problems.

It would be really interesting if Codecademy attached keywords or Google
phrases to each step in a lesson. If they sensed that someone was stuck, they
could show the phrase they recommend Googling, and explain that that's
probably what a programmer would do. Or they could just sneak in a step in a
couple lessons that involve Googling something. I really think that is a huge
part of the programming mentality that should be taught.

~~~
eostyx
2nd.

When making the lessons they should include a quick Google button somewhere
inside. Learning to use Google to seek or ask for help is vital. So many
problems would be solved in seconds or minutes if people simple just knew how
to look for the answers to the questions they're asking...

------
mikecane
Thank god _someone_ has said this. I want to learn JavaScript. I tried
Codecademy. My god, it made so sense whatsoever. There was context for
nothing. "Why should I learn this? How does it fit?" "Just shut up and do what
this prompts tells you to do, like a beast of burden." This is why I loved the
top post at HN today: Learnable Programming. If only _he_ was teaching
JavaScript online, it'd make sense and be an actual breeze.

And for the record, yes, I already know to close HTML tags and that typos will
kill code. And what the hell a browser is. And that JavaScript is named that
to cash in on Java and should properly be called ECMAScript.

~~~
pzaich
I think context is the hardest part of teaching web-application development.
You have so many moving pieces that need to be taught before someone can build
something tangible that often-times people get stuck or discouraged before
they hit this point in the learning process.

~~~
josephcooney
When you sit back and look at it web application development is a total
disaster. If you tried to conceive of the "ideal" UI platform (or even a
"good" one) you would never, in a million years, come up with what we've got
now. It is a testament to the skills of everyone in the industry that things
like google maps, Gmail etc. can be built on this sky-scraper of bananas. No
wonder it is hard to learn.

------
wamatt
Codeacademy is awesome! The industry had to start somewhere and they've done a
stellar job, but it could be even simpler.

That said, the issue the author appears to be having is specifically the
disconnect between the marketing, _'easiest way to code'_ and the reality.

For example, my gf who is a non-coder but has modest computer literacy skills,
tried it out for the first time last week (doing the python track). She was
going fine until about 10 minutes in and didn't understand some really
elementary concept, she spent the next 30 minutes trying to figure it out, got
frustrated, and then gave up.

A quick win might be to focus on the community aspect more, helping each
other, live chat rooms and forums, and explain the UI a bit better. There
might even a tutoring revenue model somewhere in there...?

Technical people have years of built up mental models that we take for
granted. You really have to take someone like your mom and put her on the
site, to realize just how complicated it is for the masses.

------
tianshuo
I have used codecademy to teach my gf's brother (12) who is a computer n00b
that wants to make computer games, I'm tutoring him while he's using the
computer. We hit a brick wall at assignments. He could not understand why
`a=a+1` is okay, he could not under stand how `x=1` is okay and `1=x` is bad
syntax. Codecademy does not explain how programming is different from algebra.
Codecademy test if basic concepts are understood, eg. difference between
`hello`, hello and hello() I think n00bs w/o tutoring wouldn't even get past
further stuff.

------
bitsoda
The problem with Codecademy (and most programming instruction) is that users
are learning in a vacuum with no real direction. Learning for the sake of
learning rarely works, unless you're an autodidact extraordinaire. Maybe I'm
completely wrong, but in my experience, I learn best by doing -- specifically
when working toward a concrete goal. Codecademy is a decent option if you just
want to refresh or pick up the basic syntax of a language. But for in-depth
learning -- as with all things in life -- you'll learn best by doing,
especially if you need to know that certain something to progress.

~~~
timpeterson
@bitsoda, completely agree

------
capkutay
I try to stay out of these "learn to code" conversations due to being
crucified for believing that it takes years to become a programmer who can
create anything of value or significant complexity.

I've helped TA for CS classes and aided new CS students in college. The intro
classes start with Python, second level classes move on to Java and OOP.

Students really struggle and bust their behinds to pass these classes and
become good coders.

When websites try to sell an equivalent education in a matter of weeks, I
always have trouble believing them.

On the other hand, I've had some good experiences with LCTHW by Zed Shaw (I
used it for refreshing myself in C and regex). But I think it was helpful
mostly because I already had the coding mindset.

I'd like to see a "Learn to code" website really focus on "warping" the
average mind into a coder's mind. Attention to detail, thinking holistically,
and iterative problem solving should be the teaching goals for any resource
that wants to teach beginning coding.

~~~
eru
> I'd like to see a "Learn to code" website really focus on "warping" the
> average mind into a coder's mind. Attention to detail, thinking
> holistically, and iterative problem solving should be the teaching goals for
> any resource that wants to teach beginning coding.

Introductionary university-level mathematics does that to. Just take a random
university's, say, Linear Algebra course.

------
JoshTko
I started codeacademy about a month ago. (I am a complete beginner at
programming). The article sums up a complaint e-mail I sent the other day.

The upside for codeacademy for now is that there are few viable alternatives
and there is little information about comparable sites.

------
sudonim
I spent probably 10 hours on codecademy. I've done PHP, Ruby and some CS
classes in college, but day to day I don't write _that_ much code.

I wanted to get some fundamentals on Javascript to be more capable with D3.js.

If I didn't have all of that previous knowledge, I would find it really
difficult to get going.

I wouldn't call Codecademy overrated. But I'd say that geeks like me (and
probably you guys) are the wrong people to be evaluating Codecademy.

If they're not testing out their teaching methods on n00bs, they should get on
that right now.

~~~
teach
I'm a high school computer science teacher, and I use CodeCademy in my intro
Web Development course.

For my use case, it's not bad, but the students are working through the
lessons _in class_ with me there to help them when they get stuck. And they
get stuck a LOT. The lessons are improving (slowly!), but they've still got a
LONG way to go.

I can't imagine anyone is teaching themselves to code anything using
CodeCademy that couldn't have done just as well using a tutorial online.
Anyone with the natural aptitude to make it through their lessons could teach
themselves with damn near anything.

~~~
michelleclsun
I have the same experience as a student at Hackbright, a 10 week programming
course. Prior to hackbright I took a lot of codecademy courses, but it never
got me from newbie to 'yes I can do this' programmer. Yes, I can follow the
exercise and figure out how to pass each quiz, however, I believe CodeCademy
essentially suggests that you have to follow 1 way to do things to be correct,
which is not how problem solving (and programming) works.

At Hackbright however, I found learning with CodeCademy to refresh some
knowledge is helpful, especially with a teacher around to ask questions. Most
of the time, the questions confirm that my solution is also valid, but it's
just different from the CodeCademy answer.

------
dchuk
Why is this being posted on Attendly's blog? This seems suited for a personal
blog, I don't think a startup's product blog is really an appropriate place to
lambast another product/startup/project.

Not to say the opinions expressed are wrong, just that this stuff shouldn't be
mixed with your startup's product blog.

------
jfdimark
I think there are 2 key issues at play here:

1\. The difference between user expectations and delivery

2\. Not enough of a narrative and different levels of motivations

1\. This is where you expect something to be really easy, or really amazing,
or really beautiful but instead get something simply easy, amazing, or
beautiful. The fact it doesn’t have the superlative means a slight let-down or
disappointment.

When I tackled Hartl’s RoR tutorial, he made it clear that even just getting
starting by installing and configuring the tools and environment can be a bit
of bitch, particularly for new comers. Sure enough, when I encountered problem
after problem, I was mentally prepared that this could happen. I wasn’t
discouraged.

I think Codeacademy would be well served to provide some kind of contextual
introduction for how difficult – but ultimately rewarding – programming can
be. Rather, it makes it sounds like a stroll in the park with some friends
that can be picked up at the drop of a hat. This is inevitably going to lead
to frustration when the user finds this isn’t the case. Their expectations are
not matched by the reality.

A second aspect to this is that programming is different than other pursuits
you may do in your spare time, like sports, writing or drawing. For example if
you’re a bad pool player, writer or drawer you can still play, write and draw
‘till your heart’s content and reach the end of the game/book/picture. It
doesn’t matter whether you’re good or not.

But with coding, you can’t just offer up any old attempt at the code and have
a program run for you. It has to be correct code. So it becomes the equivalent
of saying why not come play an awesome game of pool with your friends, but
when you turn up there’s a cranky coach who won’t let you take a shot unless
you have perfect form and execution. Or a writing class where the teacher
crosses out your work in red pen and won’t let anyone read it until it is
grammatically perfect and conveys your meaning in perfect clarity and
beautiful prose! I can imagine these activities would quickly get frustrating
too in such a context, and wind up losing your interest unless you were
prepared for such rigor.

2\. The second issue with Codecademy is a lack of narrative. Other comments
point out that there are multiple entry points and it doesn’t always get you
to follow a linear path. This is something that services like Treehouse try to
improve upon (I started learning HTML and CSS with them) by bringing elements
of gamification to the tasks. You win badges, unlock new lessons, get treated
to funny videos, take quizzes and it generally feels like you’re progressing
as part of a narrative.

The problem with learning to code is that most exercises are pretty dull and
repetitive. They’re like Mr Miyagi’s “wax on wax off” lessons – it’s hard to
see the point to them without knowing the end goal. The reason why Daniel
LaRusso continues to do this annoying tasks if because he has a really
powerful motivation to do so. He knows he wants to master karate to stand up
to bullies and prove himself in the sport.

I think for anyone who casually just thinks ‘learning to code sounds fun’ then
they’re doomed to failure, because it is hard work and has a lot of obstacles
to overcome. Whereas someone who has a business idea or a problem they really
want to be able to solve will happily stick with it, because they have a
vision for what it will help them achieve. I’m not sure how Codecademy could
possibly cater to these different types of individual. One amazingly cool way
though, would be ask at the beginning “describe what you want to build” and
create an algorithm that could match the types of functionality required with
the video content that would help you build it. Then you’d have a really,
really compelling, tailored narrative that helps you to your end goal. Then,
for the more casual user, they could try and think of more fun, practical
applications they can work towards building to give them a sense of purpose.

As everyone has referenced though, Codecademy – and others like it – is an
amazing step in the right direction, and will only get better with time. The
fact that people care about it is a major indicator that it is on the right
track and will ultimately succeed.

------
austenallred
Yeah, it's not perfect, but their goal was obviously to get you to jump
straight in to coding. No explanations, no videos, just "bam, you're coding."
Could they do a better job? I'm sure they could, and I'm sure in the future
they will. But couldn't every product?

------
conrey
I actually agree with much of this. Having attempted to "re-learn" to code
since my time in college I got several lessons in before hitting a wall where
the on-site messaging failed to be helpful anymore. I loved the concept, and
was more than able to find help with Google and friends, but to keep things
on-site and cohesive, they'll have to improve some of that.

PS- I know that most developers google answers as much as they write things

------
dataisfun
I think Udacity does an excellent job of structuring intro coding lessons.
They provide the proper motivation (build a search engine) and explain the
theory behind what you're doing.

~~~
pjnewton
I agree, I've tried a bunch of different "Learn to Code" sites out there and
think the Udacity's "Intro to Computer Science" course to be the best, IMO...

------
zachgalant
If you want to really learn to code as a beginner, you should check out CodeHS
(<http://codehs.com>). You get tutoring and help from real people, and the
programs you write are actually really fun and interesting.

The focus isn't really on syntax but more on problem solving with a computer
and helping motivate why you should write good quality code.

The idea is that you become a good programmer by having people read your code
and give you good quality help and feedback.

------
lquist
A beginner, who is willing to put in a bit of effort and that wants to
discover the magic and beauty of programming?

Check out the Abelson/Sussman lectures:
[http://groups.csail.mit.edu/mac/classes/6.001/abelson-
sussma...](http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-
lectures/)

------
shloime
I really don't agree with this. I had no experience with coding, but after
messing around on Codecademy I was able to put a website together >
<http://outgrow.me/> Isn't that the whole point?

------
sgold1
codeavengers.com is way better...you dont have to search through forums if
your answers are your wrong.

------
jaseemabid
I have to completely agree with this

