Revision for a web developer

Well, Today, I find myself unexpectedly penning down these notes, a response that was prompted by a colleague's curiosity regarding the essential knowledge for their current role. As my junior, they sought insights into the realms of JavaScript, React, and the nuances of TypeScript.

Maybe I talked with him so quickly that he told me to write my notes because he thinks that I am very good at explaining things that I know.

During my college and school time before exams, my friends used to ask me for revision for certain questions. A friend named Bhavesh fondly recalls, even now, how my succinct explanations in our native language of Gujarati enabled him to translate my three-minute summaries into three pages of eloquent answers on English-language exams.

Maybe I'm not an expert or as knowledgeable as thought leaders or some influencers on tech Twitter. Maybe whatever I write below is not exactly a silver bullet or a golden rule or whatever you call it.

So, Welcome to my collection of notes—a fusion of knowledge and experience.

JavaScript: Beyond Syntax

JavaScript is more than a mere syntax, a concept that every web developer should grasp:

  1. Currying: Understanding the technique of transforming a function that takes multiple arguments into a series of functions that take one argument.
  2. Closures: The concept of functions retaining access to variables even after they have exited their scope.
  3. Execution Context: The mechanism that manages the execution of JavaScript code.
  4. Event Loop: The asynchronous nature of JavaScript through its event-driven execution model.
  5. Async Await: Writing asynchronous code in a synchronous-like manner.
  6. Hoisting: Behavior of variable and function declarations being moved to the top of their respective scopes.
  7. Promise: A crucial tool for handling asynchronous operations.
  8. Scope: Global, Local, and Block scopes, each with its implications.
  9. Array Methods: Methods that empower developers to manipulate arrays effectively.
  10. Callback: Understanding the concept of passing functions as arguments to other functions to execute to pass further.
  11. Inheritance: Both classical and prototypal.
  12. Prototype: The prototype chain and its role in object-oriented programming.
  13. Higher Order Functions: Functions that can manipulate and work with other functions.
  14. Value & Reference: Differentiating between value types and reference types in JavaScript's variable assignments.

React: Unveiling the Library's Core

React, a JavaScript UI library forms the foundation for modern web development:

  1. Hooks: The versatile Hooks that have revolutionized state management and component logic.
  2. React.createElement: A critical insight into this foundational function, deserving attention.
  3. When Not to Use State: Scenarios where utilizing React's state might not be the optimal approach.
  4. The Importance of Keys: Unraveling the significance of keys in React's virtual DOM rendering.
  5. Thinking in React: A philosophical journey into comprehending the essence of components and their composition.
  6. Virtual DOM: The inner workings of the Virtual DOM, a cornerstone of React's performance optimization.
  7. Component Lifecycles: Understanding the sequence of events in a component's lifecycle and their applications.

In the forthcoming installments of these notes, I shall give my best to explain each concept with the same enthusiasm that was acclaimed earlier. Through this journal, I aim to bridge the gap between complex concepts and accessible understanding.

Warm regards,

Rakesh.