2020 in Review

😷 First let me say that I’m so sorry for the people who’s lives have been
flipped upside down by COVID-19. So many people have lost work, loved ones, and
more this year due to the pandemic. We’re not through this yet, so please keep
wearing a mask and following your local health safety guidelines.

Also, I want to say that this year has highlighted a lot of the social
injustices that have plagued the US for… ever. It has been painful for so many
and I encourage people to lend their privilege in whatever ways possible.
Here’s a great post to guide you
(also, this podcast series was
super enlightening to me).

Regular review and retrospectives is an important aspect to improving yourself
in any area. Athletes and musicians often watch/listen to themselves perform. I
know a lot of people don’t like to, but I actually watch almost every talk,
video, and podcast I produce to identify ways to improve.

So, it’s with that spirit of personal improvement, that I invite you to join me
on my walk through 2020.

Hopes and expectations were high. I was gearing up for
EpicReact.dev which I was hoping to have released
before I started traveling to speak at conferences in March (lol at me for
thinking I could get it released so quickly and that I would be traveling in
2020 😂).

I remodeled my office and finally got rid of that ugly yellow paint. I also got
a much higher quality “webcam,” amazing lighting, and a pull-down green screen.
I’m really happy with my office now. You’ll find pictures and links on
my uses page.

I also switched my family from primarily using custom Google Suite to regular
Gmail (this was a much bigger pain than you probably realize which is why it’s
getting a mention). As part of that, I decided to stop using Google Photos and
got us a Synology NAS (you’ll find more info about that on the
uses page as well). I can recommend a NAS. It’s a pain to set up, but
with auto-backup to Backblaze, and a public IP address for it, I have access to
all my own files wherever I am in the world without sacrificing my privacy or
ownership.

Like I said, I wanted to get EpicReact.dev released
quickly, so I was heads down on improving my workshops. In particular, I needed
to create a brand new 2-part “Build React Apps” workshop. I discovered and used
react-query and
msw. I also tried tailwind
with twin.macro. It was a busy
time.

I decided that I shouldn’t record and sell a workshop I’d never delivered and
proven before, so I scheduled the Epic React Masterclass. 9 workshops in total,
each one 5 hours long. Over the course of 1 month. I sold 30 premium tickets to
that, and then each workshop had 10 tickets for people’s a la carte enjoyment.
We were sold out. I was super excited!

Interestingly, I made a scheduling mistake on my end and to make a long story
short, I thought I had 2 weeks to prepare the “Build React Apps” workshop (which
was extremely tight) but turned out I only had 3 days 😱. Turned out pretty good
considering that and the fact that it was the first time through that workshop.
Also, this format of workshop was pretty different from others I had done.
Honestly, I can’t believe I managed to make that work, but it did. And the final
result is something I’m really proud of (more on that later).

By the time March came around, we were all pretty much sure that 2020 was going
to be really different, but it wasn’t until March 12th that everything came
crashing down for me and all my plans. Looking through my email, that’s around
the time that in-person church was “temporarily suspended,” flights/hotels were
canceled, conferences were canceled (or “postponed” and canceled later), etc. I
also had to cancel my last Frontend Masters workshops 😢. All travel plans
(personal and professional) were canceled. I was pretty bummed.

COVID shook up our home situation a lot as it did for most people (I have a wife
and 4 kids, 2 of whom are school age). Also, I did eventually get COVID later in
the year. My symptoms weren’t very severe though.

Luckily, I had scheduled the Masterclass workshops already, so I was able to
stay very busy. I had a number of friends lose their jobs. Like I said earlier,
this was really devastating. I felt quite a bit of anxiety due to the uncertain
nature of everything going on.

Most conferences went remote and even though I reduced my commitments, I still
gave 6 remote conference talks and 18 remote workshops in 2020 (🤯 this blew my
mind when I looked it up). Half of those were the
EpicReact.dev Masterclass. I really wanted to make sure
that when I made the recorded version of EpicReact.dev, it was solid (and it
was)…

If you haven’t heard, EpicReact.dev is a collection of
every React workshop I have ever given. It’s based on learnings I’ve had both in
shipping React applications to millions of users all over the world as well as
what I’ve learned about teaching this effectively. It’s unique because it has
all the good things of a live and in person workshop + all the good things about
a self-paced recorded course, without the major drawbacks of either (read more
below about KCD Learning Clubs & Office Hours).

I’ve never spent so much time on a single deliverable. And I didn’t build it
myself. Oh no! I was responsible for creating the material, recording the
videos, and marketing the heck out of it.
This amazing team did the rest. Working with
these folks was a delight.

The “Build React Apps” workshop got split into 4 workshops in all. When I
delivered it that first time I realized there was too much material for 2
workshops, so I made a third, and then I added a workshop on testing. Those are
supposed to be the practical workshop where we take what we’ve learned in all
the other workshops and make something real.

I also added a workshop specific to testing that wasn’t a part of the original
masterclass. So it ended up being 11 workshops 😱 When delivered live, they’re
each 5 hours long (and I often skip the extra credits). I also decided to put
together a (free) podcast,
a series of (free) articles, and
a series of interviews with React experts as
well.

All told, it’s 19 hours of video instruction (which is supplemental to actually
working through the exercises), 10 hours of expert interviews, 14 articles, and
~6.5 hours of podcasts 🤯 All for the same price as one of my remote workshops
(and we also support purchasing power parity!!).

Some folks have finished everything, but most people need several months to go
through all this material. I made it well suited for beginners and experienced
engineers. Your ability to go through the material has a lot to do with how much
experience you bring to the workshops.

It’s been outrageously successful. I knew it would be huge, but didn’t realize
how big it really would be. And the number of positive comments I’ve heard from
people on this just fills my heart with joy. I have
an EpicReact.dev tweet wall you can visit to get
an idea of what people have said (beware, a LOT of tweets are on that page and
will take a lot of data to load). It’s really helping people.
EpicReact.dev has been the best thing I’ve done to push
my mission forward: “help people make the world better through quality
software.”

Sometimes I think about it all (like I’m doing now) and I’m still blown away by
how much I did. Wow.

I had a spectrum.chat (RIP) for TestingJavaScript.com,
but I wanted to get something a bit better. I noticed some OSS projects were
migrating from Slack to Discord and one day I decided to just take the plunge
and create my own “KCD Community on Discord” where folks could talk
with and support each other regarding my courses and workshops. It ended up
being much more than that.

Setting up a server was surprisingly easy. But as with everything I do, I wanted
to complicate it. For one thing, I take my code of conduct seriously, so I
wanted to make sure everyone who joined the server had at least opened it up. So
I started with a form you’d submit on my website and that would send you an
email with an invite link. The problem with that was that folks couldn’t create
their own invite links and it felt disjointed.

So I decided to make a bot (yes
it’s open source of course) that intercepts users as they come in and chats with
them one-on-one in a temporary channel, collecting info about them. Here’s what
I collect in the onboarding process:

  1. First name (I auto-set the Nickname to this to make things more human).
  2. Email address (I check for throw-away emails, I also tell them this will add
    them to my mailing list if they’re not already on it).
  3. Accept the Code of Conduct (“yes” is the only correct answer)
  4. Test them on whether they actually opened the Code of Conduct by asking them
    what email address people report violations to (a disappointing/surprising
    number of people give up here).
  5. If they don’t have a photo, I invite them to add one (and I even load one for
    them from gravatar if the email they gave me is on there, I really want
    Discord to be human, and avatars help with that, but it’s not required).

They have to answer questions 1-4 before they can see anything other than the
one channel where they’re talking to the bot. The friction here is very
intentional. It ensures that the kind of people who join the community are the
kind of people who are willing to go through that. A LOT of people don’t, and
that’s fine. I like to think that this process has contributed a great deal to
us have very few issues for the (terrific) moderators to do anything about.

The Discord community has become so much more than I imagined. Plenty of people
are there chatting about my material
(TestingJavaScript.com and
EpicReact.dev especially), but most of the
conversations have nothing to do with me. It’s just a super awesome and friendly
group of developers helping each other out and making positive connections. It’s
a much better place to hang out than twitter.

We have over 7k members (despite
my slip-up) and ~1k
are online at any time. Almost half members actually participate in
conversations. It’s awesome. You should join, and be
sure to
thank the bot.

One thing I learned from the EpicReact.dev Masterclass
is that there’s something special that happens when you have a group of
engineers going through the same curriculum together over a period of time. When
you take some training and make it self-paced you lose that and I didn’t want to
lose that.

So the idea of KCD Learning Clubs was born (original called “KCD
Cohorts”). We’ve had 32 learning clubs on all subjects in
the ideas repo. Each
club has experienced varying degrees of success, but for the most part it’s been
a super positive experience for people and that makes me happy.

Another thing that I wanted to not lose with
EpicReact.dev being recorded is the ability to ask the
instructor questions. You can’t really ask a video questions. I’ve delivered
this content so often that I generally answer people’s questions before they get
a chance to ask, but sometimes there’s a gap in understanding or something
someone wants to ask for clarification.

Unfortunately, I don’t have time to field those questions all day every day, so
I created KCD Office Hours as an opportunity for anyone (not
just license owners) to come and ask me anything they’d like. It’s an hour long
live streamed Zoom call. This has been a great use of my time as well. I’m happy
to have had the opportunity to help answer so many people’s questions (or at
least say “huh, I don’t know, sorry 🙃”).

Here’s some other stuff I thought I’d bring up before closing…

Tweets

Here are my top tweets of 2020 (in order of impressions):


Kent C. Dodds 🌌 avatar

Kent C. Dodds 🌌
@kentcdodds

It’s annoying to me when people complain about my “expensive courses” without acknowledging the fact that they’re worth every penny. Also, there’s the ridiculous amount of free and valuable content I produce and open source work I do. 🙄

Books

I listened to a LOT of books this year (in particular, I re-listened to almost
every Cosmere related
book by Brandon Sanderson)
in preparation for Rhythm of War (and he
writes long books, so that amounts to hundreds of hours of audio).
Unfortunately, I don’t have a way to find a list of those that I re-listened to,
but here are some new books I bought in 2020 (in the order I purchased/listened
to them):

Blog

I’m not going to count this up. I kept pretty close to my schedule of writing
one blog post a week. Some of my posts appeared on
EpicReact.dev/articles as well. So I wrote ~50
posts give or take this year. No plans to slow that down.

Podcasting

I had a busy year podcasting

Fun

And yes, I did ride my OneWheel a lot this year. Hit a top speed of 27.7 MPH
(way too fast, do not do this), and I’m at 1,524 miles on this. Most of that was
in 2020. I love this thing:

Even though this happens sometimes:

I got a new replacement helmet and writs guards after this happened.

So what’s coming up in 2021? Honestly, I feel really optimistic about 2021. I
think it’ll be a while before COVID goes away and we can return to making our
world better in other ways, but I’m still optimistic.

My theme for the year is “planning.” When I was homeschooled in the 5th grade
(the only year I was homeschooled), my mom would write down a list of all the
assignments I had for the next day. I would wake up at 5:00 AM and work through
that list until I finished at around 9 or 10 AM. Then I had the whole day to do
whatever I wanted. That year was transformative for me and I loved it.

I want that productivity again. Also, I’m planning on working fewer hours this
year and spending more time with my family, so I really need that productivity
too! So in 2021, I’m ending every day by writing down on a physical notepad
(which I keep in my pocket) a short list of the things that I want to accomplish
the next day. I’ve been running this a week so far and it’s been going well.
Let’s hope I can keep it up!

Anyway, I have a lot of ideas for things I’ll be working on in 2021. Here are
some of them:

  • Migrating kentcdodds.com from Gatsby to Remix (I will
    probably livestream lots of this)
  • TypeScript-ifying everything I do, including workshops (old and new)
  • A TypeScript workshop series
  • Updating TestingJavaScript.com to be
    workshop-based rather than course-based (Like
    EpicReact.dev or the Testing Node.js Apps module is).
  • Updating EpicReact.dev to the latest of everything
    (react-query v3 is the biggest change so far, luckily it’s not a huge change,
    but it impacts a LOT of the videos). I might swap Emotion for Tailwind as
    well… We’ll see.
  • Adding new workshops to EpicReact.dev
  • Chats with Kent Season 4
  • Weekly blog posts
  • Daily 3 minute podcasts

And for any significant new or updated workshops I make, I’ll be hosting remote
workshops to perfect it before recording it, so keep an eye on
my workshops page.

Lots to do!

2020 was full of really terrible things for a lot of people, and lots of that
continues into 2021. I’m optimistic that things will get better, and I’m looking
forward to what the future holds for us all. I hope that I can continue on my
mission to make the world a better place for us all, and I invite you to join
me. I’ve tried to prioritize my time a
bit which has involved some cut-backs on what I do. But I trust that together we
can all optimize for the things we enjoy doing most and still make the world
better while we’re at it.

Good luck!




Source link

مدونة تقنية تركز على نصائح التدوين ، وتحسين محركات البحث ، ووسائل التواصل الاجتماعي ، وأدوات الهاتف المحمول ، ونصائح الكمبيوتر ، وأدلة إرشادية ونصائح عامة ونصائح