The topic for my current learning project may surprise you. I'm learning CSS in a deliberate way, with a beginner's mind.*
Why CSS? I've had a desire to 'get better at design' for a long time. I identify with titles like software engineer or even full-stack developer but not a designer. So I thought what I have to learn is capital D Design.
I've had a number of false starts in my desire to learn Design. It's a nebulous term to begin with. There is graphic design, visual design, color theory, typography. There is also user experience (UX) and user interface (UI) design.
I started off thinking that I'm not good at Design or user experience (UX). But that hasn't proved to be true. I do have taste. I know what bad UX looks like and usually have ideas of what would make it better.
I know the 'what'. I get the theory. I just don't know the 'how'. CSS is the 'how'.
So I finally figured out (at least this is my latest hypothesis) what I've been missing. The skill I'm lacking is CSS. Not Design or UX or UI.
I'm doing this learning project with CSS because not being comfortable enough with CSS to be able to implement the Design and UX principles I do know leads me to feel unsatisfied with my UI. This feeling that it's incomplete has been the root cause of me not finishing or sharing my projects (web applications) with others.**
So that is what I'm learning and why.
The other things I want to figure out is a simple way to share what I learn each day with others. Normally I add topics on my white-board to write blog posts about at some later time. This time I want to experiment with sharing in real-time, as I learn. I don't want to wait or feel I have to write some comprehensive epic blog post. So what would be a good way to share tiny posts and keep adding more as I learn...twitter thread it is?
Oh and the reason I want to share is 1. as a reference for my future self 2. I've heard other developers express similar sentiments about being unsatisfied with their Design skills and I hope what I share will be useful to someone.
*A note on what I mean by a beginner's mind. "It refers to having an attitude of openness, eagerness, and lack of preconceptions when studying, even at an advanced level... It acts as a counter to the hubris and closed-mindedness often associated with thinking of oneself as an expert." In other words, I'm starting with fundamentals, nothing is too basic.
**I'm aware that there are pre-built UI component libraries like Tailwind UI and books like Refactoring UI. I"ve read many books over the years, starting with Don't Make Me Think and The Design of Everyday Things a long time ago. Consuming all the theory has been fun but has also left me unsatisfied and hasn't done much to build my comfort level with implementing with CSS. I want to be able to build from scratch or at least know that I can when I need to.