HACKER Q&A
📣 flopriore

Best books to learn web development?


Hi, I'm currently learning HTML, CSS and JS but I'd like to get more in depth. I love learning stuff from books, even if it's a bit old-fashioned, because I can always take a brief look at what I need rather than having to search for basic information online, among several crappy SEO websites.

Can you suggest some books? I'd prefer advanced ones, as I'm not a newbie.

PS: I know you learn things only by doing, the book would be a support. You can suggest also books related to networking, that's the next step :)


  👤 id00 Accepted Answer ✓
I remember "JavaScript: The Good Parts" by Douglas Crockford touched some parts in depth.

Also "You Don't Know JS Yet" has some depth in it https://github.com/getify/You-Dont-Know-JS


👤 code_primer
A textbook which gives a good introduction to Web Development is:

1) Fundamentals of Web Development (Randy Connolly and Ricardo Hoar).

I have the 2nd Ed but the 3rd Ed is out and is more contemporary.

Specific books for HTML and CSS are:

1) HTML and CSS - The Comprehensive Guide (decent contemporary introduction)

2) CSS in Depth

3) CSS The Definite Guide - 5th Ed - Reference

Specific books for JavaScript.

1) Javascript - The Comprehensive Guide (decent contemporary introduction)

2) Eloquent JavaScript - 3rd Ed

3) Javascipt - The Definite Guide - 7th Ed


👤 tjr
This might not be considered hip and modern any more, but I think there's still a lot of good fundamentals described, and well-written:

http://philip.greenspun.com/seia/


👤 koinedad
Not a book, but the mdn docs have tons of stuff.

👤 austin-cheney
https://www.amazon.com/DOM-Scripting-Design-JavaScript-Docum...

1. If you want to be good at this start with a solid foundation. The compile target of the browser is the DOM (Document Object Model).

2. Read about accessibility: https://www.w3.org/WAI/standards-guidelines/wcag/ Understanding accessibility will influence why things are done in certain ways and will make clear the difference between presentation and developers who may not understand this platform as well as they claim.

3. Learn about events and asynchronous execution.

4. Finally, learn to program JavaScript, but understand OOP is optional and considerably more work.

If you can build even the most minor of confidence in those 4 areas you will become a stellar developer compared to your peers working on this platform.


👤 houseatrielah
You don't need to search SEO spam for that stuff; ChatGPT knows it. I think Vite and React would be a good place to branch out to.

👤 johnsonjo
I learned HTML and CSS mainly from MDN, so that's where I suggest you look. As for stuff I use in css most often I can only recommend a few articles and such. Learn how to use Flexbox and CSS Grid though for sure (as those are the two most modern ways to layout an HTML page) as well as CSS Positioning [0] (which is some of the older ways to lay things out).

[0]: https://alistapart.com/article/css-positioning-101/

For JS there are some online books that are gold mines the problem is finding them. One is Eloquent JavaScript which is available to read online for free here [1].

[1]: https://eloquentjavascript.net/

Though I've never actually finished the whole thing it does a pretty great job explaining JS to the uninitiated.

My other favorite books in JS are actually all from the same person Axel Rauschmayer. All of his books are available online for free here [2]. He has a really good way of explaining in my opinion and his books kind of take out all the fluff.

[2]: https://exploringjs.com/


👤 barrenko
Caveat to most of the answers so far - you can read Javascript books until you're blue in the face, you need to build stuff as much as possible.

👤 lastofus
One of my favorite free online books is https://internetingishard.netlify.app/

It does a great job at explaining intermediate/advanced caveats and gotchas along the way.


👤 p4ul
I know you asked specifically about books, but I can’t help but recommend the two online courses that Josh Comeau makes available. I have found both the “CSS for JavaScript Developers” and the “Joy of React” courses to be absolutely phenomenal!

Josh’s teaching style is exceptional, and the courses’ exercises challenge you to work just at the edge of your abilities. I cannot recommend these courses enough!!

https://www.joshwcomeau.com/courses/


👤 sn9
Gary Bernhardt's execute program is a phenomenal resource for learning JS/TS and SQL: https://www.executeprogram.com/

👤 rabbits_2002
I loved Eloquent Javascript, I even bought a printed copy. Mozilla also has amazing documentation in all aspects of web dev.

👤 beeburrt
css-tricks has good stuff:

https://css-tricks.com/

And I like this Principles of Object-Oriented Javascript book by Nicholas Zakas even though it's a little dated (example: its claim that there are no classes in JavaScript)

https://nostarch.com/oojs

And I love everything by Kevin Powell:

https://www.youtube.com/@KevinPowell


👤 aradox66
If you're starting from scratch and interested in python, walk through Miguel grinberg's mega tutorial from start to finish, implementing everything yourself along the way. It's very good and you'll have a thorough understanding of the basics at that point. I started working professionally building simple web apps immediately after working through that.

When youre ready to go galaxy brained, "Designing Data-Intensive Applications" is the standard


👤 akomtu
Do a side project that makes some use of WebLLM and upload it to github. While figuring it out, you'll learn web dev and also learn a marketable skill.

👤 darepublic
A long time ago I read secrets of the JavaScript ninja. I feel like perhaps that is outdated though. I would probably recommend eloquent JavaScript at this point or googling for online materials

👤 snihalani
I recently started doing this as well. I searched HN and landed on https://learn.shayhowe.com/ . Very useful link

👤 saluki
The head first series are great. https://www.oreilly.com/library/view/head-first-html/9781449...

It's not super advanced but gives you a great foundation and you learn by doing.

After that it's best to pick out a challenging project you want to build for yourself and tackle that.

Once you have a good foundation in css I'd recommend checking out Tailwind CSS and Tailwind UI.


👤 cryptos
You asked for JS (JavaScript) and you got a lot of suggestions for books or other resources about that language. But I suggest to not spend too much time with JS and learn TypeScript instead. It will make your life easier, because the compiler helps a lot - especially if your projects grow. The official documentation is very good and should be sufficient for almost everything that you would ever do with TypeScript. https://www.typescriptlang.org/docs/