JavaScript Learning | April-June, 2018

Note: This post is part of my JavaScript learning progress series.  Link to my first quarter (2018) learning progress: My Three Months of JavaScript Learning.

As indicated in my first quarter overview post, I have been learning JavaScript a few hours (2-3 hrs) a day beginning new year 2018. I also discussed in the post about my learning schedule, learning road map, and reviewed learning progress. I continued my JavaScript (JS) learning schedule in the second quarter too. This post is overview of my learning/coding progress for the second quarter (April-June) of 2018.

Second Quarter Goals

While reviewing my first quarter progress, I had set the following goals for the second quarter:

  • Focus on understanding the basic JS language and handling DOM.
  • Better understand & practice JS language, its terminology (eg. scope, hoisting & scope etc) from The Modern JavaScript Tutorial.
  • Time permitting, start some practical small projects to practice my learning.
  • Write detail learning-note posts on all topics covered.
Topics Covered

This quarter my focus was deeply learning fundamentals of basic JS language, and covered following areas:

Other Related Topics

This quarter, I spend entire time on JS language except the following small breaks, which too are related to JavaScript:

Learning-note Posts

This quarter I started documenting all my JS learning by writing learning-note posts. Although most learning-posts are still in drafts stage, preparation of these posts helped me to clarify my thoughts, understand concepts & identify my skill gaps. This process also forced me to search for additional resources to fill my learning gaps and motivated me to learn more deeply.

If you can’t explain something simply, you don’t understand it well enough. Albert Einstein

What I Learned
  • Deep Dive Learning. While learning and documenting my learning-note posts, I was able to identify my knowledge gap, that I thought I knew previously.
  • Learning-note Posts: Note-posts preparation was time consuming and to quote Bryan Gaensler: “Research is spending 6 hours reading 35 papers, so you can write one sentence containing 2 references“. Nevertheless, I was able to write more than 18 detailed learning-notes.
  • I can Learn JS. After learning for six-months I am motivated now that I can learn JavaScript. It is a very good feeling because when I started learning I was not so sure about this.
  • Learning Without a Break : Since I started learning JS, I have been learning every single day without any break. Even when I get frustrated or feel burn-out, or simply stocked because I can’t figure out certain topic, I change subject (eg. CSS Grid, Gutenberg) but keep maintain my daily learning routine.

Lessons Learned

  • Learning from First Quarter Experiences : In the previous quarter, I had learned that I should focus on a few quality tutorials and not on the teaser-tutorials on Medium and HackerNoon.
  • Learning Deeply : Learning deeply, although time consuming, helped me to better understand and appreciate JS language.
  • The MDN JS Guide: This quarter, I relied heavily on the MDN JS Guide and MDN JS Reference as my primary learning resource, which was very helpful.
  • Learning JS Arrow Functions : In modern JS codes, Arrow functions is widely used and its deep understanding is critical for JS learning.
  • Learning JS Classes : A deep understanding of JS Classes, which are similar to JS functions, is essential to understand and write better codes as it widely used in most modern JS libraries including React JS.

Goals for Next 3-months

My goal for the next 3-months (and beyond) is to continue deep learning JavaScript with a goal to master basic JS language with an emphasis on ES6 features including the following topics:

Time permitting, I will start learning about DOM & deep diving into DOM (document object model).

My additional to-learn list include learning the following ES6 features (definition from MDN Reference) including AsyncFunction, Promises, Default Parameter, Destructuring, Rest parameterSpread and ES6 – Cheatsheet | GitHub.

Inspirational posts

The following posts were inspirational and motivated me to continue to learning even my most frustrating times:

Developers and Blog Sites

The following tutorials & blog sites I consulted and found resourceful in my learning adventure.

Naveen Karippai | GitHub | Medium
A JavaScript & Python Developer. I came across his Medium posts while doing my research on JS classes. His this article on JS Class was very helpful.

Peleke Sengstacke | Twitter | GitHub
I came across while doing research JS classes. I found his Deep Dive into Classes is very informative.

Alberta Williams | GitHub | Web Site
I came across through her Tuts+ tutorials on JS Sets and found very interesting. Followed her other posts on X-Team as well. Her Tuts+ posts on JS  will be useful in my ES6 features learning.

Ben Ilegbodu | GitHub | Website | Personal Blog | Twitter
Very useful learning resource on ES6 features. His posts are very detailed and well described.

Wrapping Up

Late last year when I was making my JS learning plan, I would have never imagined that I would get into this JS thing in such a way. The past six-months of my JS learning has been a quite a fun journey. In this quarter, I practiced my learning by documentation. Everything I learned has been documented as detailed learning-note posts. Although, this form of learning was a very time consuming, I thought it’s worth of my time and I plan to continue doing so in the future too. Since I am still learning basic JS language and have not yet done practice projects, most JS code still appear foreign to me. However I definitely feel that I have overcome my fear of confronting it head on and now strongly believe that I definitely can learn JS. As also stated in my previous progress overview, the next three-months to end of the year is crucial before making an reasonable judgement on my learning progress. Until then I plan to continue to stay focused. Happy Coding!