Week 2: React.js

React.js

This week we learned the fundamentals of a Javascript Framework called React. It was created by developers from Facebook and Instagram and is all the rage right now.

1llbbu

We were told that having a solid understanding of React.js would significantly increase our chances in the job market post-grad. Before we move any further let’s just quickly describe from a high-level what React is and why developers like it so much.

One of the main reasons developers like this framework so much is because of its ability to scale well on larger applications. It is modular in that you are frequently breaking things down into smaller pieces, called Components, which allows you call on them later in your application when needed – increasing the DRYness of your code.

Back to the actual week at hand, let’s discuss how it went. We began the week with a few reading assignments and a simple exercise over the weekend as a way to introduce us to React.

The first assignment, a simple exercise that was assigned over the weekend, was fairly straightforward. We created a simple mock-up of a pop-up ad and had to use onClick as a way to alter State and trigger a Confirm box when 3 or more clicks occurred on a  element. Simple enough really.

If the entire week was as easy as this assignment, this week would have been pretty easy. But it wasn’t. It was significantly harder. Once we started breaking our Apps into smaller nested components, for some inexplicable reason, things became difficult. Much more difficult.

tumblr_n9bsjnrbk91tnxu2ro1_500

Why was this? It was simple when it was all in the same file but once we began using nested Components it became hard to keep track of everything in our app. One thing we were really striving for this week was utilizing the separation of concerns principle.

This simply states that we should break parts of our code up into sections based on functionality. We didn’t want to clutter our code with Components that could just as easily inhabit their own file.

Something that a lot of people were struggling with early on was props. Props are a way in React of passing down data or functionality to children Components. For instance, you can create a onClick function in one Component but then pass it down to its child component to be used there. The trick of course being that, when the onClick event is called on the child, the state of the parent is affected but the child does not have state.

Concepts like this tripped a lot of us up for the majority of the week. The larger the programs became the more difficult it was to track where properties were being passed and more importantly how to access those props.

A word of advice: Before you get into Launch I strongly urge you to run through any resources you can get your hands on for React.js. I don’t care what it is, just make sure you have at least, at a bare minimum, a cursory knowledge of what React.js is and how to do some simple Component creation (nested Components too).

Resources:

Compounding the density of the material we covered this week was Snowpocalypse which resulted in yet another over-hyped winter storm warning. As a rule of thumb, if they say 18 inches they’re probably over-compensating.

tumblr_o0feng1g6o1tpg4boo1_500

Well that certainly sucked. Do you want to know what made that even worse? Configuration issues. Yea, let’s back up to the previous weekend. We were all trying to get out systems set up for React but spent the entire weekend diagnosing config issues with webpack and npm.

Everything we were given was off and being that none of us really have any experience with this, coupled with the fact that there isn’t any support from staff on weekends, this ended up costing us a lot of previous study time. Ultimately, it was students who figured it out prior to class on Monday.

In fairness to the staff, it was beyond their ability to account for new releases and how they would affect our dev environments. React is in a state of flux right now and things move quickly. I have to give them kudos though for admitting fault and apologizing to all of us during our facilitation the other day. They didn’t need to do that but it demonstrated a culture of accountability and excellence that I have come to truly respect from Launch.

That being said, these two things resulted in a real sh*t-show of a week for us.  The ‘storm’ landed on a Tuesday and so on-campus classes were cancelled and everything went remote for the day. This was kind of weird but we were having online lectures and mentor groups through group video chat. The staff also had to alter the flow of the curriculum for the week which kind of threw us for a loop.

In the end, they swapped days, so on our snow day we were learning concepts that were prematurely complex for our own understanding and then on Wednesday we covered what should have been covered on Tuesday. It was a difficult week, no doubt. The material was super dense and the scheduling basically made it a nightmare.

I’ve heard the learning style at launch as having been made analogous to trying to take a drink from a fire hydrant. I’d say, for this week at least, that’s pretty much on point.

824277

When it comes to the learning curve of React I would say it is probably on par with just about anything else you will learn at a Bootcamp. I have found that the biggest hurdle to learning new technologies is two-fold.

  1. You need to have a solid conceptual understanding of what the technology you are employing is used for. Ask yourself, what is this capable of and what is it not capable of?
  2. You need to be able to fully absorb the new Syntax. Knowing how the language or framework is constructed will give you a new perspective and quicken your learning curve.

As with all things in life, a person’s disposition and interests will greatly affect which technologies they favor. Launch Academy is very adamant on creating Full-Stack Developers who are comfortable with every aspect of Web Development. With that being said, while I find a great deal of value in that, I seem to favor a more Front-End role.

I find myself, more and more as time goes on, really focused on user experience and the presentation of a product to the end user. What good is your product if your targeted user base can’t stand to use the thing? I mean, is there anything more frustrating than having apps with poorly laid out designs and menus? What about poor color pallet choices, they can really dampen a user experience.

I have been gravitating towards these concerns as of late but time will tell if they end up taking root. I have a lot more to learn and many more technologies to be exposed to. Until then, I will keep an open mind and maintain the mindset of a perpetual student.

Also, we celebrated Pi Day this week, Check out the video

That’s all folks…

giphy1

One comment

Submit a comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s