Is the next second language JavaScript?
greatschools.org
greatschools.org
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
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.
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?
> 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...
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!
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?