How to learn JavaScript
Since I mentioned that I learned JavaScript, people have asked me how and what I recommend. So here’s my experience and best advice for 2024.
Learn plain JavaScript
First, it’s important to learn plain JavaScript.
Don’t depend on a library of shortcuts. JavaScript will be around for many years, while libraries and frameworks come and go every year.
How to begin
Don’t just learn from little bits of tutorials, tips, or tricks online. Instead, you want a real foundation and solid understanding. Then all your future learning will be so much faster.
Start with the book: “Eloquent JavaScript”. It’s free to read there on his website. It’s deep and thorough. A great start-to-finish JavaScript tutorial. Relax. Focus. Do it in order. You’ll know more than most once you get to the end.
Do Free Code Camp. Someone who had 600 JavaScript learners said Free Code Camp had the best results. Do it at the same time as you’re reading books and articles. Learning sticks better when coming through different senses.
Make it stick
I highly recommend you write down every new thing you learn, ideally into a flashcard program, like this. It’s a lot to digest, so you’ll have to remind yourself of what you’ve learned, or you’ll immediately forget.
Avoid the shortcuts
When solving a problem, everyone will point you to some pre-made solution. “Use jQuery! Use React! Use this library and save yourself some typing!”
But no! Not yet! Do it the hard way. Solve everything yourself with plain JavaScript. It’s the best way to learn.
What next?
If you had a web app in mind, start building it now. After you wrestle with using plain “vanilla” JavaScript, then learn React to see the shortcuts it gives you.
If you want a good-paying job, you can get hired almost anywhere. Since you know the real JavaScript foundations more than most people, you’re very valuable. You can quickly learn whatever framework they’re using.
Any other suggestions? What worked for you?
Please share any other suggestions or experiences, here:
Hi Derek,
Thank you for sharing your path :) "JavaScript: The Good Parts" is really good, but I agree with you as it may not be a good start. There is one more recommendation I would like to add:
- http://bonsaiden.github.com/JavaScript-Garden/
Maybe this should be read after the "good parts"...
;)
Great advice, and great recommendation of learning resources as well.
While I am trying to pick up ember.js now needing to work on something, but should get to the mother of all these libraries, frameworks right after this.
I also started with Javascript: The Good Parts, and felt it gave great pointers for people who already were comfortable with basic JS concepts. I wouldn't recommend it to anyone learning JS from the ground up!
+1 on Eloquent Javascript.. great book to start with!
I'm currently reading Effective Javascript by David Herman. It's another great book for for those comfortable with JS and want/need reminders on good practices.
Have you tried http://www.codecademy.com ? Interactive lessons and really well-thought out course. I started it a while back, and was progressing nicely, but a deluge of work put this on the backburner. It was very good though, worth a look.
— Derek
Yep. They're great. I just like books.
For me I also needed the feedback of instructors and the team work of classmates, so I went through CS at Harvard on Edx - it was an intense 6 months, complete with exams and projects, but having begun with zero experience, I can say I now have good understanding of everything from C all the way up to JS and JQ (plus html, http, php, etc etc etc). I am looking forward to reading the books you mention above though - more, more, gimme more!! haha
Awesome post -- mainly because this is the exact thinking I had when approaching the language.
I took a route to learning JavaScript very similar to yours, and although I write jQuery and am in a Backbone application almost daily, I still prefer plain, unadulterated, pure and beautiful JavaScript with my side projects. I love it like I admire C.
One thing I'd add (if I may) which I find extremely important in learning JavaScript for most practical uses is to familiarize oneself with the W3C DOM API, and also to be able to distinguish between CSS2 vs CSS3 implementations (at least for WebKit initially); and on the JavaScript side, be able to distinguish between ECMAScript 4 vs ECMAScript 5 implementations. Doing this will equip most front-end developers with the knowledge of what's viable in most mobile and/or modern browsers, and how to handle legacy browser JavaScript.
I come from a strong visual design background, so I came into learning JavaScript with a pretty good grasp of CSS already, and a very front-end focused mindset, but I was happy to read of your experiences; it certainly reminded me of mine!
I've been at JavaScript a bit longer, but don't have nearly the programming experience that you do. I'm interested to know what your favorite programming language is?
As always, awesome post. Love reading your insights!
Very cool. Thanks for the tips, Benny. — Derek
I think it is important to have a pet project which you can use to try out new things you learn. Rather than making notes on what you read, try using it. If you can't remember something, you probably will after trying to use it and looking up what you didn't know.
I started writing Conway's Game of Life many years ago to learn javascript. More recently I updated it to use new features of HTML5. It's a good project to have to try new things with.
http://mm0hai.net/life/life.html
The code is on github, if anyone is interested
github.com/anm/HTML5-Game-of-Life
100% agree with your path to learning Javascript. Professional JavaScript for Web Developers is by far the best book on Javascript i've read. I would also recommend reading JavaScript Patterns by Stoyan Stefanov after the Pro book and for jQuery - jQuery Fundamentals is a great website for a deep dive into jQuery.
Eloquent Javascript, a complete online book. Thanks for the link! I'll share this with others looking to learn JavaScript.
JavaScript is becoming more important every year. Web apps are displacing desktop apps and I think in the next few years we'll start to see a significant shift from native mobile apps to JavaScript mobile apps.
Now the hot new thing is to do JavaScript on the server side as well and I can share from experience, it's nice.
For those of you out there who don't know JavaScript, there has never been a better time to learn. JavaScript's future is bright.
I love that you ended with 'put down the books and go use it'. As a seasoned software engineer and a learn-by-doing kind of person I think the real magic begins once you're applying the theory to something practical like a personal project (or, 'scratching your itch' as 37signals puts it).
for me http://www.codecademy.com/ is a pleasure learning experiment
i believe we are leaving one era of js development and entering another. with the advent of coffeescript asm.js, typescript, and dart, it would appear that a compilation phase (so to speak) will soon be not only acceptable, but as optimizations kick in, irrefutable. it may be that these efforts will render es6 itself a footnote...given stable methods for compilation, the language that code is written in will merely become a matter of fashion.
by this i mean to say that as of now (or very soon), it will be acceptable for someone to learn typescript or dart first and maybe never even bother with js itself (within reason and applicability). the primary reason someone would want to do this, is, imho, the terrible disaster of libraries for js. SDKs are better with a little dictatorial oversight from the top...an organic organization of weirdly-named libraries overlapping both idioms and functionality hasn't produced better outcomes for js coders.
Good point, Brad. For right now, for 2013, I think it's best to study the one thing that Coffeescript, Typescript, and the rest have in common. (Plain old JavaScript itself.) Also see Sean Smith's comment #35, below... — Derek
I have planned to re-learn Javascript myself (so far i'm quite familiar with jQuery but not that familiar with the javascript itself) after i finished my final paper at university. Now my paper have been submitted and approved, then boom! this kind of "how i learned it" post from someone whom i respected is published. It feels like halfway dream (which is the guide to achieve the goal) comes true :))
Thanks for sharing this Derek. It is really helpful :)
I've stopped and started leaning JS a bunch if times and had many of the same experiences. I agree that Javascript: The Good Parts is not a good place for beginners to start.
Jquery Fundamentals is a great place to start for jQuery http://jqfundamentals.com/
Great article, Derek! I'm going to send it to my girlfriend :)
I would suggest lodash.js as a replacement for underscore.js - it has some much needed features like deep cloning for instance
I would also suggest AngularJS - it's a really cool framework for rapidly building CRUD web apps using mostly declarative syntax and it does all kinds of traditional model-view updating automatically for you
Bunch of Angular tutorials: http://egghead.io/
Derek, that's great, thank you!
It'd be also nice to know, whether you have tried and collected something thorough like this about up to date html/css layout and markup.
For that, I recommend Head First HTML and CSS, 2nd Edition and Head First HTML5 Programming. Those Head First books are great. — Derek
Nice. I learn Javascript like the way you learned it. After "Javascript, The good parts" by Douglas Crockford, I read "Javascript Patterns" by Stoyan Stefanov it solidifies what youve learned on Javascript The Good Parts. After that, I try to learn Backbone.js and you can see javascript patterns there. :)
I also found Eloquent JavaScript to be an incredible book to learn JavaScript but programming (+ different concepts) in general. I love how it also covers functional programming.
That said I would really recommend looking into Dart (http://www.dartlang.org/) which is a new language that you can use everywhere JavaScript works (it compiles to JavaScript) and is really easy to reason about.
Also if you've ever been bitten by 'x is undefined' in JavaScript because the language is perfectly happy with working with 'undefined' for a long time instead of throwing an exception it might save you a lot of pain and suffering :)
Enjoy your journey :)
Thank you Derek, I was just looking for the best way into learning Java Script. You have really helped me out here. Good on you.
I'm currently slowly progressing through http://javascriptissexy.com/how-to-learn-javascript-properly/ and am really happy with it. I like that it provides concrete steps on what to read/do so I can focus on relevant stuff instead of reading gazillion blog posts vaguely covering random JS topics.
I also recently purchased Effective JavaScript book (it gets recommend very often) but I probably won't dive into until I finish reading Professional JavaScript for Web Developers.
Hi Derek, and thanks for a very helpful advice!
— Derek
What's your take on http://meteor.com vs. backbone.js
and http://lodash.com/ vs. jQuery ?
Also this might be useful:
http://bonsaiden.github.com/JavaScript-Garden/
Meteor looks fun, and is unlike anything else - not a replacement. LoDash is more of a replacement for Underscore.js, but learn Underscore first from the link above, because the source is so well annotated, then switch to LoDash if Underscore is giving you problems. Then just learn jQuery, no matter what, because so many projects require it.
Damnit ... That piece of meta-advice is so precious. Thank you so much for sharing. Please put some kind of Ad on your website so that we can click & thank you.
Cheers.
Nice. Your guide seems fairly reasonable but I'd also add the JavaScript Garden [1] to the list, which I've been using for a couple years. Also, the JavaScript: the Definitive Guide book by David Flanagan [2] for more specific information about the language's features and also the WTFJS website [3], so you can avoid more common JS pitfalls while laughing at the same time.
[1]: http://bonsaiden.github.com/JavaScript-Garden/
[2]: http://www.amazon.com/JavaScript-Definitive-Guide-Activate-Guides/dp/0596805527/ref=sr_1_1?ie=UTF8&qid=1364209106&sr=8-1&keywords=javascript+definitive+guide
[3]: http://wtfjs.com/
Thank you for this! I have an interest in learning and have been wanting someone to produce a guide like this one.
Thanks for the guide. I have tried reading Javascript The Good Parts and for sure it is not a nice read for a beginner.
Thanks for your advices! :)
I am not a programmer but "technical" enough. My 11 year old son wants to learn programming and has become extremely discouraged. I told him I would learn Java with him, spending 45 minutes per day. Given that backdrop and what you just leaned, would you think I am about to just frustrate him more? Is it possible to learn if you are diligent - even with no code background?
Hello!I want to know how long does it take to learn Professional JavaScript for Web Developers, 3rd Edition - by Nicholas Zakas?
It's a very big book. Almost 1000 pages. I spent a few hours a day on it, and it took three weeks. — Derek
@Derek: Great article. I've read most of those resources you listed before and agree 100%. 'JS: The Good Parts' is not the first JS book people should turn to but it is a fantastic resource once you more than a 'newbie' level of JS knowledge.
@Brad, Comment #16:
I think you should be careful jumping to the conclusion that Dart, typescript or some other language is going to replace Javascript. Don't forget that one of the main 'wins' for Dart is that you can run it today and compile it to Javascript.
You can't seriously be suggesting that someone program in a language they don't know?
In the end, you have it slightly backwards IMO. We are moving to an era where JS will not be the end of what you need to know for client-side scripting. You'll be able to learn JS, and then use that knowledge to transition to using Coffeescript, Dart, Typescript, or whatever other JS-ish language you like.
The cross-browser compatibility story for these up-and-coming languages is largely based around compiling to JS. In other words, if you want cross-platform browser support for Dart, you're going to be compiling to JS for the foreseeable future.
Perhaps in a few years we'll get to a point where client-side scripting is language agnostic, personally this is where I'd like to see the browsers go but I think we are further away from that than you think.
Have a good one.
Well-put. Thanks Sean. — Derek
Hi;
I came from Flash background ( five years AS2/AS3 programming ) and the best resource to learn JS was developer.mozilla.org/en-US/docs/JavaScript/Reference . It should be great for other flash developers to get the little tricks that makes JS different
I've been using Anki for a couple months, and just figured out how to use code snippets with syntax-highlighing via this extension:
ankiweb.net/shared/info/491274358
In a nutshell, pressing the button this extension adds to Anki either pastes the contents of your clipboard as syntax-highlighted code, or applies syntax-highlighting to the text you have selected.
This makes code much, much easier to parse, especially when using Anki on a mobile device.
Larry Ullman may be the best technical author out there. His writing has really helped me.
http://www.larryullman.com/books/modern-javascript-develop-and-design/
Also,as others have mentioned, the codecademy courses are a good way to learn basics or practice. For me, I really like physical books, but like to have a digital copy too for reference on the road and for quick searching!
http://www.codecademy.com/learn/
Thanks for this! I'm struggling to learn JavaScript right now and I'm hoping this will help.
Great timing with this post - I've been tinkering with JS for a few weeks and just started getting more serious. One thing I found very helpful: search on Meetup.com and look to see if there are any study groups or code-learning meetups happening near you. Learning is always easier in groups.
wow, these are such great resources. I'm a print graphic designer trying to transition to the web and have hit a road block with javascript but I think I'll do much better now thanks to your advice!
I'd like to throw in Addy Osmani's Learning JavaScript Design Patterns
http://addyosmani.com/resources/essentialjsdesignpatterns/book/
I can write JavaScript well. Organizing it and making it modular is something with which I continually struggle.
Agree with resources and approach. If add Object Oriented JavaScript by Stoyan Stefanov as my favorite JS book.
I would encourage everyone to consider an MVC/MVVC framework for any noon-trivial app.
My favorite is AngularJS - you can write great spots with very little JavaScript and JQuery.
There are others including Backbone, Knockout, Ember etc. But I'm confident most people will amazed by what you can do with very little code using AngularJS.
Great post and I went and bought Professional JavaScript. I've recently finished learning with your recommendations, so I'm guessing that book will also be awesome.
A friend which is an experienced JavaScript developer recommended me another book Effective JavaScript: 68 Specific Ways to Harness the Power of JavaScript
Effective JavaScript is a great book to get *after* you've been programming in JavaScript for many months or years. It's not as much a tutorial as a list of tips for experienced JavaScript programmers. — Derek
I always start out to learn languages with something I want to build. This could be a music review app or a tell your friends what music you like app, and so on. Something that keeps me motivated. Everything else about the language learning will fall into place. As for understanding top level architectures, if you have built and shipped our first few apps, you kind of start getting the picture!
Free advice and guidance on how to learn JavaScript? Yipee!!What a Good Samaritan you are to share your time and take the trouble to guide the not so knowledgeable on a confident path to access the knowledge they are after rather than take chances with the bewildering array of books on the subject that one would have to otherwise take a chance with and wind up achieving little or nothing in return. So thank you, you are KIND SOUL INDEED:-)
Hi Derek,
Thank you for sharing this with us!
Quick question, have you read "Object Oriented Javascript" by Stoyan Stefanov. What do you think about it? I'm js beginner and I found it interesting as there're so many exercises.
Keep it up!
Haven't tried that one yet, no. I also hear great things about it. — Derek
I agree with Alexander Bach Borius that Lo-Dash as an upgrade from underscore.js. The source code is very well commented, & could be a good advanced JS learning tool: github.com/bestiejs/lodash/blob/master/dist/lodash.js
Appreciate the recommendations Derek! Thanks!
Hi Derek,
Ever since you posted this, this article has been stuck in my head. I just realized why.
I'm trying to do what you did, but in reverse.
I've got a background in engineering and computer science, but am trying to understand music. Not quick tricks, not tablature, not "Play 'Stairway to Heaven' in Three Easy Chords". I want to play an instrument, and I want to be able to express myself on that instrument.
As a writer, I write what I want to write, so I don't just want to memorize a song and say I'm a musician.
Learning what I want to learn has been difficult, since most resources I find are of the "here, play these three chords" variety.
But you did it, so I have some hope of doing something similar, just in reverse.
At least, that's my goal.
So, thanks!
I just translated this article into Chinese. I wish I can help more pre-programmers learn JavaScript from you and your experience. http://www.ccforward.net/2013/04/learning_javascript_my_experience_and_advice.html
Awesome! Thank you! — Derek
Do you have any thoughts on server side javascript? I've heard good things but only from people who are .js nerds ;)
Yeah. It's awesome. Learn Node.js and Meteor. Very worth the effort. — Derek
I've always wanted to learn but have been wanting to know from someone the easiest way to learn it. Thanks a lot, I'm picking up the books tomorrow.
Ash
I have found JavaScript difficult also, I am determined to grasp it!!
Thanks! Just a plain good 'ol Thanks! I bought The good parts too, mostly because it's appraised everywhere. I'm currently using Codecademy.com and codeschool.com (full membership) which helps me learning the tricks as well. I like the seeing+doing approach :-) I bought the book by Nicholas Zakas on my ereader and I can't wait to read it, cheers!
thank you very much for information provided!! I have tried to learn js for sometime, and got distracted by other programming languages like common-lisp, vbscript.. I want to get back to what I started, and I can see you pointed out a brilliant path. Thank you!
Hi Derek. Thank you for your insight, I'm just starting out with coding and took the JS plunge yesterday!! It's good to hear there is hope as it looks like a minefield to begin with!!! Thanks again.
Derek, I just read Anything You Want today. REALLY GREAT BOOK! I used your ruby Anki deck, it was awesome. I've been working through the javascript deck too. I really appreciate your work. Thanks for sharing. I've had this idea for years to build a service to help farmers sell their food to restaurants. Do you think that idea could work?
Thanks,
-Andy
Hi Derek,
Thanks for this information. I've decided that this is the time to really learn it. This info is very helpful.
Rod
You write really well. Awesome writer! Thanks for the post.
Thanks a lot.I am a uni student working on the web development paper.This article helps me a lot.I found the article on a Chinese website.And then i found that you live in New Zealand now.Cool. I am studying in New Zealand too.I am kind of excited.I have to leave a comment right here.lol.
Thanks a lot for writing this post. Real time-saver and immensely useful. Just starting my JS Journey. Ya! Too late I know, but I plan to make up for all the lost years soon. Lets see.
hi boy ,very cool~!
Thanks for your awesome post on Javascript Derek. It was succinct and highly informative. I hope to use your plan to gain admittance into a code camp and and change careers. Wishing you the best in your future endeavors.
Best,
Ravi Balsa RN
ThinkBIG also has a wonderful 2 day JavaScript training course which you can take in person or online live. It will give you the full understanding in a short amount of time! http://thinkbiglearnsmart.com/javascript-programming-training-classes/
Thanks for saving me a lot of wasted time and money. Your article along with many insightful comments has helped point me in the right direction. Thanks so much again!
Thank you very much for your write up. It is very helpful. I have a question. I was looking to find the best way to learn javascript for my grandson who is 12 years old. He is very interested on learning javascript. Would you say that Eloquent JavaScript - by Marijn Haverbeke is a book appropriate for his age?. Maybe you have other suggestions for his age? Thanks.
Many thanks, lots of people put up recommended lists without a understandable reason for their choices. I am a 54 year old ex (returning) professional photographer who used to dabble with building websites. I have now decided to concentrate on really learning to become a fully functioning Web Developer as a career, and your explanations of your learning aims and reasons for your choices have reassured me that your advice can be trusted and followed.
I will be starting with "Eloquent Javascript" and then "Professional Javascript for Web Developers", also signing up to Lynda.com as I find Video tutorials very helpful as well.
Once again, Many Thanks.
Hey Derek,
Man, we INTJ's think so alike! haha. I just did this same process over the past 4 months, so it's fun to see this post now.
I had the same experience with 'Good parts' and codeacademy.com as they were to short to start without the context.
The two beginner books recommended were Professional JS, and Definitive Guide to JS. I opted for Definitive guide and read that twice.
I laugh with my wife that these really thick books are the easy ones and the small ones like 'Good parts' or Metz "POODR" are the real challenges.
The best JQuery book I found was PACKT's Learning JQuery. I just started Coffeescript this week b/c of work and reading PragProg's CoffeeScript book. It's fantastic.
2012 & 2013 were Ruby & Rails Focus. 2014 is mastering the world of JS - the language itself, JQuery, testing with Jasmine, Coffee, Angular, and some Node if I'm lucky :-)
How's New Zealand treating you?
Hi Derek,
First of all thanks for this lovely peace of guidance.
I am keen to learn javascript and I think one should stick to a couple of books rather than confusing them selves.
I feel Eloquent Javascript and Professional javascript for developers are the best books around to begin javascript.
What would really help if you can list down few exercises/projects categorized as Beginner (5)/Intermediate (5) /Advance (2) that will force the learner to use each and every concept of javascript.
This will help us develop confidence and a showcase to demonstrate our ability to apply somewhere as javascript developers.
Thanks Again,
Parvez
This will help us
I really recomend "JavaScript: the definitive guide", that book have everything. From the easier one to harder.
Really good advices?I'm inspired by your article!
Derek,
Thank you for being awesome and pushing us to learn more. Ofcourse thank you for introducing me to Anki. Can you share your Anki Deck for Eloquent JavaScript? Reason: I wanted to compare it against mine - to see where I can improve.
Here is my deck(work in progress - @ CH5)
ankiweb.net/shared/info/1183428912
Thank you
See the bottom of sive.rs/srs - though I'm completely against the idea of using others' decks. Decks are not the teaching tool - they are just a reminder of what you've already learned. — Derek
That seem a good way to learn the JavaScript, I am totally inclined to go through your path!
Thanks a lot for this piece of advice!
I've been trying to learn JavaScript for YEARS. (Or at least A year; I overestimate time easily.) I'll take your recommendation. I've been learning HTML and CSS since i was 12 and really didn't understand both enough to build a webpage until late 13-14. I'm 16 now. Thanks for the advice; I'll take it under consideration!
-Zion
from Indiana
Great advice . Thanks Darek
When you say "read the first couple of chapters" of eloquent Javascript before jumping over to Professional JavaScript, how far exactly do you think we should go? The first 6 chapters? Maybe only the first 3?
Thanks!
-Drake
hi , derek
Thaks a lot for sharing these resources .
Thank you! I had started already with Eloquent JS but wondered where to go next. Going to follow your advice!
I like "JavaScript for Kids" (2014). It could be subtitled "JavaScript for adults who want a clear explanation of functions, constructors, this keyword, canvas, etc." Written by Nick Morgan, a front-end engineer at Twitter. http://www.nostarch.com/javascriptforkids
Interesting! Thanks for the recommendation. — Derek
Thanks for sharing. You mentioned that after a few chapters you moved to the other book. What do you mean by "after a few chapters"? Thanks
You can go all the way through, if you like it. But somewhrere around Chapter 7 of “Eloquent JavaScript”, I found it more productive to switch to the other book. — Derek
Y que material o libros en español recomiendas? Agradecería la ayuda. Saludos desde Chile!
Thank you Derek for this valuable advice. I've trying my hand on JS for a month and never found a better advice. Your post brought me out of the sea.
Thank you again
Hi Derek,
What are your thoughts of JavaScript and JQuery: Interactive Front-End Web Development by Jon Duckett, and if you had to choose one to read thoroughly, between that and Professional JavaScript for Web Developers, which one would that be?
Looking forward to hear from you.
Thanks,
Joseph.
Choose to learn the fundamentals of plain JavaScript - not JQuery. Because there's a very good chance you'll never need JQuery. — Derek
Thanks for this, as soon as I finish Wordpress I'm following this.
For practice you can sign up with Codewars
Great article i have ever seen about Javascript
do you recommend any online courses?
No. Sorry I don't know any. I prefer books. — Derek
Just stumbled across this article of yours looking for a deeper explanation of a JS example in Eloquent JavaScript. I appreciate the recommendations, but given Moore's Law and how much of the JS landscape has changed, I have to ask. How would you update this list? I follow many JS developers on Twitter these days, and have yet to hear about these books, whose respective links seem to lead to slightly dated materials. Thanks!
The JavaScript basics are still the same. Yes new tools are built on top, but it helps to know the real JavaScript, minus any toolkits. That part doesn't change so fast. The books from 5 years ago are still completely relevant today. — Derek
Im learning the basics now in HTML5 is it clever to start now Javascript (Im 15 years old)
After you can make a website in HTML and CSS, then start with JavaScript. — Derek
Hi Derek,
Thanks for your post and the killer content. I've incorporate your list with other recommended resources in a post. You can check my post here:
http://www.deluxeblogtips.com/2015/12/118-free-resources-to-learn-javascript.html
Hi Derek,
I have started reading/learning/working on js from past 6months. But unable to write the clean code. How do I write a clean code so the my app/site should run smooth?
Ask an expert JavaScript programmer to look at your code and give advice. — Derek
Hi Derek,
Thank you for the great advice.
I have read 1/4th of "eloquent javascript" , and some of the stuff in it is pretty confusing because it's poorly explained. I have gotten stuck multiple times and wasted hours wondering what the author was trying to teach.
Is it wise to switch to professional javascript for web developers without completing the entire "eloquent javascript" book? Thanks!
Yes, it definitely is. Give the other book a try. It may speak to you better. I've had that same experience many times, where a book that seemed to work for others just didn't work for me, and vice versa. — Derek
Hi Derek,
thanks for sharing your experience and I agree that JavaScript: The Good Parts - by Douglas Crockford is really tough to understand for a beginner like me.
Any suggestions or book recommendations where can I find simple javascript projects for a beginner
Thanks
--
Ramana
Much appreciate your sharing. I am a motion graphic designer but due to demands from work and for my own shake, I will have to equip myself with knowledge of Javascript. I will follow your recommendation. Hopefully I can go far with this. Thank you
Derek, it's always fun to search Google and be linked back to your drops of knowledge. Thank you.
For a very light and fun way to get started with JS, there's also http://CodeCombat.com
for a free / comprehensive / community approach, there's http://freecodecamp.com
Cheers
Eloquent JavaScript is really user friendly.
Im a total newbie to JavaScript, and when I reached chapter 4 and was told to program a whole data structure with helper methods to insert and obtain elements with through recursivity, I just couldnt help to shout out loud : THIS IS EASY!!
(sarcasm intended)
☺ I agree. I plan on updating this article soon to recommend something better instead. — Derek
Hi Derek,
I am learning js from past 7 months and able to understand its concepts. I need to know how to apply its concepts(like objects, functions, regex, xml, json, dom) in real time applications. If you can guide me then it would be great.
Break down your application into the smallest possible tasks, then solve each task as simply as possible. There's a good chance you won't need many of these concepts. — Derek
Hi! :)
We're in-process with building a JavaScript tutorial which uses the principles that we used in our Haskell book... the ideas are that the learner needs a lot of practice with reading real programs before they write them, and that rewriting, then adjusting then finally creating their own is the best way to cement the ideas and understanding into their experience.
Would love to know what you think:
leanpub.com/happylearnjavascripttutorialvol1
Hey Derek. I just wanted to say a quick thank you for all you do. You're a wonderful breath of fresh air, especially when I see so much garbage and misleading information online. Thank you for all your articles, plus all future ones to come. ;)
I highly recommend Anthony Alicia's JS and node JS courses on Udemy. Best JS teaching materials I've ever come across.
www.udemy.com/understand-javascript/
www.udemy.com/understand-nodejs/
Derek
Interested in exposing my teenage girls to coding not to turn them into programmers - let them have an insight into coding
It is becoming a trend
Worthwhile, any resources?
At school in IT they spend a lot of time on history IT etc, and little time on doing....
Do you think java will be automated in later years?
Trying to get teachers to teach them 'doing'in a fun way after school seems tohard for teacher and school, any comments
Thanks
See my other article on this, here. Pay for a basic $5/month webhosting account so they can have their own website to play around with. — Derek
Are you still recommending this book - Head First JavaScript Programming? I didn't see you mentioned this book.
I don't know that one, though all their books are great. “Head First HTML5 Programming” includes a useful intro to JavaScript, then use “Professional JavaScript for Web Developers” for the real deep dive. — Derek
Thank you for this advice, Derek.
There are so many resources to learn JS, it's difficult to find out what is good and what not in this noise.
I especially like the advice for using SRS, I wouldn't have thought to use it to learn to program.
I used it to follow along an online course and it has helped me to retain the information much better.
Always enjoy your articles, Derek. thanks for continuing to send them.
Hey Derek! Just a quick question for you. First all of, I really enjoy reading everything you write and suggest. I really do feel as though you have been in my position and took great pains to make sure you knew what the best advice would have been in your situations
Question is, since I looked at your blog a couple months ago; I really emmersed myself in Eloquent JavaScript, almost a quarter of the way done with it going through it thoroughly. Is there any reason why you aren't recommending it anymore?
Almost everybody told me it got too abstract too quickly. I looked again at it, and the “Head First” books, and felt that Head First keeps JavaScript in context of the web, and that's really more useful and understandable. — Derek
RWE
Thanks so much for this advice. Any Advice on Php ?
For any language, just find a couple of the most recommended books, and do them start-to-finish, doing all the exercises. — Derek
I've been asking some of my 'geeky' friends if they know coding in an effort to enhance some of my Quartz Composer visual efforts and it seems like none of them do. I only have a basic understanding of what Java is, let alone how to begin to learn it. The timing on this is quite helpful. Thanks
Hey Derek,
I know you already have a ton of thank you comments here, but I just wanted to add another. Keep doing what you're doing. I'm so glad I came stumbled across that Tim Ferriss interview with you. Your site is such an amazing resource of valuable information.
Thanks again,
Matt
Boom! I am going to try this, this week!
Derek,
I learned HTML and some JavaScript, but it was many years ago, so thanks for the tips on both.
Merci,
JB
test
Nice guide!
Two more recommendations:
Eloquent JavaScript: http://eloquentjavascript.net (covers JavaScript's various uses, in an interesting interactive format)
You Don't Know JS: github.com/getify/You-Dont-Know-JS (covers JavaScript's tricky details, not just the good parts)
too late to learn coding at 45?
Not at all. I'm 46, and just learning.
"Happy, Smart, and Useful" article is the door to another perception! {found it while searching for JavaScript tutorials} :)
Cheers Derek!
Very fine learn your own knowledge , Thank you so much.
This was the provocation I needed to get started. Great book recommendation, I would have bought the epub but the actual book is delightful
Thanks for this guide. After hitting a wall on Free Code Camp, I decided to try this path. I'm very impressed with Head First HTML 5 so far. Learning from the book is helping my retention because I have to type out ALL the code instead of just the portion that will get me the answer (as is the case on FCC). The level of explanation and detail also helps.
"Head first HTML5 Programming" is now 5 years old. Things in this space get old very quickly.
I wouldn't trust a 5 year old book on HTML5.
Is there a better (newer) book that you would suggest?
No, it is current. I re-read it before recommending it here now in 2016. Just read it and do the exercises until you know it. HTML has not changed in 5 years. — Derek
Hi Derek
Thank you for your post. Very helpful info. I just had a couple questions.
So, even though the Headfirst book and Professional Javascript book are both back from 2011 - 2012, do you still think they valauble when it comes to learning Javascript in 2016? I know they aren't going to teach ES6 or anything, which is fine. I just always worry about using resources that are too outdated, as even Zakas has once lamented about how quickly Javascript books can become outdated, including his own.
Is there anything more up-to-date that covers things at the same level or breadth and depth?
Hi, thanks for the resources :D wanna know what do you think about the Head First Javascript book?
It's probably great, too. All of their books are. — Derek
Hi Guys,
My name is Jonathan and I'm a part of the Cocycles team.
We created something brand new, and extremely useful: a working code search engine.
It allows people to search for code they need, going through millions of open source lines, in a blink of an eye.
All you have to do is describe the code you are looking for, for example: "create random string"
and Cocycles will find the best implementations for that code from across the open source.
It will present a full src implementation, docs, usage examples and much more. It currently supports JS, and more is soon to come: www.cocycles.com.
We believe in making code accessible for everyone. For that reason, we believe that helping people learn how to code- is nothing short of a worthy cause, and a worthy mission.
We also think you are doing an awesome job at it.
So, we would like to give a willing hand.
We can create a small search bar which you can add where and when ever you see most fit, and it will allow your JS students to easily search and find any piece of code from throughout the open source: looking, learning, trying and using the best code written by the best developers in real world conditions.
We would not ask for anything in return. We would like to help people learn and master the field, because we believe it is the future.
we will not offer this to most code schools, only those who we believe are doing a great job.
Would you like to receive this capability from us?
I'm here for anything more you might need or want to know,
Jonathan
Jonathan Saring
Head of Growth
+972-50-648-2224
www.cocycles.com
Now there is a new book called "Head First JavaScript programming". It was published in 2014. "Head First HTML5 Programming" was published in 2011. Any idea how this book is? It coves things like closures, which is not present in HTML5 book, but it misses out on AJAX.
What do you recommend?
Yes I checked “Head First HTML5 Programming” before posting this article in 2016. It is still relevant because it puts JavaScript in the context of making active web pages. The other JavaScript books are more abstract. That's why I recommend “Just read through it quickly in a couple days, before your deeper learning begins.” — Derek
Thank you for introducing me to freecodecamp.
Thanks for your article. I will try.
Old Bill
P.S. 74 and counting.
I want to think you so much for this information -_-
Thank you. I am just a guy in Tulsa Ok. Who was interested in websites and Web creation. Typed in how to learn javascript. It's awesome that you have a plan. Very grateful. Looking more in to what your page is. Liked your description.
Oh, great post. Now, I can see what I need to do. Thank you so much.
Thank you for your articles, they are a good source of information and inspiration at the same time.
Best.
Guillermo
Hey, thanks for the post. Helped a lot.
I'm a self-taught javascript programmer. I appreciate it that you share your experience with us. I'm impressed by your article: "There's no speed limit", and so many other articles you wrote on this site.
derek thank u for ur guidence,
Nice post! have you checked out Practical JavaScript!!
www.reddit.com/r/learnprogramming/comments/4mm6lz/free_javascript_video_course_at_watchandcodecom/
Learn Building Front-End Web Apps with Plain JavaScript (http://web-engineering.info/JsFrontendApp)
Just wanted to say thanks, it's great that you took time to point out how things should be done in order to deeply understand JS. Thanks!
Sir,
You have totally made my day.
Why not the Head First JavaScript Programming (2014) book instead of the HTML% Programming?? Im working through it and find it very good.
Can I start with Head First HTML5 Programming without reading Head First HTML with CSS & XHTML?
If you already know HTML and CSS. The HTML5 Programming book really just goes into the stuff that's beyond HTML, mostly JavaScript-based. It's important to know HTML and CSS selectors really well first. — Derek
Thanks for the Head First recommendation! I was an early adopter of JS (back in '98) but I've barely touched it since 2005. This book was really a great re-introduction to that *and* a lot of new cool stuff you can do in a browser.
Dear Derek,
Thank you. Your article motivated me to start learning JavaScript a few months ago. I do this during my commute and on the weekends. I have reached a point where I am actually enjoying the process and I will be ever grateful for the motivation to start on this path. If you allow me, I would like to recommend a great course I found online. It's called Practical">www.youtube.com/playlist?list=PLViRFZPCqDBe9R1b24bCcLxW4VumtaVdn">Practical JavaScript by Gordon Zhu. For a try beginner like me, it has made a huge difference.
All the best,
Luis
Thanks for the tip, Luis! — Derek
I need to learn JavaScript to determine the amount to tax a person of a certain income bracket or make change in terms of dollars. I'm in College and struggled with JavaScript.
What I've learned so far came from the book by Jon Duckett JavaScript and JQuery incredible. I think I'm going to purchase Web Developers 3rd ed and the cookbook right now.
Thank you for posting
Thanks for the learning flow, Derek! :) I like the Head First book as a starting point.
For people reading the Head First book, the Geolocation API isn't supported anymore on non-https domains in the Chrome versions after April'16.
If you would like to test/deploy your scrips to your own server, make sure it is secure! Otherwise you will keep seeing 'Permission denied' :).
Hi Derek, this seems a pretty great guide for studying JavaScript. I'm a novice and this can be a good guide for me to step a foot into JS. I found that Head Start book also has the "Head Start JavaScript Programming". I just wonder what is the differences between 2 of them?
The HTML5 book focuses more on actual usage on websites. Better intro. — Derek
What about You dont know js..? There are lot of sources..and lot of confusion.
That">github.com/getify/You-Dont-Know-JS">That series of books looks good, and I'll probably go through them next. — Derek
I am currently going through the free code camp, and you have said don't learn jquery until I know javascript first, but doesn't the project require javascript?
If Free Code Camp requires jQuery, then do what they say. Their course is well-optimized. But for anyone else not doing that course, I think there is no need to learn jQuery, and you'd be better off learning to do those functions with plain JavaScript. — Derek
It's me again in comment #152. Some of the codes in the book "HF HTML5" that doesn't work on my Browser, I did like them do but nothing happened ;|.
I think this advice passage is the plain guide and useful just like you recommend us to learn plain javascript ,it can help us use a right way to learning web ,html css javasrcipt and so on,because now(2016),there has too library and frameworks,it offen makes our new cooders confused,me is not the exception.
Very good article, real sense of learning the foundation of JavaScript.
Thanks for sharing your thoughts,
As someone who is at the very start of his learning I have found your article and all the comments since very helpful.
Thank you.
Hey, thanks for this article. I already started using Head First HTML5 and it's really helping me to bridge the gap between abstract Javascript and just making it work in the DOM.
However, the book is just a bit out of date. Enough so that the twitter API thing doesnt work. Any ideas or pointers where to learn how to set up Twitter API with latest version?
Thanks again!
Probably Twitter’s">dev.twitter.com/">Twitter’s API site — Derek
Hi Derek, I just stumbled on this website which has a ton of resources (including podcasts, books, tools). Probably not the ideal place for total beginners to start out, but it's certainly useful to me now I've been going a few months.
http://jstherightway.org/
Hi all,
Great indeed! I found freecodecamp.com to be the best approach especially for people coming form strong design background.
I can add to the list http://eloquentjavascript.net/ book.
Bests,
George
Thanks man for all this, Im doing Comuter science at the 6th form in the Isle of white and we've got to learn at least one language and this has been a great help. Also how long roughly would it take to easily understand Javascript?
thanks so much
this is so much good
A big thank you :) :) :)
I also had to ramp up on javascript and I found one of the best methods was to turn to node js for tooling.
If I need a file formatter or something I write it in node js now.
It really helped me on the learn vanilla javascript.
Node JS has a bunch of workshoppers they call them.
They are small execises that force you to write code and then program then validates the code.
nodeschool.io/#workshopper-list
Finally on the Node JS front.
They improved debugging so you can use CHROME.
medium.com/@paul_irish/debugging-node-js-nightlies-with-chrome-devtools-7c4a1b95ae27#.cv9stgr82
Great post.
Thanks for the tip! — Derek
hi.
I am ui developer 2 year experience but still i found very difficult to learn javascript i dnt know how to apply the logic so is there any way to learn javascript
I'm just reading leanpub.com/javascriptallongesix
Not usual become expert in smthng in X day type of book- uncovers JavaScript internals very understanding way. What was magic so far is not anymore thanks to Reg.
Ivan
Yeah! I just got it, too. Haven't gone through it yet, but I hear it's great. — Derek
Hi Derek,
In your Anki Javascript deck, the card
Get a random number between 0 and 27
with answer
Math.floor(Math.random() * 27)
perhaps should be
Get a random integer between 0 and 27
with answer
Math.floor(Math.random() * 27)
or
Get a random number between 0 and 27
with answer
Math.random() * 27
Thanks for providing this resource.
All the best,
Yours,
Martin Frické
i have a question on the hiring part. Wouldnt prospective employers require a degree,certificate some sort of proof of education? Or is this field so in demand that experience alone stands out?
Your sharing of this journey helped me. I'm from the era of DOS (diskette operational system) and super-cal, lotus 123, basic language d-base, pascal.- Does Javascript uses, Input, let, output, print, let, if, then, go to and again what you share opens up for me the possibility to start with Java.- I like to be able to write apps, is Java good for it?
I've heard great things about this book
Amazon.com
JavaScript: The Definitive Guide: Activate Your Web Pages (Definitive Guides) Paperback – May 13, 2011
by David Flanagan (Author)
JavaScript Absolute beginner's guide (might be too easy for most)
Kirupa Chinnathambi
Me too. — Derek
Thank you!
I have never done JavaScript and I want some great advice on how to start
Hi Derek,
Thanks for the awesome article.
I've been studying programming for a year and a half. My goal is to make a web app that make people's life better.
I have tried Ruby and Rails first but it was pretty hard for me. And I found this article and now learning Javascript.
Which do you think better to make web apps Ruby(Rails) or JS?
For simplicity, learn Ruby on Rails. It's not changing as fast as JavaScript is changing. Both JavaScript and Rails are hard, but you can do it. — Derek
Thanks a lot this was a really helpful piece of information.
Hi Derek, great article. I am learning exactly how you adviced. I have to disagree with this : "Just read through it quickly in a couple days, before your deeper learning begins." . The book has 600 pages, I am at 250 and it is not as easy as i expected. :D Hope I will finish the book in next month.. :D thanks for amazing article!!!
You don't need to understand everything 100%. It helps give you the “lay of the land” before you get your hands into the dirt. — Derek
Hi Derek,
Thank you so much for this learning path!
I know this is an old post, but if/when you have a moment, here's my question: is the 3rd edition of Professional Javascript for Web Developers still relevant to start reading in 2018? They have a 4th edition upcoming, but it's quite a wait until June and I want to start now.
What I'm afraid of is, will I learn some outdated methods and practices from the 3rd edition that could actually hinder my progress with Javascript, or is it still a great and relevant base knowledge, and the 4th edition with ES6/7 is more of an "add-on", rather than a fundamental change of how one would write JS in 2018? Thanks!
Agreed. I think it's outdated now because of ES6. So instead follow everything else recommended here except “Professional JavaScript for Web Developers” — Derek
I just got a job as a direct result of following Derek's instructions.
Before, I was doing middle management stuff and really not enjoying it. So I followed this post to the letter and then applied to jobs, and it totally worked.
☺ !!! — Derek
Is it realistic to land remote-work gigs with this learning method? How much time would you allot to achieve this if one goes at it like a full-time job?
Hi Derek.
Are these books outdated, since they've been published more than a decade ago?
Mostly not, no. I updated the book recommendations just a year or two ago. — Derek
Good overview for people who learn JS.
From books I would also recommend Head First JavaScript written by the same authors as mentioned on the top book.
From free online resources I can recommend you http://www.javascriptinstitute.org/javascript-tutorial/ it covers also ES6 issues.
Thanks! — Derek
You don't know JS helped me a ton. I have created a detailed JavaScript Cheatsheet that covers basic and advanced concepts. From creating variables to coercion, arrow functions, event loop and more.
Here is the link for it ilovecoding.org/blog/js-cheatsheet
"Professional JavaScript for Web Developers," 4th Edition will be available on Amazon on 12 March 2019. It has been updated to cover ECMAScript 6 and 7 and the major re-imagination and departure from ES 5.1. BUT the authors are different: 3rd Ed is by Nicholas C. Zakas , 4th Ed is by Matt Frisbie.
Victoria
Thank you! I'll check it out. — Derek
Hi,
How about Elixir and Phoenix? Thanks.
Later. — Derek
"Major social network company rejected me after an interview with, 'We didn't think you knew enough JS.'"
--Kyle Simpson
Author of "You Don't Know JS mentioned above. ☺
rejected.us/
I've tried some of the resources you mention and have worked very well. I just haven't read books. JS is definitely worth learning, especially pure JS. I would just caution readers that all this takes time, and some effort if you've never programmed before. You may need some discipline to push through the roadblocks.
Really funny !!!
writing about Javascript and using the Java logo which is a totally different language.
Ooops! — Derek
Nice article, Derek. I am now an ES6 expert, but it took a while to get here, and learning other things in tandem was more of a hinderance. I will certainly forward this article to those who ask me how to learn.
As an aside, one of the more perplexing libraries I've run into is RxJS. ReactiveX's value proposition seems to be that you can make complicated state machines in one line of builder code, but I honestly still have a hard time having any intuition about it. If you're familiar with the ReactiveX frameworks I'd love to get your take on them. (RxJS in contrast to React which is quite straight-forward if you ignore the tooling, and Redux, which is beautiful but verbose).
Thanks for sharing Derek. Definitely agree that learning the fundamentals is key before any framework. Check out eloquentjavascript.net/ it’s really well written and free online.
Criteria for a good job:
- A decent wage - be it financial or psychological reward.
- Personal development.
- Autonomy.
- Being creative and making a difference.
- The job should be a craft.
Being a software developer in today's world can satisfy all of the above criteria.
Derek's advice paves a succinct path to that job.
With the 'New Normal' software development can offer all of that and more. You can find a job in any country and work anywhere and the two don't even have to coincide.
Listen well oh readers of Sivers!
The book "Pragmatic Programmer" talks about investing in your knowledge portfolio. In one part they talk about Investors buying low and selling high to maximize return. They use this a metaphor to learn emerging technology before it becomes popular.
But if we use the metaphor to its fullest, we know that investors that try to time the market end up under-performing index funds that you buy and hold.
I see learning old languages without the frameworks as index investing. The value of the investment becomes apparent as frameworks fall out of favor. Everyone that learned only the framework now has to hustle to learn the new one. But understanding the underlying language makes every framework easier to learn, because frameworks are built to solve problems in the underlying language.
Nice comparison! — Derek
I love the article. Honest and deep as expected.
I actually have a question related to your website.
I love how simple and focus and practical it is. To be honest I really like a personal website like yours. So what technologies do you use for your website?
I do not want to copy the whole thing to be clears. I want to make website which I could write my daily journal there and my article once in a while with comment section. Thanks
I first learnt html and css by Head first html and css. It was fun and well put together.
Then I started learning JavaScript by Head first JavaScript book. But it didn't interest me. I felt like so much talking and I didn't feel like I was learning.
Then I switched to the book called A Smarter way to learn JavaScript by Mark Myers. This book was short and crisp (less talking, more programming). Everything was nicely explained and well structured like Derek's article. If you are new to programming like me, I highly recommend this book as your first JavaScript book.
Thanks for the tip! — Derek
Why'd you replace "Professional JavaScript for Web Developers" with "Head First Javascript Programming?"
What changed?
Hey Derek, just read “anything you want” Its July 2020 - which computer code/language would be good to begin learning today?
Thanks!
JavaScript — Derek
Please add me to your blog mailing list
Thank you so much Derek. This is my next project. You've been a big help to me.
Hi Derek
Would you recommend learning HTML/CSS first before delving into javascript? Seems to be a bit of advice I see floating around for a complete and utter newbie!?
MUST, yes! Only takes a few days to learn it well. Definitely do it first. — Derek
My son is about to graduate and he is worrying about finding a job. He told me the only consistent interest he has was programming, but he doesn't have a CS degree. I told him to learn javascript because he had some web building experience, and javascript is so in demand. And he can always use this for job or his own business. He is now following your advice to the teeth. Thank you so much for sharing this.
The book I loved most is Eloquent JavaScript! eloquentjavascript.net/ You may also love it!
After struggling to learn how to code in JS for about 2 years. I luckly ran into a Youtube clip of Mosh Hamdani on JS. Then to his website, the story has now changed.
Wow the JS landscape has changed so much since you first wrote this post!
I found these two courses on Udemy by Anthony Alicea cleared up a lot of mysterious but foundational JS/Node concepts. I feel a lot less awkward around the language and the eco system as a result:
Learn and Understand NodeJS
www.udemy.com/course/understand-nodejs/
JavaScript: Understanding the Weird Parts
www.udemy.com/course/understand-javascript/
This is more for people who want to launch a software engineering career, but the Launch School (http://launchschool.com/) program is incredible. This isn't an ad or anything, I'm just a long time student and a huge fan of their program and philosophy. Read through their Pedagogy (launchschool.com/pedagogy) and Mastery Based Learning (launchschool.com/mastery) philosophy.
I've just started learning Javascript with a course from Treehouse (not a plug). I don't know if it was the 'best' choice. But it was a way to get started and I'm committed.
I really love the empowering feeling of completing and building things. My Dad was a builder. I really admired his ability to build useful things with his hands (he would build houses, cabanets, even made me a wooden sword one day. Anyway, I'd always felt kind of inadequate or less than because I didn't build things with my hands like he did...But now I can see that I am, and can, build useful things - especially with a ton more practice.
I have made a couple of SUPER basic programs, but it's fun to see it come to life, and also debug (even though that's frustrating at times).
The sky is the limit!
The point about learning plain old JS before jumping into frameworks is really important if you're just starting out. I've wasted a lot of time and money trying to learn frameworks when what I needed was basics.
Hi, Nice to read this article. How brief and precise it is, I totally enjoy the beauty of the words. Thank you.
I did a few small projects of mine in the middle of this year, using Js/Node.Js. I love the feeling of woking on Js that's able to run through backend to frontend.
For instance,on August I hoped to break down one book named "A calendar of wisdom:Daily Thoughts to Nourish the Soul" into a set of short sections. I set up a server to handle the function of breakdown using Regexp, and the function of file showing using ejs template and express2http.
One big problem I encountered was about how to make the contents showing once in the webpage attract more reader's attention. I guess readers were likely tired to read a full and long article in one page, perhaps someone had forgotten big volume of details till the end or someone had jumpped away from the middle.
Thus I designed a slider for the contents to merely show one page after another. Each slide contained 8 lines and 150 words in total. The number of slides depends on how many words one section had.
In the process to decide how many slides to show, I took at least two nights to think about whether the calculation was manipulated by node.js(backend-Http server) or by Js(frontend-Browser).
I tried two ways in fact, at last I applied the way to let browser decide how many slides would be created dynamically. It's better choice between both, I think.
So far one remaining thing for me is that the words per slide don't fit full page, as the number of it is hardcoded by me with 150.;-(
I know why I love Js to coding, it's because it's helping me to easily and joyfully read the favorite books. It helps me to read the Classic book instead of the popular book, helps me to Stop reading after 5min instead of Stop till feeling tired. These two questions always challenge me for reading effectiveness. It seems like Js help me to get them solved now.;-))
Just started to break into the JS world and started with Launch School's (www.launchschool.com) Open Book Shelf title - Intro To Programming with JS. They are a great resource for either Ruby or JS - I highly recommend!
This is greatness. I would also include when you get some basics under your belt:
1. Javascript: The Hard Parts by Will Sentance
2. Deep Javascript Foundations by Kyle Simpson
These are both extensive video courses on frontendmasters.com ($24 a month?). Worth every penny...just unbelievable really.
Cheers!
Thanks for the tip! — Derek
Something I found immensely useful before being able to write actual software was solving lots and lots of problems on http://www.codewars.com/ and learning from other user's solutions.
Another great great book is Composing Software by Eric Elliot.
For anyone who wants to learn, hopefully you can learn from my experience:
I am 6 months into my programming journey. And I have got to a point where I can build applications on my own with just the technical documentation + code editor.
At the start, I read Heads First book. Then I built multiple applications over the first 3 months for my company with node JS. I didn't really know what I was doing but I managed to string a few useful applications together.
I learned tooling like vim/git/GitHub/command line etc. (90% of my computer time is in the terminal or vim now). It's very important to master your tools.
Only now, am I getting back to reading. I skimmed a lot of books to figure out which one was worth reading... A lot of books are bad.
Rediscovering Javascript is simply amazing, especially after you gain real experience.
The most important skill anyone needs to learn for programming is how to sit down, in silence for 2 hours+ without distraction.
I often sit down for 4 - 6 hours per day to work on this.
Thanks for sharing that experience, Kevin! That really helps. — Derek
This is a great post.
I used many of the suggestions and resources from both Derek and the community (in the comments) and based on that I have achieved a pretty good level of JS.
I am now looking at full stack frameworks for web development.
Rails, Django, Laravel, Node.js, .. ?
My goal is on my own to develop (from a-z) my ideas for smaller niche SaaS applications. I guess it is kind of a one-person framework that I am looking for.
Does anyone have some good ideas, recommendations, or perspectives on this decision?
Learn Phoenix - www.phoenixframework.org/ - with this book: pragprog.com/titles/phoenix14/programming-phoenix-1-4/ — Derek
Great recomendation! I've used eloquent JS and freecodecamp to become a software dev 5 years ago and it changed my life
☺ — Derek
I think you just changed my life. I am a lifelong learner who unfortunately suffers from schizophrenia. I had a bad episode and most of my ability to recall things from day to day dissapeared overnight. I went from being brilliant to only able to watch soap operas on most days. I couldn’t even type on my phone where I used to be a master texter (much to my parents chagrin). Reading about your passion for the Jankist system reminded me of the days in school and what it took to become smart, lots of flash cards and passion to make something work. I too, want to learn a programming language and you’ve given me the perfect addition to learning HTML and CSS. I’m tickled silly about finally giving myself permission to take the plunge off the deep end of the learning pool and focus up. No longer am I looking at only using all the affiliate marketing courses and learning the get rich quick schemes. Now, I know where to put my focus where it will pay off. For this, I thank you. God bless your heart and many happy returns.
if you get stuck, use mdn web docs to learn more
WHO'S HERE FROM 2024
Hi Derek, curious to know what are your thoughts about learning programming in the world of AI?
What would be the benefits of still learning the fundamentals traditionally vs starting programming by telling AI what you want and using the code? And picking up the fundamentals over time through trial and error.
I know someone who is self-learning programming, they've been building apps with the help of chatgpt. I guess I don't know what to say about why it's still important to learn the fundamentals. Because the AI generated code works.
Just like writing is a way of organizing your thoughts, programming is a way of thinking how to build things. It's very creative and even philosophical. — Derek
Does this work for a total newbie?
Do I need to start with HTML and CSS and then move to Javascript? If yes, do you have any suggested resources for the same?
Thanks in advance ☺️
Yes, I recommend learning HTML first, then CSS, then JavaScript. See the link from the first sentence of this article: sive.rs/prog — Derek
Thank you for the great article, Derek. I have been trying to learn javascript for a while, however, my progress has been rather slow, partially because I struggled with learning using video tutorial/content. Since I started with the book, everything becomes a lot easier and a lot clearer. I still use some videos to help me understand some concepts when I feel the book didn't explain them clearly enough for me. I guess I prefer a great book too. Reading calms my brain, while videos make my brain less focused (I guess). I also enjoy doing the final test project/exercise via FCC, but I get bored quickly doing those guided step by step tutorials. Thanks again. I enjoy the book and learning the process very much!
I am currently learning Js
your advice is although scary but really valuable for a Beginner learner for me
Useful not True rocks ...
you exceeded our expectation yet again.
the bridge analogy goes beyond any ways.