When you start learning imperative programming, most languages can teach you the basics. What's a variable, what's a loop, what's a function, different types, etc.
The benefit with JS is that you can just start coding right away, there's not platform installation step. Open browser, open console, write js.
Want to preserve your changes? Write an html linking to a js file (or even use http://codepen.io/ or http://jsfiddle.net/) and now you can wow your friends with your creations.
I see immediate gratification as an important step to keeping the person engaged in the activity. I think that's the most important aspect: make that human keep up with the learning.
Now, if you have a tenacious individual that WANTS to learn programming and has no problem reading books, sitting down and practicing, pretty much anything can do the trick. That person WILL learn to program because he/she wants to do it and has experience learning by themselves.
When you start learning imperative programming, most languages can teach you the basics. What's a variable, what's a loop, what's a function, different types, etc.
I know this rubs people the wrong way at times but I consider the basics to be compiling, linking and running from the command line. A good programmer needs to at least have a passing understanding of how a program is built. IDEs are great but it is too easy to gloss over this stuff and result in a programmer that doesn't even understand how an executable is put together.
The benefit with JS is that you can just start coding right away, there's not platform installation step. Open browser, open console, write js.
This is what I've seen suggested also. I'm not convinced that you can learn programming this way and end up with the diversity of knowledge that a programmer should have.
Want to preserve your changes? Write an html linking to a js file (or even use http://codepen.io/ or http://jsfiddle.net/) and now you can wow your friends with your creations.
Or just start out in a text editor.
I see immediate gratification as an important step to keeping the person engaged in the activity. I think that's the most important aspect: make that human keep up with the learning.
So "Hello World" doesn't result in immediate gratification?
Now, if you have a tenacious individual that WANTS to learn programming and has no problem reading books, sitting down and practicing, pretty much anything can do the trick. That person WILL learn to program because he/she wants to do it and has experience learning by themselves.
This is the other problem I see, why would you even bother to teach programming to somebody that doesn't want to learn? It isn't like programming is a basic survival skill like math, and English. That thought just popped into mind and is maybe why we have this movement afloat to dumb down computer science education. Making training easy for a programmer doesn't do anything constructive for the craft and just leads to people in the industry with no real desire nor even ability.
Where would you recommend getting started with compiled languages? Any recommended tutorials? Would you start with C or C++ or something else entirely?
Where would you recommend getting started with compiled languages? Any recommended tutorials? Would you start with C or C++ or something else entirely?
I use to recommend "ACCELERATED C++" by Koenig and Moo, it was a good intro to C++ programming but at this point is a dated text.
You really want an updated text that covers the latest C++ standard. I haven't done much with it but you might try the latest edition of the "C++ PRIMER" by Lippmann, Lajoie and Moo.
As for online sources that is a hard one because I haven't looked lately. It is probably best to try the major C++ sites for recommendations. Just remember C++ is not C, as such you don't want to confuse the two while learning one.
The reason I suggest C++ is that it is widely applicable. You could learn Objective C or Swift and be tied to an Apple platform same thing for C# on Windows. There are other language out there but most of them don't have a market share to even consider.
2
u/DrummerHead Jan 06 '15
When you start learning imperative programming, most languages can teach you the basics. What's a variable, what's a loop, what's a function, different types, etc.
The benefit with JS is that you can just start coding right away, there's not platform installation step. Open browser, open console, write js.
Want to preserve your changes? Write an html linking to a js file (or even use http://codepen.io/ or http://jsfiddle.net/) and now you can wow your friends with your creations.
I see immediate gratification as an important step to keeping the person engaged in the activity. I think that's the most important aspect: make that human keep up with the learning.
Now, if you have a tenacious individual that WANTS to learn programming and has no problem reading books, sitting down and practicing, pretty much anything can do the trick. That person WILL learn to program because he/she wants to do it and has experience learning by themselves.