After completing Assignment 1, I recognized a big improvement in my ability to work with JSON data, arrays, and objects in Javascript. To successfully load the ‘products_display.html’ file, ‘invoice.html’ file, and process data on the server, you need to understand how to create an array, store values in an array, and access objects within the array. For example, Assignment 1 required the use of the POST method to send form data of the requested product quantities to the server. The quantity data needed to be processed and validated on the server. The server receives the data in JSON format. To perform a validation of the quantities, I needed to understand how to access the data, traverse through the array, and validate each entry. If an entry was invalid, I needed to match the index of the invalid entry to the index of its associated product. Understanding how to traverse and manipulate arrays was also helpful when detecting if users entered no quantity data or a quantity that exceeded the inventory. Figuring out how to properly access and configure arrays to get the data that I needed was the most challenging part of the assignment. However, it was also the most fun, and when I solved an issue regarding arrays, it was the most rewarding.
One programming skill that I can improve on is manipulating and modifying DOM objects. Ideally, I wanted to alert the website user about invalid quantities or no quantities selected directly on the webpage. However, I could not figure out how to update the webpage after processing the quantity form data. Instead of notifying the user by creating a notification on the website document, I used a Javascript alert box that would pop up if a quantity was invalid. Though I could still validate the data on the server and alert the user, the user interface would have been better if I had updated the website document with alert information.
I was able to complete all WODs, except one, without looking at the screencast solution first. The majority of the methods used to solve my WODs were covered in class while working on the lab assignments. There were also many ways to complete the WODs, so even though my method may not have been the most efficient, I enjoyed the process of problem-solving and troubleshooting the program. Also, it was motivating to race against the clock.
The labs are beneficial when first learning new concepts. When I am first introduced to new concepts, it’s easier to understand the new material when someone is able to explain the content and go through some examples. It also provides an opportunity to ask questions and get feedback immediately. The WODs help with reinforcing the new material. The majority of the learning happens when I complete the WODs.
I believe that I am ready to work on Assignment 2. After briefly reading about Assignment 2, I expect to work with JSON data and form processing on the server. These topics have already been covered in Assignment 1, and Assignment 2 will provide another opportunity to reinforce form processing and accessing JSON data.
Sometimes, the pace of the in-class lecture is too fast, and I lose track of which exercise in the Lab assignment we were working on. Going through the labs in a slower and more structured format can help me follow along with easier.
Completing the WODs and working with classmates helped me the most in class. The WODs are an excellent way to reinforce the material covered in class and help improve my problem-solving abilities. Working with classmates allows both of us to bounce ideas off of each other. For example, I worked with a classmate to figure out how to get the Javascript alert boxes to work. They found an approach that I have not tried yet, and it decreased the time it took to debug the program.