Javascript is a programming language that can be related most closely to java, as the name implies. Overall the main differences between are with the syntax or writing style that is used with coding. My only previous programming language knowledge includes Java, C, C++, and now Javascript. Personally, I felt that the process of learning Javascript was a lot easier than learning other programming languages since I already had a foundation in Java which I would dare to call the “parent language”.
One of the main differences that I noticed was that Javascript is much more general than Java in most aspects. What I mean by this is that in general you can just jump into the coding without any class or main function that were necessary in Java. There are also generalized variables that do not go into specifics of the variable type (i.e. integer, boolean, string,… etc.) and instead can be defined with only three declaratives. This makes the coding much more fluid in the aspect that you can create a program or function without being so specific, which I have found, often makes your coding move along faster.
From a software engineering perspective, Javascript is somewhat more accessible since you are able to program with it on internet browsers. I find this to be more convenient than having to use an external application. The only downside to coding in a web browser in my experience has been when the internet crashes, but there are ways around this by backing up your data frequently. Another benefit of Javascript has been that since it so widely used, you can often look up any of your questions or errors and actually find a useful answer. This was not the case when I was learning C, where you sometimes had to decrypt useful information from textbooks that were developed when the language was first created.
I was able to learn Javascript on two main websites, which were codeCamp and codecadamy. I found that codecadamy was much more clear in their instructions and examples than codeCamp was, however they were both vital in helping me to develop an understanding of the language.
This leads into the topic of athletic software engineering which is an approach that challenges me to work harder in order to succeed however creates a somewhat competitive atmosphere that also helps to motivate me. With both the practice and in class “WODs” that we have, they are helping me to have more practice coding in the language while also allowing me to make mistakes and further develop my skills in problem solving while coding.
Overall I think that the athletic software engineering approach is much more effective than “traditional” teaching because it enables students to take their learning into their own hands and weans them off their reliance on their professors during lectures and other in class exercises. This is because our learning is almost self paced such that, as students it is up to us to go through the lessons or screencasts so that we will be able to complete our own work and to ensure that we understand the content that was covered.