E4 Progress In Programming Report

18 Nov 2019

1. My programming skills have greatly improved.

In general, I can say that my programming skills have greatly improved since the beginning of this class. Before this class, I had a basic understanding of the fundamentals and concepts of HTML and CSS. However, JavaScript was somewhat new to me. I never really got serious about utilizing HTML/CSS or applied them to anything. When I first started this class, I thought that I would already need decent programming skills to keep up with this class, but that was not the case at all because we thankfully started from square one of programming. Professor Port made the course comfortable to reassure us that we did not have to have any prior programming experience to succeed in this class, and that motivated me to challenge myself with these upcoming lessons. One skill that I have been developing and will always continue to is “algorithmic thinking” or thinking like a programmer. This means that we only get to a solution of a problem through a set of clear steps and knowing how to think at the level of a computer to provide it instructions to execute something the way it was intended to be. Along with developing algorithmic thinking, I noticed that as we progressed through the lessons, it became a lot easier to read and write code during the labs. I made fewer syntax errors within my code, and if something does not work, it became a lot easier to spot errors and understand why something does not work. After learning how to develop basic JavaScript programs through the labs and Assignment 1, it made much more sense on how websites that I frequently visit utilize this language to add more functionality and interaction to their pages. Assignment 1 took everything we learned about HTML, CSS, and JavaScript to build our own e-commerce website. A few concepts in Javascript that I learned and challenged my programming skills were data validation, client-side, and server-side processing. These three concepts were entirely new for me, and I now realize just how versatile this language can be. I will make sure to incorporate the lessons I have learned up to Assignment 1, to improve my programming skills beyond this class further.

2. I am enthusiastic about programming.

Before this class, programming was something that intrigued me, but I would sometimes be intimidated about how difficult it would be to learn these concepts. However, as the class progressed, and after completing Assignment 1, my enthusiasm for programming continues to grow. Although some lessons were challenging, I enjoyed the challenge because the lessons we learned were exciting. Since these lessons were challenging, it was always very satisfying when I find a solution to my problems. For example, I would run into many errors in Assignment 1 while trying to figure out how to make something like a button work properly. With persistence and going over skills I have learned, I was able to get my button to work the way I wanted it too. There is nothing more satisfying than seeing your program work on-screen after being stuck on it for many hours. I realized that being stuck on something and sometimes not knowing what is wrong with your program is a part of the programming process, but that did not affect my enthusiasm. I also realized after Assignment 1 that if I continue to stay passionate about programming, I will be capable of building more sophisticated versions of Assignment 1 sometime in the future.

3. I can do the practice WODs without looking at the screencast solutions.

In the first couple of WODs, I would sometimes find myself going to external sources for help and going to screencast for the solution because I would get stuck on something for so long. However, the more WODs I did, the less I would refer to these outside sources and screencasts because I developed strategies for me to complete these WODs within a suitable time successfully. I found that reading through the instructions first made helped me a lot because I would know what to expect beforehand of what was required of me in each task, and I could go back to the labs that correspond to this WOD to quickly review a concept that I might have trouble with. I also go over previous WODs for future WODs that build off another or relate to each other because some concepts could be used again. If you get stuck on something or you have no idea on how to start a task, I recommend using outside sources like MDN or W3 schools first to look up how to write something. If you go straight to the screencast, you will not learn anything, and you will be even more lost in future lessons. The WODs are always based on what we do in the labs, and these are excellent practices to incorporate what we learned in each one. I find that doing the WOD a second time improves my confidence in not only the lessons it applies to, but my general programming skills as well because I would not have to refer to the screencast for the answer.

4. The labs have helped me to learn and I am able to complete them with confidence.

These labs have helped me learn, and I can complete them with confidence. Similar to my previous answers, I did not have that much confidence during the beginning stages of this class. One particularly hard lab was server-side processing, which explains why it took over two classes to finish. This lab was hard for me because I have never encountered something like this in JavaScript before, and there were many concepts involved to make things function properly. However, Professor Port always made the labs very informative and made sure we were able to follow along throughout the entire lab. He checked if all of us understood what each piece of code meant and why we did things a certain way for each exercise. As a result of all of this, things became easier the more labs we did, so the challenge was quite fun, and my confidence continued to improve along with my programming skills.

5. I feel ready to move to the next stage of complexity in programming (building small web applications).

At this point in the semester after completing assignment 1, I can say that I am ready to move to the next stage of complexity in programming and build small web applications. Although Assignment 1 was challenging, it was an excellent assignment to incorporate everything we have learned up until this point in the semester with HTML, CCS, and JavaScript. I am now more confident with my programming skills and applying what I learned to different scenarios. I understand that when it comes to programming, we never stop learning, which is why I am eager to learn whatever comes up next. Even if something may be complicated, I will always enjoy the challenge and the process of programming in general.

6. I think the class can be improved to help my learning.

I do think that some parts of the class can be improved to help my learning. Although I enjoy the types of things we do, such as the labs, quizzes, and assignments, there are a few things that can be added or changed. The first thing that could be improved is by having a set due date for each lab or assignment. I understand that sometimes labs may take longer than usual to finish, but I think what we go over in class should be adjusted so that we get to finish it on time. I like having an organized schedule where I can plan out things, so having more accurate due dates would help my learning. Another thing that could be improved is the timing of notifications for things to do before a lab. Since the schedule is always changing, it’s hard to know when and what to study for next lab because the master schedule does not match where we are at. Sometimes things get assigned the night before the lab, and I think maybe a couple of days before would give me time to be able to grasp the material a lot better before the lab. I believe that the powerpoint slides, quizzes, and assignments are helpful, but I think more resources other than w3 would be even more useful when preparing for an upcoming lesson. I understand that developing programming skills takes time, but this semester is very short so it is tough to fit everything about HTML, CSS, and JavaScript into one semester. This is why I think a list of other sources along with a notice of what to study ahead of time would be helpful so that I have more time and more resources to learn more material.

7. There are things that work really well my learning in this class.

There are things that work really well in my learning in this class. Aside from what can be added as mentioned above, I appreciate the powerpoints, labs, and WODs. As being more of a hands-on type of learner, the labs really help me learn a lot and do an excellent job of answering questions I have during the assigned readings. I really like how Professor Port does not rush through the labs just to get through the exercises. He takes the time to ensure everyone is at the same place as him, explains in-depth what each exercise is asking for, and gives us many hints about what future labs or assignments use the same code. The powerpoints are great because it is a great addition to the readings since it is more tailored towards the labs and it is more of his way of explaining things, so it helps a lot when he goes over it in the lab. I think WODs were fun and I learned the most from because it tests you to see what you know and if you can apply what we do in the labs. Personally, it was a great way to solidify everything that I learned in the readings, powerpoints, and labs because this is where I can actually apply things on my own. Lastly, projects like Assignment 1 were the most challenging because it forces you to take a step back to look at everything we have learned so far. More importantly, projects like this are really where algorithmic thinking comes in because you have to truly understand what the situation is, break down the tasks into smaller steps, and be prepared to view problems in different ways if you get stuck. It is a long process, but projects like this are what is required of full-time programmers.