Background:
I've been coding off and on for 2+ decades, starting from BASIC to C/C++ to Rails/Node. Languages and frameworks change quickly, and I'm still not thrilled with the resources available to learn as an experienced developer. For example, I'm confident that I should be able to do a fair bit of iOS development with a week or two of hard work given my knowledge of C/C++, Rails, Node.
My challenges with existing tools:
- Books are pretty verbose and don't do a great job covering popular libraries (e.g., the top NPM/CocoaPods/Gems that are part of so many startup products)
- A ton of articles + samples online are designed for novice programmers approaching a language
- Online videos are super slow moving (even when you speed up playback)
- Progressively more difficult sample code would be great - but it's hard to find the right progression and most are missing the annotation that explain the vagaries of the language or framework
- Perusing reference docs for the purposes of learning is too 'exhaustive search' (e.g., why isn't there a doc for say underscore.js that rank orders functions by incidence of use)
I'd love to hear what the HN community does - with a focus on learning a language + framework by experienced engineers for the purpose of building startup products (i.e., not simply for the purpose of becoming a language/framework expert but rather to build something as quickly as possible).
1) Type into Google: "Package manager for Ruby/Nodejs/PHP/Python/etc"
2) Find a site that lists packages for that language in order of downloads per day or week.
3) Look at the top packages to see what the most popular frameworks are. Generally the top 5 - 10 packages will be all you need to develop 95% of basic projects.
4) Look into the repos for each of the top projects and look for an "examples" folder. Most top projects will have basic examples that will not only bring you up to speed on common language patterns, but also help you learn the most common and most useful methods of that framework.
5) Import any packages you need for your own project, copy a relevant example from one of the packages to start it off, and begin customizing.
Personally I learn best by example, and I find that the examples in the top frameworks and packages for any language are all I need to get up to speed in a day or two.