As software engineers, we're in a constant state of learning and actualizing our knowledge and skillsets. This is part of the job, and it's a vital one as it helps to keep ourselves relevant in an ever-changing industry. The amount of knowledge I've accumulated over the years gives me sometimes little vertigo, but that's nothing compared to what lies ahead of me and what remains to be learned.
I've felt very inspired by @swyx's concept of learning in public. His blog post "Learn In Public: The fastest way to learn" deep dives into the idea of sharing as much as possible what we're working on, what we learn, to become more than just lurker or content consumer and "to have a habit of creating learning exhaust".
I've been producing content for the past 2 years now on this blog, sharing some bits of knowledge here and there, but I want to scale that a bit more.
"open-source knowledge can scale just like open-source code" — @swyx
This blog post aims to be an updated list of what I've learned, what I'm currently learning, my sources and perhaps even some personal blog posts. I'll divide it into multiple categories, with a checklist and I'll tackle these items at my own pace. Maybe some of these items will pique my interest for just a few days and then give up on them because my priorities have changed or because something more interesting came along the way. But rest assured that I'll do my best to keep this as up to date and focused as possible.
My list
Here's the list of what I'm currently focused on learning including what I've already learned in the last few months:
Serverless
- Basic serverless concepts Done
- Deploy cloud functions on AWS Lambda Done
- Use the serverless framework Done
- Deploy some cloud functions with an API gateway Done
For these so far I've maily focused on the Serverless Framework's Serverless for frontend developer's class as well as The Serverless Handbook from @Swizec. I only used the Serverless framework when learning, I prefered using Vercel which was, in my opinion, the easiest to use (I still have to checkout how to host serverless functions in Netlify, I'm pretty convinced the UX/DX is similar than on Vercel).
It took me a while to find a use case for a serverless function, but I ended up finding one: Generating screenshot from code snippets. I wrote about it here in this post.
- Deploy a server-side rendered React site with the serverless framework
- Serverless GraphQL
NextJs
I'm late to the party on this one 😅
- Basic concepts: Introduction to Next.js 9 Done
- Build a sample app that leverages server-side rendering
- Dissect and try to understand all the concepts and mechanisms that SWR provides.
- Server-side rendering vs static site generation vs client-side rendering Done
Automate all the things
I've been focusing on this one since beginning of February 2020:
- Writing my own Github action Done
- Automating releases Done
- Automated CI/CD Done
- Get started with Semantic Release Done
- Writing my own Semantic Release plugin Done
- Setting up a High-Velocity Development environment for my team Done
- Building my own preview deployment service Done
I wrote The little guide to CI/CD for frontend developers that contains everything I've learned when it comes to testing, automation, better release processes, deployments and overall anything that makes a team work faster!
Authentication
- Learn more about JWT Tokens
- Implement my own authentication service and deploy it
Typescript
- Extend the Typescript compiler (docs)
JAMStack
- Gatsby Theme authoring Done
I've been maintaining my own Gatsby theme for several months now and I'll probably write about it at some point. In the meantime if you're curious you can take a look at my theme's Github repository.
- Everything I've learned (the hard way) when dealing with SEO and Gatsby Done
I wrote SEO mistakes I've made and how I fixed them that highlights the biggest mistakes I've made with my blog when it comes to SEO and the solution I brought to this problem. This post got a lot of feedback and somehow got ranked number 1 on Hacker News (see related Twitter thread).
Framer
I've always loved beautiful transitions/animations and wanted to get into using the tool that Framer built for a while
- Do more reading about how to build meaningful transition and animation
- Convert some components from css transitions/animations to Framer Motion Done
- Demistify spring animations Done
I dedicated an entire blog post for this one: The physics behind spring animations.
- Use Framer Web and try to build something cool with it 🤘
Design System
- What are the good practices to build a scalable and user friendly Design System, and Design System Component
For this item I also want to write about what I learned and the mistakes I've made putting together a Design System, and Design System Component Library at Docker.
SwiftUI
Getting started with SwiftUI development Done
Learn how to build beautiful apps (animation, custom SwiftUI views and components) In Progress I've never done native mobile development before but I've always been attracted to it. With the release of SwiftUI, I believe the timing is perfect to finally dive into iOS development again. My main two resources I'd recommend for anyone willing to learn are: designcode.io and Hacking With Swift. Both these courses are extremely helpful and teach you everything you know to build iOS and macOS app.
Comparing SwitftUI to React development Done
I wrote Going native: SwiftUI from the perspective of a React developer to analyze some of the common design patterns between SwiftUI and React. I also plan to write another article that will focus exclusively on state management patterns which also share quite a few things in common with React. I hope these post will help some React developers to feel more comfortable with SwiftUI.
- Rebuilding an existing application
I think this will be the best way for me to cement all the knowledge acquired regarding SwiftUI development. I think I'll start with rebuilding the app Calmaria which I like a lot! It's simple and elegant and I believe that after a few SwiftUI classes I should be able to rebuild a very similar app.
- Building my own iOS app from scratch In Progress
If you follow me on Twitter you'll be able to find some screen recordings a couple of times a week of my progress building my first app 🤘.
- Building a cross platform iOS/iPadOS/macOS app
Other learning in public inspirations:
Liked this article? Share it with a friend on Bluesky or Twitter or support me to take on more ambitious projects to write about. Have a question, feedback or simply wish to contact me privately? Shoot me a DM and I'll do my best to get back to you.
Have a wonderful day.
– Maxime
Here's an up to date list of what I'm currently learning and what I plan to learn.