For some strange reason, when I program, I am often oblivious to the actual language that I am programming in. Thankfully, I have not had to program in multiple languages at the same time (no, not talking about within a single program…), but what I find is that I often become more immersed in the theory and logic behind the program that I do not really focus on the syntax of the languages that I am programming in. Instead, I tend to immerse myself within the coding and code from the context. The syntax come out of my fingers as a natural process from the context of working in that language and from the code around it.
Unfortunately, this obliviousness to programming languages has multiple drawback. First of all, I have an extremely difficult time comparing and contrasting the various languages that I have programmed in. Secondly, it takes me a little while to immerse myself within the “flavor” of a particular language and syntax before I am comfortable programming at full speed. Lastly, when I program, I find it useful (or even necessary) to have notes about the general syntax of the language that I am programming in. For example, it is helpful for me to have the syntax of the various different loops, if statements, input and output statements, and general function and method syntax. With these notes, I believe that I can program pretty well. I believe that this weakness is partly due to the fact that I have an extremely difficult time with memorization of facts (such as syntax). My weakness in memorization is probally also the underlying cause for my obliviousness to the differences in programming languages.
Fortunately, there are many advantages and they far outweigh the disadvantages. Frist of all, I have found that so far learning to program in a new language has not been too difficult. After all, it seems that all programming languages follow the same theory. All you need to do is to learn the syntax of the language and you are pretty set. Additionally, I find that I can pick up most pieces of code that is written in a language that I am unfamiliar with and while I might not understand the specifics, I can get a decent sense of what that code is doing.
In terms of learning JavaScript itself, I have found that what I said above is so far holding true. I have not found any real difficulties, but I will wait and see as we are only beginning our venture into this language. Even though I generally do not recognize much differences between languages, I have noticed that JavaScript is typeless in regards to it’s variables. So far this has made programming easier as we just need to declare the variable and use it. This includes the easy with which we can declare an array. I am not sure as to how I feel on this and will need to see how this affect my programming as we proceed. For example, how do cast from one variable type to another, or do we even need to? Another area that I am interested in learning about is that JavaScript is apparently an “object oriented language”. What this means specifically and how this affects how one programs is probably one of the biggest questions that I have about JavaScript. Thankfully, this wait should be short lived as that appears to be the next topic that we will be covering in class.
The one area of difficulty that I have come across in learning JavaScript has not be from the programming language itself, but rather from the context in which we are learning. The wording of the requirements on the freeCodeCamp website can be difficult at times. Once I finally figure out what it is asking, then the actual coding comes pretty fast. I have also found this to be true of many of the other learning environments within the class. In many of these sites, I have attempted to find help through a introduction to the learning environment, but after much searching, it seems that we often are using them in specific ways that I do not find adequate help with. I would wish that we would have some introduction tutorial or be pointed to an introduction tutorial as to the use of these frameworks.
In closing, while I feel that I can program pretty well, I am fearful that one day I will be asked to create a program within a particular language and I will be in trouble because I have not memorized the actual syntax of that language. I guess that to strengthen this weakness, I will have to begin to work on it. I believe that one way would be to practice my programming skill using by using a multitude of languages in close proximity (time) to each other. I might even need to write the same program using various languages so that I am able to see the differences side by side in action. To that end, I was recently introduced to a website called “Codingame” that allows you and encourages you to write a program multiple times using multiple languages. I guess we will see how that goes…