I am learning website development on my own by developing a website using HTML, CSS, and JavaScript. Currently there is no JavaScript used, as I am still developing and learning new things related to HTML and CSS. I am just at the beginning stage.

Actually, this is very interesting, as I am not learning a pre-designed textbook or YouTube videos. I am actively building a website and learning from it.

I already used HTML templates and Hugo and Zola, like static website generators. So writing code was never harder, but implementing features or arranging screen space is a big pain.

I know the site looks a lot uglier, but before it was more ugly and misaligned than this. At least I managed to make it like this.

Note:

The posts and contents on this website are converted from my Hugo site, which used Markdown format. The site link is provided at the footer, and the code is also on GitHub. The images are from Unsplash and Pixel sources.

you are viewing a single comment's thread
view the rest of the comments
[–] 2 points 12 hours ago* (1 child)

I’ve heard that CSS was designed to make sense to layout designers, not programmers [...]

Most programmers have only ever learned the imperative c-style of programming. When that's all you have experience with, it's hard to understand (and sometimes even recognise) other kinds of programming because you need to learn an entire different way of thinking.

CSS is definitely a programming language, specifically it's in the declarative/constraint/logic programming paradigms.

Learning different programming paradigms can be difficult because you often can't bring your previous knowledge with you and also need to learn the problem space that the language is designed to solve.

  • CSS: requires learning about layout systems, design
  • SQL: requires learning how best to store and process data
  • Prolog/datalog: requires learning how best to think about and search a problem space
  • Proofers (Z3, etc...): requires learning how best to create rules that can prove or disprove possibilities
  • Graphics programming: requires learning how best to compute over massively parallel hardware without any one computational unit holding back the other units.

so i wonder if there’s a possible crash course in CSS knowledge prerequisites?

For learning CSS specifically: I'd recommend Kevin Powell playlist for beginners: (https://www.youtube.com/@KevinPowell). Then you can follow up with https://ishadeed.com/ and https://www.joshwcomeau.com/.

I'd recommend against w3schools since they usually just list out a bunch of things. That's useful for learning what things there are, but not what they're used for, why you would want to use them, how you would combine them to solve a specific problem, or if there's something else not on the list that already solves the problem for you (or the other problems you're having that you don't even realise you're having).

I'd also recommend against bootstrap (unless you just need something small made and you don't care about having to make changes in the future). It leads to "div soup", and often makes you use old tools methods that have their own problems that you won't be aware of. Tailwind suffers from the same thing with it's own variation of div soup called class soup.

CSS solves problems much easier the cleaner your html is, you want to avoid soup as much as possible.

  • source
  • parent
  • hideshow 2 child comments