logo

Sync and Async Learning

Kenneth Jimmy

1/30/2021

Learning is fun. Learning improves your IQ. Learning gives you knowledge. Knowledge is power. Thankfully, we never stop learning.

Everybody has his own way of learning. From my perspective, there are two learning methods I’d like to call “synchronous” and “asynchronous”. The synchronous method is the default.

You are probably looking for the best learning styles or you may already have your own that works fine for you. If so, then you probably don’t need another modus operandi…or do you?

A mechanical reader would notice that I have used different words to mean the same thing – method, style, way, modus operandi. That’s me not knowing what word fits the context perfectly. But I know you got the point. ;)

From my end, I have tried several learning methods rather than rely on one. And from my experience, I can assure you that any method you choose is fine. But how do you know which one is ideal? Simple. The ideal method is the one that suits your need. What do I mean?

Well, as a junior developer, you definitely have a lot to learn as well as to practice in order to master your skills before or while venturing into a profession. If you have more learning time at your disposal, then you probably don’t need an asynchronous method of learning…just continue cruising with the default method. Otherwise, you might want to try the async learning method instead.

But what are sync and async learning? 🤔

These terms are based on JavaScript terms for how code lines are being executed in a codebase. Please, note that I am only making up these terms in connection to learning styles.

Synchronous execution in JavaScript is that which executes in order – from top to bottom, line by line – where the execution completion of one code is bound to the completion of the preceding code. Whereas, in an asynchronous execution, the execution completion of any code is not bound to the completion of any preceding code as they appear in the codebase. For instance, the code on line 1 might be completed after several codes up to line 8 finishes their work. An example of asynchronous code is fetching data from an API endpoint.

So, in view of the explanation above, synchronous learning is learning in sequence. For example, you scheduled to take your lessons one language at a time from simple to complex or hierarchically; HTML (then practice), CSS (then practice), JavaScript (then practice), Vue or React (then practice), PHP or Node.js (then practice), Python (then practice), etc.

Whereas, asynchronous learning is learning almost simultaneously. This is ideal for students who have less time and want to learn and master their skills as quickly as possible. It can be done like this: HTML and CSS and Vanilla JavaScript (then build a project with all three skills. Meanwhile, you have already started learning PHP/Node.js), PHP/Node.js (build an API. Meanwhile, you have started learning Vue/React), Vue/React (then build a project that fetches data from your API project. Meanwhile, you have begun a Python course).

So, the idea is that while you are mastering your current skill(s) with a project or two, you are also learning a new skill “asynchronously”. Basically, you don’t let the start of your next agenda be dependent on the finish of your current agenda. 😊

Conclusion: Synchronous and asynchronous ways of learning are both ideal. It all depends on your “need for speed”. 😊