Follow up question – I’m not OP but I’m another not-really-new developer (5 years professional xp) that has 0 experience working with others:
I have trouble understanding where to go on the spectrum of “light touch” and “doing a really good job”. (Tldr) How should a contributor gauge whether to make big changes to “do it right” or to do it a little hacky just to get the job done?
For example, I wanted to make a dark mode for a site i use, so i pulled the sites’s repo down and got into it.
The CSS was a mess. I’ve done dark modes for a bunch of my own projects, and I basically just assign variables (–foreground-color, --background-color), and then swap their assignments by the presence or absence of a “.dark-mode” class in the body tag.
But the site had like 30 shades of every color, like, imperceptibly different shades of red or green. My guess was the person used a color picker and just eyeballed it.
If the site was mine, I would normalize them all but there was such a range – some being more than 10-15% different from each other – so i tried to strike a balance in my normalization. I felt unsure whether this was done by someone who just doesn’t give a crap about color/CSS or if it was carefully considered color selection.
My PR wasn’t accepted (though the devs had said in discord that i could/should submit a PR for it). I don’t mind that it wasn’t accepted, but i just don’t know why. I don’t want to accidentally step on toes or to violate dev culture norms.
HTML is pretty straightforward so just understanding the very basic stuff is probably all you need. CSS is where html gets any challenge it might have.
CSS is weird because it’s very “easy” so “real developers” kind of object to learning it, but the truth is, if you gave any of them a layout design, they probably couldn’t build it. There are tools like tailwind to help, but, IMO, tailwind just helps you avoid learning css’s vocabulary, but you just replace it with having to learn tailwind’s vocabulary.
JavaScript on the other hand is a “real” programming language, though decidedly quick-n-dirtier than other languages. It lets you be a lot more sloppy. (Tbh it’s a lot more forgiving than css!). As a result, it lacks the elegance and control that “real developers” like – and, as most people’s first language, it lets newcomers get into bad habits. For these reasons, JavaScript is a bit derided – but, unlike CSS, most developers can’t avoid it.
There are a few key ideas in JavaScript that, once you understand them, things make a lot more sense. (I won’t get into them now, since it doesn’t sound like you’re at the point where that kind of clarity would help, but, when you are, come on back here and make a post!)
TLDR: HTML is definitely something you can just pick up along the way. JavaScript is a real language that will take a little while to feel comfortable with, and it will take a career to master. CSS will never be easy, so don’t let it hold you back.