Here are some resources, books, YouTube channels etc. that I found profoundly useful to stay consistent as a front-end web dev.
I would love to put together a good list that could remain essential and very very useful, so not a very long or verbose but a very concise and straight to the point one.
If you are a beginner this is a post I wrote that could be a good place to kick off: [https://www.simoneicardi.com/hacks-utili-per-junior-developer-e-per-affrontare-al-meglio-un-boot-camp/] (It is just in Italian for now. I hope I will have time for traslate it soon.)
The following is not properly a list for beginners but more a list for who already is a front-end web dev pro and is constantly trying to become a better dev every day, step by step, in both directions, consolidating the base and going forward on the top, learning the new stuff.
Here's a nice start.
###BOOKS
- Design Patterns Elements of reusable Object-Oriented Software [by GOF] ;
- JavaScript: The Good Parts [by Douglas Crockford] [you can find it also here: https://7chan.org/pr/src/OReilly_JavaScript_The_Good_Parts_May_2008.pdf];
- Think Python: How to Think Like a Computer Scientist [by Allen B. Downey] (you can read it online here: http://greenteapress.com/thinkpython2/html/index.html) [NOT a front-end book but very useful to learn a programming thinking process];
- Learning JavaScript Design Patterns [by Addy Osmani], Design Pattern in JS context, it sounds interesting (you can read it online here:https://addyosmani.com/resources/essentialjsdesignpatterns/book/) [WARNING: Not so recent and maybe you can skip some parts because of it, but I think it still brings a good context perception about patterns in JS. If you want, read my overview first [https://github.com/pimoGit/consistentWebDevResources/blob/master/overview-js-design-patterns-book.md], to decide whether or not could be interesting for you.];
- #SPECIAL MENTION (the best for last): - You-Dont-Know-JS [NOW: You Don't Know JS Yet (book series) - 2nd Edition] , I'd say a well-known book series on JavaScript (you can find all the books online here: https://github.com/getify/You-Dont-Know-JS). When you think you have a good grasp of JS, then read this book series. The title is so true that all I can say is, don't believe me just try to read it. Maybe this post I wrote on my blog could help: [https://www.simoneicardi.com/writing-javascript-that-acts-like-javascript/?lang=en]
###VIDEOS
- Philip Roberts: What the heck is the event loop anyway? | JSConf EU 2014 [https://www.youtube.com/watch?v=8aGhZQkoFbQ] (With some handy visualisations, and fun hacks, let’s get an intuitive understanding of what happens when JavaScript runs.);
- A very good overview about how web components work and how they could be a good standardization for components, pros and cons [https://www.youtube.com/watch?v=fEhBkSZ15qM&list=PL2piURAKecz_nvgSRzdiispkxwb3Bt3B5&index=4];
- Comparing Yourself To Others [Advice] [https://www.youtube.com/watch?v=2IAV6R7vlrw] (how to stay motivated and don't be discouraged).
###YOUTUBE CHANNELS (useful and also fun)
- The Coding Train: [https://www.youtube.com/user/shiffman/] [this guy brought the fun of programming back];
- Fun Fun Function: [https://www.youtube.com/channel/UCO1cgjhGzsSYb1rsB4bFe4Q/] [nice to have a 'js show' and not just tutorials];
- DevTips: [https://www.youtube.com/channel/UCyIe-61Y8C4_o-zZCtO4ETQ];
- Wes Bos: [https://www.youtube.com/channel/UCoebwHSTvwalADTJhps0emA]:
- freeCodeCamp [https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ].
###OTHER
- https://johnresig.com/apps/learn/ [Learning Advanced JavaScript - through interactive examples - This tutorial contains code and discussion from the book 'Secrets of the JavaScript Ninja' by John Resig.];
- http://www.jspatterns.com/ [Exploring common JavaScript patterns and anti-patterns. I found it interesting because it shows also some specific JS paths and peculiarities. It has also an intro on node shell scripting. Very fast to explore.];
- https://frontendfoc.us/ [A very interesting newsletter to subscribe to, a once–weekly roundup of the best front-end news, articles and tutorials].
###TODO
- https://github.com/getify/Functional-Light-JS - by the same author of You-Dont-Know-JS, Kyle Simpson, on functional programming in javascript. It sounds good to me.
###TIPS
- find a way to create a good habit for it;
- do not force too much yourself but keep on searching for the fun side of learning new stuff, it's crucial to be very effective;
- do not bring you down, always comparing yourself to others, everyone has strengths and weaknesses, and everything looks better from far away;
- the most effective way to grasp a concept is to learn it at different times, from different sources, only like this you can have different perspectives on it and reach a more complete view;
- do not try to push piles of info into your mind continuously, but take the right breaks, have a walk, a bike ride, give time to your brain to digest;
- keep your flame about what you do alive, do something useless just because you want to, play with code, do not force yourself to write the best code while you're on this aspect. I think you have to find time for this, it's crucial, also to keep yourself productive.
###MENTIONS
- [I'd say this is true on learning in general]... "I don't think it's possible to ever fully know JS. That's not an achievement to be obtained, but a goal to strive after. You don't finish knowing everything about JS, you just keep learning more and more as you spend more time with the language. And the deeper you go, the more you revisit what you knew before, and you re-learn it from that more experienced perspective. .... And the deeper you understand JS, the more questions you will ask and the more you will have to explore! That's what I find so exciting!";
- [About new stuff: new power means new responsibilities]: "Warning: As a word of caution, be very careful about the readability of your code with such new found power. Just like with default value expressions and destructuring assignment expressions, just because you can do something doesn't mean you should do it. Never go so overboard with new ES6 tricks that your code becomes more clever than you or your other team members.";
- "Remember: code is at least as much about communicating to other developers as it is about feeding the computer instructions".
Pull requests welcomed!
1. Fork it
2. Create your feature branch (git checkout -b my-new-feature)
3. Commit your changes (git commit -am 'Add some feature')
4. Push to the branch (git push origin my-new-feature)
5. Create new Pull Request