When I’m being a good economist, I pay attention to the marginal benefit I receive from a decision/action I take. Many decisions are hard to evaluate at the margin, because doing one more of something, e.g. getting a college degree in botany, or moving across the country, will only show its payoff in time, and many intermediate happenings may cloud the analysis.
My recent decision to purchase Wesley’s (Bytegrad.com) Professional CSS course has easily become one of my best investments ever, and I’m only halfway through the course.
For the non-web-developers reading this, CSS stands for Cascading Style Sheets, which is description syntax for how a website and its elements should be displayed. As a full-stack software developer and generalist programmer, I’ve always shied away from the CSS part, preferring to work on functionality, business logic, and the overall value proposition.
My biggest developer career mistake has been losing so much time & energy fiddling around with CSS.
Wesley (ByteGrad) on his Twitter profile
A constant problem I have faced, in taking on client projects, is the need to subcontract the CSS portion of the work to a front-end designer, as having an attractive website (that works on both mobile and desktop screens) is a necessity for every web project. While I have known the basics of (and poorly applied) CSS for 20 years, the 6 hours I spent over 3 days this week have actually made me feel comfortable jamming on the CSS for a demo website. After going through the first half of Wesley’s course, the next day I sat and did CSS for 8 hours straight. I had a blast and like what I have created. I still have more work to do on the demo, but I look forward to finishing it rather than dreading doing so.
Why was the Professional CSS course so effective for me?
There are several reasons why I think this course delivered so much value for me. For one thing, I was prompted to think about value by Wesley’s pitch. I saw his ad on YouTube and he suggested that upskilling in CSS had the highest Return on Investment (ROI) that a person could get in terms learning a technical skill.
For someone who doesn’t have any previous experience in technology, learning CSS is a good option because it has very few dependencies . A dependency is a related piece of knowledge that you need to make something usefully work. In this case, to use CSS you also need to understand the basics of how to type CSS and HTML into a text editor, and use a web browser to view the results.
From the perspective of the total newbie, CSS lets you go from 0 to 1 in terms being able to actually make a webpage.
For me, I realized that combined with my existing full-stack skillset, I would be able to do more projects and get them done more quickly, because my dependency of needing to find a CSS designer would be (mostly, generally) eliminated. I also could explore my own creative designs and have more freedom in merging the visual designs with analytical/technical aspects I already felt strong in.
Here are some of the little bits that added up to great value:
- Getting into VS Code: I have been hand coding with plain text editor since I got into web programming and I spend most of my time in Vim and Atom. I had resisted learning VS Code even though I taught a software development class last fall where the students were all using it. Definitely worth trying out. The code completion (including showing you what the color hex code looks like) and the live preview makes the code flow easily.
- Writing CSS in BEM style: Avoiding the confusion of multiple inheritance between CSS selectors, BEM provides a distinct name for every element that is styled. The naming of sub-elements (or interactions) on elements follows a convention. For me, having a convention that is easy to follow, reduces my cognitive load while doing the creative work, I don’t have to think about the naming of elements very much, I just have to follow the simple pattern of BEM. Having the stylesheet emerge more organized makes it much easier to edit later.
- Design one page first: Wesley’s approach was not to consider all the different screen sizes or try to show how the CSS would be rendered along with some framework or database-driven backend. Start by designing something that looks good in one screen size, just CSS and HTML, and then look at the breakpoints and marginally add styles that support those other views. I really like this approach because it delivers something tangible more quickly/easily. In my demo I’m building, I feel free because I may never make it a full website, but I will make one nice CSS page.
I first learned CSS in the days when web browsers didn’t support the same standard and it was so excruciating to make a site that looked universally good. I have been biased against CSS ever since those early bad experiences. But modern browsers are more standardized now and CSS has also evolved. Knowing CSS is a must for every web developer and Wesley (ByteGrad.com) has created a very helpful and clearly explained short course.
This experience reminds me to look for those opportunities to pick up small pieces of knowledge — especially patterns of work — that can energize my efforts to create value.