TLDR; This article focuses on my recent transition to the Senior SE role, my experience & learnings from that transition which I am sharing so that this might come in help to someone out there looking for it.
Anyways, 21 days back he inspired us to utilize and make the best out of it, and start the new year afresh.
So, I decided to daily solve at least one problem on leetcode and read the “You don’t know Js” book series. But everything doesn’t always go as planned, I was approached by a few recruiters on LinkedIn regarding job opportunity and I thought why don’t I try and utilize these 21 days to get a good job offer.
Q: Did I get a good job offer?
A: Yes, I did. Not only a good offer but now I am going to be Senior SE with a massive hike.
Q: How I did it even though I am not good at competitive coding?
A: I might not be as good at competitive coding but I am great at building modular, scalable web apps with good coding standards covering unit testing and proper documentation of the same so I focus mainly on that and always try to improve upon my skills.
Most of us post office hours have a mentality that we are done for the day and then we simply relax or binge watch Netflix but I took a different approach & tried to invest at least 2 hrs. daily on my skill development.
also, if I am traveling, I used to read JS articles or if I have 5–10 minutes before leaving, I watch small Instagram tech-based accounts posts for ex: NamasteDev’s account
Have patience, believe in yourself because sooner or later everything is going to be fine. Don’t get de-motivated, your time will come just keep putting in the hard work.
I know it’s easy to say but practically living it is difficult. But we don’t have the option, we have to keep moving and trying if we desire to get good things out of life.
Even though I managed to get 3 offers in these 21 days. But for this, I was preparing from the very beginning. Everyday bit by bit.
My preparation strategy was simple & I made sure to make it efficient, I first listed down all the possible topics of my skill-set, then I created To-dos for each topic & started crossing out each topic one by one as soon as I was confident about the same, also making some rough notes (I am organizing it currently and will upload on GitHub Soon).
Please, find below important topics of my skill-set which I listed down:
HTML: What is HTML, What’s new in HTML5, explain DOCTYPE declaration, Semantic elements in HTML & its advantage, commonly used tags, figure tag, field set, srcset attribute, tab index, inline & block level elements, meta tags, iframe & object tags, web workers, graphics - SVG & canvas, Quirks mode in HTML5, HTML5 Web API, image map, marquee, audio, video, geocode, datalist in form, Persistent Local Storage, Microdata, keygen, difference — Semantic Vs. Non-semantic, Application Cache in HTML5, Manifest file & others..
CSS: What is CSS, box model, CSS selectors, pseudo-class & pseudo-element, how does CSS work (under the hood of the browser), the difference between a relative, fixed, absolute and static, CSS Specificity, purpose of clearing floats, media query, CSS for print, selector that will match any links end/start/contains, flexbox, CSS grid, reset CSS, normalize CSS, Sass or Less and or Stylus, !important, concept of Tweening, any CSS framework & others..
ANGULAR: What is Angular, basic typescript, angular version changes, features of Angular, angular cli, advantage and disadvantage of angular, how angular work, Ivy, JIT & AOT in angular and its advantage & disadvantage, What are the building blocks of Angular, components, What is Data Binding, string interpolation, property binding, event binding, two way binding, data sharing between components, view encapsulation, view child, directive & its type with example, custom directive, pipe, custom pipe, pure pipe & impure pipe, async pipe, pipe chaining, mvc architecture, mvp architecture, angular routing, lazy loading, loadChildren, angular services, dependency injection, life cycle, ng-content, components vs directives, modules, decorators, internationalization, ng-container vs div, angular on server side, MVVM architecture, auth guard, interceptor, rxjs & its most used operators, promise vs observable, cold observable vs hot observable, ngClass & ngStyle, Angular elements, difference among “declarations”, “providers” and “import” in NgModule, form — reactive & template driven, dynamic form, Transpiling, unit-testing related concepts & others..
REACT: What is React, advantages of React, Component Architecture, Hierarchy, Communication between components, State & Props, props validation, SPA (Simple Page Application) vs MPA (Multi-Page Application), Functional vs Class-based component, Controlled Components, Pure Component how React & virtual DOM works, Higher-Order component, JSX, Life-Cycle Methods, render method, constructor, Hooks & Custom hooks, Routing & lazy loading, what is prop drilling & how to avoid it? State Management (Mostly Redux questions are asked but other libraries like Mobx are there), React clone elements, Strict Mode in React, synthetic events & others..
VUE: What is Vue.js, advantages of Vue.js, Component Architecture, Templates, Instances in Vue.js, Life-Cycle Methods, Computed Property, Watcher, Bindings, Events, Custom Events & root events, rendering & render function, transitions & animation, Directives, Refs, Routing & lazy loading, Mixins, Slots, Named Slots, Scoped Slots, Filters in Vue, State Management (Vuex), Reactive Interfaces, Vue Loader, Plugins & others..
NODEJS: What is Node.js, If Node.js is single-threaded then how it handles concurrency, benefits of NodeJS, event loop, event queue, Libuv, thread pool, the downside of the single-threaded concept, What is an error-first callback, event emitter, node environment, LTS release of node, reactor pattern in node, time/ execution related functions (setTimeout/clearTimeout, setInterval/clear interval, setImmediate/clear immediate, process.nextTick) where a node is used, Asynchronous & Synchronous, non-blocking” in node.js, REPL, NPM, semantic versioning, child process, fork & spawn, streams in node, fs module, HTTP module, Zlib module, stream module, util module, v8 engine, event-driven programming, package.json, create a simple server in Node.js, purpose of module exports, buffer class, different types of HTTP requests, put vs patch, cluster, event listeners, Microservice architecture, message queue & Trace, Stream Buffer, Crypto, Security Mechanism & others..
EXPRESSJS: What is express, features of Express JS, steps used to set up an express JS application, arguments available to an Express JS route handler-function, use of next in Express JS, Middleware in Express.js, types of middleware, templating engine, server-side rendered page, error handling & others..
MongoDB & MONGOOSE: what is MongoDB, JSON vs BSON, data types supported by mongo, best features of MongoDB, the difference between SQL or NoSQL, _id Field in MongoDB, create or select a database, collection in mongo, CRUD operation in mongo, upsert, write concern, Storage Engine, replica set, journal, profiler, the concept of foreign key in mongo, sharding, GridFS, update the _id of one MongoDB Document, Does an update fsync to disk immediately, replica set, transactions/locking in MongoDB, ACID property, namespace, Horizontal Scaling & Vertical Scaling, MongoDB aggregation, Indexes in MongoDB, type of index, covered query, rename keys of document, models & schema in mongoose.
Once I am done with listing the topics, I start reading all these topics online either on YouTube or medium or dev or on the documentation itself. I always make sure to understand the topics in a way that I can explain to anyone along with many scenarios and real-life examples.
Q: What about DSA?
This Udemy course came in very handy and boosted my confidence.
Hold on, few more points:
A friend whose skillset matches with yours. As Akshay always says find your Simran. This is very important because it fastens the process and you both get to learn so many things in less time. In my case my mentor/Simran/friend is Mihir. We collab and work together on side stuff along with on our own adventure that is open devs, a github organization we created to build cool open source projects & teach what we have learnt over the years.
This always helps as it lets you implement the concept you have learned theoretically and most importantly if you have some good projects then you have a lot to talk about and the interviewer will have a lot to ask about from the project which you are master at.
There is no ending to learning, you must always keep learning & practicing.
FEW RECENT INTERVIEW JS QUESTIONS:
· closure with example; advantage & disadvantage?
· setInterval, setTimeout with example & how to break setInterval; advantage & disadvantage;
· HTML5 Web API; Local Storage vs session storage
· IIFE and anonymous function;
· Service Workers
· Output of code snippet and their explanation & more..