I wish HN users would submit the actual content, rather than having to click through Mashable or TechCrunch. I'm not going to enrich them by clicking on their ads, anyway. Just point to the original content, thank you very much.
Frustratingly, Mashable doesn't directly link to Codecademy. It instead points the hyperlinked name to another page on its site, and obscures the relevant URL behind what you might naturally consider to be another Mashable page.
They should try showing less contempt for their readers.
Nah, not really. You can consider the term “programming language” to refer only to those languages capable of computation, but then you’d have to include LaTeX and CSS3, because they’re both Turing-complete. Where do you draw the line?
Probably the most reasonable way to cut it up is to treat programming, markup, and styling languages as subsets of computer languages. They all overlap to varying degrees, and Turing-completeness is entirely separate—Magic: The Gathering is Turing-complete, and nobody is calling that a computer language of any kind.
I guess it depends on what type of person you are, what type of rules you use to distinguish things. So I am always looking for isomorphisms and equivalence relations. So to me if you are Turing complete then I can define an equivalence between you and a programming language. So Html5+css3 goes in. You can encode turing complete computations into Magic the Gathering? Then yes MTG + Appropriate Encoding can be talked about in the same sentence as programming language.
Whether or not these languages can also be found in the Turing tarpit is a separate thing.
The point isn't that your rules are a bad way of defining computation. The point is that your rules are basically irrelevant as far as deciding what an acceptable language for an online course would be.
Markup languages, even ones that are utterly incapable of encoding even a trivial computation, are way more relevant to computer literacy than Magic: The Gathering. I can guarantee you a beginner will learn more if I teach them how a computer interprets Markdown or HTML than if I teach them how any general computation can be embedded in a card game.
I for one am with you. We were only talking about reasonable ways to divvy up the different categories of language, which is only tangentially related to the article.
You'd have to be very green to find w3schools to be any use, and even still, it would you bad advice too often.
Speaking as someone who develops html and css professionally (among other things), no they aren't programming languages. To call them as such would suggest some sort of logic, which unfortunately isn't present.
It takes maybe two years using them professionally most of your working days to become an expert. Everything after that is monotonous, repetetive drudgery.
Html5 is a disorganised mess and the wonderful css3 is vendor-prefix hell. I know a lot more of both of these languages than a sane person would want to, and I need a new job. The DOM is a handicap. The front-end of the web is broken.
All anecdotes aside (I started in HTML and VB, gotta say the VB was more useful to me as someone who didn't go on to be a professional programmer), maybe there's some poll they took to see where people started. Maybe there needs to be. I could see a case where people typically start with a easy-to-grok language like HTML. For one, it's quick to see progress in HTML proficiency.
I'm just graduating with my BS, and I just know general tag usage in html like <img> <video> etc and absolutely no CSS, because I have never made a website or tried to.
My only attempts at javascript were demoing webgl and then I wanted to throw my screen at the wall.
So something like this is nice - I should know how to make web sites, if only to say I know how. Its a good skill.
I completely agree. If I were getting started now, I would probably start learning JavaScript as my first programming language. Along with that I would want to learn HTML and CSS, but to say that most new programmers get started using HTML and CSS as their first languages seems a stretch to me.
That's absurd. They are a set of rules that dictate how a browser lays out media. That's a programming language to everyone but a computer science purist. The question of whether I can use these layout rules to find the 2,000th digit of pi is totally irrelevant.
I regard them as instructions to be processed by something which can actually evaluate those instructions, like a browser. Writing css and html is no more programming than writing a word doc is. The resulting file has information and layout but it's totally static.
I wouldn't call them a language, and they're the main part of my job.
Well, regardless of how useful they are in production or how many livelihoods depend on them, they are simple for a beginner to understand the concepts of. They lay the groundwork for more advanced classes that go into web creation such as Javascript and Ruby. Many people versed in HTML go on to learn Javascript next, because that's the next logical step and next increase in complexity.
Codeacademy is really good, it's helped me brush up on my Javascript for one thing.
But as for creating and contributing content, their terms [1] are a bit draconian. They specify complete ownership of anything you contribute to the site, and aside from your right to delete your contributions, it appears that there's no way to export content.
I'm no lawyer, perhaps someone here is: do their terms prohibit reusing my own contributions in another venue?
I'm not a lawyer either, but as I read it the rights are similar to many other User submitted content sites. They aren't required to make it easy for you to get your content off their site, and any content you leave on the site they have a free license to use on the site. However they do not claim ownership of code you may have written when used/hosted elsewhere. I find it difficult to believe that anything you write on there would be something that would take you more than 15 minutes to recreate in a local editor... but that may just be me.
Thanks for your comments, indubitably. I'm the cofounder of Codecademy. I'd love to hear your concerns - shoot us an email at contact (at) codecademy (dot) com and we'll discuss terms.
I don't know if you agree, but I think that there could be multiple-language lessons where you have the same task to complete in different languages at once, or maybe a multi-part thing where the output from one is used in the other to complete a single lesson.
I think that might attract some of the more seasoned folks as well.
Yes definitely. You could do that now using our course creator tool (http://www.codecademy.com/creator), where different sections could be teaching a different languages.
Also related to that is teaching one language in terms of the other "Introduction to X for Y programmers".
http://news.ycombinator.com/item?id=3789022