I tried to explain everything in Javascript in 30 words. 
Tags: javascript, computerscience
Published: 2020-04-15 14:01:38

I failed.

Obviously. 

I've been learning Javascript for around 3 months. In that time I've been in constant conflict. I enjoy building projects, but I'm not knowledgeable enough to implement some of the advanced topics I'm learning into many of my projects. 

So when it came to trying to think of a new project idea, I really wanted to __combine the conceptual side of learning to program with actually building a project that implemented some of the more complex ideas I'd been studying.__

And so I came up with something called [Javascript in 30 words](https://javascript-in-30-words.netlify.com/). This was my attempt to describe basic and advanced concepts in Javascript in 30 words or less (spoiler alert: I cheated by using photos).

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/h667zi76iiatnboloe3u.png)



30 words was an arbitrary restriction I placed upon myself. It could have been 40 words or 200. __What was important to me was that I forced myself to explain concepts I thought I already understood; in a way that hadn't been done before.__ 

During the project I wrote out my notes by hand (a method I find particularly helpful).

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/ybhm8yig24i9kx6g48vc.jpg)

I iterated over my notes repeatedly until I got to the real core of what I was trying to say. 

Certain topics were easier than I anticipated. For example, I realised recursion was something I had over-complicated in my own mind. When it gets down to brass tacks recursion is simply a function that calls itself. 

Other topics (particularly those that revolved around Object Orientated Programming in Javascript) where a lot more of a challenge to accurately describe in 30 words or less. 

I think this has a lot to do with the difference between functional programming and OOP. OOP is (in my understanding at least) a much more holistic approach to programming. As such it requires a broader understanding of certain elements of Javascript. For example, explaining polymorphism without the context of Prototypal inheritance is a difficult task at best. 

This one one of the main benefits of the project. It really allowed me to hone in on my weaknesses. 

It's not so much that I didn't understand any particular concept, it was that I had viewed each topic in isolation. When I was forced to limit my descriptions my main difficulty was my inability to describe how all these elements are so intrinsically linked. Something that may seem obvious to most, but as someone who's new to programming this revelation helped a lot in progressing my understanding of programming and Javascript. 

In conclusion. While I failed to curtail every definition to 30 words. I did succeed in my other goal; learn more about Javascript!

As I advance in my Javascript journey I hope to return to the project and refactor it using some of the techniques explained within the project.

If you'd like to give me some ideas as to where I could use some of the ideas I'd love that! Here is the [Github Repo](https://github.com/msmfa/javascript-in-30)

If you like the project and would like to follow how it progresses feel free to star the [Repo](https://github.com/msmfa/javascript-in-30)