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 :)
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.
That is not what OOP is. OOP is about expressing poly-instantiation and therefore allowing inheritance.
The internals of JavaScript are fundamentally OOP, such as the type system and distribution of DOM methods each expressed as prototypes. Most of that stuff you shouldn't be touching anyways. As far as your own code OOP is completely optional and requires far greater effort. Functions are first class citizens that can go absolutely anywhere with any kind of nesting in ways OOP structures cannot.
I'm not sure that this is a good resource for a beginner, because it would teach them practices that aren't just out of fashion, but altogether unused, and would hurt them in the job market IMHO.
Much of this text is now obsolete -- not obsolete like "oh, a new JS lib du jour came out yesterday and we should all adopt it", but obsolete like "if you use this, many browsers won't support it and nobody else in your generation will be able to maintain your code".
Specifically:
- DNS and HTTPS are way more complicated now than when this was written
- Mobile usability isn't done this way any more; WAP and XHTML are not in use
- VoiceXML is not used
- XML in general has largely given way to JSON. SOAP is rarely used except maybe outside of academia and other niches.
- RSS is pretty much dead
- The DOM structure is not as semantic as in the past (unfortunately)
- It presupposes that most data must live in a RMDBS as opposed to other storage paradigms
- It completely ignores (well, predates) the prevalence of abstracted cloud services that most web work uses these days, vs reinventing search etc. from scratch
- Analytics is likewise way more complex today, but in the post-Google Analytics era and in the post-privacy era
- Some of the HTML syntax it uses is deprecated
- It presupposes a simpler full-stack model where a small web team will do the entire full stack work from the UI to the DB admin, vs today where that's usually specialized and/or outsourced to various third parties and APIs
I hope this doesn't come across as snobby... just trying to give the OP some context about where this fits in relative to modern work. Some of the fundamentals are indeed worthwhile reading, but the text itself doesn't make clear what is or is not still relevant. Without prior knowledge to be able to differentiate that, this book could teach a bunch of deprecated practices.
It's usually somewhere between 10k users and 1m users where the rules change entirely and you need to start looking to more modern/advanced approaches. 10k is kind of arbitrary, because you can do some really stupid things with a traditional rdbms with sql.
[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.
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
Although today, a dependency graph is more invaluable for modern web apps... Odds are your project is bringing in some massive/slow dependencies.
Also "You Don't Know JS Yet" has some depth in it https://github.com/getify/You-Dont-Know-JS
You don't know JS series didn't sit well with me. It tries to lead the reader through some a-ha moments, except those are pretty individual. But it might work for someone else.
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!!
When youre ready to go galaxy brained, "Designing Data-Intensive Applications" is the standard
It does a great job at explaining intermediate/advanced caveats and gotchas along the way.
You can just sit down and write JavaScript. It just works in your browser. You can’t do that with typescript.
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)
And I love everything by Kevin Powell:
https://www.youtube.com/@KevinPowell
edit* I want to add the The Odin Project has a ton of good material:
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.