List of programming aspects I would like to be better at
📅 Wednesday, February 13th 2019
⏱ 5 minutes read
Copying Dan Abramov, and writing my version of Things I Don’t Know as of 2018. Well, I'm a bit late, so let's make it "as of Feb '19".
The article above really inspired me. I always felt that my knowledge in web development was falling short, and needed to push harder. Reading an accomplished developer like Dan Abramov, listing the things that he's lacking is mindblowing. It's very easy to feel overwhelmed at times and suffer from the impostor syndrome, so it made me relieved and more comfortable about my progress. One step at the time.
In this post, I'll list things that I actively want to explore more, and add some goals for each one.
I'm a sucker for animations. I periodically find myself being amazed by Codepen SVG animations. Anything that moves makes me drool. In the first iteration of this website in React, I tried to animate a Computer booting and writing stuff on the screen:
- Create a simple Canvas animation
- Create a SnapSVG animation
- Write a blog post about them
So far, I can say I'm good with React and that I know (thanks to Gatsby) my way around GraqhQL.
Now I haven't utilized Apollo in an application. In fact, I don't know where to start. To be even more precise, I don't know what it is. There I said it.
- Create an application with the above stack
- Explain its use case in simple English
- Understand the tradeoffs
- Write a blog post about them
I have done some work in React native, but it was mostly debugging. I really want to learn more about it, and ship an application in any of Android or iOS.
Recently I tried Expo which is a tool to kickstart React Native applications. It has its limitations - but this depends on the nature of the app you want to make.
That being said it felt awesome developing for mobile devices, and not having to worry about configuration.
- Create an application for Android
I've set up a microservice in
Express, did a demo in
koa, but both of these times it was with a nice tutorial on the side.
For back-end purposes, I resort to
Firebase or a
Headless CMS. Being able to spin off a Node backend is something that I should have under my belt.
- Be able to quickly scaffold an Express backend
- Be able to set up the bare minimum for a functional auth system
Streams, observables, oh my.
For sure I've used them in both Vue and Ember, but I don't have the deep knowledge I would like to.
People who can read and write regular expressions are wizards to me. I want to be one too.
- Be able to solve the first 10 StackOverflow questions about RegEx found on Google
Web components used to be that one thing that "needs so many polyfills, it's not worth my time". Lately, the adoption has been significantly better.
- Learn about Web Components
- Try out Stencil
I need to step up my game and have accessibility in mind while developing, as opposed to doing patch fixes later.
- Read about accessibility
- Identify common wrong patterns
- Make my own cheatsheet for reference
The fact that I can't get my fathers website to Google's front page, is the best testament that I'm doing something wrong.
- Figure what holds back the website back and address those issues
Today, I cannot remember a thing. I don't know where to start. Seems like I never trully learned the language, but knew my way to hack around.
- Learn the language properly
- Read about testing in Python
- Write my very own 3.X cheatsheet
I did this presentation sometime in 2017. After that, I didn't bother with Web Assembly at all. Lately, paired with Rust it seems to be the new hotness.
- Be able to hold a conversation with colleagues about it
Obviously that's not all. I would like to explore more tools like
Electron, revisit algorithms, expand to Web design and so much more.
But let's take a step at the time. We can only do so much in our free time and I would prefer doing Brazilian Jiu Jitsu instead.