- Hype is not always worse listening to. You will not be able to keep pace with everything. You should try what you hear, but do what you like and find more convenient and effective to work with.
- Frameworks are overrated. They are just tools. What more important and worse attention while learning is using different languages and approaches/paradigms for reaching similar goals.
- Immutability is awesome. I'm talking mostly about functional programming here of course, but in my opinion the 'immutability' term is more wide and suitable when we talk about effective coding with any paradigm. It is freedom, and when you're not afraid to handle your data, you can do more with the other tools in hands.
- Data flow should be managed. There is a bunch of good tools (Flux, Redux, RxJS, etc.) for that (some of them even provide the mentioned data immutability). Spending time on getting familiar with them is one of the best investments developer can make.
- Unit testing is absolutely necessary. But you know what? It can be cool and funny. Not to say about freedom and soul calmness it grants. You're not afraid of bugs and errors when the code is covered. And it's a great feeling.
- Algorithms and design patterns are huge steps forward. They give developer the mind flexibility and self assurance for making new cool stuff with maximum effectiveness. They are used everywhere, in every language and framework so you will not spend time in vain learning them.
- Books and podcasts are the greatest resources. The former are more deep than articles or tutorials and can provide more integrated view on a learned thing. The latter are great portable knowledge resource allowing to stay aware of up-to-date information on you part of the industry. Collect your set of books and shows, and you will never be bored anymore.
- Teaching somebody is an important self-learning practice. I had a great coding practice with my son (HTML, CSS and JS/jQuery), and I think I'd got even more from it than he had. And not only in small details emerging when you start to explain something, but in more wide terms - when you try to simplify things and start to see them in connection with each other.
- Creative coding enriches your soul. Heals it sometimes if needed. Such practice does the great job preventing burnout, which possible when you're overloaded with tons of technical information. CSS art, animation, creative coding challenges and puzzles are very useful and can give you the positive experience priceless for further working with technical problem solving.
- Commitment is succeeding. By 50% at least. It's discussed widely and I don't need to iterate on that. Just want to say that it was one the most important parts of my learning process the last three months. I couldn't even imagine all the thing I've got now in my github repositories when I started. Though I did very small steps (I had not much time each day - I have work and kids and pets and other attention-requiring stuff), the resulting distance covered is impressive for me.
And now I want to step on. I have all the necessary tools and resources now (a plan, a schedule, some time management tricks), thanks to #100DaysOfCode experience.
So I advise everyone who's hesitating now just to try it, and see what can you do when you are committed and inspired. You will be surprised, I can guarantee that.