Full transcript
Intro
0:00Solving a programming problem is one
0:01thing, but becoming a better engineer,
0:04that is something that is completely
0:05different. And you might have seen this
0:07around yourselves, too. Either at your
0:09workplace or amongst your colleagues.
0:11There is always that one go-to person
0:13which everyone wants to talk to. They
0:15are the subject matter expert. But how
0:17did they reach there? How did they start
0:20their journey from being a junior
0:21engineer to becoming the most senior
0:23developer? What was the road map?
0:26And to be very honest with you, when I
0:28started my journey, I really wish that
0:30someone could give me a road map that,
0:32"Hey, if you follow this path, you will
0:34be at a very good state." So, in this
0:36particular video, I want to show you
0:38eight free resources that can help you
0:40to make that road map. How do you
0:42identify what do you need to follow?
0:44Where do you want to look at? And how do
0:46you go up from over there? How do you
0:48see your growth actually happening? How
0:50do ideas come into your mind? And how do
0:52you think about building something
0:53bigger? So, that is what we are going to
0:55look at together. Hello, friends.
0:57Welcome back to my channel.
1:01What we're going to do is we will look
1:02at eight different GitHub repositories
1:04that can help you with the transition.
1:06These are great resources which can help
1:09you to convert from being a junior
1:10engineer all the way to becoming a
1:12professional. Now, even before you
1:13become a professional, you have to start
1:15somewhere, right? Now, try to think
1:17about a time when you decided that,
1:19"Okay, you want to be a developer."
Where to start?
1:21What all questions came to your mind?
1:23You had just scratched the surface of
1:25technology and you found that, "Okay,
1:27there is front-end development, back-end
1:28development, Docker development, QA
1:30engineering, CI/CD, Python developer."
1:32So many things. And that is the starting
1:35point. You are currently at this
1:37position and you do not know where do
1:39you want to go. This brings us to the
1:41first resource that I want to tell you
1:42about. And this GitHub repository is the
1:45developer road map.
1:47What this repository is particularly
1:48helpful is it gives you the road map for
1:52each of the thing that you want to
1:54achieve. So, let us say you want to
1:56become a cloud code developer. You want
1:58to become a white coding developer. You
2:00want to become, let us say, a AWS
2:02developer. Or let's say you want to
2:04become a Python developer. How this repo
2:06helps you is it gives you a basic road
2:08map of everything that will be involved.
2:10So, if you're looking at cloud code,
2:12these are all the things that you need
2:14to be familiar about. Similarly, with
2:16white coding, what all do you need to
2:17know? If you want to become a AWS
2:19developer, these are all the things that
2:22you must be aware about or these are all
2:24the things that you want to learn. For
2:26example, Python, these are all the
2:28things that you should be knowing about
2:30eventually once you become a Python
2:31developer. It gives you a very good idea
2:34about the things involved. Let us say
2:36you are deciding that, "Okay, I want to
2:38become a front-end developer." But you
2:40do not know half the things. It might be
2:42possible that a back-end engineering
2:44role suits you more better because those
2:46are the things that actually interest
2:48you. So, this becomes a very good
2:50starting point that, "Okay, if I want to
2:52become an iOS developer, how will my
2:55road map look like? What do I need to
2:56do? I need to pick up a language. I need
2:58to understand the architecture. These
3:00are all the core concepts. These are the
3:02app concepts. This is how I build a UI.
3:04And this is the complete pathway I have
3:07to follow." It does not give you a full
3:09solution. It is just telling you, "Okay,
3:11these are the steps involved and that is
3:13what you will want to do eventually." In
3:15other words, this repository will help
3:17you to pick something that actually
3:19excites you. You will not waste a lot of
3:21time just trying to decide that, "Okay,
3:23what do I want to pick?" Some people
3:25take 6 to 7 months just to get an
3:27understanding, "Okay, what is going to
3:28happen and what do I need to pick?" Now,
Everything costs money
3:30we come to the next part. You have now
3:32picked up a technology that, "Okay, I
3:34want to learn about this."
3:35If you do a Google search on that
3:37particular technology, you will see N
3:39amount of courses. And the first
3:41impression that you get is, "Okay, what
3:43do I need to do? Is everything paid?"
3:45Because most of these courses are. If
3:47you think about iOS development, you
3:49will see a lot of websites selling you
3:50courses, different resources, and you
3:53will feel that okay, what do I need to
3:54do? Everything costs me money.
3:56And most of these results are always on
3:58the top because they are sponsored. You
4:00will never get the free and the good
4:02results high above in your search
4:04results because people need to make
4:06money, right? That is your eventual goal
4:08as well.
4:09So, what do you do over here? Do you get
4:11stuck? And this is where this second
4:13resource comes in very very handy, free
4:15programming books. And if you check out
4:17this repository, you will be genuinely
4:19impressed. This repository has a very
4:21good free collection of all the best
4:23resources. Just look at these
4:25repositories. It has been starred by
4:27385,000 people. So, you can be sure that
4:30you are getting the very best of
4:31resources.
4:32It has all of these free things in so
4:35many languages. It has these free online
4:37courses, programming resources, problem
4:40sets, podcasts. What else do you want?
4:42For example, if I want to look at all of
4:45the resources in English language. Now,
4:47let us say I want to learn about Python.
4:50So, I go over here in this resource and
4:52I check it out.
4:53Just for Python, I have 100 plus
4:56resources.
4:57You can follow any of them and you will
4:59be guaranteed that you are getting the
5:01very best of resources. Now, this is one
5:03thing I have often seen between senior
5:05engineers and junior engineers.
5:07Senior engineers never stop reading.
5:09Even if they are 5 years down the line,
5:1110 years down the line, 15 years down
5:13the line. They are always picking up new
5:15book to understand what is going on.
5:17Currently, everything is transitioning
5:19towards AI. So, you do not stop your
5:21learning. You want to learn about how
5:23these agents work. What is machine
5:24learning? What is the actual science
5:26behind it?
5:27And that is where all of these free
5:29resources coming very very handy. So, up
5:31till now, you have decided that okay, I
5:33want to learn this, and now you have all
5:35of the resources available to you. But
What after all the tutorials?
5:37now comes the very interesting part, and
5:39I call this the tutorial trap. And I'm
5:41pretty sure you might have experienced
5:43this yourself in one way or the other.
5:45You follow the complete tutorial. You
5:47write the same piece of code as your
5:48instructor and you feel really smart.
5:51But, are you learning anything?
5:53As soon as you decide to develop
5:54anything, you will see that, "Okay, I do
5:56not know. Where do I even start? How do
5:58I solve this? How do I do this?"
6:01This is one of the most common problem
6:02that you get once you just keep on
6:04watching tutorials. And that is where
6:06this third GitHub repository comes in
6:08very, very handy. Project-based
6:10learning. Now, what is so special about
6:12it? The best way to learn any
6:14programming language or any technology
6:16is when you actually build something on
6:18top of it. Just think like this. Let us
6:21say you want to learn about games. You
6:23want to learn how games work. No matter
6:25how many tutorials you read, you will
6:27never be able to actually develop a
6:29game. The best way to learn is actually
6:31start to develop a game yourself. If you
6:34want to learn front-end development, no
6:36matter how many HTML tutorials you see,
6:38you will only learn when you decide to
6:40make a website of your own. And that is
6:43where the project-based learning website
6:45comes in very, very handy. Because just
6:47writing the Hello World program just
6:49doesn't cut it. Let us say you want to
6:51learn Python. So, what do you actually
6:52do with it? This repository helps you
6:54out. Okay, what can you do? You can
6:56build a web scraping tool. You can build
6:58a web application. You can build bots.
7:00All of this with just Python. And if you
7:03follow most of these tutorials, you will
7:04be actually building one.
7:06Similarly, look at JavaScript. Okay,
7:08what do you want to do? You want to
7:09build a Jupiter Notebook extension. You
7:11want to build a Tic-Tac-Toe game. All
7:13using JavaScript. Similarly, HTML and
7:15CSS. There are so many applications. And
7:18it actually tells you, "Okay, what can
7:20you do?" Just pick up anything that
7:22really interests you. For example,
7:24making a chat application. What do you
7:25need to do? You got a really good
7:27tutorial that will help you to build it
7:29out and you will actually see it for
7:31yourself. This will suddenly give you
7:33the confidence which you had been
7:34lacking. You learned about JavaScript.
7:36You read everything. But, when you
7:38actually start to do it, when you
7:40actually start to create an app out of
7:41it, you will not realize what you had
7:43been missing out. You will start to
7:45connect different components together
7:46and you will see the magic right
7:48happening in front of your eyes and that
7:50will give you a confidence boost as
Proving Yourself
7:52well.
7:53All right. So, you're now at a point
7:55where you picked up a topic, you learned
7:56some of the resources, and you're
7:58actually starting to build things.
8:00You're not a beginner anymore. But, this
8:02is also the part which a lot of people
8:04actually stress about. Actually proving
8:06yourself. Actually trying to land an
8:08interview and actually trying to learn
8:10what all is involved over here. And that
8:13brings me to the next resource and the
8:15next repository that I want to talk
8:16about. This is the Coding Interview
8:18University.
8:20So, what is this repository about?
8:22This particular repository, just notice,
8:24this has been starred by 341,000 people.
8:28And the guy who created it, this guy
8:30never got any CS degree. He just
8:33compiled all of these resources himself
8:35and landed a software engineering role
8:37at Amazon. He created this entire
8:40repository with all of the resources
8:42needed as you would have gathered in the
8:44CS degree. So, in spite of not being in
8:47a computer science curriculum, it
8:48actually tells you what all do you need
8:50to study. What all should be the topics
8:53of your selection? Now, I'm not saying
8:55that you have to learn all of this. If
8:57you have been following this path, if
8:59you have been building something, you
9:01might be already knowing a lot of this.
9:03And depending upon your area, you must
9:05be familiar with most of these topics.
9:07You just need to now fill in the gaps
9:08and formalize your knowledge. One common
9:11question I often get over here is,
9:12"Okay, how much time is it going to
9:14take?" For the creator who made this
9:16repository, it took him eight months
9:18just to gather everything and land a
9:20job. I'm not saying that you will also
9:22take the same amount of time. The key
9:24over here is consistency. If you just
9:27try to devote your time, if you just try
9:29to give 1 to 2 hours every day learning
9:31about all of this, it will [snorts] keep
9:33you in a very confident state and then
9:35whenever you are about to appear, that
9:38will make you feel very very ready. And
9:39when I say ready, I mean that you are
9:42ready with all of the topics. You know
9:44all of the knowledge. You have been
9:45building all of these tools.
9:47But, there is a very interesting gap.
The Tech Interview
9:49Once you start to appear for interviews,
9:52you will soon realize that the thoughts
9:54that are in your mind, it is not very
9:57simple to articulate all of them to the
9:59person in front of you. This is where
10:01your communication skills also come in
10:02very very handy.
10:04Think like this.
10:05You are given up with a problem
10:06statement.
10:07In your mind, everything is clear to you
10:08that okay, step one, step two, step
10:10three, and I will get the answer.
10:12But, when you try to communicate that
10:14thought, it can come out as garbage. It
10:17can come out in a way that is not
10:19structured. You need to be able to
10:21communicate your thoughts in a way such
10:23that you can work with a group of
10:24people.
10:25Because once you're joining any
10:27organization, it is not just you. It is
10:29a collection of all the people and how
10:31you're communicating, how you're telling
10:33what comes in your mind. And this is
10:35where I want to talk about this next
10:37GitHub repo. And this is about the tech
10:39interview handbook.
10:40What is this repository about? This
10:42repository is a very good collection
10:44about what all can you expect in an
10:47interview. What are the best practice
10:48questions? How to prepare for them? What
10:51are the best practices? Some of the
10:53cheat sheets. What are the step-by-step
10:55procedures to write a good resume? What
10:57are some of the behavioral questions?
10:59How do you prepare for all of it?
11:01So, this repository is a very good
11:03collection point of all of this.
11:05Actually, what I would like to say is
11:06use both of these repositories together,
11:08the tech interview handbook and the
11:10coding interview university. Because
11:12both of these repositories, when
11:14combined, will give you a complete
11:15structured approach. How to write your
11:17resume, what problems to practice, and
11:20what to expect when you are actually in
11:22the interview room. What kind of
11:24behavioral questions are going to come
11:25up? And the most important thing, how to
11:28negotiate. Never leave money on the
11:29table. You need to learn what kind of
11:32questions to ask and how can you
11:34contribute to their company? Because if
11:36you think about it, you need both the
11:38things, strategy and knowledge. And they
11:40cannot function until and unless you
11:42have both the things together. And look,
Smart Interview Grind
11:44if you often find yourself at a
11:46difficult situation on what problems do
11:47I need to appear for? My tech interview
11:49is coming up. I have this much time
11:51available. You always have my smart
11:53interview guide which can help you to
11:55prepare and make out a plan accordingly.
11:57You can decide what is your experience
11:59level, what time is available for your
12:01interview, and what is your weekly
12:02commitment. You can then decide, okay,
12:04what companies you're targeting, what
12:06kind of topics you're targeting, and
12:08then also the difficulty. It will create
12:10a personal strategy for you, and it will
12:12give you a very good high degree of
12:13confidence that you're solving the best
12:15problems. Because this smart interview
12:18guide is community driven, and you can
12:20be very sure that you're solving the
12:22most liked problems. For example, this
12:24particular problem has been liked by
12:2513,000 people, 4,000 people. And this
12:28has been asked in so many different
12:30companies, like 119 companies, 129
12:32companies.
12:33So you always know that you are getting
12:35the very best. The link for this is
12:37available in my description below.
Becoming a subject matter expert
12:38Coming back to our video, we are now at
12:40a very interesting phase. You have
12:41picked up a topic, you are building
12:43projects on it, you have also landed a
12:45job.
12:46And some people feel that this is the
12:48end. Like, okay, you have achieved what
12:50you wanted to.
12:51But this is what is going to separate
12:53you from being a junior engineer to
12:55becoming an expert. You might feel that
12:57you are currently over here. You know
12:59about all of these technologies, and you
13:02are working together with all of them.
13:04You are at a very good position.
13:05But this is where you have the actual
13:08opportunity to grow.
13:10Try to think like this. Just knowing
13:12about all of these technologies isn't
13:14enough.
13:15What if something breaks?
13:17What if something happens and now
13:19suddenly you do not know what to do?
13:21You rush to a person who knows about all
13:23of this and who knows how to fix it. And
13:26that brings me to the areas of actual
13:28growth. This next repository will
13:30actually help you to get over there.
13:32Build your own X. Now, this repository
13:35has been starred by 489,000 people. And
13:38it is for a reason. Why? You know that
13:41you have been using all of these
13:42different technologies, like a
13:44blockchain, like a command line tool,
13:45Docker, VMs, neural networks, operating
13:47system, all of them, right?
13:49But, how do they work? A senior engineer
13:52understands the technologies behind it.
13:54Because, if you know what is going on at
13:56the back end, then you can make better
13:59decisions. You can decide, okay, which
14:01database do I want to choose?
14:03And how can you do that? If you know
14:05what is the back end behind them. So, if
14:08you're targeting growth, this should be
14:09your next step. Try to build something
14:11of your own. For example, Git. You want
14:14to understand how version control works.
14:17Try to make your own Git. And how can
14:18you do that? You can make it in half
14:20scale, JavaScript, Python, whatever you
14:22like.
14:22This will actually help you understand
14:24what is happening in the back end. Let
14:26us say you want to build your own
14:27database. So, what do you do?
14:29Pick a language, and now that, okay,
14:31maybe I want to build something in Ruby.
14:34Maybe I want to build my own Redis
14:36client. So, this is how you can do it.
14:38So, this repository is actually making
14:40you the subject matter expert.
14:42Once you're building something of your
14:44own,
14:45just pick any technology that you like.
14:47You want to become an expert at
14:48databases? Try to make a database on
14:50your own. You are going to feel very
14:52confident when making these decisions
14:54for your company. People are going to
14:55come to you that, okay, what do I need
14:57to do here? What could be breaking? And
14:59how can you fix it? And a common
15:01question that you might get yourself
15:02over here is, why build something when
15:04it is already out there?
15:06Remember that you're not building it to
15:07replace it. You're only building it to
15:09understand how it works. How do you
15:11configure it correctly? What are the
15:13limitations? All of these things will
15:15help you to make better decisions when
15:17you're working on a grand project. And
15:19when it comes to grand projects, you
15:21will soon realize that you have to
15:23configure a lot of different services.
15:26And once you're looking at all of these
15:27different services, you're going to soon
Self hosting solutions
15:29realize that you are in a subscription
15:32trap. Most of these companies now give
15:34you a subscription model. So, you will
15:36see that okay, I need to subscribe to
15:38this, this, this, and now everything is
15:40working.
15:41So, this is where you might feel trapped
15:44again. Okay, what can I do? Is there a
15:46better solution to all of it? Can't I
15:48build something that is already free?
15:50Can't I host something if I have the
15:52knowledge about it? So, if you check out
15:54this particular repository, awesome
15:56self-hosted, this particular repository
15:58helps you to host your own applications.
16:01Think about a file sharing system. Let
16:03us say if you do not want to pay Google
16:05or Microsoft just to store your files.
16:07What if you could have some sort of a
16:10file sharing system at your own home?
16:12What if you can set up a server of your
16:13own?
16:14This particular repository helps you to
16:16build all of that. And it is huge. There
16:19are so many things that you can do. For
16:21example, take a look at something very,
16:22very basic, bookmarking and link
16:24sharing. If you want to shorten links,
16:26again, it is a service. So, why not
16:28build something of your own?
16:29And why are you building it? So that you
16:32understand how all of it works.
16:34And this repository is going to help
16:36you. Now, notice how far we have come
16:38along in our path. You started off with
16:41a language, you learned all of the
16:42resources, you started building
16:43projects. Now, you are looking at
Building something original
16:46different alternatives. You are trying
16:47to build something of your own. And this
16:49is where the enlightenment happened. You
16:51will try to think that okay, if I know
16:53all of this, can't I build something of
16:55my own? You will start to think about
16:57startups. You will start to think that
16:59hey, what if I create a service of my
17:02own and then try to give it to the
17:03public? What if I want to make money out
17:06of all of the things that I have been
17:07learning? And this is the phase where
17:09you have actually become an expert. Now,
17:12once you become an expert, you want to
17:14understand and take the maximum
17:15advantage. You want to utilize
17:18everything that is out there. And this
17:20is why I wanted to keep this particular
17:21resource also, public APIs. Why is this
17:24necessary? When you start to build
17:26something of your own, you will soon
17:28realize that you need more information
17:30from the outside world.
17:32Let us say you are building something
17:34that is related to telephony, or you
17:36want to validate phone numbers. How do
17:37you do that without paying someone? Use
17:40this public API repo. For example, you
17:42want to verify phone numbers. NumVerify
17:44is a very good public API. If you want
17:46to look at weather, so you'll find a API
17:49for it over here. If you want to look at
17:51the historical forex rates, you will
17:52find an API over here. So, all of these
17:55tools, combined with all of the
17:56knowledge that you have got, it is going
17:58to help you build something of your own.
17:59And that is why I wanted to include this
18:01repository.
18:02You might notice that after doing all of
18:04this, you are now at a very good state.
18:07But, in your entire journey towards
18:09growth, you will often find yourself at
18:11a crossroad. With more and more
Awesome
18:13technologies coming in. For example, AI.
18:15Or if you're just performing your job,
18:17and there is suddenly a new tech stack.
18:19You will soon realize that you are at
18:21the same state where you started. Okay,
18:23where do you want to even proceed? Would
18:25you want to follow the same path again?
18:27So, I've got an answer for you. Look at
18:29this particular repo called awesome. And
18:31this is awesome for a reason. Look at
18:33it. It has been starred by 454,000
18:35people. And what is it? It is just a
18:38collection of one of the best
18:39repositories for each of the best
18:41repositories. So, it is kind of a super
18:44set of all of the awesome things. If you
18:46want to learn something on big data,
18:48you're going to find it over here. If
18:49you want to learn something about
18:50front-end development, you're going to
18:51find it over here. So, it will give you
18:53a list of all of the awesome tools that
18:55you can refer to.
18:56So, I just wanted to add this repository
18:58as a bonus, so that if you ever feel
19:00stuck, you know where to go, and you
19:03will be at a very trusted place to find
19:04out all of the good resources.
Final thoughts
19:06So, this is your road map. You pick out
19:08a technology, you figure out, you learn,
19:10you build on top of it, you combine it
19:12with all of the different technologies,
19:14and then you create something big. Who
19:16knows? Maybe you are going to create the
19:17next biggest product the world has ever
19:19seen.
19:20What other repositories did you find
19:21interesting? Out of all of these repos,
19:24what appealed to you the most? Tell me
19:26everything in the comments section
19:27below, and I would love to discuss all
19:28of it with you.
19:29Again, if you like these kind of videos,
19:31and if you prefer more human-generated
19:33videos, please do consider subscribing
19:35to my channel and share this video with
19:36your friends. This really keeps me
19:37motivated, and I can make more such
19:38videos.
19:39Also, a huge shout-out to all of the
19:41members who support my channel. You guys
19:42really keep me going. And as a member,
19:44you do get priority applied to your
19:45comments, and early access to new videos
19:46as well. Also, remember that now you can
19:48schedule a one-to-one session with me,
19:50and we can discuss about almost
19:51anything. Stay tuned for my upcoming
19:52video. Until then, see you.