Anthony J. Campbell

Lambda School - Week 7: Kids React To What?

Anthony J. Campbell
Lambda School - Week 7: Kids React To What?

Information is like food. You are what you consume. Tell me what you pay attention to, and I’ll tell you who you are. 

Do you remember back in elementary school, where that one math-concept kept kicking your ass? Did you take algebra in college and spend hours reading the material, eyes glazed over? If so, you know what this week of Lambda was like.

This week, we dove into the intricacies of React. We covered tooling, lifecycles, and a whole bunch more. Also, what the F*ck are Higher-Order Components? I mean, seriously!?


For those not in the know, I’m a student at Lambda School’s Full-Stack Web Development program (More here). Lambda School is an online ‘bootcamp’ 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 use 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!


Just Read The Instructions

If only it were that easy…

This week was tricky for all of us. Our intro to React in Week 6 was difficult, but most of figured that the hardest had past. Boy, were we in for a surprise on Monday morning.

Turns out there is a lot to learn about React.

Day 1 was all about data-evaluation and using Prop-Types. This came pretty naturally to most of us as soon as we'd gotten the hang of the syntax. Having three different ways of spelling PropTypes doesn't help.

Then, it was onto Component lifecycles. That was a lot to take in. For those not too familiar with React, whenever a component gets changed and has to re-render, there are several phases it moves through. At every junction, you have the opportunity to perform certain tasks and mutate data. As a concept, it makes sense. Putting it in practice is a tad harder, though.

Higher-Order Components were the bane of our existence this week. Already familiar with the notion of Higher-Order Functions (i.e. passing a function as input to an encompassing function), we managed to wrap our heads around it. Once again, we struggled with getting it to work in our own code. The entire EU cohort really rallied together and went about helping each other wherever they could. Code-examples and online guides were passed around and one-on-one help was only a DM away. In the end, most of us managed to get it working.
Some extra practice is definitely in (Higher) order, but it was a victory nonetheless.

Finally, we covered styling in React. This could be an entire week worth of classes all by itself. The go-to method thus far had been separate stylesheets for each component. However, that quickly dissolved into endless specificity errors and adding extra classes to our JSX. Styled-Components was our saving grace.

Too soon?

Too soon?

One cool thing was that we spent four days working on the same project, an Instagram clone. We were supplied some dummy data and some pointers on how to implement certain features. Other than that, we were on our own. The results were remarkable. But having a single project for an entire week of classes has its pros and cons.

It definitely helps with getting started on Days 2-4. You know the code, know how it works, and where to find what. It makes for a natural progression in learning, adding new features as you learn new techniques.

There are some downsides, though. Fact is; you have no fall-back at that point. We're still learning, so we might not structure our code in a way that's conducive to future expansion. (Though I guess this is a good learning-point all by itself). A few students spend a couple of hours restructuring their entire code-base because of decisions they'd made on previous days.


“How Do I Do This Again?”

As most people are curious about the exact things we learn at Lambda, I’ve listed them all down here. Over 30 weeks, it might add up to be the most exhaustive ‘skillset’ resume to date.

In Week 7 we covered:

  • Understanding boilerplates, pro's and cons, etc.;

  • Introduction to testing and setting up our testing environment;

  • Create-React-App vs. other boilerplates;

  • Data-validation, Prop-Types, and prop-checking;

  • React Component Lifecycles;

  • Higher-Order Components;

  • Philosophy and design principles of React;

  • Styling React apps.

    • CSS Modules;

    • Styled-Components;

    • React-Strap.

  • Fuzzy-search;

  • Authentication.

Trying to keep up like…

Trying to keep up like…

As always, I tried to review some extra material. Mostly out of curiosity, but sometimes to understand concepts that didn't come through too well during classes:

  • Search algorithms. I started this free Princeton course on Algorithms. I made it to week 2 and will continue in the weeks to come;

  • I made it about 2/3rds of the way through Robin Wieruch's ‘The Road to Learn React’ for the second time. I flew through it, though I occassionally struggled to wrap my mind around some of the more advanced concepts;

  • Styled-Components. I went through a couple of tutorials to really figure out passing props and incorporating conditional styling. Didn't really get too much out of this.

  • React-Router. We'll be covering most of it next week. I've used it in the past, so I've gone over the documentation this weekend.

I'm starting to notice that I prefer doing research on the side over doing stretch challenges as part of the curriculum. Might have something to do with seeking out things I'm more comfortable with. Whatever the case, I have a backlog of all stretch assignments I haven't done yet. I consider it a point of pride to finish all of them before graduation. No half-measures.

At this point, we're starting to become comfortable with React and confident in being able to build simple apps. It's incredible how much can change in a month and half. Most of my peers had never written as much as a static website before starting Lambda!

And we've only covered 1/4th of the curriculum…


Q&A

When starting with Lambda, were you scared of it being a scam? What if it hadn't measured up to your expectations?

Frankly, I wasn't that worried. I'd followed Austen ever since he started Grasswire, so I was confident in his ability to pull this off. What's more, the Income-Share Agreement is what convinced me to participate, though.

If it turned out to be a hoax, no harm done. After all, the conditions for the ISA wouldn't apply and I wouldn't have to pay a cent. Conversely, if they did a good enough job t satisfy the ISA-requirements, I'd be more than happy to pay the 10%.

Have you experienced any issues as the first European cohort?

So far, there have been very few. The European cohorts have their own support network of Project Managers and Instructors. So we don't really interact with the US that much. One thing I've noticed is that the EU cohort tends to be a little isolated, in general. Since our day of classes wraps up before the US-based class has even started, there's little overlap. As a whole, the EU cohort seems to be less active in the main chat on Slack.

Every so often, Lambda will host guest lectures or so-called brown-bags where experts dive into a subject of their choice. However, these are all timed to coincide with the US-schedule; i.e. at around 4AM. They get recorded and put on Youtube, but it's far from ideal.


STATE OF THE LAMBDA UNION

Next week, we'll be spending even more time on React. Routing, Client-Side Rendering, HTTP and AJAX will form the majority of the material. We'll be covering some critical stuff, so I have to make sure I clear out enough time to revise and read up on stuff if need be. I'll pull it off.

Finally, I'm really grateful for having had the opportunity to enroll in Lambda. Sometimes, it feels like I'm experiencing the future of education.

I sincerely hope you enjoyed this week’s overview .

Hasta pronto!