Free YouTube Transcribe

Video transcript

8 GitHub Repos That Take You from Beginner to Senior Engineer

Nikhil Lohia · 4,204 words · 20 min read

Want to search this transcript, jump the video from any line, or download it as TXT, SRT, or VTT?

Open in the transcript tool

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.

This transcript was generated from the captions YouTube publishes for this video. Get the transcript of any YouTube video atfreeyoutubetranscribe.com: free, unlimited, no sign-up.