ProgramMatek’s 100-Day JavaScript Challenge

For the past few years, I have undertaken the 100 days of code challenge, alternating between CSS and JavaScript to become a true master of these technologies. My goal is to be a valuable resource for anyone working with them. While I have also dabbled in MVC with PHP, it became clear to me that my true passion lies in front-end design and development, particularly JavaScript. Here are the main reasons why I wanted to deepen my knowledge in this area.

Battling Imposter Syndrome

You might find it strange that I still experience imposter syndrome, considering I have successfully built websites that rank well in search engines and generate millions of dollars in revenue for individuals and businesses. Granted, these sites were developed using frameworks like WordPress and Drupal, or static HTML with basic JavaScript and jQuery for interactivity, form processing, calendar configurations, and module development. In other words, my grasp of JavaScript was sufficient, but I felt the need to go further in my journey and truly understand the language, along with basic data structures and algorithms. It was this craving for deeper knowledge that made me question my identity as a front-end developer.

Building Modern Front-Ends

I wanted to move away from being a jack-of-all-trades and master of none. While I enjoyed managing and consulting on full-stack projects, such as server management and marketing, I found it to be an arduous task. Over the course of ten years, I devoted myself to these endeavors, alongside other digital projects like photography and 3D rendering. However, my original intention was to focus on front-end development, and now is the time to pursue that passion wholeheartedly.

See also  JavaScript Application Performance Monitoring

Juggling full-stack development made it difficult for me to dedicate enough time to truly master a front-end language like JavaScript. After experimenting with JavaScript for four to five years, I realized that solving lots of common problems was the key to honing my skills. To achieve this, I started taking on challenges on platforms like Code Signal, Edibit, and Codewars.

Lessons Learned

Throughout my journey, I discovered that learning JavaScript is more about problem-solving and familiarizing oneself with the built-in functions available. Understanding the language’s capabilities not only enhances your comprehension of JavaScript, but also unveils the types of problems these tools can solve. Whenever a language offers a specific function or control structure, it serves a purpose, and chances are, other languages have similar tools to address comparable issues.

Moreover, I found it invaluable to examine other people’s solutions after tackling code challenges, especially on platforms like Code Signal. Learning from those who are more advanced than me greatly contributed to my growth. Interestingly, I noticed that some individuals possessed a remarkable ability to find the most concise solutions. While I might have employed multiple methods or loops to accomplish a task, they often leveraged elegant mathematical techniques or ES6 methods. Over time, I started incorporating these techniques into my own solutions.

However, I also learned that verbosity has its merits. By revisiting computer science classes, I observed how advanced programmers approach problem-solving. Sometimes, it is necessary to be explicit in each line of code. This realization has boosted my confidence.

It is worth noting that while some solutions I reviewed seemed succinct and elegant, merely knowing these solutions doesn’t necessarily indicate mastery. Sometimes, solving a problem requires a few extra lines of code. This observation should not undermine anyone’s abilities.

See also  Jobs That Utilize JavaScript

In summary, I discovered that there are numerous solutions to the same problem, and as long as a challenge is successfully resolved, the code is deemed correct.

What’s Next?

Having completed six rounds of the #100daysofcode challenge, I intend to continue applying my existing knowledge and embark on exciting personal projects in my spare time. I have a multitude of ideas, and I am eager to bring them to life and share my experiences here.

I find great pleasure in working with CSS alone; it is a powerful language that can achieve remarkable feats. Professionally, I will focus on CSS, utilizing Drupal and Twig templating, or Laravel Blade if the situation requires it. Additionally, I will persist in my usage of Vue.js, as it provides the necessary tools for building visually appealing and responsive websites. When it comes to fetching remote data for my sites, I will continue working with JavaScript and APIs.

Although I could continue writing, I believe it is time to dive into something more technical. If you enjoyed this article and wish to follow my journey, sign up for my newsletter. I regularly write about front-end development and design, and occasionally offer giveaways.

Thank you for reading, and until next time, carpe diem.