Reflect on Javascript

17 Jan 2024

Introduction:

JavaScript stands out in the world of programming for its flexibility and wide use. My recent experience with learning JavaScript has been full of new discoveries and challenges. As someone with almost no background in programming, learning JavaScript and its latest features, like ES6, has given me a new view of web development. I learned a lot of new things that I didn’t know before.

Background and Comparison:

Before learning JavaScript, I only had a little knowledge of the C language. When I started with JavaScript, I thought it would be easy, but it was quite different and sometimes tricky. Unlike other languages, JavaScript’s way of doing things, like not needing strict types and responding to events, made me think and learn differently. But overall, I think JavaScript has a simpler programming environment than C language. In my opinion, the overall scale of JavaScript programming is smaller and the pattern is clearer than that of C language.

Discoveries in JavaScript:

Learning about ES6 in JavaScript felt like finding hidden treasures. Things like arrow functions and template strings made my code neater and more efficient. The new ways to declare variables, like ‘let’ and ‘const’, were a relief from the old ‘var’. At first, these features seemed tough, but they soon became essential for my coding. For example, when we first started learning, we only used “var” to declare variables. However, in later study, we found that “var” has many disadvantages. “var” will not report an error when declaring a variable multiple times, which makes it difficult for us to detect whether the previous variable has changed the original variable after being repeatedly declared. This makes it very difficult to solve the error problem later.

Software Engineering Perspective:

From a software engineer’s view, JavaScript has both good and bad sides. First of all, JavaScript is a programming language with a low entry barrier. It uses a syntax similar to C language, which is relatively easy for developers with other programming experience to get started. At the same time, JavaScript learning resources are rich and the community is active, so you can quickly obtain a large amount of learning materials and help. For example, when I have a question about JavaScript, I can easily search online and get a solution to the problem. Then, I think JavaScript’s compatibility is very good, and it can basically run in all modern browsers. However, compared to some compiled languages, JavaScript’s performance may be affected to a certain extent. Since it is an interpreted language, it needs to be dynamically parsed and executed at runtime, which may cause some performance losses. Especially when dealing with large-scale data and complex calculations, performance may become a bottleneck.

Athletic Software Engineering and WODs:

Using Athletic Software Engineering and doing WODs (Workout of the Day) was a new and exciting way to learn. Each WOD was a timed coding challenge that tested my skills and quick thinking. This method was really stressful at first, I needed to read and understand the problem in a relatively short amount of time and then program to solve it. This method is relatively stressful for a beginner like me. However, I think it’s still a great way to learn. This method not only exercises our ability to understand and solve problems in a short period of time, but also helps me learn many different ways to solve the same problem. I feel that after a period of practice, I will become more accustomed to this learning method. The feedback from each WOD was very helpful too, it showed me what I knew well and what I needed to work on.

Personal Reflection and Conclusion:

Looking back on my time with JavaScript and this unique learning method, I now appreciate the ever-changing nature of programming. The WODs taught me discipline and resilience, more than just reading could. Although I am only a beginner now, there is still a lot of knowledge to learn. However, I believe that with subsequent study and continuous practice, I can understand JavaScript better and know how to use it better. As I continue learning JavaScript, I take with me not just the technical knowledge but also the ability to adapt, solve problems, and enjoy the challenges of programming.