I've tried to teach my friends and acquaintances that are interested in programming, but my curriculums never work out. It seems that the bigger problem for the guys I'm talking about (high school and college age) is self-motivation and drive that they are unfamiliar with from their academic careers. Anybody motivated enough could learn programming because all of the necessary resources and training is freely availab…
I'd say the greatest key to motivating someone to learn and keep learning is to have a feeling they're accomplishing something. Small projects that make it clear the person is getting somewhere and finished in a short amount of time might be the key to that. As we program longer and do much more complex projects, we tend to lose how impressive even small things are, such as building a menu on the command line or taking input from a few html boxes and spitting out a reply. To someone just learning the basics, all of that seems quite amazing I have found while tutoring a friend that was starting out programming.
Others have pointed out that making projects that are of interest to the person learning is also a key. I think combining both of those is perhaps the best solution.
"But while Mr. Crockford, who is immensely knowledgeable in JavaScript, is seen as the Einstein of the JavaScript world, his book, The Good Parts, is not a good JavaScript book for beginners." Why not? Also, does he mean it's not good for people who are just starting to learn programming? Or also for experienced programmers who are starting to learn Javascript? What would be a good book to start with for experienced…
Just avoid trying to explain to a newbie that what closures are and that you can pass functions around. That normaly === "mind blow"
I suspect it's more likely to be "mind blow" for experienced programmers of less dynamic languages than novice programmers. Indeed, if you start by declaring functions as variables you're halfway there.
The way you pass around functions in, say, PHP (or more accurately, the way PHP fakes it by using syntax sugar for eval) is a lot more confusing.
"But while Mr. Crockford, who is immensely knowledgeable in JavaScript, is seen as the Einstein of the JavaScript world, his book, The Good Parts, is not a good JavaScript book for beginners." Why not? Also, does he mean it's not good for people who are just starting to learn programming? Or also for experienced programmers who are starting to learn Javascript? What would be a good book to start with for experienced…
That book is the only one I read. It was quite good for telling me the language features like object notation. But did not really help me get in the mindset of asynchronous callbacks. I learn that myself and I eventually discovered Deffered in JQuery and the rest is history (now I use angular.js)
Javascript must be one of those few languages where you cannot learn from bits and pieces. I learned python, C, shell etc from bits and pieces, but I actually learned javascript the way OP describes.
This is actually quite puzzling and I've been thinking for a bit. Why is it one is unable to learn from the instant utility of javascript the same way one learns instant utility in python, ruby or even C?
Javascript must be one of those few languages where you cannot learn from bits and pieces. I learned python, C, shell etc from bits and pieces, but I actually learned javascript the way OP describes. This is actually quite puzzling and I've been thinking for a bit. Why is it one is unable to learn from the instant utility of javascript the same way one learns instant utility in python, ruby or even C?
With an overall appreciation for languages in general, JS isn't too difficult to pick up small pieces... I'm completely new to JS, but can get by with modifying examples for use in Parse.com's cloud code for instance. I've also heard from non-programmers getting good results with jQuery. I'm now looking to delve deeper into JS through Node.js, but each to their own.
Javascript must be one of those few languages where you cannot learn from bits and pieces. I learned python, C, shell etc from bits and pieces, but I actually learned javascript the way OP describes. This is actually quite puzzling and I've been thinking for a bit. Why is it one is unable to learn from the instant utility of javascript the same way one learns instant utility in python, ruby or even C?
With an overall appreciation for languages in general, JS isn't too difficult to pick up small pieces... I'm completely new to JS, but can get by with modifying examples for use in Parse.com's cloud code for instance. I've also heard from non-programmers getting good results with jQuery. I'm now looking to delve deeper into JS through Node.js, but each to their own.
JS is actually very easy to pick up in small bits. But somehow picking up the knowledge in small bits tend to lead to quite crappy programs. At least in my experience
With an overall appreciation for languages in general, JS isn't too difficult to pick up small pieces... I'm completely new to JS, but can get by with modifying examples for use in Parse.com's cloud code for instance. I've also heard from non-programmers getting good results with jQuery. I'm now looking to delve deeper into JS through Node.js, but each to their own.
JS is actually very easy to pick up in small bits. But somehow picking up the knowledge in small bits tend to lead to quite crappy programs. At least in my experience
That's certainly very true. Like any technology, there's learning how to use it, and learning how everyone else uses it. JS is almost too flexible, allowing programmers to get themselves very stuck - so learning how everyone else uses JS is an essential goal in its own right.
JS is actually very easy to pick up in small bits. But somehow picking up the knowledge in small bits tend to lead to quite crappy programs. At least in my experience
That's certainly very true. Like any technology, there's learning how to use it, and learning how everyone else uses it. JS is almost too flexible, allowing programmers to get themselves very stuck - so learning how everyone else uses JS is an essential goal in its own right.
I think one of the biggest issues with JS is its lack of an intuitively obvious inheritance scheme. Until you get a full grasp of prototypes, you're not going to really know what the all the objects are. Couple this with a lack of namespacing and you can have a lot of trouble structuring large programs effectively.
This is really nice. I've taught JS to several people and the best advice is to try to avoid reading snippets from the web if possible. This is a good approach and I'd also recommend: http://eloquentjavascript.net/chapter1.html
This book has interactive code examples and is endorsed by Brendan Eich which is cool, I guess.