Learning to Code with a non-STEM background
Tags: webdev, javascript, learning
Published: 2021-03-07 08:00:25

I started learning to code on May 1 2020. I had zero knowledge and seemingly unlimited curiosity. I had probably come across the words "html", "css", and "JavaScript" before then. But it wasn't until that very day that the words registered in my brain. A friend told me she wanted to learn to build websites. And then I thought, why don't I also learn? That thought quickly became "I should definitely learn this". I believed it would only take a few months to become a fullstack developer.

Here I am, over ten months later, convinced I know nothing. Software development really is the Benjamin Button of learning. The more I know, the more I know I do not know. Every time I learn something new, I find a few things I do not know. I then proceed to wonder about all the things I don't know that I don't know. I occasionally have haha moments when I figure something out. Those moments are quickly followed by thoughts of whether I could have done it better. One thing about software development, it could have been done better more than 99% of the time.

Never learning computer science in a formal environment does not help my feelings of inadequacy one bit. I often wonder if it would have been better if I had knowledge of that. Still, I persist. Armed with my curiosity and constant reassurance of myself, I continue to do battle with JavaScript, CSS, and HTML. Here are some of the things I've learnt so far.

###Practice

This could be the single most important thing. It is how I get better. It is how I find out about the things I do not know. It is how I know what exactly I know, which goes a long way in reassuring me that I could do better. Simply put, it is the best way for me to learn computer science. Sitting in front of screens, watching tutorial videos and reading web pages can only do so much. They are only helpful to a point. After that, you need to actually test what you've learnt and realize what you know. It's fine if you don't know it all in that moment. It also helps you realize how truly important and helpful google is. So build new webpages, experiment, and solve algorithms. Do anything at all that gets you to write codes.

###Meet People

Doing is better when you have people with you. This is at least true for most things. Meeting software developers is one way to feel more comfortable. While software developers with a few years of experience have definitely been helpful for me, junior developers have also been as helpful. Meeting these different people has helped me with my mental map. I don't fully know where the journey ends, but I at least have some milestones in mind. It is also easier to gauge your skill (or lack of it) when you know more people in the field. It has given me an idea of where I want to be and what I want to know.

###Professional Experience

No amount of practice will replace professional experience. I've often heard more experienced developers say this. I don't have much software development experience, and this is what the next phase on my journey will concern. Most likely through an internship or a junior role. I know it's true though, because it was true for me with writing. When I wrote as a hobby, there weren't many expectations. I didn't have to worry about how good anything was, I could abandon anything I didn't like. When I started writing professionally, there were suddenly people leaving comments on my works. I had to receive criticism, work with people to get past those criticisms, meet deadlines, work better on a team, among other things. I couldn't just abandon things I started writing and lost interest in. However, all of these things ultimately made me a better writer. It will be the same for web development. Professional experience is necessary to gain the skill to create larger projects and work on much larger codebases. Soft skills can also help make the ignorance easier to bear. You may not know much, but people will look upon you more kindly when you look eager to learn what you do not know. So jump in, as I'm trying to do.