Phase-1-Overview
Published: 2022-04-23 23:32:00

Hello,
The purpose of this writing will be a conclusive overview of my experience with Phase-1 of Flatiron School's Software Engineering Curriculum.

The lessons and challenges brought about by the course have been quite the experience coming from having no background in this field. I will highlight some of the key things that stood out to me the most and I found very useful in my learning thus far.

Array Methods:
The use of the different array methods such as: push, shift, unshift, and pop were new to me and I found them to be very fascinating. Prior to the course, I was only familiar with adding to an object/array then slicing, and now I know we can add/remove from the start or end of the array with ease! 

JSONs:
My experience with arrays and JSONs are minimal as I have done a bit of it with some of my small C# hobby projects, but working with a big one like I did with my phase-1 project was a whole new beast. It seemed complicated at first trying to make proper use of fetching all the data, but after making use of it for the lessons and my phase-1 project..it still is a beast of a task. But! It is not as much of a foreign concept anymore. Like most things in life repetition will be the key to fully becoming comfortable with the aspect of using a JSON. An example of this was used in my phase-1-project, here is a snippet below:
`
const response = await fetch(aRequest);
const data = await response.json();
data.data.forEach(o => {
iterate through data for what I need
}
`

DOMContent/Event Listeners:
First impression, "w o w". Loading up a function on "DOMContentLoaded" or performing "OnClick", "OnHover", "KeyPress" were such a satisfying lesson to learn that really provided me with a sense of achievement. Seeing it all play out line by line in the console really gives you a great understanding of how things work hand in hand by the order of operations. The exercises we had where we worked with creating a game was so exciting as it was like I was already developer! Trying to debug why a line of code was throwing an error is always a fun, yet sometimes annoying task if it proves to be stubborn. For the 'keydown' event listener I used in my project, I had to make adjustments as the previous method of "e.keycode" was deprecated and now used just "e.code". 
An example of this was used in my phase-1-project seen below,

`document.addEventListener('keydown', (e) => {
  if (e.code === "Enter") {
    fetchData();
  }
});`

Having to adjust to new language changes is always interesting when you are so used to doing something one way, only to learn that this new way is more efficient. It is inevitable that you would fall back to your previous method on the first code write if you have been using a method for a long period of time. Habits are hard to break even if it benefits you in the long run. 

Arrow Functions:
The ability to use an arrow function over the standard function method is quite useful for trimming code or doing a little shortcut from the usual. Granted there are limitations such as not being able to be used as a method, but it is still very useful in certain situations.

Phase-1-Project:
Upon looking through the list of available key-free APIs, the one that caught my attention was the Anime one by Jikan{% embed https://jikan.moe/ %}. We had a similar assignment prior that made use of a search engine, so I wanted to continue building off of that momentum and try doing one for something I enjoy in my leisure, and I am very excited about how it turned out. Trying to figure out styling with html and css was a little bit stressful since it is still unfamiliar territory, but combining the .html file with my .js was pure enjoyment. The API had given me some inspiration for the concept as listing out results with their image link. I tacked on ternary expressions for different string related results such as:
`
let msg = '';
if (match.length === 1 ? msg = ' Result' : msg = ' Results');
`

Overall very satisfied with the curriculum so far for the program and can't wait to see what is in store for us next. There is always so many new things to learn and being able to go back and look at your previous code to refactor it to be as efficient as possible is such an amazing feeling when you can cut 100 lines of code in half or less!