Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I would recommend a hands-on approach as well. There are a lot of articles on the philosophy of events, callbacks, etc., but it will click much faster if you figure out the patterns yourself just trying to write something useful.

Instead of a chat or a todo app, why not create something cool? Try a small game, a remote control app, cloud music player, etc. Node won't slow you down.



Won't slow you down compared to what? Go? Java? Python's async frameworks? Clojure?

It will slow you down at least as much. Then some more if you try to do something non-trivial and discover node's limitations.


You know in our case, we see node as something that is a little lower level and bare bones. That actually sped us up a bit. You get this, and if you want that - npm this.

You can extend to your heart's content with node on functionality - but you start with the bare minimum and build accordingly to your requirements. You aren't overwhelmed - you are presented with a basic set of building blocks, and when you cannot accomplish what you need to with the current set of blocks, you research the modules that meet those specific needs.

Think of it like building your own PHP stack from scratch from the source. Except with more of a dynamic perspective.

For example, standard crypto functions are not available in the base node, but installing the "crypto" module makes them available. Same for mysql, server pooling functions, clustering, and even a decent web/api "framework" (Express). You add as appropriate. you leave out what isn't needed.

Our team runs a huge PHP stack for all our apps, so it is a breath of fresh air to be faced with the notion that we are truly architecting our entire code platform, bottom up, vs just calling a bunch of pre-loaded functions. This also gives you greater visibility of the overall stack that your code is running under.


That's pretty much what I meant. Node is relatively flat, you won't have to learn a framework, most modules are sets of functions. And once you're comfortable with the platform, you find their interfaces very similar, even obvious. Languages like Python and PHP have a lot more variety among libraries that do the same thing. And you will often be faced with heavy objects with specific initialization schemes.


Depends on the type of learner (trial and error, or firstly building a conceptual foundation). I've come to the point that the pressure of problem solving is not enjoyable for most people.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: