Re-learning React
I am primarily a Ruby programmer, but over the years, I have dabbled in frontend work. Mostly due to work and a little by choice. Learning frontend had made me like I was Sisyphus, forever pushing up the stone up the hill, or in this case, forever learning different libraries and constantly changing paradigms. The churn in the meta1 and the quirks of Javascript all made it feel like it was drudgery.
But when I pause and think about it, I honestly did not enjoy it because I was “bad” at it. Plain and simple. My ego was hurt when working on frontend and not having the same productivity as backend work. It hurts when a feature takes 3-4x longer compared to working on a backend feature of similar complexity. This resulted in a self-reinforcing loop, where I stifled my learning because I was “bad” at it only to continue staying at the same degree of proficiency (bad) from not investing in it.
As I have gotten older, I decided to let go of these notions and approach frontend with a fresh perspective. This means allowing myself to endure the feelings of being a novice at frontend. This also means being okay with the constant change. Also, I joined a full-stack team, so that adds motivation.
So I started by going to React.dev. One of the tutorials was building Tic-Tac-Toe2. The tutorial was polished and interactive. The learning experience felt great. Some questions I had were foreseen and addressed. Also, the ability to fork code examples made going through it frictionless. And I learned a lot in the process3.
I found myself wanting to go deeper from this positive experience. I wanted to better understand what was happening under the hood, such as “what causes a component to re-render?” (Hint: many things). In conclusion, frontend does not feel that bad, although I am aware I am just scratching the surface. It might be, time will tell.
By meta, I mean the patterns and paradigms. As an outsider, they seem to change often. Some examples that come to mind: React changing from class to functional components and going from Enzyme to RTL. ↩︎
https://docs.google.com/document/d/1D1MaHdsNu6u8Eb6h2WEadR6IjkR8fKj4Vr4eN631490/edit ↩︎