[HN Gopher] Ask HN: Best books to learn web development?
___________________________________________________________________
Ask HN: 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 :)
Author : flopriore
Score : 36 points
Date : 2023-08-30 17:24 UTC (5 hours ago)
| sn9 wrote:
| Gary Bernhardt's execute program is a phenomenal resource for
| learning JS/TS and SQL: https://www.executeprogram.com/
| johnsonjo wrote:
| 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/
| js2 wrote:
| I'll add The Modern JavaScript Tutorial as an additional
| reference I like:
|
| https://javascript.info/
| flopriore wrote:
| Thanks a lot
| austin-cheney wrote:
| 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.
| locallost wrote:
| Not sure I agree with this advice. Most of webdev today is
| about actively avoiding the DOM. That's not to say you should
| not know what is below, but the rabbit hole can get deep.
| Accessibility is something that unfortunately is not high on
| the list of most people's priorities. You might say that's bad,
| but knowing it will not help someone learning the ropes to get
| an app done so they can learn more.
| flopriore wrote:
| OOP isn't a problem at all since I already know Java well. Thx
| for DOM
| barrenko wrote:
| 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.
| flopriore wrote:
| > you need to build stuff as much as possible You're absolutely
| right, that's how you truly learn. I asked for some books to
| get a more "theoretical" perspective apart from building
| projects.
| tracker1 wrote:
| I think that both are important... building stuff helps you
| understand how pieces fit together. Reading on the language can
| help you understand how to use features of the language
| (instead of using a library for something largely in the box).
| p4ul wrote:
| 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/
| id00 wrote:
| 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
| flopriore wrote:
| Nice, I will take a look at both of them for sure
| locallost wrote:
| Crockford's book is very short, but dense in information. I
| would not recommend it to somebody just learning the language,
| even though I think Crockford writes and expresses himself very
| clearly.
|
| 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.
| houseatrielah wrote:
| 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.
| flopriore wrote:
| TBH I'm not a huge fan of results given by ChatGPT. I often
| found several mistakes, not only in programming. When you ask
| ChatGPT, then to check its answers you must google it anyway, I
| feel like you waste more time. In addition, I prefer fixing
| problems by myself. That's why I try not to use 3rd-party
| libraries so much when I'm learning a new language or
| framework. When I get familiar with it, I start using them
| obviously.
| lastofus wrote:
| 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.
| knight17 wrote:
| Excellent. Thank you for sharing.
| tjr wrote:
| 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/
| solardev wrote:
| This seems like an interesting resource for people who already
| work in the industry and know what the modern practices are.
| Having a historical perspective is interesting, and also know
| what best practices have stayed through the years. However,
| it's also important to know what simply isn't used anymore.
|
| 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.
| tracker1 wrote:
| While I mostly agree... there's something to be said for a
| simpler, server-driven stack. HTMX is particularly
| interesting as a point for server driven integration(s). Many
| (most) apps are for internalized use at a given company...
| there's a lot of corporate development and most of these
| applications can scale perfectly fine with a relatively
| simple stack backed by a traditional RDBMS.
|
| 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.
| solardev wrote:
| Sure, nothing wrong with a simple server-side stack. But
| even then, you probably wouldn't write it (today) by
| spinning up Microsoft SQL Server on a bare-metal machine so
| that your sysadmin can maintain its records with MS Access,
| then writing a bespoke CMS by creating your own prepared
| SQL statements from scratch, all while making sure your
| designer knows Frontpage and that you have a WAP version
| ready to roll out soon.
|
| It's not that the principles are invalid these days, but
| that the specific examples and techniques mentioned in that
| text are now often done with different tooling.
| Significantly, a lot the low-level stuff has also been
| replaced with higher-level, industry-standard abstractions
| (which embody many standard best practices that might
| otherwise take an individual years to learn and polish),
| building upon the lessons and mistakes learned over the
| decades. This text doesn't really clarify what is a long-
| lasting architectural principle and what was just a fashion
| trend of the day and now obsolete.
|
| Realistically, I think new devs coming into the field these
| days are likely to first encounter those abstractions
| (whether it's HTMX or Next) before understanding the
| history of why they exist (and what their tradeoffs are).
| Those architectural tradeoffs are important to learn at
| some point, but usually those decisions are not left to the
| newcomers (in a sane company) and also should be taught in
| the context of modern tooling and decisions, not software
| that was common two decades ago.
|
| Like important questions these days might be (as you said)
| what do we do on the server vs client JS (or rehydration),
| what do we outsource to a cloud (which clouds?), what do we
| containerize or not, how do we deal with HTTPS and mobile
| and cross-platform (web/iOS/Android), etc. Not "what is the
| best log parser for Apache" or "should we use MS SQL
| because it works better with Access". In some companies, it
| might also be "which off-the-shelf CMS best fits our use
| case" vs "Is C# or Java or more appropriate for our
| backend?"
|
| If someone wants to take the time to highlight the
| specific, still-relevant sections of that text, I think it
| could be worthwhile. But otherwise, without that
| differentiation, it's just kinda a minefield for newcomers.
| tracker1 wrote:
| That's fair... I hadn't really taken in the referenced
| article(s), only wanted to note, that there's still a
| place for a simpler vertical stack. As to MS-SQL, I don't
| think I'd recommend it for any purpose where it isn't
| already entrenched. Same for any commercial SQL based
| RDBMS (Oracle, DB2, etc) in favor of PostgreSQL or a
| largely compatible implementation.
|
| Aside: Right now, exploring HTMLX + server-side yew for
| rendering in rocket (rust), which could be very
| interesting. Usually do https termination at the
| platform, or reverse-proxy via Caddy. And I'm a proponent
| of containerizing all the things (Docker).
| flopriore wrote:
| Maybe I will read it later, for now I stay with the ones
| suggested by other users. You can't understand which
| practices you should and shouldn't follow unless you are an
| expert
| solardev wrote:
| Yeah, that makes sense. I think the value of this
| particular text is that it teaches some of the underlying
| architectural principles, but truthfully, you probably
| won't be making those sorts of decisions until later in
| your career (unless you end up working at a really small
| shop).
|
| For now, just focusing on the basics of HTML/CSS and
| especially JS will get you going well enough, and those
| will all be applicable in web work no matter what
| specialization you choose.
|
| Those are what we normally consider frontend technologies
| (though JS can also be used on the backend). If you also
| want to learn the backend side, having some frontend
| knowledge still never hurts, if only so you can work with
| the frontend people better.
|
| This text might be worth circling back to later in your
| career, once you start considering architectural patterns.
| But for now you have a lot of other great suggestions :)
| code_primer wrote:
| 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
| flopriore wrote:
| Thanks a lot, that's definitely what I was looking for
| tracker1 wrote:
| I'd probably followup with one of Souder's books, "High
| Performand Websites" and "Even Faster Websites" both will cover
| issues of some common issues you may experience and the
| importance of metrics and measuring for actual performance
| issues.
|
| Although today, a dependency graph is more invaluable for
| modern web apps... Odds are your project is bringing in some
| massive/slow dependencies.
| koinedad wrote:
| Not a book, but the mdn docs have tons of stuff.
| flopriore wrote:
| Yeah I've read some parts of those docs, that's one of my main
| online sources.
| rabbits_2002 wrote:
| I loved Eloquent Javascript, I even bought a printed copy.
| Mozilla also has amazing documentation in all aspects of web dev.
| rattlyy wrote:
| [flagged]
___________________________________________________________________
(page generated 2023-08-30 23:01 UTC)