
A New Codecademy - codecondo
http://www.codecademy.com/blog/136-we-re-learning-too-a-new-codecademy
======
austenallred
Damnit, Codecademy, you're so close. As someone who had to bang their head
against the wall for years to learn how to program, you're now doing a great
job solving steps 2, 3, 4 and 5 (whereas before you did a great job solving
steps 4 and 5). But for people starting out, the problem is that _this is all
still theoretical._

Sure, you are now actually building a project, but still only in this cute
little console. What is a text editor? What is hosting? What does DNS mean?
How can I make what I typed into my text editor show up on mydomain.com? What
do I actually do with all of this HTML, CSS and JavaScript you're teaching me
how to write?

"Let's build the airbnb website" is infinitely better than "this is a 'for
loop in JavaScript,'" but it still doesn't solve the main problem of
understanding how I can build technology. Solve that problem, and the
motivation to learn to program goes up 10x, because all of the sudden it's
real and it's live. Stop teaching us how to dick around in apps you built and
teach us how to make something _real_.

~~~
kyro
I agree. I've struggled for years with programming. I would complete every
Codecademy-like course or tutorial I could find, only to be left feeling as if
I just learned how to go through the motions of programming. I always knew
there was a significant void in my understanding that prevented me from both
fully grasping the basic ideas underlying programming and making any
meaningful progress. The cliche advice people had was "ok, now create your own
project," which is much, much, much easier said than done for a beginner. I
have a million projects I started and never finished because I got sick of
just not understanding what I was doing. SO answers were utterly baffling and
copying/pasting them got me nowhere. What is a data structure and why are they
using that one? Why would one algorithm be better than another? And for web
programming: What're the basic components of the internet? What are HTTP
requests? What are all these protocols? How much should I know for the task at
hand? It was so overwhelming. Thankfully I found a set of books that have been
wonderful in methodically building my knowledge and skills.

There is so, so much more a beginner should be exposed to than for loops and
cleverly slicing lists.

Edit: For those asking for books/resources, here is what I would suggest to
someone just starting out. I chose python for myself because I wanted a
language with broad potential (ie web development to statistical and
biological computation). It's absolutely critical that you complete _every_
exercise provided.

Programming basics:

\- How to Think Like A Computer Scientist -
[http://www.greenteapress.com/thinkpython/thinkpython.html](http://www.greenteapress.com/thinkpython/thinkpython.html)

\- Think Complexity -
[http://greenteapress.com/complexity/thinkcomplexity.pdf](http://greenteapress.com/complexity/thinkcomplexity.pdf)

\- SICP - [http://mitpress.mit.edu/sicp/](http://mitpress.mit.edu/sicp/)

\---

Web/Development basics:

\- Team Treehouse modules on git, shell commands, DNS, etc
-[http://teamtreehouse.com](http://teamtreehouse.com)

\- How Does The Internet Work? -
[http://www.stanford.edu/class/msande91si/www-
spr04/readings/...](http://www.stanford.edu/class/msande91si/www-
spr04/readings/week1/InternetWhitepaper.htm)

\- Udacity Web Dev course -
[https://www.udacity.com/course/cs253](https://www.udacity.com/course/cs253)

\---

Django basics:

\- Getting Started with Django -
[http://gettingstartedwithdjango.com](http://gettingstartedwithdjango.com)

\- Two Scoops of Django - [http://twoscoopspress.org/products/two-scoops-of-
django-1-6](http://twoscoopspress.org/products/two-scoops-of-django-1-6)

~~~
ptaffs
People learning to code would be best advised to find a volunteer group who
need code writing (even if they don't know they need code writing), or an
open-source project. I agree learning to write code is only half the
challenge, dealing with constraints like capacity, users, deadlines, hosting,
stubborn colleagues, unsolvable problems it's easy to work-round or ignore
with theoretical exercises. You only get those in a real-world job or real-
world volunteer effort. The student may also find a mentor there.

~~~
sanderjd
You allude to the solution in your last sentence, but I think "find an open
source project" is pretty bad advice for someone who is really brand new. Most
open source projects have very ad-hoc project management. There is typically a
big bucket of stuff that needs to be done, but very little direction on how to
decide which things you can and should actually do. More experienced
developers can go in and muddle around semi-blindly until they figure out a
reasonable starting point, but that's _really hard_ for less experienced
people to do. It really takes a mentor willing to do that triage - "maybe this
would be a good place for you to start" \- but few open source projects seem
to be forward-looking enough to provide that level of mentorship.

------
joshdance
Side note, I was surprised there was no 'a' after code. I have been reading it
as codeAcadamy the whole time. Interesting how something looking different can
cause you to pay more attention.

~~~
ScottWhigham
Wow - me too. If you actually go to
[http://www.codeacademy.com/](http://www.codeacademy.com/), it forwards you to
this URL. I don't know if this is "new" or not.

~~~
zds
this is not new! our name has always been codecademy.

~~~
ScottWhigham
That's so funny - just like @joshdance said, I always read it as
"Codeacademy". At least you have both URLs. I'd love to see a blog post one
day that explains why you've chosen this name vs. that name. Co-decademy is a
meaningless word to me (that's how I read it - "co" as in "codependence")
whereas Code Academy makes 100% sense to developers.

------
jumasheff
If you are really motivated, knowledge you gain from Codecademy will suffice
for you to be able to build real-life apps. Have you heard about a non-tech
guy (Sam Fellig) who have built one of Time's Top 50 sites of 2013? Check this
out: [http://www.codecademy.com/stories/99-how-to-outgrow-the-
fear...](http://www.codecademy.com/stories/99-how-to-outgrow-the-fear-of-
starting)

As for me, Codecademy helped me to understand Python basics and I've built a
web-scraper. Now I'm learning Django.

Codecademy is of great use for developing countries -- it's text-based and
light-weight, meaning it's the best choice for mobile-connectivity-only
learners:

\-- you pay less for data usage. (Mobile data is getting cheaper, but to take
Udacity's CS 101 I had to spend something around $100 for data packages).

\-- you can go through its lessons using USB-dongle even with EDGE/GPRS (2G)
connectivity. In our country 3G is available only to 50% of the population,
the other half of it use 2G.

It's interesting, how popular is Codecademy in developing countries? What's
the portion of the learners coming from African or exUSSR states?

------
AdrianRossouw
I'm feeling like a bit of a spammer posting about this so often, but I think
it's just coming up so often because it's a real need.

I've started writing a series of posts about the fundamentals of full-stack
development. It came out of what I have been explaining some students I have
been mentoring recently.

[http://daemon.co.za/2014/04/introduction-fullstack-
fundament...](http://daemon.co.za/2014/04/introduction-fullstack-
fundamentals/)

My goal is to explain the different layers, the concepts at play in them, and
how they interact with each other.

"It's a roadmap, not a recipe book". The format is going to end up being
similar to this post about microservices I built.

[http://wayfinder.co/pathways/53536427f7040a11002ae407/a-fiel...](http://wayfinder.co/pathways/53536427f7040a11002ae407/a-field-
guide-to-microservices-april-2014-edition)

This is the outline so far :
[http://i.imgur.com/qsGqFFk.png](http://i.imgur.com/qsGqFFk.png)

~~~
ceasarby
Thanks for the links, Adrian.

I was looking for quality learning material on front-end deveopment last week
and came across this site: [https://noisebridge.net/wiki/Front-
end_Web_Development](https://noisebridge.net/wiki/Front-end_Web_Development)
Jeffrey Faden is teaching that free class starting 2012. Videos available on
YouTube, links can be found on his website.
[http://jeffreyatw.com](http://jeffreyatw.com)

~~~
AdrianRossouw
thanks man!

bookmarked.

------
it_learnses
Just out of curiousity, what does codeacademy get out of this? How do they
make money?

------
zds
i'm the cofounder and ceo of codecademy -- would love to hear what everyone
thinks!

~~~
cozuya
Not that its your fault but your fonts look terrible on Win 7 on Chrome.

~~~
Silhouette
The DIN variant is almost illegible in places using Firefox on Windows 7 as
well. :-(

------
melkior
I like the re-design, I really do, but it's hard to be impressed when the same
lessons that were broken a year ago are still broken and impossible to finish.

~~~
zds
which are you finding errors in? we keep a pretty vigilant watch on broken
exercises (there's a dashboard in our office and we respond to bug reports as
well) -- would love to fix these ASAP. thanks!

~~~
wcarss
I just tried the CSS Buttons course on a lark, because I felt I'd be able to
breeze through it. I may have hit "Reset Code" at some point, because around
checkpoint 4 or 5, the CSS was wiped out and the HTML was back to square one.

I quickly retyped everything, but... only the HTML changes seemed to take
effect. I tried targeting the CSS to a class I put on the HTML, then to an id,
then to the div itself, and a bunch of different simple litmus tests for
whether or not it was working like just applying a color, but nothing worked.

After each change, the preview pane would re-render, so it was picking up the
changes. I tried viewing the preview in full screen and refreshing, but
nothing got the CSS to apply again.

Anyway, the site looks great. Congratulations on the revamp regardless of
nitpicky bugs.

~~~
set01
I did the CSS Buttons project earlier this week and had the same issue you
described. After checking the Q&A Forum, I realized I needed to include the
stylesheet. That fixed the issue. I don't think this is a bug with that
project.

------
logikblok
I've been using Codecademy and Dash from the General assembly over this year.
I feel like they've equipped me with the foundations to start making and doing
things around the web. I've now also started contributing on Mozilla Webmaker
which is super exciting. Are there any more learning environments like these
or any projects that a newbie like me can contribute to?

~~~
ceasarby
Here's the HUGE list of websites teaching all types of
code:[http://habrahabr.ru/company/mailru/blog/215487/](http://habrahabr.ru/company/mailru/blog/215487/)
I'm sure you can find something interesting there. Use translate.google.com if
you don't understand Russian, but all links are in English.

~~~
logikblok
This is incredible thank you very much.

------
zx2c4
I'm interested to learn about their sandboxing. They allow a lot of user-
submitted code to run server side. How do they sandbox this? What level of
isolation do they use?

    
    
        - If language-runtime patches, then there are escapes likely.
        - If chroot, then there are escapes.
        - If linux namespaces, then there are escapes.
        - If ...
    

Which level did they go for?

~~~
amasad
I used to work there, not sure if things changed (we've given talks and
written about it in the past): Language-runtime patches + user permissions
(setuid) + rlimit + Linux containers + runner boxes have no access to web
server , db server etc, so even if you root, nothing much to do.

~~~
zx2c4
They still return code that runs javascript in the main codecademy domain, so
you could potentially modify the servers to return tainted data to steal
cookies and whatnot.

~~~
amasad
They don't return code that run JavaScript. All code is executed on the server
and only a string of the result is returned. For web courses, evaluation is
done client-side and is properly sandbox. See [1] to learn more about the
client-side sandboxing.

[1]
[https://github.com/Codecademy/stuff.js](https://github.com/Codecademy/stuff.js)

------
eriktrautman
This is definitely a step in the right direction. For the past year, students
have come to Odin after completing Codecademy and asking "okay, I know some
syntax, now how do I actually build something?". I'm glad you've got your
sights set on getting them out of the sandbox and toward the real world. The
empowerment of knowing they can actually build something on their own is
totally addictive and you've until now left students still hungry for it. I
hope your new offering really helps them take that first concrete step into
real-world development and I'm excited to see what it can do.

Plus then I get to focus more on the other major issues with online education
like helping students work together :)

[1] [http://theodinproject.com](http://theodinproject.com)

~~~
ceasarby
Cool beans! Will defly sign up for it. ;)

------
WoodenChair
I think Code Academy's front page is too much like baby-talking to an adult.
It starts "People write programs to make computers do things." then they tell
you to try using your computer to add numbers as if that's impressive. Is the
layperson supposed to be surprised that his computer can work as a calculator?
The entire front page is extremely condescending.

Obviously it's worked for them this far, so it must be somewhat enticing to a
certain demographic, but I think there's room for less condescension.

~~~
mattlutze
I've been training some of my non-technical staff to support some of our
lower-level tickets, requiring them to read and modify some HTML files.

At the beginning for most of them, we open a simple nearly empty page with a
few tags and their eyes gloss over.

"Coding" is an incredibly opaque wall to the non-initiated, and, while using a
simulated command line to do math won't be surprising, if someone is going to
go from 0 to initiated, do not underestimate the size of the baby steps
needed.

------
rjf1990
This appears to be a step in the right direction, but it still doesn't seem to
bridge the gap between "this is syntax" and "here's how to set up your IDE,
Apache server, development environment, production environment, ect".

Codeacademy helped me learn syntax, but that's about it. After the first few
lessons, I had learned all I needed to. What kept me from building the product
was all the other stuff (production environment, IDE, ect).

------
plunchete
Great! IMHO the main problem with CodeAcademy was not teaching how to build
things. I have several non-tech friends who have done 30 exercises about loops
but have no idea when to use a loop.

I think this is the right direction. Give a more complete view and do it step
by step so the person learning can be rewarded and keep the motivation.

------
davidwparker
Hi Codecademy: I'm on Chrome on my Android and it's telling me to download a
modern browser (such as Chrome)... you may want to update your 'browser
detection' or at least design with mobile in mind (especially just blog
posts).

------
goeric
This is really great but I think a cross between this and Treehouse would be
best. It's close. But if there was some way Codecademy could have a plugin for
Sublime Text and have it be connected to the courses it would be pretty
amazing.

------
phorese
Viewing the homepage
([http://www.codecademy.com/](http://www.codecademy.com/)) from within
Germany, the translation is all over the place. Paragraphs, buttons, titles
are randomly English or German.

~~~
zds
can you shoot us a bug report so we can look into this?

~~~
masonhensley
Link:
[http://help.codecademy.com/customer/portal/emails/new?custom...](http://help.codecademy.com/customer/portal/emails/new?custom\[labels_new\]=contact)

------
ishake
Really like the redesign, but where can I actually start the Airbnb website
project?

~~~
zds
it's going live on monday

~~~
hanley
It would be helpful if the blog post would say that explicitly. Or maybe I
just missed it? I spent a while on the website trying to figure out how to
access the new content because I felt the blog post implied the content was up
already.

------
acbart
Something that really surprises me, as a new researcher in CS Education, is
that people aren't doing much research on CodeAcademy. I hope that people
within CodeAcademy start publishing any findings that they get.

------
mirashii
A small frustration, but browsing from within a HN reader I got put behind a
browser detection wall. I can perhaps understand this for some of the courses,
but it seems unnecessary to read a blog entry.

------
adamzerner
I don't really get how it's different. It probably would be more effective to
make a video or at least some more screenshots to _show_ how it's different.

------
tomasien
I was so pumped to be a part of this, and the new interface they're launching
soon is really a step forward in terms of real, implementable skills. Love
these guys!

------
sgdesign
Congratulations on the redesign, and thank god you're finally getting rid of
Lobster!

------
innonate
Hoping they add Objective-C to the list soon! I'd really like to learn that
next.

------
cryptex_vinci
I like codecademy, but it sometimes not good enough in detecting mistakes.

