TLDR; This article focuses on my recent transition to the Senior SE role. I am sharing my experiences and lessons from this transition in hopes that it might help someone else.
Akshay Saini, you must have heard of him. If not, here is a short intro: He is the creator of **Namaste Javascript**.
Now do you remember? No? Then go watch at least one video from the series. I'm sure you will never forget him. He has simplified Javascript's most complex internal architecture and made it easy for us to understand.
Anyway, 21 days ago, he inspired us to make the most of our time and start the new year fresh. So, I decided to solve at least one problem on LeetCode every day and read the "You Don't Know JS" book series. But things don't always go as planned. A few recruiters on LinkedIn approached me with job opportunities, and I thought, why not use these 21 days to get a good job offer?
So, here’s a quick intro about me: I was a MEAN stack developer with 1.5 years of professional experience and a total of 2.5 years of experience, including internships and freelancing. I am in love with the JavaScript ecosystem, so I constantly explore different frameworks and libraries in this ever-expanding JavaScript world.
Q: Did I get a good job offer?
A: Yes, I did; not only did I get a good offer, but I am now going to be a 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 great at competitive coding, but I excel at building modular, scalable web apps with solid coding standards. I cover unit testing and ensure proper documentation. I focus on these strengths and always strive to improve my skills.
I would like to explain my transition to becoming a Senior SE in a few sections.
HARD WORK:
Most of us, after office hours, tend to relax or binge-watch Netflix. However, I took a different approach and tried to invest at least 2 hours daily in developing my skills. Additionally, if I was traveling, I would read blogs, or if I had 5–10 minutes before leaving, I would watch short tech-based posts on Instagram.
PATIENCE:
Have patience and believe in yourself because, sooner or later, everything will be fine. Don’t get discouraged; your time will come. Just keep putting in the hard work. I know it’s easy to say, but living it is difficult. However, we don’t have a choice; we have to keep moving and trying if we want good things in life.
PREPARATION STRATEGY:
Even though I managed to get multiple offers in these 21 days, I had been preparing from the very beginning, bit by bit, every day. My preparation strategy was simple and efficient. I first listed all the possible topics related to my skill set. Then, I created to-do lists for each topic and started crossing them off one by one as I became confident in each area, while also making some rough notes.
Below are the important topics of my skill set that I listed:
Technology | Topics |
HTML | What is HTML, What’s new in HTML5, explain DOCTYPE declaration, Semantic elements in HTML & its advantage, commonly used tags, figure tag, fieldset, 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 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. More @here |
JavaScript | What is Javascript, Call stack, Primitive types, Value Types & Reference Types, Function scope, Execution context, Block scope & Lexical scope, IIFE, Modules, Namespaces, DOM and Layout Trees, this, call apply & bind, prototype inheritance & prototype chain, Object create & assign, Js array functions, Pure/Impure functions, Closures, High order functions, Promises, Callback, Async/Await, OOPs implementation, time/ execution related functions (setTimeout, setInterval), collections and generators, message queues, hoisting, polyfill, currying, debouncing, async vs defer, event bubbling & capturing, Prototype & Prototypal inheritance, Object prototypes, throttling, recursion, local storage vs session storage, CORS, web storage APIs, event loop, web sockets, “use strict”, eval, babel, pass by reference, pass by value, es6+ ex: spread operator, rest operator, destructuring, arrow function, template string, etc., for loop (for-each, for-of, for-in), AJAX & others. More @here |
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. More @here |
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. More @here, @here |
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, the 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. More @here |
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. More @here |
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 the 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 finish listing the topics, I start reading about them online, either on YouTube, Medium, Dev, or the official documentation. I always make sure to understand the topics well enough to explain them to anyone, using various scenarios and real-life examples.
Q: What about DSA?
A: No one can avoid DSA, even in a front-end role interview. As Akshay mentioned in many of his videos, you must know basic DSA and how to implement it. So, I made sure to learn most of the DSA topics and their implementation in JavaScript.
This Udemy course came in very handy and boosted my confidence. https://www.udemy.com/course/js-algorithms-and-data-structures-masterclass/
Hold on, a few more points:
TIPS TO STAND OUT
FIND A GOOD FRIEND
A friend whose skill set matches yours is invaluable. As Akshay always says, find your Simran. This is crucial because it speeds up the learning process, and you both get to learn many things in less time. In my case, my mentor/Simran/friend is Mihir. We collaborate and work together on side projects, along with our venture, open devs, a GitHub organization we created to build cool open-source projects and share what we have learned over the years.
WORK ON SIDE PROJECTS
This always helps because it allows you to apply the concepts you have learned theoretically. Most importantly, if you have some good projects, you will have plenty to discuss, and the interviewer will have many questions about the projects you are an expert in.
ALWAYS KEEP LEARNING
There is no end to learning; you must always keep learning and practicing.
FEW RESOURCES:
· JavaScript Algorithms and Data Structures Masterclass
· The Beginner’s Guide to MongoDB Aggregation
· MongoDB Interview Questions and Answers
Great, you have reached the end. If you are a JavaScript developer, bookmark this because these topics will be very helpful in your next interview.
PS: Thank you *Mihir *& *Ravi *for proofreading and adding more value to this article.
Please give me a clap if it is helpful!