from Hacker News

Show HN: The JavaScript Way, a book for learning modern JavaScript from scratch

by bpesquet on 7/27/17, 1:32 PM with 110 comments

  • by bpesquet on 7/27/17, 1:35 PM

    Hi all, author here.

    Backstory: I'm a CS engineer/teacher and this book is a side project started in December 2016. You can read a bit more about it here: https://medium.com/@bpesquet/walk-this-javascript-way-e9c45a....

    The writing process is now completed and I'm actively looking for feedback to make the book better. Any opinion or advice about content, pricing, or that hastily created Leanpub cover would be greatly appreciated. However, please keep in mind that this is a self-published effort still far from being polished and open to improvement.

    I'd also like this thread to stay focused on the book itself, not on the merits/weaknesses of JavaScript or the usefulness of choosing it as a first programming language.

    Thanks in advance!

  • by ryanmarsh on 7/27/17, 8:48 PM

    I just got home from teaching JavaScript to a room full of people who've never written a line of code in their life.

    This book is missing something critical that most intros to JavaScript overlook:

    How does the student set up the plumbing and run their code?

    It's amazing how much of a hump this is for many trying to get started. It also amazes me how oblivious most of us programmers are to it.

    "Just open Chrome Dev Tools" or "put this in a file and run Node" are really strange computer tasks to someone who has never typed and executed code.

  • by sAbakumoff on 7/28/17, 1:09 PM

    I think that the best book ever about JS for everyone, especially for those starting from scratch is https://github.com/getify/You-Dont-Know-JS you simply don't need anything else
  • by le-mark on 7/27/17, 8:32 PM

    Very, very nice. I briefly went over some chapters and I especially admire the 'no framework' approach you've taken. I believe there's a real need for a book like this, kudos to you for making it happen! What inspired you to create this?
  • by internalfx on 7/28/17, 1:59 AM

    Another great JS book on github...

    https://github.com/getify/You-Dont-Know-JS

  • by eksemplar on 7/28/17, 8:00 AM

    If you ask me all that you need to know about modern JavaScript is that it exists mainly to sell online learning material.

    But I may be a bitter old man and your resource looks pretty good.

  • by dotnetkow on 7/27/17, 9:47 PM

    Saw this on Reddit last night, poked around on a few pages. It's great! Love the movie list example on this page: https://github.com/bpesquet/thejsway/blob/master/manuscript/.... Going from "for" loops into map/filter/reduce concepts is an excellent way to teach!
  • by ThomPete on 7/28/17, 8:25 AM

    This is great!

    I am fairly familiar with programming having done both AS, Lingo and PHP I understand code when I see it. I am however not a programmer but more a technically oriented product designer and so I don't get to practice as often.

    I have been trying to get into javascript and while I understand all the fundamentals it's still not something that I feel comfortable doing which is a shame as it's kind of the language of the internet.

    Skimming through this books it looks like the perfect way for me to spend my next two weeks of vacation so thank you so much.

    Is there a way to to donate to you?

    Having made something as comprehensive as this you need to think about how to break it up so that you keep users engaged and so that you cam maximise your revenue. Selling books is mostly a spike and then long slow ramp towards halt so make sure you keep your content alive.

    If I may come with two suggestions.

    1. Make a forum for your readers perhaps in the form of an online reading group so that you have someone to go through the book with.

    2. Make a step by step email course where you go through the book and have people turn in assignments perhaps even in forums.

    3. Let people hire you as a private teacher perhaps build up . a network of private teachers. (Ok that was three suggestions)

    These I think would be great ways to monetize.

  • by partycoder on 7/28/17, 7:48 AM

    What all these tutorials omit is the tradeoffs JavaScript and node incur in order to be simple and friendly.

    - In JavaScript: no type annotations, numbers are floating point numbers, garbage collected, no multi-threading in the language spec. There are some ways to workaround these limitations, but they're not a part of the language.

    - The concurrency model of node, based on libuv event loop. This dictates what node is good for and what is not good for. Short lived tasks = good. Long lived tasks = bad (service degradation + cascading failures bad)

  • by leke on 7/28/17, 8:10 AM

    I love the tl;dr section. It's basically what I have do when reading books, in order to recall the essential information without having to read the entire chapter again. Well played.
  • by jchien17 on 7/28/17, 12:24 AM

    Should one learn ES2015 before learning ES5? Is there any value or need to learn ES5 if you're not maintaining an old codebase?
  • by scottmf on 7/28/17, 2:55 AM

    Looks great. I love modern JS, and the faster everyone can move on, the better!

    I didn't see any async/await stuff though, is there a reason for that? I'd imagine it would make some code much easier to follow.

  • by baalimago on 7/27/17, 10:29 PM

    Didn't know "var" was outdated. Good stuff, thanks!
  • by noir_lord on 7/28/17, 11:45 AM

    This is incredible.

    GF wants to learn to program, she has a strong math/finance background and I think she'd be good at programming but the web can be a bit overwhelming in totality.

  • by oblib on 7/30/17, 3:28 AM

    I went over a few chapters this afternoon and really enjoyed what you've put together. I'll definitely recommend it to friends who ask me about learning to code.
  • by drngdds on 8/9/17, 8:18 PM

    This is really good! And I like the dig at 9gag :)
  • by minademian on 7/28/17, 8:24 AM

    this looks promising. I like how it teaches the concepts using plain Javascript without focusing on a tool or library. Kudos.