5 Tools/Technologies Every Software Engineer Needs to Know

Tech With Tim · Beginner ·📰 AI News & Updates ·5y ago

Key Takeaways

The video discusses essential tools and technologies for software engineers, including Git, GitHub, Linux, and Integrated Development Environments (IDEs), with a focus on version control, collaboration, and debugging.

Full Transcript

hello everybody and welcome back so in today's video i'm gonna be sharing with you five tools slash technologies that you need to know to be an effective software engineer now the reason i'm making this video is because back in the summer i started working for microsoft as a software engineer intern now while i was there i realized really quickly that there was a lot more to software engineering than just knowing how to code i felt pretty confident in my ability problem solving writing code and doing all of that but there was a ton of tools and technologies that i didn't know how to use and that really limited me in my first few weeks i had to pick those things up i was asking a lot of questions and well it would have just been a lot better if i knew those before i started working there so i figured i can make this video kind of share that information with you guys and then maybe you can be ahead when you go to your next job so anyways with that being said let's go ahead and get started and talk about five tools slash technologies that you need to know to be an effective software engineer so i'll start by mentioning that a lot of the tools i'm going to talk about here are pretty broad and there's definitely a lot that you can learn about each of these tools now i just want to make the point that it's not super important that you know everything it's just about having kind of a basic fundamental understanding and being able to understand how that tool works maybe have a conversation with someone about it and just being able to use it with a relative degree of effectiveness now if you're like me you'll probably learn a lot of these tools just by watching youtube videos or looking at other resources and well for me personally i like to keep track of kind of the best videos and resources that i've found so i can visit them later on now this is pretty difficult for me i don't like cluttering my bookmark bar and all of that stuff but fortunately the sponsor of this video which is proteus has a solution for us proteus is a free chrome extension that lets you track your time learning on youtube 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 playlists users can package 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 in 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've spent mastering that topic get started by downloading the free proteus chrome extension from the link in the description but if you're not a chrome user then feel free to check out the proteus web app from proteus.co or again the links in the description so the first and in my opinion the most important tool that you need to know is a version control software or system like git and github now i think this is pretty obvious why you need to know this but if you're working in a team of more than one person so you're not just working alone chances are you're going to be using git or github 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 well 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 well update that on your local code base so it's very important that you have a deep understanding of how both git and github work assuming you're using that software and that you can not only perform commands from the command line on your keyboard but you also can use the user interface on the github website now the reason i've separated these two things out is because as many people don't know git and github are two separate things yes they work very closely together they're very deeply integrated but git is kind of the back end 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 rebase command right that's what git will actually do it's kind of more in the back end that's the way i like to describe it whereas github 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 git 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 rebase command do how do i make a new branch all of these different things and then you also have to know how to use the github website so how do i do a code review okay oh this is how i approve changes this is how i merge something into the branch all of those different things so i think i've gone on on this long enough but the point is that this is very important and really makes sure of all of the tools on the list you have this down and you have a deep understanding of how git and github work so the second thing on my list here is going to be linux commands and generally mac and windows commands as well 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 just the command line even if we take an example where you're on windows or on mac there is again many situations where even though you might have a graphical user interface the tool 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 uh 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 or really specific pieces of technology or programs i can tell you firsthand 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 i can tell you firsthand that microsoft almost all of my co-workers 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 test 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 hey 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 and i would highly recommend 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 the third thing i have on my list is using a debugger or i guess 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 kind of style when you're debugging sure you could use that for maybe some small things but you're going to have to know how to use a debugger which means you have to know how to place break points what's 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 for me 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 thing so 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 through 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 just is important to understand how to debug and you should know how to use a professional debugger to be an effective software engineer so the fourth thing i have on my list here is ide slash ide features now what i mean by this is really just how to set up a coding environment for yourself and how to take advantage of some of the cool features that are in ides now some features i can think of off of the top of my head that i think you should use are things like formatters debuggers find and replace refactor duplicate line just all these kind of different things i think you're getting the point now of course this is important because you want to be as fast as possible when you're writing code and if you can use these cool tools well it's going to be really useful now especially if you're working in a large code base understanding how to navigate a ton of different files and go to say the definitions of different functions or methods or classes is really important so just having a good understanding of the development environment that you're using and being able to take advantage of a lot of these core tools that are involved in these ides is really important now i'll just specify quickly here that i'm not really recommending using an ide if you're just an absolute beginner and you're still learning how to code this is more of a recommendation for people that really want to become software engineers that already have the basics of coding down and that are totally fine with getting a bit of aid from the computer another thing i'll quickly mention here is using a really good intellisense that will save you a significant amount of time and well that's all i can really talk about for this section just know how to use an ide know about the features that are in it and take advantage of them so the last item i have on my list here is networking basics now what i mean by this is just having a really basic understanding of how computers communicate with each other how maybe a distributed system might work why you may need to use say asynchronous programming or multiple threads due to the networking operations that you're using and then of course having an understanding of http protocols and you know maybe the difference between something like a get request and a post request or how you could send those kind of requests or send a response from code now of course there may be a set of software engineers that don't actually need to understand this but i would say in a lot of situations having this knowledge is really good and it just allows you to understand a lot more about what's happening in a system if you have kind of that underlying knowledge and information about how networking actually works again i'm no networking pro you know i can't talk about this a ton but i found especially when i'm writing programs that deal with any kind of networking related thing just having that little bit of knowledge has helped me a ton and made it a lot more clear into why i was writing specific blocks of code you know kind of based on that understanding so with that being said that is all i wanted to share with you so do you guys agree with me did i miss anything are any of these tools something that maybe you don't need to know please do let me know in the comments down below with that being said if you enjoyed make sure you leave a like subscribe to the channel and of course i will see you again in another youtube video

Original Description

In this video I will discuss tools and technologies that software engineers needs to know. These software engineering tools include git & github, linux commands, integrated development environments and much more. If you are a programmer and looking to become a software engineer I'd highly advise you learn these software engineering tools! 🌟 Thanks to Prodeus for sponsoring this video! Prodeus is a free chrome extension that let's you track your time learning on YouTube. Download their free chrome extension here: https://chrome.google.com/webstore/detail/prodeus/aglakbhkijgpmoploegcpnbnedgiampn?h1=en and if you're not a chrome user check out their website: https://prodeus.co ⭐️ Timestamps ⭐️ 00:00 | Introduction 01:03 | Prodeus 02:43 | Git & Github 04:45 | Linux Commands 06:50 | Debugging 08:14 | IDE's & IDE Features 09:40 | Basic Networking 10:45 | Conclusion 📝 Git & GitHub Tutorial: https://www.youtube.com/watch?v=DVRQoVRzMIY&feature=emb_logo 📺 How to Use a Debugger: https://www.youtube.com/watch?v=7qZBwhSlfOo 💻 AlgoExpert is the software engineer interview prep platform that I used to ace my Microsoft and Shopify interviews. Check it out and get a 10% discount using the code "techwithtim" - https://algoexpert.io/techwithtim ◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️ 💰 Courses & Merch 💰 💻 The Fundamentals of Programming w/ Python: https://tech-with-tim.teachable.com/p/the-fundamentals-of-programming-with-python 👕 Merchandise: https://teespring.com/stores/tech-with-tim-merch-shop 🔗 Social Medias 🔗 📸 Instagram: https://www.instagram.com/tech_with_tim 📱 Twitter: https://twitter.com/TechWithTimm ⭐ Discord: https://discord.gg/pr2k55t 📝 LinkedIn: https://www.linkedin.com/in/tim-ruscica-82631b179/ 🌎 Website: https://techwithtim.net 📂 GitHub: https://github.com/techwithtim 🔊 Podcast: https://anchor.fm/tech-with-tim 🎬 My YouTube Gear 🎬 🎥 Main Camera (EOS Canon 90D): https://amzn.to/3cY23y9 🎥 Secondary Camera (Panasonic Lumix G7): https://amzn.t
Watch on YouTube ↗ (saves to browser)
Sign in to unlock AI tutor explanation · ⚡30

Playlist

Uploads from Tech With Tim · Tech With Tim · 0 of 60

← Previous Next →
1 A* Path Finding Algorithm(Visualization)
A* Path Finding Algorithm(Visualization)
Tech With Tim
2 Python Programming Tutorial #1 - Variables and Data Types
Python Programming Tutorial #1 - Variables and Data Types
Tech With Tim
3 Python Programming Tutorial #2 - Basic Operators and Input
Python Programming Tutorial #2 - Basic Operators and Input
Tech With Tim
4 Python Programming Tutorial #3 - Conditions
Python Programming Tutorial #3 - Conditions
Tech With Tim
5 Python Programming Tutorial #4 - IF/ELIF/ELSE
Python Programming Tutorial #4 - IF/ELIF/ELSE
Tech With Tim
6 Python Programming Tutorial #5 - Chained Conditionals and Nested Statements
Python Programming Tutorial #5 - Chained Conditionals and Nested Statements
Tech With Tim
7 Python Programming Tutorial #6 - For Loops
Python Programming Tutorial #6 - For Loops
Tech With Tim
8 Python Programming Tutorial #7 - While Loops
Python Programming Tutorial #7 - While Loops
Tech With Tim
9 Python Programming Tutorial #8 - Lists and Tuples
Python Programming Tutorial #8 - Lists and Tuples
Tech With Tim
10 Python Programming Tutorial #9 - Iteration by Item (For Loops Continued...)
Python Programming Tutorial #9 - Iteration by Item (For Loops Continued...)
Tech With Tim
11 Python Programming Tutorial #10 - String Methods
Python Programming Tutorial #10 - String Methods
Tech With Tim
12 How to Overclock a NVIDIA GPU
How to Overclock a NVIDIA GPU
Tech With Tim
13 Python Programming Tutorial #11 - Slice Operator
Python Programming Tutorial #11 - Slice Operator
Tech With Tim
14 Python Programming Tutorial #12 - Functions
Python Programming Tutorial #12 - Functions
Tech With Tim
15 Python Programming Tutorial #13 - How to Read a Text File
Python Programming Tutorial #13 - How to Read a Text File
Tech With Tim
16 Python Programming Tutorial #14 - Writing to a Text File
Python Programming Tutorial #14 - Writing to a Text File
Tech With Tim
17 Python Programming Tutorial #15 - Using .count() and .find()
Python Programming Tutorial #15 - Using .count() and .find()
Tech With Tim
18 Python Programming Tutorial #16 - Introduction to Modular Programming
Python Programming Tutorial #16 - Introduction to Modular Programming
Tech With Tim
19 Python Programming Tutorial #17 - Optional Parameters
Python Programming Tutorial #17 - Optional Parameters
Tech With Tim
20 Python Programming Tutorial #18 - Try and Except (Python Error Handling)
Python Programming Tutorial #18 - Try and Except (Python Error Handling)
Tech With Tim
21 Python Programming Tutorial #19 - Global vs Local Variables
Python Programming Tutorial #19 - Global vs Local Variables
Tech With Tim
22 Python Programming Tutorial #20 - Classes and Objects
Python Programming Tutorial #20 - Classes and Objects
Tech With Tim
23 Cool VBS Script to Prank Your Friends!
Cool VBS Script to Prank Your Friends!
Tech With Tim
24 How to Overclock an AMD GPU
How to Overclock an AMD GPU
Tech With Tim
25 Best GPU'S For Mining Ethereum (2018)
Best GPU'S For Mining Ethereum (2018)
Tech With Tim
26 Recursion and Memoization Tutorial Python
Recursion and Memoization Tutorial Python
Tech With Tim
27 Ethereum Mining Rig - Hardware Guide
Ethereum Mining Rig - Hardware Guide
Tech With Tim
28 Pygame Tutorial #1 - Basic Movement and Key Presses
Pygame Tutorial #1 - Basic Movement and Key Presses
Tech With Tim
29 How to Install Pygame (Windows 8/10)
How to Install Pygame (Windows 8/10)
Tech With Tim
30 How to Trade Your Cryptocurrency (Bitcoin, Ethereum etc.) For Cash!
How to Trade Your Cryptocurrency (Bitcoin, Ethereum etc.) For Cash!
Tech With Tim
31 How to Mine Ethereum 2018 - WORKING (Super-Easy)
How to Mine Ethereum 2018 - WORKING (Super-Easy)
Tech With Tim
32 Microphone Comparison - $10 Mic vs $150 Mic (Blue Yeti USB)
Microphone Comparison - $10 Mic vs $150 Mic (Blue Yeti USB)
Tech With Tim
33 Pygame Tutorial #2 - Jumping and Boundaries
Pygame Tutorial #2 - Jumping and Boundaries
Tech With Tim
34 Pygame Tutorial #3 - Character Animation & Sprites
Pygame Tutorial #3 - Character Animation & Sprites
Tech With Tim
35 Pygame Tutorial #4 - Optimization & OOP
Pygame Tutorial #4 - Optimization & OOP
Tech With Tim
36 OBS Studio Tutorial - Best OBS Settings
OBS Studio Tutorial - Best OBS Settings
Tech With Tim
37 Linear Search Algorithm - Python Example and Code
Linear Search Algorithm - Python Example and Code
Tech With Tim
38 Make Any Mic Sound AMAZING! (WITH OBS)
Make Any Mic Sound AMAZING! (WITH OBS)
Tech With Tim
39 Binary Search Algorithm - Python Example & Code
Binary Search Algorithm - Python Example & Code
Tech With Tim
40 Pygame Tutorial #5 - Projectiles
Pygame Tutorial #5 - Projectiles
Tech With Tim
41 Pygame Game - Mini Golf
Pygame Game - Mini Golf
Tech With Tim
42 Pygame Tutorial - Projectile Motion (Part 1)
Pygame Tutorial - Projectile Motion (Part 1)
Tech With Tim
43 Pygame Tutorial - Projectile Motion (Part 2)
Pygame Tutorial - Projectile Motion (Part 2)
Tech With Tim
44 Pygame Tutorial #6 - Enemies
Pygame Tutorial #6 - Enemies
Tech With Tim
45 Pygame Tutorial #7 - Collision and Hit Boxes
Pygame Tutorial #7 - Collision and Hit Boxes
Tech With Tim
46 Pygame Tutorial #8 - Scoring and Health Bars
Pygame Tutorial #8 - Scoring and Health Bars
Tech With Tim
47 Cloud Mining vs. Hardware Mining - 2018
Cloud Mining vs. Hardware Mining - 2018
Tech With Tim
48 How to Install Pygame on Mac OSX (Fast-Simple)
How to Install Pygame on Mac OSX (Fast-Simple)
Tech With Tim
49 Pygame Tutorial #9 - Sound Effects, Music & More Collision
Pygame Tutorial #9 - Sound Effects, Music & More Collision
Tech With Tim
50 Pygame Tutorial #10 - Finishing Touches & Next Steps
Pygame Tutorial #10 - Finishing Touches & Next Steps
Tech With Tim
51 How to Fade Your Screen in Pygame [CODE IN DESCRIPTION]
How to Fade Your Screen in Pygame [CODE IN DESCRIPTION]
Tech With Tim
52 How to Create a Button in Pygame [CODE IN DESCRIPTION]
How to Create a Button in Pygame [CODE IN DESCRIPTION]
Tech With Tim
53 Pygame Side-Scroller Tutorial #1 - Scrolling Background/Character Movement
Pygame Side-Scroller Tutorial #1 - Scrolling Background/Character Movement
Tech With Tim
54 Pygame Side-Scroller Tutorial #2 - Random Object Generation
Pygame Side-Scroller Tutorial #2 - Random Object Generation
Tech With Tim
55 Pygame Side-Scroller Tutorial #3 - Collision
Pygame Side-Scroller Tutorial #3 - Collision
Tech With Tim
56 Pygame Side-Scroller Tutorial #4 - Scoring and End Screen
Pygame Side-Scroller Tutorial #4 - Scoring and End Screen
Tech With Tim
57 How to Create A Message Box in Python - Tkinter
How to Create A Message Box in Python - Tkinter
Tech With Tim
58 Is Ethereum Mining Still Profitable - Is It Worth It (April 2018)
Is Ethereum Mining Still Profitable - Is It Worth It (April 2018)
Tech With Tim
59 How to Run MAC OSX on a WINDOWS PC (Clover Boot-loader)
How to Run MAC OSX on a WINDOWS PC (Clover Boot-loader)
Tech With Tim
60 Programming Problem #1 - Alphabet Soup (Beginner/Novice)
Programming Problem #1 - Alphabet Soup (Beginner/Novice)
Tech With Tim

This video teaches software engineers the essential tools and technologies needed to succeed in their field, including version control, collaboration, and debugging. By learning these tools, engineers can improve their productivity and efficiency.

Key Takeaways
  1. Install Git and GitHub on your computer
  2. Learn basic Linux commands for navigating a file system
  3. Set up an IDE with intellisense for efficient coding
  4. Use a debugger to debug complex programs
  5. Understand the difference between GET and POST requests
💡 Using an IDE with intellisense can save a significant amount of time when coding, and understanding networking basics is crucial for software engineering.

Related Reads

Chapters (8)

| Introduction
1:03 | Prodeus
2:43 | Git & Github
4:45 | Linux Commands
6:50 | Debugging
8:14 | IDE's & IDE Features
9:40 | Basic Networking
10:45 | Conclusion
Up next
The AI Bubble… We Need to Talk | The AI Bubble Is About to Burst
Vskills Certification
Watch →