Lambda School - Week 6: You're OverReacting?

“Why don’t sharks bite lawyers? It’s just professional courtesy.”

— Unknown

The title might betray it a bit, but this week we finally covered React at Lambda School.

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 offers 9-month programs in web development, data science, and iOS development 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!

Of Course I Still Love You

Since starting Lambda School, I'd been waiting to get starting with React! I'm most familiar with React out of any other language or framework. Pretty much every app I built for clients was constructed in React.

One of the primary reasons I enjoy using React so is that it mirrors the way I look at things. React is based on the concept of self-contained components that can be placed in any place while retaining its functionality. If you've built a button that looks good and has a cool animation with React, you can simply import it into any other file and use it right away. So rather than building full pages from scratch, you're building up a library of components and pieces that can be combined into the desired end-result.

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.

I've always done a similar thing when building websites; even when using 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 ~200 components scattered over a few hard drives.

My React-ion (see what I did there?)
My React-ion (see what I did there?)

Before starting this week, I reviewed Robin Wieruch's book ‘Road to Learn React’ . It felt good to get reacquainted, although the majority of it was already familiar to me. There were a couple of insights and gems that I had not known before, mostly to do with the underlying layout of the MVC. I read some 90-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. The neighbors seem to think it's cool to throw a party on a Sunday evening. No bueno. So the first day was a wash. Frankly, I could afford to slack off a tiny bit. By the end of the second day, I did start to notice that I was struggling to once again wrap my head around the concept of destructuring. Kinda weird, since I'd used it for years without thinking about it. Moral of the story kids; use it or lose it.

To remedy this, I resolved to wake up hella-early Wednesday morning and go deep down the Google rabbit-hole. Luckily, there was also a lot of info to be found on Training Kit. For those not in the know, the Training Kit is Lambda's online learning student environment. 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 of some dusty academic tome, the entire curriculum for that day is summarized 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. And I learned a ton about React's architecture to boot. 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 curriculum at Lambda School, I’ve listed all topics down here. I guess it also makes for a good roadmap if others try to do something similar by themselves.

In Week 6 we covered:

  • React, the React DOM, and the MVC pattern;
  • Building, using, and importing JSX elements;
  • Functional and Class-based Components;
  • State management & best practices;
  • General React workflow & architecture;
  • Component-based prototyping and development;
  • Passing Props to components;
  • Conditional Rendering;
  • API-calls using fetch().

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:

  • I played around with React Hooks and other new React features using the documentation. Hooks should massively simplify state management but I'm not too sold on the Context-API just yet.
  • Using PropTypes for prop-checking
  • Styling React with CSS modules and Styled-Components;
  • React lifecycle methods.

In the past, I was really suffering from tool-overload. No matter what you were trying to do or build, odds are that there were a dozen different tools. I'm really glad Lambda School focuses solely on React for now.  Frankly, Angular, Vue rarely if ever get mentioned. All the better, in my opinion. By narrowing the amount of technologies used, we can focus more on the underlying (language-independent) concepts rather than spending all your time on the peculiarities of your tool of choice.  Those who are far ahead will explore other tools that interest them on their own.

Q&A

How much time do you spend studying outside of class?

It depends. Going in, I knew Lambda would consume the better part of my day. 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. This could be playing around with a specific package or tool, trying to doodle with CSS, setting up a mock Linux server to play around with SSH, etc.

I try to treat my time at Lambda as one drawn-out sprint. The pace is quite murderous, even despite coming in with more experience than the average student. It's a period of intense learning at a high pace. That requires some sacrifices. It's only for nine months. The pace can be overwhelming. That's a feature, not a 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.

Yeah, about that…
Yeah, about that…

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.

Just know that it's going to be difficult at times. The pre-course work is an adequate intro to web development. Just ensure you actually do some more learning before classes commence. Otherwise you're just not going to cut it. Secondly, I'd recommend you try your best to get better at JavaScript at all cost. Get seriously good at using JavaScript and the rest of the curriculum will be easier. It's a meta-skill. You'll be using JS-based frameworks throughout the entire program; plain JavaScript, React, Node, and Express. Once you've mastered JS, picking up other languages like Java or Python will be infinitely easier. For some students, their lack of Javascript knowledge ends up being the bottleneck that limits their progress.

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 decides how quickly 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!

Sign Up For Friday Favorites!

Join the 500+ people who receive my Friday Favorites newsletter in their inbox every week. It's a mash-up of the most interesting links, books, and ideas I came across that week, as well as my latest articles and book notes. If you're curious and looking for high-quality information, you should definitely join.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.