

Is the next second language JavaScript? - sonabinu
http://www.greatschools.org/parenting/learning-development/5894-javascript-class-learn.gs

======
hzay
Marginally relevant story:

A few months ago I was trying to get my siblings interested in "doing things
with computers". I decided to do this by showing them how powerful a few lines
of code could be. I had already tried to get them into programming puzzles
[topcoder, etc.] and that didn't go anywhere, and they were being taught
boring things[1] like string manipulation at school.

I showed them some html and css tricks [because I'd recently picked up css]
and they were strangely unimpressed. While they watched I wrote a quickie
chrome extension that moved the Compose button in gmail to a different
location. Change facebook chat box size. No reaction. These were bright kids
who'd never shown the slightest interest in programming and I was once again
despairing that they never might[2]. At a whim I created a rails twitter clone
while they watched and fidgeted, and told them to go to
<http://192.168...:3000/twitter> on their computer and post a status message.
They did that and it showed up on my computer. Their reaction was astonishing
- they simply could not believe how little it took to get that to work!

I don't know exactly why that particular example worked but they were hooked
instantly. Now they have written chrome extensions and launched tiny websites
and are checking out some new things. :)

My takeaway was to get to the aha moment as soon as possible while trying to
get someone interested in something.

[1] boring for someone who hasn't programmed before and doesn't see the point
of learning to manipulate strings

[2] not that anything is wrong with not programming but I want them to give it
a chance

------
akurilin
I wonder if JS is perhaps a bit too high level and internally complex to be a
great first programming language to be taught to people with no CS
fundamentals. Fully internalizing front-end development is no trivial task,
and teaching JS out-of-context just by itself might not be super helpful, even
though it's probably better than jumping straight to Java, which is also quite
magical internally.

On the other hand I can see someone making the same argument about a low level
language like C. One could claim that without full understanding of assembly,
compilers, the ISA, and hardware-level optimizations you don't really gain
much insight into computing.

Reminds me of the never ending debate about whether they should teach Java or
assembly as first language in a CS curriculum.

There's probably no right answer, you just got to start somewhere and you'll
figure things out on the long term. The web is ever more relevant and JS won't
go away for a long time.

~~~
dantheman
I'd say the best 1st language would either be scheme or smalltalk.

~~~
andrewvc
I have mixed feelings about this. On the one hand, I agree completely, on the
other, being a 'first language' has really hindered scheme in the minds of
programmers. Many (ridiculously) think of it as a ridiculous teaching language
they were forced to learn.

------
happypeter
Don't care if it's JS or anything, as long as programming, or as I love to
say, crafting is taught at schools, it will be great.

First of all, Making money by creating beautiful and useful things is such a
good lifestyle.

Secondly and more importantly, it's about how to be better educated. Back to
the years when I was at schools, I was told taking exams are of top
importance, everything I learned seemed so boring. Things changed when I was
20sth, and I started to make things, that's when I really start to love
knowledge, be it art, writing, music, because everything now starts to make
sense.

Back to JS, there is no better place than the web to meet smart people, show
them what you make, have fun and be cool. So JS, why not?

------
8ig8
I found this organization more interesting than the article. I was curious due
to the density of advertising. According to their 2011 audit, the site
generated more than $2.6M is advertising revenue that year.

> Website activity income generated on the Organization's website from
> advertisement placements is a function of website page views and price. The
> Organization's current partners are education- related firms, real estate
> and mortgage professionals, consumer companies, and Google. Website activity
> income is recognized as it is earned and for the year ended December 31,
> 2011 amounted to $2,671,405. Related website activity expenses are
> recognized as incurred and consist of expenses allocable against website
> activity income based on managerial assumptions. Website activity expenses
> amounted to $873,813 for the year ended December 31, 2011.

Source:
[http://www.greatschools.org/catalog/pdf/2011_GreatSchools_Au...](http://www.greatschools.org/catalog/pdf/2011_GreatSchools_Audit.pdf)

------
zachgalant
We are teaching basic JavaScript to beginners at <http://codehs.com>

We've made some simplified libraries that make everything a bit simpler to get
really cool results, and kids have been loving it and learning a lot!

------
hugh4life
Unless you're in a hurry to teach someone RIGHT NOW how to program, I'd wait
till next year when JS.Next, Kotlin, and Dart are ready and stable.

~~~
1337p337
Personal opinions about Javascript aside, it does cover several fundamentals,
is available on every platform, and is established enough that it will
probably (sadly) not be going away any time soon. If you're going to teach
kids a language, maybe one that isn't gone by the time they're out of school
(which is a distinct possibility for the languages you've named; a lot of good
languages died within years of their arrival) would be best.

------
sonabinu
To understand coding at school is like learning basic mathematics in school.
Once you know the basics, you can really build up from there.

------
fourstar
Languages change all the time. To single out one language in particular and
label it as "the language" to learn is erroneous.

------
tomasien
Start the "no, it should be _insert my preferred language here_ debate".

Yes, it should be Javascript, and probably starting with some basic jQuery
stuff.

Yes, Javascript syntax sucks, but if you

1\. Set up a basic text document correctly 2\. Load jQuery 3\. Right some
really basic html/jQuery 4\. Open it in ANY browser

It works. Boom. That's it. Every browser in entire world, every single time.

My personal suggestion would be to stick to front-end coding for web pages
(HTML/CSS/JS/jQuery) and then for server side teach Python, because the syntax
is easier to think about but actually deploying it is reasonably interesting
and teaches some important concepts. But to get kids excited, it's gotta be
about the front end. Why do you think so many kids these days got their start
editing their Myspace pages?

------
tcbawo
Getting kids interested in programming is a good idea. But, this should be
done early and in stages. Little kids should do something simple like Logo
(maybe with a 3D printer for fun).

~~~
Jare
I keep reading comments in HN about Javascript being too complex for
beginners, and I have no idea what they are smoking. Of course students will
need some 'training wheels' to get started getting results, but the basic
pieces to handle and compute data are dead easy to understand.

~~~
tcbawo
What I meant was that it needs to be part of a curriculum that begins with
early childhood. IMHO, JavaScript is too complex for most four and five-year-
olds. There should be a progression with Logo, MIT's Scratch, etc. building up
to more general purpose languages/frameworks.

