
Codecademy and the Future of (Not) Learning to Code - audreyw
http://www.hackeducation.com/2011/10/28/codecademy-and-the-future-of-not-learning-to-code/#.Tqw6dBzo7gw.hackernews
======
kamens
I find this to be incredibly short-sighted.

Educational tech pundits are so quick to judge new ways of learning based on
the content they have _right now_. I'm incredibly excited by things like
Codecademy (and obviously Khan Academy) _because_ what we're seeing is the
very beginning.

From the article: "If you were to sit me down in front of a blank IDE and ask
me to build something, I wouldn’t have any clue how to begin. (And the fact
that I know what an IDE is probably sets me apart from a lot of novice would-
be programmers.)

I can set a variable..."

Go find either A) a bunch of college freshman who just took their first couple
programming classes or B) a bunch of self-learners who just read their first
chapters of a programming book, and I bet you'll find similar feelings.

I don't know if it'll be Codecademy or any other product that exists right
now, but I do know that a tool that helps anyone learn how to program is
something that's worth the chase. Let 'em get started.

~~~
viscanti
I guess I don't understand the Author's sense of entitlement here. Someone
took time to build a tool to help her learn to code, and she found it
difficult. Different people learn in different ways. For some (many?), making
it fun and adding badges is a way to keep the motivation going when things are
confusing. I don't think the Codeacademy guys are trying to build the perfect
tool for everyone, they're trying to build something that works really well
for some people.

~~~
vasco
What sense of entitlement? She's only expressing that she would like to be
easier and clearer. Are these not valid wishes? I did not interpret her text
like you at all... Oh well

~~~
willpower101
I think she's expressing her desire for it to be even more in depth. Not
necessarily easier and clearer. Founder said it's coming though :)

------
zds
I'm one of the cofounders of Codecademy. I posted this on Audrey's blog, but
I'm posting it here as well. Thanks!

I’m glad you’re learning to code. In fact, I was in the same position a few
years ago. Since then, I’ve tried everything - books, college classes, videos
and more. For me, and for hundreds of people we’ve talked to, none of these
traditional approaches, though useful for learning history or literature,
helped it ‘click’ for us in learning to program. My cofounder, Ryan, has spent
the past couple of years helping developers at Columbia learn how to apply
their theoretical computer science skills to actually programming. He’s taught
hundreds of Columbia students the basics (and beyond).

Before I start, I just want to point out that Codecademy is new. We started
working on the project in the middle of August and released it a few weeks
later. The money we raised is not just a show of support for what we have -
it’s a sign that people are excited about the future.

I’ve been very upfront with everyone we’ve spoken to so far about what you can
learn on Codecademy. At the moment, the “Getting Started with Programming”
course is indeed very basic. It’s meant to show people that programming can be
fun. As you said, you won’t come out of one course as an awesome developer (as
I can sadly attest). Then again, you won’t come out of a freshman computer
science course with the ability to be an awesome developer. It’s a long road,
and that’s why developers are a hot commodity nowadays.

We only have three courses up right now. We’re working on hundreds more in
other languages and at various skill levels. While you can’t learn the full
stack from Codecademy now, you will be able to shortly.

Lastly, our experience has been that the badges and other aspects are a
crucial part of the experience we’re creating on Codecademy for most of our
users. If you ask most people what stopped them from reading their entire
programming book (and we’ve talked to hundreds of people), it’s almost always
that they aren’t motivated enough. In school, learning is motivated by report
cards and teacher expectations. We hope we can build a motivational experience
that pushes anyone to program - not just the stereotypical developer. We’ve
made a conscious effort to reach out to underrepresented demographics who are
interested in learning to program. You’ll see the fruits of those efforts in
coming months.

Above all, we’re open to feedback as we grow. I just hope you’ll look at what
we’re doing as a first attempt - not the final one. Please let me know if you
have any other feedback.

~~~
alinajaf
> If you ask most people what stopped them from reading their entire
> programming book (and we’ve talked to hundreds of people), it’s almost
> always that they aren’t motivated enough. In school, learning is motivated
> by report cards and teacher expectations. We hope we can build a
> motivational experience that pushes anyone to program - not just the
> stereotypical developer.

Badges and achievements are awesome when done right, but will only go so far
with motivation. Real, intrinsic motivation will come from realizing that you
can create something with the skills you've learned. If you could somehow
capture this in Codecademy I think you could score a decisive advantage
against the traditional tutorial/book learning model of learning to program.

Context: I'm currently working on a spaced repetition app that schedules
Japanese vocab/sentence flashcards for you. While it has achievements/badges
for behaviour that's conducive to your Japanese learning, it also finds native
content on the internet that you're likely going to be able to read 90% of
(based on the vocab cards you've done well on). Realizing that you can
actually read Japanese content for native Japanese (i.e. you can actually
_use_ the skill you're learning here) is the biggest rush of motivation I've
experienced. It pushes you to go on and see how much more you could do, way
more than any badge or achievement could.

~~~
Luyt
Sounds great, where can I find this app?

~~~
alinajaf
Still in development, but we'll be starting a closed beta around January.
<http://blog.japanalicious.com> for updates.

------
bmahmood
I'm teaching myself to code right now, and have tried 3 different introductory
courses/guides, including CodeAcademy. The problem I've faced with each one is
I'd learn the same thing (methods, arrays, variables, conditional statements,
etc) but was never able to piece together the practical use. I'd get what
if/then clauses mean, and what arrays do, but never could grasp their broader
functionality or use case in an actual program.

I recently started taking Stanford's CS106A class online, and its the only
thing that's really clicked for me so far. The first few weeks teach you the
same thing as other guides, but they create an introductory program for you to
test out the basics, and help you learn the methodology of programming.

From there is where I realized what's lacking in most "learning-to-code" intro
courses: they'll give you the tools to code, but don't help you learn the
methodology of coding. I realize now its a very different mindset, and if you
don't actually solve problems with those tools, its difficult to learn
conceptually.

Hopefully CodeAcademy can crack this issue of helping people learn how to
think like a programmer, and not just show the tools that programmers use
essentially.

~~~
cantbecool
Here's the little secret: Find something you want to create, and build it.
It's as simple as that, bmahmood. You have to have that inner fire to build
something.

If you're interested in web applications, check out
<http://ruby.railstutorial.org/> It's free and an excellent resource for a
curious learner like yourself. At the end of it, you will have created a
tangible web application that you could even show your friends.

Best of luck!

------
mmphosis
_I’ve opted to learn JavaScript, mainly because I think it’s one of the
essential building blocks of the Web._

I would say that JavaScript is (Not) essential, not essential at all.

The building blocks of web software are the agnostic components of LAMP
(operating system + web server + database + backend CGI processor.) And, we're
even removing some (all?) of those building blocks. For the front-end apps on
the web browser platform, maybe start by painting, then learning HTML, then
CSS, then JavaScript. Use JavaScript sparingly for special effects and extra
help, but not as the main line of your story.

The most useful code, is code that is not even written because you don't need
to (especially if you're not sure how to code in the first place), and code
that gets removed is even better. And, interfaces that don't show themselves
are a big improvement too.

My advice would be learn how (Not) to Code. Still, be persistent and learn how
to code, but go even further and learn how not to code.

------
Caballera
I've given codecademy a try and must say while it's fun to get through the
task as a non-programmer who's trying to learn it's confusing. Often I can
complete a task but then not really understand what I just did.

I'm trying to teach myself how to program for Android and find that pretty
difficult. I do know HTML and CSS but when it comes to finding current, good
information on Android I'm having trouble. I've ended up having to resort to
purchasing books.

With HTML and CSS I learned at the P2PU
<http://p2pu.org/en/groups/all/?school=school-of-webcraft> which I think is
terrific if you get a good group and instructor.

------
rguzman
i mostly agree with this. the way you learn how to code is the same way you
learn anything else: by doing it. that is, you want to know so bad that you
try to do it or someone forces you to do it. that's 80% of the battle.

mentorship, tools, and pedagogy (and badges!) probably make up the other 20%
of the battle, though. codeacademy fits there. i don't know if what they have
is effective or not, but surely they are smart enough to know that whether
their courses are effective is very important to their business. hence, they
will tweak, iterate, and improve to enhance that.

~~~
waynecolvin
I first seriously(?) learned how to code by finding a used Pascal book and
reading it thoroughly. That was some time after getting my first computer and
not knowing where to find a compiler! (I'm not counting forgotten Logo from
summer class long ago or using elaborate triggers in a MUD.) I had serious
learning problems getting far past that unguided. Finally learning C from some
lecture notes was a growth spurt though I had looked at some C before that.
Trying to calculate the fewest coins to add up to a sum and finding optimal
new coin took like a couple weeks! LOL

------
tedkalaw
I am kind of surprised by this, especially given all of the positive comments.
It took Audrey's post to make me realize that if I were reading HN, a lot of
those positive comments would be, well..technical people.

So now I'm torn. My girlfriend is a graphic designer who wants to learn to
code, and I'll probably have her give CodeAcademy a shot. And then maybe
CodeSchool, since I have a subscription.

How have the non-CS/programmers of HN learned to code? I learned programming
in a CS context, so I don't really know how to tell people where to start.

~~~
ralphsaunders
I taught myself to code (HTML, CSS, and a small amount of PHP — Wordpress)
while I was doing a Graphic Design ND. I think the hardest part for me, like
Audrey, was trying to understand what a lot of the terms mean and also the
concepts behind them.

I distinctly remember following a basic HTML & CSS tutorial and not being able
to work out how to get the CSS to style the HTML. The example code worked
fine, but the relationship between the two wasn't explained so when I wrote my
own it didn't work.

I only learned of semantics 12 months after starting with HTML + CSS. It would
have made a massive difference if someone had pointed me to a beginners guide
(online & free, of course) that explained the way the web was born and how
HTML is a way of assigning meaning to a document.

I think a lot of the problem is the people writing the tutorials and resources
for this kind of stuff want to teach people something, while the people
looking for this stuff want to learn it. Perhaps this is why a lot of Google's
results for these kind of things are forum threads and other discussions
(usually filled with outdated or plain wrong information, I might add).

~~~
willpower101
I find myself saying this a lot and I mean no offense but HTML and CSS aren't
code. If you can't build a binary search and sort then it doesn't count ;)

~~~
willpower101
I will never understand why some things are downvoted. Anyone with the power
to do so knows that HTML is not a programming language and not indicative of
hacker prowess.

------
coryl
That read a bit like a kid reading how to do math, but never actually
practicing it, and then complaining how text book doesn't actually teach you
math.

------
cloudhead
I have to agree. This is _not_ how you learn to code, and I'd say the reason
this is only coming out now, is because others knew better.

