- Proteus is a free Chrome extension that lets you track your time. Proteus makes it easy to find interesting and relevant classes that are taught by the best instructors. You can filter the Proteus library for classes based on skill, difficulty, and category. And if you're the first one to find a great class, then feel free to add it to the library yourself. Proteus lets you set daily learning goals, track your learning progress and provides analytics and insights into your educational journey. Similar to spotify playlist users can packet classes together as a course for other students to follow along and learn an entire curriculum. Proteus also lets you earn hours towards different pro degrees and your topics and fields of interest. Once you've earned a pro degree, you can add it to your LinkedIn profile and show the time you spent mastering that top. But if you're not a Chrome user, then feel free to check out the Proteus web app from Proteus.co.
software or system, get and get hub. Now why you need to know this, but if you're working in a team of more than one person, you're not just working, chances are you're going to be using, get and get hub or some other kind of version control software and you're going to need to sync your local changes. So the stuff you're actually writing and developing on your computer with, the company code base or the other person's code base, and you're going to need a way to take other people's changes and we'll
- But get is kind of the backed actual version control software. It's what's running on your computer. It's what's checking for changes in your repository. It's what's going to do all of, kind of the hard lifting. When you do say like a re-base command, right? That's what gets will actually do. It's kind of more in the back-end.
- Whereas get hub is actually the front end user interface. It's the famous website that we all know about.
So you need to know how to use both of them. You have to know how to use the basic get commands. So how do I commit something? How do I push something up to the remote repository? How do I pull something down? What does a re-based command do? How do we make a new branch, all of these different things. And then you also have to know how to use the get hub website. So how do I do a code review? Okay. Oh, this is how we approve changes. This is how I merge something into the branch, all of those different things. So we've gone on this long enough that the point is that this is very important and really make sure of all of the tools on the list. You have this down and you have a deep understanding of how get and get hub work.
Linux Commands
So the second thing on my list here is going to be Linux commands and generally Mac and windows commands as a software engineer. There's a lot of situations where you are not going to be able to use a graphical user interface and you're going to have to be comfortable navigating a file system using adjust the command line.Even if we take an example where you're on windows, we're on Mac. There is again to many situations where even though you might have a graphical user interface, the tool that you're interacting with or using is only available from the command line. Now I'm not saying you have to be an absolute pro and you never use a graphical user interface. You just have to know how to navigate a file system, how to copy a file, move a file, edit a file, do these basic things that are very common and that you'll have to do a lot. If you are ever in the situation where you don't have that graphical user interface or you can't use it for what you're doing now, this will be especially important.
If you're someone who's working on any kind of web development, if you're going to be interacting with any servers, if you're needing to SSH into say a remote machine, if you're going to be working with a lot of machine learning related stuff, we're really specific pieces of technology or programs especially in Python, there's a lot of stuff that only runs on Linux, right? It just doesn't work on Mac or it doesn't work on windows. So even having the ability to say boot up a virtual machine and get in and just really quickly kind of spin up in Ubuntu box or some kind of Linux box and start working on that is really important. And firsthand at Microsoft, almost all of my coworkers had access to a virtual machine that was running Linux and that never had a graphical user interface on it. It was simply command line and they would use that when they needed to task really specific proprietary pieces of software. And well, if they didn't know how to use Linux, it was going to be a huge pain every time they needed to go in there. When they're looking up, how do I copy a file? How do I edit a file? How do I save something? Just some basic things that you should know. You have a fundamental understanding of how to navigate a file system and perform some basic commands related to permissions on Linux, Mac and Windows.
Debugging
The third thing is using a debugger or we could call this debugging.But what I mean by this is understanding how to use a debugging tool and understanding how to go about debugging a complex program. Now, this is really important because in a lot of situations especially if you're working for a company you're going to be dealing with files that have you know, tens of thousands of lines where you're going to be dealing with tens of thousands of different files. And it's just not going to be viable to be able to use a print debugging when you're debugging. Sure. You could use that for small things, but you're going to have to know how to use a debugger, which means you have to know how to play Sprake points.
What stepping over, stepping out of and stepping into does, and kind of just the general process and strategy of how you debug a program. Now it's hard to give you that strategy because of course that's going to be specific to what you're doing, but my point is just that you're going to be working in huge code bases with lots of files, lots of lines, and just tons of stuff going on. So being able to isolate your problem, first of all, is the most important things you have to kind of practice debugging and understand how to use those tools. Now I do actually have a video on my channel that talks about how to use a debugger. It goes to the vs code debugger, which most of you might find useful. So I will link that down below, but I don't think I can talk about this much more. It's just as important to understand how to debug and you should know how to use a professional debugger to be an effective software Engineer.
IDE
Networking Basics

No comments:
Post a Comment