DISCLAIMER: This is not a tutorial, but a short anecdotal story about my newfound love JSON, our relationship, and what it has taught me about myself.
It’s been about 5 months since I started learning JavaScript. I have progressed slowly, due in part to me wanting to understand everything as I go along.
The tweet that started it all
Then I rediscovered this Quincy Larson’s tweet:
Get comfortable with abstraction. If you try to understand how everything works, you'll get nothing done. pic.twitter.com/jfsXtdIySk
— Quincy Larson (@ossia) February 12, 2015
I remembered having seen the tweet before (he has it pinned), but I guess I was not ready to accept it’s profound truth just yet. But this time, during Easter break, was different.
Enjoying vacation with my family, I had brought my (thusfar) favorite JavaScript book, Eloquent JavaScript, in an attempt to get some studying done. I was having bad conscience for not progressing faster, and it was causing me some stress.
I saw the light
So there I was, trying to enjoy quality time with family, but having this urge to study nagging at me at oddly hours.
Which led to me surfing the web on my smartphone (as you do), and as I checked out what @ossia was up to on twitter, I read the aforementioned tweet again, and I had “a moment of profound enlightenment”. I saw the light, and it was good!
Well, perhaps not that grandiose of a moment, but still..
It had great impact on me and my situation, led me to realize the root of my studying problem, and resulted in me finding a way to overcome it. Not bad.
Free Code Camp study progression and hitting the wall
While studying over at Free Code Camp (I love this website, and is what ignited my love for code and devotion to learning to code for real) I had been progressing in waves. First quickly, then slowly as the curriculum included algorithms and more difficult challenges. Then I hit the wall!
(Don’t worry, I’ll get to how I overcame the studying problem, in just a bit.. Stay with me.)
I was working on a JavaScript calculator challenge when I started to struggle.
I didn’t see how to use what I had learn thusfar would enable me to complete this challenge, and I felt like I had a couple of knowledge gaps. To try to fix that I started a course on how to create a JavaScript calculator on Codecademy, but couldn’t help but feel like cheating. I wanted to figure this out on my own, at least in part.
(The JavaScript calculator challenge has since been move further down the curriculum, relocated to Advanced Front End Development Projects. So I guess I was not the only one struggling.)
So I bought a book, like I mentioned earlier, called Eloquent JavaScript. And I loved it! Plus I found some great educational articles on Medium. All this sped up my learning, and it was good (for a while).
Life happened
Then life happened, and I hit my second wall. I get bad conscience when I read an instructional book with exercises, and don’t do them. Which is a good thing in general, but not so easy when you’re out and about without a computer on your lap, but still want to read and learn.
So the first couple of chapters went good, and I did the exercises. Then one exercise was a little bit harder, and I kept putting it off.
This resulted in me not really making any progress, and at this point the Easter vacation was coming up, and I brought the book along with me. Needless to say, I didn’t get much done then either.
So, long story short, this is what I realized. On vacation. Seeing the light.
My realization
I had gone about it all wrong. Yes, I had been doing a lot of exercises and learning, but I had been too focused on understanding all aspects of what I was learning. So I simply decided to stop worrying about gaps in my knowledge, and power through if I hit any new walls.
Instead of worrying about getting it all right, my new approach involved trying a bit harder, reading tutorials (also other places than Free Code Camp) and other resources, and just get stuff done.
(Somewhere in here is when I discovered JSON, which I’ll get to very shortly.)
And if I hit a wall? Just take a little break, and come back it with fresh eyes and energy (eating, sleeping, drinking – or just taking a break – really helps with cognitive thinking). Plus asking for help, googling, and continuing to study.
And if I felt like I was not understanding everything, I would simply learn the method, use it – and then deciding I would understand it better with time.
So there you have it. But what about JSON?
In case you don’t know, JSON stands for JavaScript Object Notation, and has become a widely used data-interchange language, also when working with other programming languages. You can read more at the JSON website.
The idea for this blog post came to me when I thought about JSON and how it related to Quincy’s tweet and my realization. Then as I am now writing the blog post I realized that it has evolved into something else. Much like how my journey of learning how to code has progressed over time.
Part of what I did after having my Easter revelations was to go back and expand on my JavaScript knowledge by doing all the newly added lessons to the Free Code Camp curriculum (someone recently contributed a lot of new additional material and challenges).
And after I had done these (including a nice new algorithm challenge), I started on to the Free Code Camp section about JSON.
Beloved JSON
I had learned about JSON in the past while learning about JavaScript objects (which in essence is all JSON really is), but I got to see how it worked more in practice. And I loved it.
This was followed by a couple of “create-your-own-app” challenges where you are asked to use APIs to create stuff. Which involves JSON. And deepened both my love for JSON and APIs, and learning by doing.
Why do I love JSON so much? Mainly for these simple reasons:
- It is easy to read and understand
- It is so versatile, due to it’s wide usage
- No need for SQL queries or databases, just plain text data
I mean, just look at this example (taken from the Free Code Camp curriculum – it had Björk in it, so I had to use it):
Thanks and what’s next
I’ll definitely continue to work with JSON more (also because part of the Free Code Camp curriculum deals with MongoDB, which basically is JSON text files if I’ve understood it correctly) as I keep learning to code.
And I also have a short “API with JSON and JavaScript” tutorial in the making for this blog.
Dear JSON,
Our love story is far from over!
Kisses,
– Rob
So stay tuned,and you might get an update on how this love story develops. Until then, keep coding, stay awesome, and ROCK ON!