Learning any technology is usually hard. And despite how easy Meteor claims to be for the beginners, everyone probably had a moment when they were stuck. Who helped you for the first time you hit the wall? How did you find your help? Stackoverflow or IRC? Maybe a friend sitting in a room next to you?
I will start. First time I got stuck, I didn’t understand how Meteor tracks changes in my JS code. How does it know that I changed a variable. I was building a toy app and didn’t know how things like Tracker work. So I asked a question on Stackoverflow and got a pretty simple answer from a guy called Tim Heckel.
Only later, after I started working at MDG, I met Tim on a Meteor Unfonference in San Francisco. It was cool to see my savor in blood and flesh there.
First off, the official docs (they’ve always been up-to-date and helpful) and just playing around with the to-do app example, then Sacha and Tom via Discover Meteor, and then, when it was time to deploy and scale, Arunoda via Meteorhacks.
(And now, everyone who blogs about Meteor or posts news on Crater.)
I was super NodeJS fan before and I hated Meteor because of it’s fiber usage. (That’s still the same case for other NodeJs developers)
Official documentation does not helps me to understand Meteor. I understand it’s a documentation but not a Guide.
Discover Meteor is the my first teacher and I really liked it. I still think it’s the best programming book I’ve read ever.
After that, I tried to read the source code and understand. After I started to playing with new concepts and apply them. That’s where all MeteorHacks projects started.
Discovering meteor after a random article somewhere (can’t recall which one exactly). The most I learned from source, everyone on IRC and the people doing pull requests on my package at that time. Lovely!
I was so early there wasn’t really anyone else I could ask Back then most of the Q&A was from release (which had been about 6 months before I started really getting into it) and already so much had changed. So I just kind of pushed through it.
Fwiw, the biggest thing about learning Meteor isn’t learning Meteor. It’s unlearning everything else. It’s giving up thinking in terms of XHR, or sticking your state in the DOM. It’s moving from imperative programming to reactive and more functional programming (eg. helpers with no side effects). It’s unlearning MVC in favour of pubsub. In aggregate, this contributes to a massive paradigm shift you have to go through in your brain of which the only comparison I currently know of is Haskell - not particularly famous for its ease of picking up.
However, if you don’t have to unlearn anything because you’re a brand new programmer, Meteor is actually far easier to learn. I know because I’ve been watching my roommate learn Meteor (because I won’t shut up about it), and she’s new at this programming business. In comparison to her attempts at learning Django and Ruby on Rails, she finds Meteor dramatically simpler for modeling web applications. And it’s not just about the Meteor API itself, it’s also about the Meteor platform’s integrated tools, like the package ecosystem and meteor-tool, that make using Meteor dramatically easier to get into than these other full-stack environments.
Gave myself a chance for the sake of lower entry barrier and low learning curve. Thanks to my recently experiment with React and Phaser, they both encouraged me to break the MVC rules or I would otherwise still sticking with Laravel framework in PHP. In fact, I’m disappointed that no jobs require Laravel skills except other PHP frameworks.
It’s only until Paypal, Walmart and others are adopting Node.js to stay competitive, I’m convinced Meteor has an edge over Rails and PHP like Magento, Drupal, CodeIgnite, Yii.
Maybe someone should do a plug-and-play CMS, there’re a few CMS in meteor, I doubt Wordpress will remain the king for long.
I knew nodejs, mongodb and handlebars already and it was quite helpful. Learned a lot from the documentation. But some topics were misleading or not even documented. But thanks to stackoverflow and a lot of experimentation I found my way.