Day 1: Learning full-stack development
Tags: webdev, react
Published: 2023-04-18 02:13:16

Hello! One of the [technical skills](url) I want to learn in 2023 is full-stack development. More precisely, I want to continue learning full-stack development. 

I started my career as a junior engineer at Floyd, a d2c e-commerce brand based in Detroit. When I was in college, I did not expect that I was going to go down this path. I only did a minor in Computer Science in college and most of my friends were in the business school. Because of that, I assumed I was going to be a consultant of some kind, or a similar analytical or business role.

Because of my background, and the fact that I had very few friends who were in software engineering, I have always felt like an imposter in technical roles. I found myself feeling like I didn't know enough to consider myself an engineer, and that I wasn't good enough to continue down the career path. After my role at Floyd ended, I didn't think I was cut out for another software engineering role and that I should look towards roles that are adjacent to software engineering or tech, but tend to flex softer skills (I'm still open to that career path as well, especially in the long term).

I want to prove to myself that I can learn a framework from scratch, and I want to blog about my experience to help other people who don't come from a traditional pure Computer Science background. Hopefully, you can relate to some of the feelings I'm going through, and it helps you work through similar challenges.

## Where I'm starting from

I am not starting this challenge as a beginner, because I have worked as a software engineer (for close to two years) using a modern front-end framework. Specifically, I worked with Solidus, which was built on Ruby on Rails, and a Vue.js heavy front-end. Our app also worked with a content management system, called Contentful (the organization has since switched to using a different set of tools). 

Also, I have been hobby programming since I was 11 or 12. I got my start with HTML/CSS, and then graduated to messing around with Wordpress. I completed an undergraduate minor in Computer Science at the University of Michigan, which shares core classes with the major, and is a well-reputed computer science program more generally. Those have given me a strong base of knowledge to approach this course.

## Day 1

Let's begin! To teach myself Full Stack I'll be using this [website](https://fullstackopen.com/en/), which is a free resource. They recommend doing one part at a time. I'm starting with [Part 1 - Introduction to React](https://fullstackopen.com/en/part1). 

The first challenge with any new framework is figuring out how to get the d**** thing running. This is by far the most frustrating part of development. 

Specifically, I'm trying to run the following command

```
npx create-react-app part1
```
`npx` is a command that you can use to install npm package binaries ([link I Googled](https://www.npmjs.com/package/npx)). `npm` is a package manager for Javascript. I always thought it stood for Node Package Manager but technically that's [not true](https://en.wikipedia.org/wiki/Npm_(software)) (though that was the name of the original commit). 

I'm not sure how to run this command - I think I need to install npm, and use that to install npx. I already have nvm installed. Based on [this section](https://github.com/facebook/create-react-app#creating-an-app) of `create-react-app` docs, I _think_ I can use nvm to use npx/npm. Let's try following [these steps](https://github.com/facebook/create-react-app#creating-an-app) to see if that works. I ran the following command to install node:

```
nvm install node
```

Now let's see if I can use `npx`. I followed the [commands here](https://fullstackopen.com/en/part1/introduction_to_react), and it worked! Excellent. 

I'm not going to replicate every step in the tutorial, but will outline any cool things I notice, or any problems I run into as time goes on.

Here are some things

- React dynamically updates the content - I didn't have to refresh my react app after saving code, unlike Vue.js

## Reflections

I spent probably one to two hours on this. I'm starting a part-time job soon, and that took up the remainder of my day. I think to be successful with this, I should focus on doing it at the beginning of the day, and setting a goal of 2 hours of learning.