The title might betray it a bit, but this week was all about using React.js.
For those not in the know, I’m a student at Lambda School’s Full-Stack Web Development program (Read more here). In short, Lambda School is an online learning company offering 30-week programs in programming that are free until you get a job. If you don’t get a job, they don’t get paid.
I do a write-up every single week about my experiences. If you're not caught up just yet, you can start with Part One right here, or just keep reading!
Finally, if you’re interested in signing up for Lambda School yourself, please consider using this link. With it, you’ll receive $250 after you attend your first day and Lambda will give me $250 for sending you there! Win-win!
Of course i still love you
Since starting Lambda School, I'd been waiting to get starting with React! Having previously worked with it, I knew how powerful it could be.
One of the most out-there reasons I enjoy using React is that it mirrors the way I look at things. In my day-to-day life, I tend to notice the building blocks comprising the whole and how they interact. I see the modular systems of railway tracks and signals and marvel at the simplicity of designing a single item once and then mass-producing it to cover an entire country's infrastructure. Innovation and technology is not so much a matter of pure improvement as it is the application of cheaply and quickly replicating the efforts of thousands.
I've always done a similar thing when building websites; even when just in plain HTML. I'd build CSS classes that created nav-bars, image-containers, buttons, or sign-up links. All I had to do was plonk them down somewhere and voila! I must have a pseudo-library of some 800 components scattered over a few hard drives.
Before starting this week, I had reviewed Robin Wieruch's book ‘Road to Learn React’ . It felt good to get reacquainted, even though I was a little foggy on when to use functional or class-based components. I read some 60-odd pages before calling it a night and eagerly awaiting Monday's lecture. I had a bit of a slow start, to be honest. I found myself drifting off during lectures and I was struggling to once again wrap my head around passing props to different components.
The first day or two, I was only barely eking by. Something just didn't click. I got way too intimidated by passing handler-functions and destructuring props - something I previously could've done with my eyes closed. Moral of the story kids; use it or lose it.
To remedy this, I resolved to wake up hella-early Wednesday morning and review the entire Learning Kit. For those not in the know, the Learning Kit is an online student area. There, you can review the pre-class materials (both in text and video), do some test-assignments, and review previous lectures (my personal favorite). Rather than having to make our way through five dozens pages every single day, the entire curriculum for that day is summarised and can be consumed in an hour or so.
Sure, it might've taken a couple of hours and forced me to wake up 04:30, but I finally ‘got’ it. From there on, it was smooth sailing. I felt confident (some would say cocky) enough that I decided to challenge myself a little during the Sprint Challenge and decided to implement three external APIs in the project for shits and giggles. Everything worked out in the end and I felt great going into next week.
“Hey, this is actually useful!”
As most people are curious about the exact things we learn at Lambda, I’ve listed them all down here. I guess it also makes for a good roadmap for others trying to do something similar by themselves.
In Week 6 we covered:
React and the React DOM;
Using JSX elements;
Functional and Class-based Components;
State and State management;
Component-based prototyping and development;
Passing Props to components;
Conditional Rendering using ternary-operators;
In addition, I always try to review some extra material. Mostly out of curiosity, but sometimes to understand concepts that didn't come through too well during classes:
Played around with React Hooks
Styling React with CSS modules and Styled-Components;
React lifecycle methods.
How much time do you spend studying outside of class?
It depends. Going in, I knew Lambda would monopolize most of my free time. Every day, I try to review the Training Kit for the coming day so that I can come into the lecture prepared and ready to get on with it. This takes about an hour, either at night or early in the morning before class.
Besides that, I try to do the occasional practice-project whenever I've got the time. For example, on Friday morning, I woke up at 05:00 and redid all of that week's assignments.
The way I see it, my enrollment at Lambda is a sprint. A period of intense learning at a high pace. That requires some sacrifices. It's only for 30 weeks. The pace might be overwhelming. That's a feature, not bug. I still work some 20 hours a week, mostly in the evenings or nights. Sure, I have some days where I'm not well-rested or where I have to force myself to get up at five in the morning, but that's a small price to pay.
I've only done a couple of tutorials at FreeCodeCamp or Codecademy. Do you think Lambda School might be too advanced for me?
I might be biased, since I came into Lambda already having a fair bit of experience building projects. I too started with Codecademy back in the day and went on from there. I definitely think it's possible for you to succeed in Lambda, even if you have relatively little experience beforehand.
STATE OF THE LAMBDA UNION
Though this week started off on a low note, I managed to turn it around. I'm incredibly grateful for all my fellow students and instructors at Lambda School who are there to provide encouragement when you need it most. Imposter syndrome is part of becoming better at something. How (and if) you manage to work through it is what decides how far you'll grow.
Next week, we'll be diving deeper in React. I've already covered some of the topics for next week like prop-types and styling. However, that's not to say I'll be sitting back and zoning out. Now, more than ever, is the time to double down and make sure I get everything right. Who knows, I might do a side-project as extra practice.
I sincerely hope you enjoyed this weeks instalment. I'll see you next week!