Learning in public
Apr 21 2020
/ 4 min read /
0 Likes •
0 Replies •
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.
Here's the list of what I'm currently focused on learning including what I've already learned in the last few months:
Some items are still in progress, I'll make sure to add the resources I've used in the meantime until I decide whether a subject is worth writing or not.
- 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
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 In Progress
- 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'm writing a pretty big blog post about CI/CD for frontend developers! It will contain most of the items listed above. Also, I recently built my own preview deployment service. It will be mentioned in that CI/CD article but it deserves an entire post on its own.
- Learn more about JWT Tokens
- Implement my own authentication service and deploy it
- Extend the Typescript compiler (docs)
- 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.
- What I learned building my own Gatsby Theme In Progress
- Build my own gatsby plugin
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
- Avoid dropping frames with Framer Motion In Progress
- 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 🤘
- 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.
- Getting started with SwiftUI development 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 In Progress
From what I'm seeing so far React and SwiftUI have quite a few things in common. Expect some upcoming blog posts about State management in SwiftUI and React Components vs SwiftUI Views. 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
- Building a cross platform iOS/iPadOS/macOS app
Other learning in public inspirations:
Do you have any questions, comments or simply wish to contact me privately? Don’t hesitate to shoot me a DM on Twitter.
Have a wonderful day.
Here's an up to date list of what I'm currently learning and what I plan to learn.