When I heard that we were going to learn Typescript in ICS 314 I thought I wouldn’t have to learn much as I already had learned a few coding languages those being, Java, C, and C++. Mainly Java as it has similarities to Javascript with the syntax and object orientation parts being the where the similarities essentially start and end. And with Typescript being a superset of Javascript all I had to do was relearn some Javascript and the new features intoduced in TypeScript. Should be easy, right? That thought quickly disappeared after the first week of ICS 314 because as I started relearning Javascript, I realized there was alot I forgot when I initially learned it back in high school. And on top of that, the exorbitant amount of features that the developers of Typescript decided to add.
After I learned Typescript for the most part, it just made me think about all these features that should be in vanilla Javascript with the main one being static typing. From all the languages I’ve learned during my stay at UH Manoa they all had me at least declare what data type my variable, function, etc. Javascript did not and I didn’t think about that until I tried Typescript. I also like that it requires little setup compared to other programming languages I know for example outputting “Hello World” in Javascript/Typescript compared to C.
Javascript/Typescript:
console.log("Hello World");
Pretty simple since its on one line and easy to understand. console.log would print out to the console, and “Hello World” is the desired message we want to print out. Now lets take a look at C.
C:
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
…Thats something. While its not that long, it is when we directly compare it to Javascript/Typescript above, it being a whole 3 lines more. Now while I am obviously exaggerating this builds up when we big bigger and better projects.
While its too early for me to tell if this programming language is good from a software engineering perspective, what I can say is that while this will be a long a difficult journey in mastering, I know it will be worth it. I hope I can look back on this question and confidently say if this language is good for the industry I hope to enter.
Ah finally, talking about the dreaded WOD. But before that, lets discuss athletic software engineering which I personally think is a great way of teaching over the tradional methods I have been taught in previous ICS classes. I say this because as opposed to learning the material for one week and mostly using it for that week, mainly in a single assignment, the ASE way forces you to learn alot especially for the “weekly exam” we get each week. This makes people want to learn even material outside of the classroom to increase their knowledge on software engineering and improve their scores for the exams which leads me to talk about what the heading is about, the WOD’s. A WOD is a basically an exam conducted every week which tests our knowledge about the things we learn that week, but with a grave twist, we are put under a strict time limit with so far having about 25 to 30 minutes. While this may seem like a problem to like a very small portion of students who are very adept at programming, it is to me as when I make projects like the WOD’s present I usually need a few hours to code the actually thing, testing it, and eventually fixing the bugs along the way. This is on top of me also being extremely lazy. But from the two WOD’s that I have done so far it is making me change my lazy habits and decide to start studying and examining more outside of class in order to fully understand it and be prepared for the weekly WOD