Skip to main content

Command Palette

Search for a command to run...

React.js

Published
•3 min read•View as Markdown

The second phase of our boot camp built upon the framework of Phase One’s JavaScript, CSS, and HTML, and introduced React. Although, superficially, the components of React simply seemed to mimic JavaScript, it quickly became apparent to me that the implementation and complexity of React would not be as obvious as I initially expected. Several challenges I faced in the beginning included basic, fundamental skills like understanding the structural “tree-like” hierarchy of code, understanding how to best identify where “State” should be rendered, identifying specific parts of the code to extract as an individual component, and getting familiar with new concepts and functionality like passing down functions as props. As the beginning of Phase 3 approaches, I feel proud of the new skills that I have obtained with React. Yet, as I sense a recurring trend in this field, my exposure to new concepts and information, as well as my growth in knowledge, only highlights how little I know and how much more learning is required in this journey.

React provides programmers with the ability to create a dynamic single-web application, in an extremely organized and structured manner. I was fascinated with the idea that we could extract reusable parts of our code into named components, that could then be imported and used as seemingly normal JavaScript elements. To do so, I was “forced” to develop a more systematic and holistic approach to writing code. That is, I was forced to practice the art of mapping, planning, and understanding the individual components of my code as well as the entirety of my code simultaneously, to optimize its structure and ability to successfully pass and render data. Relying on basic strategies like drawing out a tree of component relations, I found myself more easily identifying reusable, key parts as the phase progressed.

As I began to discover more intricate ways to manipulate components and render data, I truly began to see the potential that React unlocks. I was also amazed to discover how many major websites and platforms have been built off of React. Although more complex concepts like routes, context, and navigation are still challenging, the ability to create such complex web applications as Facebook, Twitter, Reddit, and so many more has only motivated me to continue my studies beyond this phase. Even within my own cohort’s Phase 2 project presentations, I was amazed to see how much everyone was able to accomplish in just 6 weeks of learning. Despite being exposed to the same lessons, modules, and lectures, it was amazing to see how everyone expanded upon the same foundation of information through unique creativity and interest to create their respective projects. Each unique application provided its own form of motivation to learn more about how certain features were implemented. Although I’m extremely proud of the skills that my partner and I were able to display in our project, I am eager to learn more about back-end coding to develop more complex and encompassing applications.

Despite the challenges I initially faced in this phase, I’m proud of the skills I have developed to fuel my understanding and growth as a software engineer. Aside from memorizing pure functions and language syntax, I entered this program eager to develop concrete coding-specific skills that would translate throughout my career. By virtue of the nature of React, I’m grateful for the learning opportunity to strategically plan my code, to think about which components can be extracted to make my code cleaner and more readable, to think about the most efficient means of passing information, and to overall, help me develop a more concrete skill in writing all types of programs in the future. As I continue on my journey to become a software developer, I not only hope to retain all the new information I am exposed to but continue to develop skills that translate across all languages as well.