Richard Bovell writes JavaScript tutorials for learners, covering topics like 'this', callbacks, OOP, and how to learn the language.
HN commenters recommend it, especially 'How to Learn JavaScript Properly', as a good resource for sharpening JS skills, while noting it had stopped updating.
If "this" wasn't a mistake and a loaded footgun, then why did Brendan Eich himself literally say that "dynamic this binding is an oft-fired footgun" in the "Rationale" section of his original fat "Arrow Functions" proposal?
And why did Douglas Crockford say "this" was "horrible", and that ES5/strict mode was "much less wrong than binding the global object, but is still not right"?
And why is "this" always showing up as #1 in the lists of "10 Most Common JavaScript Mistakes"?
https://www.toptal.com/javascript/10-most-common-javascript-mistakes
>Buggy JavaScript Code: The 10 Most Common Mistakes JavaScript Developers Make
>Common Mistake #1: Incorrect references to this
>I once heard a comedian say:
>I’m not really here, because what’s here, besides there, without the ‘t’?
>That joke in many ways characterizes the type of confusion that often exists for developers regarding JavaScript’s this keyword. I mean, is this really this, or is it something else entirely? Or is it undefined?
>As JavaScript coding techniques and design patterns have become increasingly sophisticated over the years, there’s been a corresponding increase in the proliferation of self-referencing scopes within callbacks and closures, which are a fairly common source of “this/that confusion”.
https://javascriptissexy.com/understand-javascripts-this-with-clarity-and-master-it/
>Understand JavaScript’s “this” With Clarity, and Master It
>(Also learn all the scenarios when this is most…
A bit of advice from someone who is trying to do the same:
- Learn one language/ platform at a time. Also, think about what you want to learn. Web development? Mobile? CS fundamentals? It is very easy to waste alot of time when your are not focussed on a particular goal.
- Try not to get tricked into spending to much time on those fancy looking tutorials. Building something yourself is much more valuable than obtaining meaningless 'badges' and achievements.
- Ruby on Rails is complex and I would not recommend it for beginners. I wasted alot of time doing tutorials that covered random parts of rails that I never used in projects. Again, if you want to learn Rails, start your own project as soon as possible and select learning materials based on that.
- Stick with the basics. Try not to get distracted by frameworks, tools and the overwhelming amount of tutorials available.
for javaScript, have a look at this:
http://javascriptissexy.com/how-to-learn-javascript-properly/
Ruby / Python:
http://learncodethehardway.org/
https://www.udacity.com/course/cs101
rails
http://guides.rubyonrails.org/getting_started.html
good luck
IMO, learn pure js but while learning the basics, get your hands dirty with some frameworks, small side projects or tutorials and workshops. This will help you find what framework you enjoy or really "clicks" with your personal preferences. Its also more fun then learning the syntax and structure of a new language. There will be another framework to learn next month but pure js is going to be around for a while.
Some good resources for learning JS from the ground up (pure js)..
Books (highly recommended):
- Javascript: The Definitive Guide
- Eloquent Javascript
- Professional JavaScript for Web Developers 3rd Ed.
Resources:
- https://learn.thoughtbot.com/javascript
- http://javascriptissexy.com/how-to-learn-javascript-properly/
- http://www.reddit.com/r/learnjavascript/comments/1oq8ns/learn_javascript_properly_omnibus_post_for_the/
- http://jstherightway.org/
For Angular (http://egghead.io) is a great resource for short/dense screencasts (from what I've heard/read)
I made Sideshow because:
1) I always wanted to start a daily digest/newsletter of some kind and I'm super passionate about side projects.
2) I wanted to learn more about JavaScript, Node.js and Redis.
And there it is. It's built with ~300 lines of code of Node.js + Express + Redis, has an admin area to manage links (I called it 'Backstage'[1]) and MailChimp API integration for automated newsletter sending (both daily and weekly).
[1]: http://i.imgur.com/rkwiMAm.png
My learning resources:
- JavaScript: http://javascriptissexy.com/how-to-learn-javascript-properly/ (I'm on week 3-4)
- Node.js: http://www.nodebeginner.org/
- Express (and Redis): http://javascriptplayground.com/blog/2012/06/node-express-todo-app-redis
P.S: Notice that there weren't any sexy AJAX stuff on the site. It's because I haven't learned one of those front-end MVC framework yet (Backbone/Angular/Ember), which should be my priority this week.
These bootcamps can pretty much fund themselves if put together properly. Putting together a curriculum, finding a space, in a nutshell just putting together a business plan.
From there I would set a price for the class and start doing pre-registration, do a limited 10 seat first class and have people sign up if interested. An instructor you can bring on board for a contract price for the duration of the bootcamp.
I have seen this work out successful many times in the recent 6 months. Also if your looking for something that is more for the community and less for the profit, take a look at http://www.meetup.com/codecrewny/. These guys do meetups to go through the JS in 6-8 weeks curriculum (http://javascriptissexy.com/how-to-learn-javascript-properly)
Since Rails is not prevalent, it's a great time to seize the opportunity of building that following.
http://javascriptissexy.com/
https://www.amazon.com/JavaScript-JQuery-Interactive-Front-End-Development/dp/1118531647
https://developer.mozilla.org/en-US/docs/Learn/JavaScript
https://www.amazon.com/Eloquent-JavaScript-Modern-Introduction-Programming/dp/1593275846/ref=as_li_ss_tl?s=books&ie=UTF8&qid=1466626605&sr=1-1&keywords=eloquent+javascript+2nd+edition&linkCode=ll1&tag=eejs-20&linkId=8f1d94f3bf900d69600f9c8685791be7
http://jstherightway.org/
Most importantly, it's not hard to learn a new language, but you do want to make sure you learn and apply best practices.
Pickup a couple of those books maybe (also there are online versions of most of those available for free. I do like physical books, but that's just me), read them and practice every day.