2,790 karma · joined February 14, 2016
I admit the analogies aren't perfect, but the analogies are mostly used to help explain the empirical stuff I’m seeing in the real world. Are you seeing something different?
I don’t think that's a foregone conclusion. Every company I’ve worked for has had a huge list of tasks we'd do if we had more engineering resources. There's never been a shortage of worthwhile things we could do, it's always been ruthless prioritization to find the 10% of tasks that are the most important.
Look up Jevons' Paradox. This is a thing that has happened a bunch of times before.
This is the "view on web" link designed for people to read my emails if they don't display correctly in their email client . It’s not really intended for a broader audience.
For context, Whimsical Animations is my new course that focuses on creating beyond-the-basics animations and interactions with modern CSS, JS, SVG, and Canvas. When I launch new courses, I make a few lessons public for a few days. It’s always a bit tricky since most lessons in my course are part of a larger linear arc, and don't really make sense as standalone lessons. I tried to pick stuff that would be independently valuable, rather than it just being a demonstration of the course format / my teaching style.
You can learn more about the course on its homepage (https://whimsy.joshwcomeau.com/), since it doesn't really explain much on the Open House page.
I like making things like this copy/pasteable, rather than NPM-installable, so that more experienced developers can make tweaks like the one you suggest.
It doesn't appear to have an effect in this example because all of the text is the same size (and therefore, they do all share the same baseline). In the devtools, try bumping one of the items up to font-size: 2rem, and you'll see the effect it has.
My initial version of this post didn't have “baseline” as an option, since yeah it doesn't demonstrate it well, but I figured people would wonder why a single value was excluded.
Incidentally, baseline alignment is so handy, but I couldn't fit everything into this post. We cover it in more detail in my course (https://css-for-js.dev/)
Named colors have one incredible use case: as placeholders in teaching environments. In my CSS course, I’d much rather use “color: hotpink” than “color: hsl(345deg 90% 50%)” (when color isn’t the focus of the lesson)
She has a Patreon, in case you want to support her work! https://www.patreon.com/ncase
And yeah, the plan is to keep providing a bunch of free content, knowing that a small % of people who read the blog will go on to buy the course. Way more sustainable than it used to be, when this was something I did outside of my job.
Check out this site for many others: https://explorabl.es/
On the other hand, if you spend too much time doing stuff you hate, you'll burn out, which can sabotage the business even more quickly than skipping the tasks you don't like.
I've approached this problem by trying to weave the things I like into the things I don't. I enjoy coding more than I enjoy writing blog posts, so why not create interactive blog posts? I wind up doing a fair amount of coding to create the dynamic widgets. Here's an example blog post, so you can see what I mean: https://www.joshwcomeau.com/animation/css-transitions/
I also try and stay focused on the outcome. I don't really enjoy filming video lessons, but I enjoy the feeling that comes from teaching someone a valuable skill. So I try to keep that in my mind when I'm doing the filming/writing.
Shameless plug: https://www.joshwcomeau.com/css/make-beautiful-gradients/
I don't know if I ever had students in their 60s, but I'm pretty sure I had students in their 50s (I don't know their birthdates so I'm really just guessing when it comes to age).
On average, it was definitely harder for the older students to find work, but it's absolutely possible. Some companies will really appreciate having people with more life experience, more maturity.
I think the first step would be to see if your dad actually enjoys doing software development. Lots of people just hate it. Doing some beginner JavaScript or Python tutorials could be a good place to start. If it sparks excitement, I think he should absolutely consider doing a bootcamp or similar program.
I think it's an uphill climb, but if he enjoys doing it and he doesn't give up easily, I'm confident it could be a viable path for him.
That said, I'm not 100% sold on the value of testing React components, outside of some very specific cases (eg. a very complex component with lots of internal state). I prefer to write integration / e2e tests that check views/pages/flows as a whole. And so for those, since they aren't connected to specific components, I do have a separate `/tests` folder.
I heard a podcast recently and a successful Udemy instructor had said that these days, the SEO required to succeed on Udemy is even harder than the SEO to rank in Google. When you search for a topic on Udemy (eg. React, Go), there are dozens of highly-reviewed courses, and it's impossible to show up in those results unless you already have a huge audience or want to spend lots of money on paid traffic.
So yeah, I think it's true that you need an audience to succeed with a self-published course, but honestly I think that's true no matter which route you take.
I decided about a year ago I wanted to create my own course (https://css-for-js.dev/). After exploring the options and hearing about the Udemy horror stories, I decided to build my own platform.
It's gone better than I ever could have hoped, and it's set me up well for a lucrative career I'm passionate about.
You don't have to create your own platform from scratch, either; I haven't personally tried them, but there are SaaS companies like Kajabi and Teachable that look like white-label course platforms, so you can build your own course on your own domain. If I wasn't such a perfectionist, I would have started with a smaller course on one of these services.
Having a new set of "primitives" that map to three.js objects and being able to render them in a React application makes so many things easier. It's also just way less code to write compared to standard three.js.
RE: animation performance, I haven't had any issues with it. I presume either they're doing a bunch of optimizations, or the concerns are greatly exaggerated. You can check out an app I built using it if you want some proof: https://beatmapper.app/