How to decide which technology to learn and invest time in?

Watch the video explanation ➔

Write an engineering article with a concrete timeline in Markdown format from the following transcript.

we see new languages tools Frameworks being created almost daily and we as Engineers are so excited to learn them all or we think that learning them is essential for us to have a thriving career as it could become the next big thing so in this ever changing world how should we decide which language tool or framework we should invest our time in learning let's talk about that today so becoming a better engineer is the need of the art and to help you all reach the next level I have something that you will find amusing I conduct super practical courses with a no-nonsense approach these courses are designed to help you become a better engineer and Ace your career the courses will definitely reorganite your love for engineering and Spark the much needed engineering curiosity some of my most popular courses are of system design and database internals because I operate with the no fluff approach my courses are enrolled by folks across all levels from SD ones to tech leads to staff to EMS to VP engineering of some of the most prominent companies out there all the details about the courses like curriculum prerequisites testimonials epic use can be found on the course pages and I have linked them in the description down below so do check them out and I cannot wait to see you all become better engineers and as your engineering career now let's go back to the video so with limited time and energy it becomes crucial to make thoughtful decisions about which Technologies we would want to invest our time in let me talk about a few strategies that I have used to make this decision first thing first it depends at what stage of your career you are at let's split it into two half first is early days less than five years of vertex and second is everything greater than 5 years right right now when you are less than five years of work X this is the time where you have enough time plus enough energy plus less responsibility this is a deadly combo you have enough time at spare so this is the time where your curiosity is at its peak this is the time where you have high energy to you know put in efforts into learning anything and everything plus this is the where you are malleable in learning because you just graduated like three four years after casual you still have ability to learn almost anything thrown at you this is the Time explore anything and everything that comes your way keep an eye on Hacker News front page keep an eye on what's trending keep an eye on GitHub home feed right you may stumble upon an interesting repository interesting project interesting technology and try to write a simple hello world try to understand what they are doing differently try to understand what makes them different try to understand the nuances of it right you have energy you have time you have less responsibility explore now you'd say hey but what should I explore literally anything and everything don't say no to anything that comes your way because this is the time where you can learn anything you at this stage zero to five years of work X you are building a rock solid foundation for you to be able to switch verticals and make an informed decision that hey this is the subdom I would want to stick in now where would this help why would you want to learn a lot of stuff the idea is cross pollination for example whatever work comes your way except that go deeper explore technologies that comes your way whatever seems interesting be it AI beat distributed in distributed storage be it big data beat back-end beat front-end beat mobile the reason I'm saying this is that you don't know what you are learning in the first two three four years of your career will come in handy later stages for example when I completed my masters and joined a startup I was working as a devops SRE engineer if I would have said no to that what would have happened later in the stage when I was a engineering leader who built a an SRE team ground up I would not have been able to do it well because I had that experience becoming a leader leading the SRE vertical was was not really difficult right similarly this is an example of cross pollination from IC to management again from IC to IC let's say you are given a worker let's say you read an article about SQL query optimization and you found it amusing right you just scrub your hands around to see what has happened and how these folks have done it right you don't know you might not be applying those learnings today at your work but maybe let's says five years down the line when you are writing us when you are writing a distributed spark SQL query you can leverage that same optimization to make that job better so you allow cross pollination to happen so don't restrain yourself to a couple of Technologies in the early stages of your career take your time explore and then decide that is the best thing right whatever trending you see on GitHub Hacker News blogs twitters what not just bookmark them and just revisit them whenever you find time remember this as we progress in our career you will not have time to explore every new trend that emerges when you are early in your career you have that luxury so use that well now we talked about seniority let's talk about more than five years of work X so this is where this is the time where you have to focus and align for example let's say after first five years depending on the kind of work that you got you decided to become a back-end engineer this holds true for anything I'm just taking backend engineering as an example so here this is the phase where you would want to focus and align so for example if there is a new JavaScript uh framework that has come not worthy to put your time in because when you become a senior engineer there is a lot of things because you are also aging you'll have family to take care of you have limited time you have put to put a lot of time at your workplace plus you would have relatively less energy and because you would have a Social Circle you would have this that and what not right a senior folks typically like more than uh 27 28 a lot of things change right so a lot of like time is a scarce a scarce quantity you have very limited of it so you know where to put it so this is where whatever you are finding new you typically try to skip what is definitely not which definitely does not align with your career let's say you decided to become a good back-end engineer so focus on let's say you have preferred a particular SEC let's say golang based stack right so whatever new is coming in in golang you be updated with that skip Java skip nodes skip rust whatever right skip front end all together but try to you know try to uh try to keep it compact when I say skip Java or skip node.js it does not mean that you totally ignore them because there might be something that you can piggyback on but so long as it is quote unquote little related to your work keep an eye otherwise it's okay to skip right another example let's say you have gained experience in let's say big data so focus on Big Data because it itself is a big domain right but going in random Direction Just because like let's say react natives in school let me explore that or let's say flutters in school or let's say llvm compilers and advanced data structures algorithms let's say radius inteller might not be your cup of tea right it's okay to explore occasionally but how much you'd want to explore totally depends on the time at spare that you have right because now comes the reason why why I'm saying this why you should be focusing and aligning on few things because as senior Engineers we are paid a hefty amount by the organization and we are paid for the depth we bring in not the breadth because breath anyone can build even a fresher or even a junior engineer will be able to do what you are doing if you are just having a high breath but if you have a solid depth you are bringing in those expertise that organization need and you can bring in that impact so focus on building a depth in the things and you know explore on those sides so it's like a t-shaped thing that we are talking about right so whatever new things coming in whatever new technology is coming in Focus keep your that's why I call this status focus and align you you judge if whatever you are trying to put your time in does it align with your career trajectory or not I'll give one concrete example let's say you are building a lot of golang based applications and you can build a lot of high performance stuff so whatever comes around golang beat low level design best practices performance optimizations garbage collector tuning whatever it comes along the way you focus on that right and in meanwhile anything if I am not saying that just focus on go but around the back end you keep your focus on that don't go in random directions it's okay occasionally to go and explore but diving deep might not be the best decision but it's again it's up to you uh if you still want to explore that do that but understand what makes or understand like the best thing you can do to a career is bring in the necessary expertise on the table so that organizes also that your organization can gain the max out of it and you get paid well for the expertise that you are bringing in so ask yourself that what are the absolute must have if you don't want to explore that particular stuff and focus on that understand the technological current job and align yourself with that because the more depth you bring in the more money you'll make apart from this everything you learn see if it fits into your long-term trajectory or not that's important because for example if in long term you would see yourself to be a leader you would be leading a big engineering team and let's say you have just put your focus on low level implementation will you be able to Leading will you be able to deliver projects not really so you need to you know switch from your IC side bit into management side understand leadership understand project delivery understand how to get your team aligned and what not so whatever you are exposing whatever you are putting your time in should be aligned to the career that you are envisioning for yourself and that's really important right because it becomes really tricky to balance the time between your family and work and side hustles or rather side explorations of technology and whatnot right so spend your time wisely understand where you would want to make trade-off but once surviving once a while do Let Your Heart Out do explore things outside your domain for example compiler optimizations for example distributed storage for example let's say you might want to go into radius internals let's say you want to go into database internals let's say you'd want to write your own DB do that perfectly fine but how much you would want to go into that Deb do you want to pursue it as a career not sure but first get your career sorted then you have time to spare to you know explore whatever you want to do on the site now that we have split this two thing let's say you have a plethora of items to explore which one would you pick now here I have two ways to look at it first is the hell yes or no approach for example let's say you are a front-end engineer you already let's say you know Java uh sorry let's say you know jQuery right and now there's a new framework that has come in called react and I'm just basically taking you back in time I know it it has been very long that react is here but I'm just taking you back in time let's say you are Java let's say you know jQuery and react is the new thing that has come out now if you are a front-end engineer do you should you spend time exploring react or not the I the here the key thing is if the current if from the current thing that you know the new thing that has come up is 4X better at least 4X better go for it spend time learning it because it is not an incremental upgrade it is a significant jump for example same thing goes with llms Gen AI that has come in it's a significant improvement over it so should you spend time exploring definitely yes but on the other hand if let's say you already know react and there's a new framework that has come in called View and you're like hey this seems nice there's not much difference between them it's not a significant jump so is it worth putting your time not really because in case you would ever have to work on view it's not going to be it no it's not going to be massively difficult for you to adopt right so which is where you make the decision that you should definitely be exploring if it is Forex better otherwise skip it and it should be substantially bigger outcome for you right and then you choose to explore what's that in how it does it and how to use it and whatnot right so the way to look at this is it should be that hell yes I want to do this or everything else is up and because it's not worth your time you should be focusing on things that matter and not everything around you second way to look at this thing is is your learning transferable for example let's say you are learning a particular Library let's say you are a back-end engineer and you wrote Python and golang for a very long time then you've heard something called as functional programming like should you be spending time learning functional programming the idea is here you should learn functional programming why because anything that you run to write good functional code is transferable to any language you adopt because functional programming is a paradigm you can use it to write functional code in go in JavaScript in Python whichever language supports function as its primitive line right that's the thing whatever you are learning see if it is transferable let me give another example let's say you would want to explore distributed storage let's say you went deeper into a Cassandra internals now the learnings like should you go deeper into Cassandra internals let's say you are into backend engineering you chose to go into this I would say yes why because if you know internals of one distributed database let's say Cassandra you can easily correlate your learnings into any distributed database out there because they just change a bit here or there most of your learnings would remain intact it's transferable that's really important right so similarly on Big Data if I take an example learning spark will is essential because you can then extend your learning into fling and hives of the world and not it's not that difficult like that your learnings can be transferred and this is how you should be thinking of how you should be deciding which technology you should be picking up because understand this you should embrace this fact that you cannot learn everything time is limited and energy is limited we have lots of responsibility as we grow up so you possibly cannot learn everything so which is where you decide which technology to learn and invest your time in that's important so how you decide I gave you a small little framework that I have used to decide it right few things I suggest that I would want to put out is focus on what's relevant to your current project it aligns with your career goals whatever promises you have made to your career you just go there and ensure you chase that because that's what will help you make money second is when you decide it's aligning which technology to pick this is where your approach hell yes or no comes in that either it should be a Forex Improvement of what you are currently at then you should definitely do that otherwise just skip it it's okay to say node to an emerging Trend if it is not significantly better than what you already know and remember that as a developer why saying no is important because as a developer we are paid to money to solve problems not to write code writing code is a way to solve problems if it can be done with react via adopt view given that you know react right similarly it's and which is why I say it's okay to say no to a stuff that you know a similar stuff if you already know about it and this is how you should be thinking about it it should be significant it should be substantial better than what you already know otherwise it's okay to skip it right and this is how I have approached throughout my career on learning and exploring new stuff I am still a person who likes to have a high breadth because I'm very curious at heart it might not suit everyone but these are some things that I have decided these are the things that I need to be very good at which is back-end development I'm good at it but on the side where it comes to breath I have still have a decent breath that I can talk about compilers distributed systems distributed storage query processing database internals what not I like to do that I like no bit of front end also mobile also infra definitely yes right but I have built my depth into building application to Building Services building products solving problems right so pick a niche that you are good at that you will be paid for and build and explore things on the site right and these are my two cents on the topic how you should decide which technology to learn and invest your time in in the span of your entire career and I hope you found it interesting this is me speaking my heart out on this topic I used to get discussion a lot so thought of making this into a video so I hope you found it interesting hope you found it amusing that's it for this one I'll see the next one thanks thank you [Music]

Here's the video ⤵

Courses I teach

Alongside my daily work, I also teach some highly practical courses, with a no-fluff no-nonsense approach, that are designed to spark engineering curiosity and help you ace your career.

System Design Masterclass

A no-fluff masterclass that helps SDE-2, SDE-3, and above form the right intuition to design and implement highly scalable, fault-tolerant, extensible, and available systems.

Details →

System Design for Beginners

An in-depth and self-paced course for absolute beginners to become great at designing and implementing scalable, available, and extensible systems.

Details →

Redis Internals

A self-paced and hands-on course covering Redis internals - data structures, algorithms, and some core features by re-implementing them in Go.

Details →

Writings and Learnings

Knowledge Base



Arpit's Newsletter read by 100,000 engineers

Weekly essays on real-world system design, distributed systems, or a deep dive into some super-clever algorithm.