

Show HN: LearnStreet - The Best Place to Learn How to Code - teamls
http://www.learnstreet.com
Hey HN -<p>We’ve built a site where you can learn Python, Ruby, and JavaScript in a fun, engaging and interactive way. How is LearnStreet different from other learn-to-code sites you ask?<p>UI/UX: A key aspect of LearnStreet’s courses is its distinct UI/UX. In order to see this, simply sign up!<p>Multi-modal: Our courses are designed for beginners, and we have multiple ways to help you learn, including live chat, Twitter, Q&#38;A, hints, videos and background material. If you don’t know which language you want to pick up, check out our teaser videos in the Courses page! http://www.learnstreet.com/lessons/languages/javascript<p>Code Garage: If you already know how to code, check out Code Garage where you can try your hand at cool coding projects like building a Mastermind game or a Sudoku Solver. http://www.learnstreet.com/cg/simple/projects/javascript<p>Dev Tool: We’ve culled the web to provide some key resources beyond the core programming language that will help you gain a better understanding of what it takes to become a competent coder. http://www.learnstreet.com/dev_tools/<p>We just launched about a week ago and would love to get your feedback.  We are looking for expert coders to help build out our other courses so check out the Contribute section on our site as well.<p>Coding Starts Here!<p>-The LearnStreet Team
======
justjimmy
Still waiting for a code teaching site that actually explains how everything
fits together.

What's HTML used for? What's CSS? What's the bigger picture? What's the
difference between java and javascript? Why are there so many languages. What
are all these terms you are spitting out? Can we get some real world analogies
so we can grasp some concepts?

But every single lesson from all these startups starts with type 'this' in or
1+1.

I don't think coding lessons should start with 1+1. It should start what
coding is, what the language is, why I am learning it and what I could do with
it and most importantly, what is different about it compared to rest of the
languages. You got Python, Java, HTML, CSS, Ruby, C+ and the list goes on. I
think it'd be very beneficial to have a map, that shows every day stuff that
people use and list how it was built. ie: iPhone are built on 'X', Android are
built on 'Y', Websites are normally built with 'Z', but you can add 'A', 'B'
and 'C' to make it even better etc.

To me, the approach taken by these sites are almost identical. And they're all
missing something…

~~~
russelluresti
Actually, most of that information is unnecessary to start coding. In fact, it
actually works as a barrier to entry. People who don't understand a
programming language aren't going to understand the different nuances between
Python and Ruby.

Instead, you teach development by having people start coding as soon as
possible. You get them playing with the code, manipulating values, and seeing
the outcome. Once they see that they're creating something and they enjoy
doing it, that's when you explain it to them. Khan Academy has taken this
approach and it has proven extremely effective in getting children to start
coding.

It's really basic game theory - you don't have to explain the entire backstory
or all the controls to get someone playing a game. You drop them in a
situation and go "OH SHIT YOU'RE UNDER ATTACK - PRESS X TO ATTACK." You give
them one instruction and get them hooked. After that, you can then go through
the basic tutorials that explain the menu system and or what numbers mean or
how you level up or whatever. But the point is to explain things to them as
they need to know them and not before.

The point is to get people coding as quickly as possible. If someone has to
read 60 pages of introductory text, they're not going to do it. It's asking
for too much up front.

~~~
lists
I'm not sure what the research on that methodology looks like, but speaking
anecdotally as someone who's teaching themself how to write dynamic websites,
I find that methodology to be very unengaging. '1+1=2' and 'Hello world'
console input may hook a younger mind, but I need to see a bigger picture to
know whether or not this is going to amount to anything I might be interested
in. I shouldn't have felt like I was _willing_ myself through CodeAcademy at
times. My time as an adult is limited, so it's important that educational
products like these forge a framework for my creativity (and therefore
interest) as quickly as possible.

Learning piano, Norman Monath's 'How to Play Popular Piano in 10 Easy Lessons'
did exactly this, whereas a lot of the material I ran into did things the
classical way, which was entirely boring.

------
swanson
I'll be "that guy".

You should change your Github OAuth permissions. I'm never giving you access
to private repos - and would only give you access to public repos if you were
creating a repo for me to do the Code Garage stuff (it isn't clear if you do
that or not).

I'm happy to auth with Github if you just request my public profile.

~~~
msarchet
Same here, it was a instant nope.

~~~
catshirt
+1 for feedback's sake. i'm not trying to save anything to my github. i just
want to try a garage demo so i can see if it's worth sharing with anyone.

------
teamls
Hey HN -

We’ve built a site where you can learn Python, Ruby, and JavaScript in a fun,
engaging and interactive way. How is LearnStreet different from other learn-
to-code sites you ask?

UI/UX: A key aspect of LearnStreet’s courses is its distinct UI/UX. In order
to see this, simply sign up!

Multi-modal: Our courses are designed for beginners, and we have multiple ways
to help you learn, including live chat, Twitter, Q&A, hints, videos and
background material. If you don’t know which language you want to pick up,
check out our teaser videos in the Courses page!
<http://www.learnstreet.com/lessons/languages/javascript>

Code Garage: If you already know how to code, check out Code Garage where you
can try your hand at cool coding projects like building a Mastermind game or a
Sudoku Solver. <http://www.learnstreet.com/cg/simple/projects/javascript>

Dev Tool: We’ve culled the web to provide some key resources beyond the core
programming language that will help you gain a better understanding of what it
takes to become a competent coder. <http://www.learnstreet.com/dev_tools/>

We just launched about a week ago and would love to get your feedback. We are
looking for expert coders to help build out our other courses so check out the
Contribute section on our site as well.

Coding Starts Here!

-The LearnStreet Team

~~~
intellegacy
I don't understand why we cant skip around the lessons in the python tutorial.
I don't need to start at lesson 1; i want to skip around to different lessons.

~~~
lutusp
> I don't need to start at lesson 1; i want to skip around to different
> lessons.

There's a good reason for this, which I will explain with an analogy:

Lesson 1: Write the Great American Novel.

Lesson 2: Learn how to write engaging, readable short stories.

Lesson 3: Learn how to write internally consistent essays.

Lesson 4: Learn how to write coherent paragraphs.

Lesson 5: Learn how to structure grammatically correct sentences.

Lesson 6 Learn how to use and spell common English words.

Lesson 7: Learn how to enter text on a keyboard.

Get it? Lessons have a natural order, and each lesson requires what was
learned beforehand.

~~~
intellegacy
I get it. It's just that I'm not a beginning programmer. I mean, unless the
site is only for novices with zero programming skill, you're requiring all
intermediate programmers to relearn stuff they've already mastered.

Also, I wanted to browse around the lessons in order to evaluate the quality
of the site so that I could decide whether to recommend the site to non-
programmer friends.

~~~
lutusp
> It's just that I'm not a beginning programmer.

That should have been the first thing you said. :)

But such tutorials are obviously for rank beginners, experienced programmers
don't use these kinds of sites. Unless it's a dramatic jump, like from COBOL
to Haskell, to learn a new language they go straight to the language's
documentation:

Python 2:

<http://docs.python.org/>

Python 3:

<http://docs.python.org/py3k/>

~~~
AurSaraf
I'm mentoring a few people learning Python, and I wanted to quickly evaluate
LearnStreet and decide whether to recommend it.

With Codecademy I could do that, here I cannot. So Codecademy it is.

Skipping is a really important feature for those who you hope would promote
your service for you :-)

~~~
aprasad
We will be adding this very soon.

------
jfarmer
Disclaimer: I'm a teacher at Dev Bootcamp (<http://devbootcamp.com>).
Everything I say comes from love -- if I didn't care about this deeply I
wouldn't bother to remark in the first place. :)

Very nice! We can always use more absolute-beginner tutorials in the world.

Just started the Ruby tutorial:

"Great! So what just happened here? To begin with, let's define what you typed
2 + 2 as instructions. The ruby console reads your typed instructions,
interprets it, and then acts on the instructions the way you gave it. This
step is called evaluation. Instruction when complete are called an expression.
If the instructions you have typed are incomplete (for example, if you typed 2
+ and hit enter), this console will show an error message. The instruction you
typed, 2 + 2 is an expression. It is important to remember that evaluation of
an expression always returns a value. This value is what is shown as result on
the console. In this case, 4 was the result of the evaluation."

If someone honestly knows nothing about coding, you've probably just lost them
right there. Questions a beginner would ask:

* What is a "ruby console?"

* What instructions? I typed "2+2."

* What does "interprets" mean?

* How can instructions be complete? Were they ever incomplete? How do I know when they're complete?

* "Returns?" "Value?" "Result?"

In a few sentences, with jargon highlighted:

I type _instructions_ into a _console_ which turn into _expressions_ when
they're _complete_. The _console_ _evaluates_ the _expression_ and _returns_ a
_value_ , which is _shown as a result_ on the _console_.

A beginning programmer won't have the mental models necessary to make sense
any of that. It's context-free. Most of those words have no prior
associations, and those that do will lead them astray. Metaphor is your
friend.

For reading, I recommend Bret Victor's essay on Learnable Programming:
(<http://worrydream.com/LearnableProgramming/>) and Mindstorms by Seymour
Papert ([http://www.amazon.com/Mindstorms-Children-Computers-
Powerful...](http://www.amazon.com/Mindstorms-Children-Computers-Powerful-
Ideas/dp/0465046746)).

~~~
teamls
Thanks for the feedback! We're always iterating on our course content, so
we'll keep this in mind.

~~~
jfarmer
Read Mindstorms before you do. :)

~~~
keeptrying
I second this. For anyone trying to teach computers (and anything else), this
will save you from repeating all the mistakes that all the other computer
programming education startups are making/will make in the future.

Again, just to be clear, this book is really really really really important.

Hope that landed. :)

~~~
jamesbritt
Mindstorms? I did a quick google and there are assorted books with that title
(after you filer out "lego"). None seemed to be relevant to this discussion.

Who wrote it? What year?

~~~
jfarmer
I linked to it at the end of my comment, where I also mentioned who wrote it.

Here it is, again: [http://www.amazon.com/Mindstorms-Children-Computers-
Powerful...](http://www.amazon.com/Mindstorms-Children-Computers-Powerful-
Ideas/dp/0465046746)

Lego Mindstorms are named after it.

------
alexholehouse
Looks great, really nice. Minor point, I have a feeling (and can't find
evidence to the contrary) that Twitter's stack is actually Java, not Ruby [1].
They may have changed back since then, but I can't find anything about it.
Maybe I'm totally off though, and other parts of their stack are rails. I
don't know - I'm not really a webdev guy...

[EDIT] - any reason for the downvote? I'm totally fine with being wrong, or
have I just completely missed something?

The reason I brought it up was because when you select Ruby, one of the
motivational messages opens with, "Twitter uses Ruby to power 400M incredible
tweets every day."

[http://www.readwriteweb.com/cloud/2011/04/twitter-drops-
ruby...](http://www.readwriteweb.com/cloud/2011/04/twitter-drops-ruby-for-
java.php)

~~~
jitl
Twitter runs a whole range of different technologies, as you can see from
their Github page [1]. Much of their performance-sensitive code is Scala, but
they also run Python, Ruby, C, and Javascript tools.

Their front-end, however, remains Ruby. The link you posted is just about
search infrastructure.

[1]: <http://twitter.github.com/>

------
aaronbrethorst
Admittedly IANAL, but I'm very confused about how this doesn't infringe on
Amazon's trademark for "TeachStreet":

[http://tess2.uspto.gov/bin/showfield?f=doc&state=4008:ir...](http://tess2.uspto.gov/bin/showfield?f=doc&state=4008:ir2pel.2.1)

[http://www.geekwire.com/2012/exclusive-amazoncom-buys-
teachs...](http://www.geekwire.com/2012/exclusive-amazoncom-buys-teachstreet/)

------
kyro
Although these types of sites (Codecademy, etc) are great and teach absolute
beginners all the basics of programming, they've left me lost as to how to
continue developing my skill set. I've hit a wall for some time and am stuck
in this strange better-than-a-beginner-but-still-terribly-amateur middleground
where the resources I keep coming across are either tailored for fresh
beginners or more advanced programmers.

Does anyone have any suggestions or good resources that are tailored to my
level?

~~~
skyhook_mockups
Everyone is different. Speaking for myself, I never found books or tutorials
useful. My mind simply balks at the prospect of doing exercises for the sake
of it.

Instead what worked really well for me is to find a practical problem that I
wanted to solve (maybe with the goal of making money from it). It turns out
that just about any interesting project that you dream up for yourself will
have aspects that are outside of your current knowledge/ability. Then as soon
as you hit these parts start looking for reference materials, documentation or
tutorials specifically related to this problem. Before you know it you're
learning new stuff.

And the upshot of this approach is, that if you stick with it you may end up
with a functional product at the end, which you can sell.

Also read other people's code. I find it really humbling to read well crafted
code. It also motivates me to continue refining my own code.

~~~
RegEx
And I'm the exact opposite. I love exercises. You should find what works for
you and stick with it until it doesn't work for you! For a while, I would read
a section out of a programming book, think to myself "Could I explain this
better?", and if I could, I'd write an article. If I came across an exercise
in a book, I'd think to myself "What if these requirements had to be met? What
if this needs to be read in from a keyboard? A database?", and I'd expand the
exercise into a full fledged project. Just do your best to keep yourself
interested. Find a reason to stay excited.

------
eranation
I like it, I agree with the GH comment, I used twitter, your tutorial is
great, though a bit long, didn't wait till the end. I would add a "skip the
basics" option for people who already know adding numbers. but besides that
looks great, but how are you different from all the others? (See partial list
here <http://eranmedan.com/post/22359967135/codeschools>)

------
jkeesh
If you are looking for a new approach in learning how to code, check out
CodeHS. While LearnStreet is an amazing tool, and another great way to be
introduced to programming, the site immediately feels very similar to
Codecademy. A responsive console is very cool, but I don't think it is the
best way to connect with absolute beginners.

Our philosophy is that the key to teaching beginners is on providing help from
real people, and that is what we are doing at CodeHS. Would be grateful for
any feedback from the HN community.

------
JPonczek
LearnStreet is a great introduction to the world of coding. They have a bunch
of really awesome Code Garage projects, and I especially like making the
games, and Conway's Game of Life. Their teaching methods are very welcoming to
someone who hasn't been exposed to this stuff yet, and I recommend anyone who
is even remotely interested in learning how to code to give it a try, you
won't regret it.

------
quad_copter_cat
It wouldn't work for me in Safari 6.0 / OSX 10.7.5. Never made it past the
green progress bar.

------
rurounijones
Comments:

When I log in with Github why do I have to enter my name and email on the
sign-up form?

You guys already got permission to read that from github, if you want to offer
flexibility then at least put in the defaults and let me edit them.

Also "Email Id" could be named better.

------
sdesai
LearnStreet coming out with a bold statement, but from a quick review of the
site, they are offering something different. This is going to be a big market
for the service that cracks the code...pun intended.

------
DGCA
I can't play around with code after the lesson is over. As a UX analyst, this
bothers me. The interpreter shouldn't just shut down after the lesson is
complete.

------
zio99
I'm logging in with Facebook but I keep getting this error:

    
    
      The page you are looking for is temporarily unavailable. Please try again later.

~~~
teamls
Hey, please email us at hello@learnstreet.com and we'll help you out!

------
JosephHatfield
I'd like to see a course that teaches new languages by first teaching me how
to read existing code before asking me to write a single program.

~~~
lutusp
The argument is often made that understanding a language comes more quickly by
writing and executing small examples than by reading examples.

------
swagv
Liking the Code Garage stuff at least. Not your typical "hello world" fodder,
which I never found too practical.

------
bromang
the indentation the code editor shows does not always reflect the actual
indentation of the code. so i had to c+paste it into another window and then
back again to get the code to run...

~~~
teamls
We will be releasing changes to the code editor which will resolve the
indentation issue in Python.

------
noirman
It's like Codecademy for Builders/Makers. LOVE IT.

------
bazookaBen
here's a suggestion: start immediately with a cool project, like a game or a
web server.

Beats the "here's 2+2" type problems.

