My name is Camilla and I am bad at JavaScript. I feel ashamed to write this blog post.
I am a backend developer
I consider myself an experienced Drupal and PHP developer. I have a masters in computer science and before I started working with web I was doing enterprise Java for a couple of years. I have a good grasp on object-oriented programming and design patterns as well as a love for writing clean and simple code — something that can only be done by understanding the programming language and the task at hand well.
Changing my mind about JavaScript
Long ago I simply considered JavaScript the enemy. I wanted to stay as far away from it as possible. In all fairness, that was in the beginning of the 2000s, so I might not have been that wrong back then. Later, as more cool things became possible, I thought "hmm, that's kinda neat", but I don't want to write JavaScript - it is just "programming light" and I can do most of those things with backend code and maybe a couple of lines of JS.
Then about 4-5 years ago I started realizing that maybe I was missing out. I got more interested in playing around with JS and I dabbled with some smaller stuff on sites I was working on. I started using Gulp and by now I thought of JS as a super neat thing both in the browser and in other contexts. I got into Elm and thought that was super cool. Probably mostly because then I didn't actually have to write JS. No, seriously - Elm is pretty awesome, but that is another post sometime. I've also played around with backbone.js a couple of years ago and more recently vue.js.
Oh, the shame
By now I should be pretty good at JavaScript.
But I'm not.
I feel like I am always looking stuff up or just stopping because I have to go to Stack Overflow to find answers for the simplest things. I am not in the jQuery hater camp, but I think I blame jQuery a little. I started to dabble without understanding what I was doing. I was using jQuery and I found a lot of example code that I would copy and modify to my needs.
I never actually took the time to understand the basics of the JS language before I started doing cool shit with it, using libraries or frameworks for all kinds of things. Over time I got things done, but got more and more embarrassed over my lack of basic understanding.
In some areas, what makes JS different from most other languages I know, is that apart from being a programming language, it is also an interface to another piece of software: the browser. I feel like that is an important point. Learning to understand that interaction is super important and I don't have that good of a grasp on it.
So what am I going to do about it?
I might want to have the site I work on run with a decoupled frontend someday, or I want to write a plugin (are they called that? Package?) for Webpack or whatever flavour of package manager is in fashion these days. I need to be better at JavaScript before taking any of this on.
I hereby promise the internet that I will learn JavaScript. As in really learn it before I start using libraries or frameworks. I'll do the #JavaScript30 Challenge, I will read up more on ES6, and I will practice and build smaller things just for the sake of learning.
I also think I'll try to blog about what I learn a little. By now I have completely outed myself as a retro-js-noob, so I feel a lot safer blogging about stuff that I am sure a lot of people are wondering about.
Why am I writing this?
That brings me to my final point of this blog post. I am convinced that there are a lot of people out there that feel like me. They have used JS in some capacity for long enough that they should be a lot better at it than they are, and now it is just getting embarrassing that they have so many shortcomings. So if you are out there feeling like that, know that you are not alone.
If you have any tips or resources that you think would be useful to someone like me, please share them!