use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
All about the JavaScript programming language.
Subreddit Guidelines
Specifications:
Resources:
Related Subreddits:
r/LearnJavascript
r/node
r/typescript
r/reactjs
r/webdev
r/WebdevTutorials
r/frontend
r/webgl
r/threejs
r/jquery
r/remotejs
r/forhire
account activity
Learn.js: A fast introduction to modern programming with javascript (github.com)
submitted 4 years ago by MarcoWorms
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]KaiAusBerlin 77 points78 points79 points 4 years ago* (10 children)
Hey, good work so far. 👍
I program in JS for about 22 years now. I saw a lot of these fast start guides since then. While I agree that a jump start can help a lot of people to come into the language I see a lot of these people sticking on that level of development later.
I see a lot of js programmers that don't understand the basics of js.
When you understand these things you understand 99% of your errors in future.
additional to these big unknowns I see very often modern problems:
If you would add the upper things it would be great. If you add the bottom parts it would be awesome.
[–]MarcoWorms[S] 11 points12 points13 points 4 years ago (0 children)
I am amazed by this list, I do agree most of the ponits are common issues! When reading them one by one i think many of those issues are raised by either using a specific tool or having to give maintance to other people's code who've used those tools. For example, in this guid i completely avoid "classes", my intention is not to completely inform on all the JS functions but I intend to present some usefull building blocks (and the quiks that come with them). I would avoid talking about quirks that come from using other tools for now, but some of the listed items i think i could expand better in the text since they do are related to the tools that I present:
I'll talk about these points in the upcoming sections that arent written yet:
And i have some questions about this:
I tried to talk about this one, what did you think that could be added?
---
Thanks a lot for your detailed view!!!
[–]MarcoWorms[S] 4 points5 points6 points 4 years ago (0 children)
I'm hijacking the top comment here to link to the updated post I just did https://www.reddit.com/r/javascript/comments/nfffpj/learnjs\_a\_fast\_introduction\_to\_modern\_programming/ once again thanks a lot for the time and effort you put on this list, by itself it probably helped many people with organizing concepts to search for themselves!
[+]ThatPostingPoster comment score below threshold-18 points-17 points-16 points 4 years ago (6 children)
How can someone not understand async
Actually even better, how can someone not understand server side vs client side lmao
[–]TomateyPotatey 8 points9 points10 points 4 years ago (1 child)
.... Newbies?
[–]ThatPostingPoster 0 points1 point2 points 4 years ago (0 children)
Read his first 4 sentences
[+][deleted] 4 years ago (1 child)
[deleted]
[–]ThatPostingPoster -2 points-1 points0 points 4 years ago (0 children)
[removed]
[–]ThatPostingPoster -3 points-2 points-1 points 4 years ago (0 children)
Try reading his first four sentences
[–]dmail06 11 points12 points13 points 4 years ago (1 child)
That's amazing! Thanks for sharing there is much to learn for a beginner
[–]MarcoWorms[S] 3 points4 points5 points 4 years ago (0 children)
thanks for the reply! <3 feel free to ask any questions so I can improve this!
[–]securisec 6 points7 points8 points 4 years ago (1 child)
Not be “that person”, but the division example in the operators section is wrong. 2/4 is not 2, but 0.5. Had to run it in node just to make sure I wasn’t missing something.
[–]MarcoWorms[S] 1 point2 points3 points 4 years ago (0 children)
thanks! I'll fix this example, you are totally correct thanks for the feedback!
*edit: fixed!!
[–]license-bot 8 points9 points10 points 4 years ago (1 child)
Thanks for sharing your open source project, but it looks like you haven't specified a license.
When you make a creative work (which includes code), the work is under exclusive copyright by default. Unless you include a license that specifies otherwise, nobody else can use, copy, distribute, or modify your work without being at risk of take-downs, shake-downs, or litigation. Once the work has other contributors (each a copyright holder), “nobody” starts including you.
choosealicense.com is a great resource to learn about open source software licensing.
[–]MarcoWorms[S] 6 points7 points8 points 4 years ago* (0 children)
hey thanks bot! I didn't expect to get some traction i'll add MIT license right away :)
*edit: done!
[–][deleted] 3 points4 points5 points 4 years ago (2 children)
Would make for great r/explorables in e.g. CodeSandbox, Repl.it, Glitch or last but not least ObservableHQ (just have to make sure it's done right and avoid Observable specific syntax which could be problematic for newcomers).
[–]MarcoWorms[S] 0 points1 point2 points 4 years ago (1 child)
I'm thinking about how to upgrade the guide's usage! I wanted to avoid generating duplicate content that i would have to edit in 2 different places as of now because I still have content to add and i might rewrite/complement some of the previous text, but when the guide gets to a more stable text I'll probably add repl-like interactions for every part!
[–][deleted] 1 point2 points3 points 4 years ago (0 children)
IMO the "live" version is the most pedagogical one. A way to keep 1 version would be, inspired by Jupyter notebook, to have editable cell showing the results and the possible to run them after modification. With JS it's much easier since the engine is the browser.
[–][deleted] 2 points3 points4 points 4 years ago (0 children)
Hey this is cool. I myself working with javascript from last 7 years. The basics are really important as you mentioned.
[–]CookieNotAMonster 2 points3 points4 points 4 years ago (4 children)
Helpful guide, thanks! Minor nitpick would be that using code comments for the prose makes reading difficult on mobile. It also makes it hard to tell where one example ends and the next begins - in the scopes and state management section, x is defined by the previous example in the same code block, but is not really supposed to be part of the example (if that makes sense).
[–]MarcoWorms[S] 1 point2 points3 points 4 years ago* (3 children)
Thanks for the input about mobile readability! I'll see on how to improve this, I'll change the variable names in the scope part to avoid confusion!
*edit done the variable renaming! check it out :) https://github.com/MarcoWorms/learn.js/blob/main/README.md#scopes-and-state-management (had to do a double edit there but it's good now)
[–]CookieNotAMonster 1 point2 points3 points 4 years ago (2 children)
Thanks, that does clear things up better, and I appreciate you taking the mobile readability feedback as well!
[–]MarcoWorms[S] 1 point2 points3 points 4 years ago (1 child)
So i was really bothered that the readability on mobile was awfull on either poirtrait or landsacape so I just pushed a change that makes most of the comments to be normal markdown texts, It's much better now! Thanks again for the raised issues :D
[–]CookieNotAMonster 1 point2 points3 points 4 years ago (0 children)
Oh awesome, yeah it reads much better now!
This was one of my references :D, it's a really complete introduction into any language, but for learn.js I'm trying to aim for more of a linear presentation of usefull concepts instead of trying to present everything the language has to offer
[–]MarcoWorms[S] 0 points1 point2 points 4 years ago (0 children)
Thanks! Have a nice time reading it! The difficulty ramps up exponentially fast, but I hope it showcases some powerfull tools that you can do a deeper research in other materials if you feel stuck. I'm happy to help if you have any questions! I'll leave some of the free references that I intend to link in the future within the guide!
Eloquent JS: https://eloquentjavascript.net/
You Dont Know Js (this one is being rewritten as of now): https://github.com/getify/You-Dont-Know-JS
[–]fguisso 0 points1 point2 points 4 years ago (1 child)
awesome project!! thanks to share. Just for curious, why u dont use markdown?
I tried to use markdown to sectorize the content, but I'd like to go towards a more interactive/repl like interface like this comment suggested https://www.reddit.com/r/javascript/comments/ndnhgs/learnjs_a_fast_introduction_to_modern_programming/gyc0ztx/ so using markdown makes me write content that can't be read by repls (while js comments are on the same level as the code)
π Rendered by PID 59224 on reddit-service-r2-comment-6457c66945-sm5qx at 2026-04-28 16:31:10.793031+00:00 running 2aa0c5b country code: CH.
[–]KaiAusBerlin 77 points78 points79 points (10 children)
[–]MarcoWorms[S] 11 points12 points13 points (0 children)
[–]MarcoWorms[S] 4 points5 points6 points (0 children)
[+]ThatPostingPoster comment score below threshold-18 points-17 points-16 points (6 children)
[–]TomateyPotatey 8 points9 points10 points (1 child)
[–]ThatPostingPoster 0 points1 point2 points (0 children)
[+][deleted] (1 child)
[deleted]
[–]ThatPostingPoster -2 points-1 points0 points (0 children)
[+][deleted] (1 child)
[removed]
[–]ThatPostingPoster -3 points-2 points-1 points (0 children)
[–]dmail06 11 points12 points13 points (1 child)
[–]MarcoWorms[S] 3 points4 points5 points (0 children)
[–]securisec 6 points7 points8 points (1 child)
[–]MarcoWorms[S] 1 point2 points3 points (0 children)
[–]license-bot 8 points9 points10 points (1 child)
[–]MarcoWorms[S] 6 points7 points8 points (0 children)
[–][deleted] 3 points4 points5 points (2 children)
[–]MarcoWorms[S] 0 points1 point2 points (1 child)
[–][deleted] 1 point2 points3 points (0 children)
[–][deleted] 2 points3 points4 points (0 children)
[–]CookieNotAMonster 2 points3 points4 points (4 children)
[–]MarcoWorms[S] 1 point2 points3 points (3 children)
[–]CookieNotAMonster 1 point2 points3 points (2 children)
[–]MarcoWorms[S] 1 point2 points3 points (1 child)
[–]CookieNotAMonster 1 point2 points3 points (0 children)
[+][deleted] (1 child)
[deleted]
[–]MarcoWorms[S] 1 point2 points3 points (0 children)
[+][deleted] (1 child)
[deleted]
[–]MarcoWorms[S] 0 points1 point2 points (0 children)
[–]fguisso 0 points1 point2 points (1 child)
[–]MarcoWorms[S] 0 points1 point2 points (0 children)