The Real Python Developer Roadmap 💻🐍 | How to become a Python Developer in 2021

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello everyone and welcome to the Python developer roadmap the real Python developer roadmap now I want you to meet my friend Sammy the seahorse here yes Sammy the seahorse has been specializing and figuring out what the roadmap for a Python developer is so Thank You Sammy now whether it's machine learning data science data analytics data processing web development test automation web scraping Python is everywhere and you're probably watching this video because you know that Python is in demand it's one of the most popular programming languages in the world and it offers so many options for you and your career but I wanted to create this roadmap because a lot of people find Python overwhelming they don't know where to start what do you need to learn how is everything connected so this diagram is meant for you to use as an outline of what you should learn and some of the career options that you have so in this map we'll go over some foundations we're gonna talk about Python - Python 3 we're gonna talk about editors and IDs about see ICD some popular Python libraries some computer science topics that you should definitely know and then the fun part at the end we're gonna talk about all the career options that we can have with Python including exciting things like machine learning and web development now before we get started you might be asking yourself who are you and why should I listen to you well that's a very valid point my name is Andre this is my face and this is my website I spent many years as a software engineer and also for the past two years I've been teaching people how to code and get hired in the industry whether you're a computer science graduate or just completely self-taught I myself am self-taught so I have a pretty good understanding of what it's like starting from the very beginning starting from zero and getting to a point where you actually are hired for your skills now I also run a monthly newsletter called the Python monthly and in it every month I recap what happens in the industry and all the nice resources and articles that are important for you to eat so I have to stay on top of the industry and know what's going on so I created this roadmap using my past experience and keeping up with the Python world so that in the current year you have an idea of what's out there what's new and what you should learn so enough chatter I think we should get started now the very first question you're probably asking yourself is why is Sammy the seahorse a seahorse and not a snake I mean Python is a Python wouldn't that make more sense well again you're focusing on the wrong thing so let's focus on Python here Sammy the seahorse just sounds nicer all right so python is a general-purpose language what does that mean it just means that with Python you can do a lot of things essentially programming is about writing instructions for a computer to follow so that those instructions can be done a lot faster than what a human can do because computers are really fast at some certain tasks maybe they're not as creative as us but they can do repetitive tasks really really fast like calculations now when it comes to programming languages there's a ton of them if you google programming languages you'll be overwhelmed by how many choices you have so why is Python so popular probably Python and JavaScript are two of the most popular languages in the world javascript is popular because of the web on the web you use JavaScript but what about Python well Python is really popular not because it's the fastest language but because of the ease of use you see when you write code different programming languages offer different benefits and Python is just a really nice language to work with it's a high-level language so it helps you write code fast efficiently and because of this it's fairly easy to pick up compared to languages like C and C++ that's why you see Python developers everywhere as we'll discover we're gonna talk about the data science where all the machine learning world the web development world test automation world all these places use Python because you are able to pick it up and be efficient with it very very fast now the first topic and we want to talk about when it comes to Python is Python 2 versus Python 3 you see a programming language is constantly evolving if somebody created a programming language and didn't touch it well eventually those languages are going to die because every year we humans become better and better at understanding what a good programming language is so most programming languages are constantly being updated with new features now Python had a big change from Python 2 to Python version 3 what we call a breaking change that means in order to go from Python 2 to Python version 3 there are features that where in Python 2 that now won't work in Python 3 so they're not compatible now there's a big debate a couple years ago when this happened some people decided to stick with Python too some people said no I'm gonna move on to Python 3 because it's newer and better but eventually Python 3 won out as it should and Python 2 is well gone well not technically you see the latest version of Python 2 that was maintained was just released and it is no longer maintained that means it's not gonna get any more updates no more security patches and everybody is moving to Python 3 although you'll see code bases that still use python 2 most everybody is moving to Python 3 so just for your reference know that you should focus on Python 3 and you might encounter in your workplace Python 2 code bases that will probably need to be upgraded to Python 3 if they want to stay current all right before we get into foundations though let's talk about IDE s or editors to be a programmer you can write programs in a text file if you want to do you can write it in a Word document but that's not a good experience you don't get spell checking you don't get syntax highlighting things that make you more productive as a program so when it comes to Python there's a few popular tools first one is vim and I have to mention it because it is an old-school editor and as you can see here it makes you look like a hacker but essentially just gives you some syntax highlighting but probably the more popular wants to use with Python are what we call IDs like pycharm pycharm is an IDE which means it has all the bells and whistles that you need to write Python what does that mean well it has all the nice features like as you can see syntax highlighting so instead of a text document it highlights code so it's easier to understand it has extra features it even gives you hints as to why you should type it's like an assistant as you write code and pycharm was built specifically for that for Python developers so it has all the tools all the plugins to customize it to your own and most people use pycharm but there's other options as well there's vs code which is another popular one which you can write other languages in but again you can write Python in it as well and you can see here it looks pretty similar to pie chart I'm also a big fan of sublime text now instead of an IDE which is a full-featured tool like a pycharm editors like sublime text are super lightweight simple ways to write code which is why it's called a text editor and I personally like sublime text it's very lightweight and again just like Python there's things like IntelliJ which are actually for Java developers but you can use a Python plugin and get the full IDE experience with something like the IntelliJ as well and then finally one of the most exciting things that has happened recently is this Jupiter notebooks and when it comes to data science machine learning this is the default tool to use to write code and Jupiter notebooks look quite different than what we've had before they're interactive like a notebook you can write pretty much anything you want in here you can have visualizations and you can write your code and then have different things happening so you can interact with your code live the things like Jupiter notebook or Google collapse are these notebooks that you can use to perform a lot of data science and machine learning tasks but if you're just getting started you probably want to use something like vs code or pie chart and then if you get into those fields like data science and machine learning you can start dabbling to Jupiter notebooks alright so we know to stick with Python 3 we've learned about some of the tools that we can use now let's dive into the foundations and what we need to know as a Python developer let's talk about foundations you see any programming language to learn it requires you to understand a new language but every language has some commonalities with it for example if you learn Python then it's going to be a lot easier for you to learn a language like JavaScript or a language like PHP or Java or any other language because most programming languages have some important foundations like data types for example Python has lists has strings tuples sets boolean you have to know how to do things like control flow that is for loops while loops if-else statements you need to learn about functions about exceptions and error handling most of these things are in other programming languages but there are some specific Python things that you should understand to call yourself a Python developer for example you need to understand this idea of pythonic what does that mean pythonic is this idea that there's a certain way that Python developers do a certain task with the language when it comes to programming there's many ways that a solution can be coded but Python developers talk about this idea of pythonic as doing things in a way that most people in the Python community do it so that we all agree that this is usually a good way of doing things now this takes a bit of practice you can even Google what pythonic means but things like using list comprehensions in Python is a very pythonic way of doing things we also can do things like file IO IO stands for input/output using things like the path lab or their sis module in Python which we're gonna get into those are Python libraries and this allows us to read and write files for example we can ingest a file that's on our computer do some tasks maybe add an exclamation mark at the end of each sentence we can write a snippet of code in Python do that in just that file and then output it so that's why it's called input output and then output it and save it let's say to our desktop and you can do this with all sorts of files with image files with PDFs a very very important thing that you can do with Python but also with many other languages you need to learn about the Python package index the reason that Python is so popular is because there's a large community a lot of people know Python and when you have a large community when it comes to programming there's a big advantage what is it well we have things like pi pi org the Python package index this is where you and I can actually write our own Python code and then share it with the world let's say you wanted to build a calculator well I bet a lot of other people have wanted to build a calculator as well so I can use PI PI to find packages that others have shared so instead of me coding something from scratch I can use somebody else's code and use it in my project for example if I wanted to create a project that tells me jokes well I wonder if there's a joke teller package let's find out yep there is again large community means that you can find packages for all sorts of things so now I have packages which are other people's code that I can use in my project I don't have to code it from scratch I just have to read the documentation and understand how I can implement it into my code and this goes to our next topic this idea of modules and packages instead of writing Python in just one file so one Python file to write your code in most of the time as our code gets bigger and bigger we want to package it up into modules those are different files to organize our code better as you start working with teams you're not the only one on the project you need ways to organize your code and you'll see that as being a big challenge in a lot of companies that you work for most of the time there's thousands if not millions of lines of code and you can organize them in many different ways one of them being modules and packages are just collection of these modules that's why the Python package index is called that because it gives you packages which are essentially Python files for you to use next if you want to understand this idea of Python interpreters you see when you actually download Python what you're downloading is an interpreter what does that mean well if I wrote Python code on my computer right now my computer is gonna say Andre what the heck are you doing what are you typing I don't know this you're speaking gibberish to me it's harder for a computer to understand Python you need something called an interpreter a program that understands Python and knows to talk to the computer and say hey computer this programmer wrote something in Python and what they wanted to do is to open a file now there's actually many Python interpreters as you can see here at there see Python which is actually implemented in the C language there's pi PI which is implemented in Python jaikon which is implemented in Java all of these are interpreters and when you download something like python from the original python.org you're installing the C Python which is an interpreter that is written in C understanding this is really really important that Python isn't actually a thing it's more of a specification that these interpreters use next we have the Python standard library remember how I said we can use other people's packages in the Python package index well the really common ones that are really useful are officially part of the Python standard library and the Python standard library is exactly that you can see here I'm on the official Python documentation the latest version of Python is this and here I have all the libraries that are already pre written for me that I can use and I can import into my code for example file and directory access remember how I said we can use path Lib module to do file i/o well this is including Python when you install python all of these come pre-built for us to do a ton of fun things so it's good to get familiar with some of those popular standard library tools we then need to learn about testing things like unit tests are actually part of the Python library let's see where's unit test yeah unit test there you go it's a unit testing framework now what does that mean well with most programming languages you want to test your code you write programs to test your programs I know it sounds confusing but it's good software practice and when you start working in companies you'll realize that you can't just write code if you're building a calculator you need code to test what you just wrote so if somebody else comes in to the project and they change something and it breaks a feature that test is going to fail and say oops nope you can't do that we can't release this to production because well you just broke a test a very important foundation then you want to learn about git and github this is github and github is kind of like Facebook for programmers it allows you to post your own code to share code to check out other people's code but it's also a great way for you to save your code somewhere not just on your computer and make changes to it where it shines and this is when you start working with other people so that other people can start working from one area on a project so that instead of me working on Robo friends I can have my friends working on Robo friends with me and that's how companies work on a project with multiple developers it's called version control and it's a way for us to control what version of the software we should release to production and make sure that we are all working towards one thing another interesting feature of Python is this idea of dunder methods or done ders as I like to call them some people call them magic methods this is something that not a lot of programming languages have it's actually the reason that I think python has become so popular that is with done ders it allows us to have a standard way to implement new features in Python so learning about these magic methods is really really important and again a very unique chair of Python we want to start learning about advanced features like iterators generators decorators they all sound really really cool but they're quite different then you want to learn about things like o P versus FP what does that mean well once our program started to get bigger and bigger we want to organize our code we can't just write massive files with step one step two all the way through step a hundred of a tasks that a computer does you want to start organizing your code into ways that make our programs more efficient more readable and more maintainable and things like object-oriented programming which is o P or functional programming are what we call paradigms or ways to write code so that we can stay more organized so you want to learn about object-oriented programming that's where we start using things like classes about inheritance polymorphism encapsulation abstraction Python has something called method overloading or method resolution order as well and then functional programming can also be done with Python using things like functions and assigning them to variables or passing them into functions using pure functions and understanding the pros and cons of each and when to use what is really really important for you to become an advanced Python developer and then you also have to understand this idea of perhaps that we have in Python and peps well perhaps if we go into PAP index here stands for Python enhancement proposal again Python is constantly evolving constantly improving so as a community we decide hey what should we do to enhance Python so there's many peps you can see here there's pepsi row but if we keep going there's pep one all the way through well quite a lot and each one recommends how Python should be improved and some of them are more important than others for example pep 8 is the proposal for the style guide so the way we write Python for example is described in this pep 8 and this is one of the most popular peps because this is now used in things like vs code or PyCharm to make sure that our editors style our code properly so that we all have a standard way to write Python trust me on this without something like this everybody would just be writing their own version of Python their own way of writing Python and it would be a total mess all right the last part of the foundation is this idea of virtual environments why do we need them sounds really cool virtual environments well here's the thing when you write Python you write it on your computer and everything works great but what happens when your program is now sent to a different computer will that still work not always and this is actually a big problem in the software world with virtual environments we can do these three things one is a virtualization that is you make your Python environment specific to a project so that means if I have three Python projects on my computer I can have three different versions of Python maybe I have one project running with Python two one project running with Python three I can do that through virtualization we also want to make sure like I said that projects are reproducible that is if I'm using different packages or modules in my project with different versions for example if I'm using this funny jokes module it's version 0.1 but what happens if they upgrade and there's now a new version that doesn't work with 0.1 so virtual environments allow us to make sure to define hey this is the packages that my project needs and these are the versions that it needs and then finally the last thing is that it allows us to have self-contained deployable code the easier it is for us to pack up our code from our computer and then put it on a different computer the better it makes our lives so how can we do this with Python well the most popular way of doing it is with a library called virtual and if I go to pipe I type in virtual and there it is virtual lamp now with the new Python 3.3 version we now have a built-in way to have virtual environments using VNV which is actually a subset of bringing in the virtual environment library into the Python standard library we then have things like hip and hip and thigh gives us extra powers where we can bundle together Python and our packages kind of like we do maybe if you're a JavaScript developer and we have NPM or yarn pip anvil allows us to define what our project needs and all the versions that our project need now in these previous ones virtual amp and V and V we usually have something called requirements text that allows us to define what requirements our project has with pip M you don't even need a requirements file anymore we have things like poetry and poetry is again a way for us to control the environment but is geared more towards people that are creating packages on pi pi so if you ever want to create a package on pi pi then you might want to use poetry and then we have something like Conda that is used a lot when it comes to machine learning and data science to create individual environments and then finally darker darker allows us to do something called containers and creating a specific container that our environments can live in and we can deploy this container to anywhere in the world on any machine lots of ways but probably the most popular ones are these two right here and maybe pit path whoo that was a lot but once you get the foundamental x' once you build that Python foundation we can do a lot of things with Python now now before we get into career options let's talk about some of the popular libraries and computer science topics that we need to learn now that you have the foundation of Python you also need to know some of the popular libraries that exist you don't need to memorize them you don't need to spend months and years mastering them just know that they exist there's obviously a lot more but you can use many libraries based on in your situation and we're going to talk about some of them also when we talk about career options so these are by no means all of them but these are some of the important ones the first one is called six and six is again a package that we can use and six allows us to work both with Python 2 and Python 3 again Python 2 and Python 3 is a big topic when it comes to Python and sometimes you need to work with a project that uses Python 2 and also with a project that uses Python 3 so six provides utilities to wrap the differences between these programs and still work with them simultaneously and the name six comes from well three times two equals six we then have things like TK enter an TK enter actually comes as part of Python when you install Python it comes with TK enter as well and what it does is allow us to write what we call GUI frameworks gooeys or graphical user interfaces for example you want to build a desktop app while TK enter provides buttons and windows that you can use that are cross-platform that is you can build apps for Windows for Mac for Linux so these visual elements are rendered or displayed on the screen using each of the operating system so TK enter lets you build visual interfaces now TK enter does look a little bit outdated in terms of the visuals so there's also different options like pie cutie or even kitty that have more of a modern look and again allow you to build graphical user interfaces we then have things like requests requests are really important when it comes to web development it allows you to use what we call the HTTP protocol on the to make requests and this is probably one of the most popular libraries that you're going to use if you're getting into Python even if you don't want to become a web developer you can use requests to get data from api's and many other sources then we have things like pillow and pillow allows you to work with all types of file formats for example if you want to grab a couple of images from a folder and turn them into black and white well you can do that using pillow then we have a really exciting library called async IO and async IO just recently became part of the standard library you can see here 43.8 it is part of the standard library and it allows us to write something called concurrent code and it gives us this ability to write async await into our programs just like this now without getting too deep into it this actually unlocks a lot of powers in Python especially when it comes to web development because asynchronous code allows us to have multiple users use our program at the same time and work much more efficiently again it's an advanced topic but definitely keep an eye out on this library again this idea of concurrent code also called co-routines is an important one when it comes to performance with python finally this is a fun one with Python you can do a lot of things and one of the things you can do is yes even build games so something like Pi game actually allows you to use Python and build real-life games you want to build a snake game Tetris well PI game can help you do that now there are all sorts of libraries that you can use but this really depends on your individual need and what you want to do with Python but the topics that are really important that span all across programming languages not just Python but are super super important are these computer science topics they're so important that companies like Google Netflix Amazon include them as part of their interview because although at the beginning you might not think they're important when you're a big company working with a lot of data a lot of programs a lot of inputs and outputs your employees need to know about these in order to write efficient code so some of this topics are like data structures what are data structures these are ways that we can organize data in python for example we can use lists in python which is a data structure to organize things like numbers things like strings into a list that is ordered things like objects or hash tables are data structures and there's many ways that we can organize these data using data structures and each data structure has pros and cons and you want to use a data structure for its specific use so that it's optimized for that specific use this is where you get into things like Big O notation and time complexity space complexity which tells us as inputs grow how much time does your program take how much space or memory does your program take if your Google and you have millions billions trillions of inputs a good use of data structure versus a bad use of data structure can really cost you a lot then we have things like algorithms and these are tools that really smart people have built over time to solve common problems like sorting like tree traversal and these are common well-known tools to use across different problems for example something like a Dijkstra's algorithm might be used on Google Maps to find the shortest path you don't need to memorize all these algorithms but you need to know that they exist and maybe some of the more important ones so that you know when you have a problem that is common you can use an algorithm that has been optimized for a solution now quick note about computer science topics I recommend that you learn them about six to one year into your career as a Python developer because they'll start to make a lot more sense once you have a bit of context once you have a bit of experience but trust me on these these are important and from 10 20 years from now these are going to be important maybe the libraries will change but the fundamentals the computer science fundamentals don't so don't overlook these if you want to become a senior developer a master of programming well then you definitely need to know these now one more thing before we get into career options what we're all excited about and this is called CI CD or continuous integration continuous delivery or deployment now when you start working for companies you have multiple developers that you work with multiple programmers and what happens is you make changes to the code daily Facebook makes changes to their Facebook comm every single day how do you make sure that somebody one person in the company doesn't break facebook.com and now you can to access Facebook for an hour and that means a lot of money for Facebook well you use something like CI CD these are systems in place to put the code that you just wrote on your computer to production to a server somewhere in the world that actually has facebook deployed and CI CD allows us to have multiple people working on a project and have a pipeline or a system in place so that when we add a new feature or fix a new bug those things get tested in all sorts of environments gets reviewed by other developers code gets lint it gets pretty fight all these things to make sure that we go from development all the way to production with hopefully no issues and there's tools that allow us to do this things like Travis CI gitlab CI circle CI are popular tools that you can use with let's say something like github to make sure that when we make to the code they run all these tasks for us to test the code we can even use something like Jenkins and Jenkins is a very popular one with Python programmers where you can actually run your own server and run all these tasks that you write in Python to test your code to bring your code from your computer all the way into production don't spend too much time on these most of the time when you start working at a company these things are set up but it's important that it's a big part of companies and you will encounter it and you'll have to work with these pipelines if you want your code delivered in production alright alright everybody the most exciting part Sammy the seaweed wait not seaweed Sammy the seahorse sorry Sammy didn't mean to offend you by calling you a seaweed not that there's anything wrong with seaweeds all right I'm getting off track here let's focus on career options and this is where the exciting things happen with Python you can do a lot of things and maybe if you're learning Python you don't know what you want to get into the important thing is you start with the fundamentals and then try your hand at each one of this and see if one of them gets you excited because that's a good way to go about things if something excites you that means you'll keep learning that means you'll keep practicing it and that's how you get good at things so these are the career options that we have with Python now obviously there's many other things that you can probably do with Python but these are the main ones to keep an eye on to get you started because the goal this role map is to get you hired as soon as possible because as soon as you start working you start working with others you start working on actual real-life code that's when you really gain experience you can watch all the YouTube videos in the world take all the online courses in the world but nothing will teach you as well as real-life work environment so let's get started with career options let's talk about career options and the first one we're gonna start off with is web development it's one of the most popular it's exciting so if you want to get into web development what sort of things should you learn when it comes to Python and web development it's all about what we call the backend or working with the servers and as a matter of fact you can use any programming language on a server with Python though there's two libraries and frameworks that are dominant you can either work with Django or with flask Django is what we call a high-level web framework that is it comes with all the tools that you need to build professional web apps it follows something called the MVC pattern which is the model-view-controller pattern and you can work with databases you can create restful api x' it has all the tools you need to build web apps now django is a big framework so you probably will spend maybe a month to understand some of the main functionalities of django on the other hand flask which is equally as popular I actually prefer flask to Django is more lightweight it's what we call a micro framework and it's very similar to something like Express when you work with nodejs it's very simple to learn and it doesn't have as many features as Django but you can combine and add different libraries with Flast to make it just as powerful and flask is awesome once again to build something called REST API now the other big part of web development that you really need to learn and this is a fairly new development is this idea between a SGI versus WSGI now originally WSGI was the dominant player it stands for web server gateway interface and it's essentially the standard of how Python web applications are deployed it's like everybody agree that hey just so we don't have all these code bases working there let's just all agree that using the WSGI this is how we're going to deploy Python web apps so we standardized the process of these various frameworks like Django and flask and all the others to follow this format now this format was great and all but it didn't allow us to build something called asynchronous service you see in the JavaScript world which is big and web development things like nodejs allowed us to do asynchronous requests which meant that we can have concurrent or users at the same time sending requests to a server and work really really fast and with things like HTTP - and WebSockets being used on the web it became more important that we have these asynchronous tasks so instead of having Jango and flask fall out of fashion to keep up with the times and the web do you now have a SGI which allows us to do these asynchronous tasks for example django just added asynchronous support you can see it's new in django 3 and it's still an experimental feature by the time you watch this video it might become standard and you can see over here that we can just simply enable it by saying django allow async unsafe it's named unsafe because it's still new and again remember that async IO library that I talked about well this is similar to that it allows us to use async await in asynchronous tasks with web development for us to work and build a more efficient web server this is still early stages but keep an eye on this if you're getting into web development the future of the web development in my opinion is all about asynchronous requests oh and by the way with flask again you can do the same thing using something like salary which is a distributed task queue it sounds more complicated than it is I promise all right so that's web development the other that we can do it's something called web parsing scraping crawling we're still on the web but on the web there's many ways for us to gather information one is we can actually own the data we can have data and databases and access them and maybe we are Facebook and we're using Django well I can have my database with all the users and Django can speak with the database retrieve that information and then send it to the browser so that I can see my user information on Facebook another way is we can have websites that offer what we call api's ways that computers give access to information but then there are times where computers maybe don't access or don't give us access maybe we don't own the data that's when we start doing things like web scraping that is me going on a website and scraping the data off that website now there are some issues with legalities here you'd have to usually check something called robots.txt to see what you are and not allowed to scrape it's a bit of a gray area but it's also a very fun exciting place at the end of the day companies like Google do exactly that Google crawls the internet to figure out hey if Andre searches for fish soup what sort of websites should we sent him in the only way for Google to find out what web sites they should display for me is to crawl all these websites figure out what each website is about and pick the one that's best suited for fish soup speaking of soup one of the most popular libraries when it comes to web scraping is called beautiful soup and beautiful soup even though it looks kind of vault here and this is their documentation site allows you to do web scraping and this is probably the most popular tool to use but if you want to use something like a framework that is a full-featured tool to do scraping there's something like scrappy and again you can use this framework that gives you all the tools necessary to do web scraping all right what about this thing called test automation let's have a look remember the time we in the fundamentals where I said testing your code is important if you are paying attention testing right here well test automation is similar to that you see companies need people to test code to make sure that if an app gets an update that there's some sort of tests in place to make sure that nothing broke as code becomes bigger and bigger and bigger a place that you change on a file might affect another place in a different file so test automation is all about that and it's called automation because we can use software like Python to automatically test things to test our code our apps so we can write test scripts or using automation testing tools so that our machines test our code for us it sounds very meta doesn't it this is often used when there's repetitive tasks like testing to see if an app logs a user in or out if you you're going to test that 50 times a day having a human do it well can become not only boring but also very time-consuming so when it comes to testing I talked about unit test which is part of the Python standard library you also have something that's probably even more popular called PI test which you can get on the Python package index that gives you a lot more options for testing and then we have more specific frameworks and tools that we can use for example when it comes to the web selenium is extremely popular with selenium you can do something called browser automation remember that thing I said about testing a user if they can log in or log out of a web app using selenium we can spin up a browser and actually write code that essentially mimics a user to test that certain functionalities work and again you can use Python with selenium to write Python scripts that run certain tasks on a browser for example avoiding your post a thousand times you can do that with selenium and then you can even go higher and use the robot framework and the robot framework is an automation framework it with all the tools necessary for you to do automation testing and if you're an automation engineer or a testing engineer you are definitely going to use the robot framework finally we have well now finally because we have these two which are going to be really exciting but we also have something called scripting now scripting is more of a general term scripts are usually considered small chunks of code small little tasks that we want a computer to perform and we usually use languages that are easy to write like Python instead of something that's really low-level like C to write scripts and when it comes to scripting it's all about telling a computer what to do and doing tasks that perhaps get automated so if you're a Python developer you can become a system administrator you can work in DevOps and pretty much anything the word software engineer is exactly that you're engineering software you're able to write code in a way that machines work to be more productive you are able to help a company be more productive maybe increase revenue maybe decrease expenses by writing software by using a scripting language like Python now system administrator do a lot of automation and they usually build machines that a company uses for daily management so they work with a lot of configurations with the computer system for the organization and business so they use tools like ansible for example which are configuration management tools and Python to make sure that these computers are running smoothly for a company then we have DevOps and DevOps is kind of like an in-between a system administrator and a developer that builds applications and it's more of an idea than an actual role it's a bit of a buzzword but DevOps helps get your code that you write all the way to deployment to production they help with the infrastructures and they often work with cloud providers like ADA yes that is by Amazon or Microsoft Azure or GCP by Google DevOps is all about making sure that as a company the code that the programmers write are deployed are put to the user without any errors without any issues despite this code living in computers all over the world in servers in clusters and using tools that are modern like kubernetes to make sure that they're able to manage all these computers so this idea of DevOps is all about hey let's make sure that all the programmers working together can achieve a goal smoothly and a sysadmin or a system administrator is more about hey let's make sure that these computers that our companies are running are working properly now you don't really need to worry about these too much but it's good to know that when it comes to Python you can definitely enter these roles as well you can do anything all right all right everybody the last final two pieces and they're super exciting because well they're very popular and trendy right now we have data science or data analysis and also machine learning we'll get to machine learning at the end let's talk about this one first so the popularity of Python in the last couple of years can probably be attributed to these two fields Python is pretty much the standard when it comes to these fields you need to know Python now data science or data analysis is all about learning from data as companies have more and more data more information about the users the people that can understand this data that is so overwhelmingly large that no human can just sit there and read through we need people like data scientists and data analysts to make sure that they can give us information about the data and this data can be used to make business decisions and that's all it is making meaning out of data is all a data scientist does now when it comes to being a data scientist or a data analyst these are the most important libraries to use one is numpy and numpy right here although it doesn't look exciting is essentially a way for us to work with a race it's an array processing package and specifically for multi-dimensional arrays or matrices why do we care about working with arrays why did I even put this up here numpy is probably one of the most important libraries and multi-dimensional arrays are also sometimes called tensors or ways to represent multi-dimensional arrays are with tensors in this tensor flow that's where it comes from numpy allows us to work with data especially when it comes to machine learning but also with things like images in a really fast way it's actually implemented in a language that is not Python but works with Python so that it's really performant we have things like pandas again a super super popular tool to work with data so data analysts use pandas and use something called data frames in order to have all this data and understand what it does so it's a manipulation tool it allows you to change data to look at data to modify data using Python almost as if you're working with Excel there's also scifi which is for scientific computing then there's bouquet Seaborn and matplotlib and these are all visualization libraries so I can create charts and really interesting visual things with these libraries to show data that we've analyzed to let's say management and then there's a field of data engineering and these are the people that work with what we call big data that is companies like Netflix like Amazon that have so much data that cannot be stored just on one computer and that's when we start learning about tools like Hadoop and MapReduce Hadoop is a way for us to store really large amounts of data and MapReduce are what we call ETLs or extract transform load we use MapReduce to transform the data in some way and load it in a different part of company now I won't get into all the details here because there is a lot and as you can see Apache which is an open-source foundation is involved in a lot of these things like Kafka are becoming really popular they're a distributed streaming platform we have things like Apache spark which is actually most of these work with Java but they have their own version of Python that you can work with for example Apache spark which lets you work with data and is a faster version of using MapReduce has something like PI spark which allows you instead of Java to work with Python you have things like Apache hive which lets you do SQL statements on your data that let's say it lives in Hadoop but again you can use the PI pi package and use PI hi so as a data engineer or although you can use things like Java and Scala you can also use Python to use all these tools and all these tools what they do is they collect from all these computers that companies like Amazon own around the world they let you extract that information you can transform it using something like Apache spark or MapReduce and then you're able to analyze it this is a big one it's a fast-changing feel with a lot of exciting new tools that is really hard to keep track of and really you need a few years of experience before you even get into this field so again that's why I put it here usually you want to start out as a data analyst or maybe a data scientist and then maybe get into data engineer but these data engineers usually write configuration files or they just write scripts using Python alright everybody favorite topic machine learning because it sounds so cool doesn't let's talk about machine learning and when it comes to machine learning again just like data science you need to know Python because all the popular tools right here use Python now unlike a data science person which usually looks at data tries to understand data extracts data from some way to create meaning out of data a machine learning engineer usually uses data to create what we call bottles models are essentially functions that we create using this technique called machine learning and using these tools that allow us to do something that perhaps a human can't do perhaps looking at user information and deciding based on that user information that there's so much of that we should do a sale in April because that will increase revenue I don't know just making stuff up but and that's what machine learning is using data to create these models that provide business value and this is a new field it's a very complex field but these libraries here allow us to do machine learning with Python in a very fast way as a matter of fact the hardest part of machine learning is actually having that data actually accumulating that data and cleaning that data instead of actually creating those models because most of these libraries help you create models really fast well kind of now the first one I'll talk about is pi torch PI torches right here it's what we call a deep learning framework and it's a direct competitor of tensorflow as a matter of fact pi torch was developed out of the Facebook AI team and tensorflow was built out of the Google AIT and both of these libraries are probably the two of the most popular ones when it comes to deep learning in tensorflow two just came out which has made it easy to use like pi coach PI torches used a lot right now in academia and in research and tensorflow is probably used a lot more right now in production with developers and machine learning engineers but both of these are equally important and they're both kind of competing with one another now PI torch makes things really really easy to do and then care us that is actually what we call a high level tool or library that you can use on top of tensorflow to make things easy for you just like pi torch is easy to use so tensorflow 2 is a little bit hard to get but you can use Kerris on top of it or you can use pi torch which again you can do similar things just like tensorflow but using a different sort of api but what about this on scikit-learn well before we get into 10th floor Carris and pi torch and doing something called deep learning you can actually start off building your own machine learning models in just a few lines of code using this very popular library scikit-learn and scikit-learn is all about machine learning and python and you can see here it's built on numpy Syfy and matplotlib which we've used before and scikit-learn actually has pre-built functions for you to run to actually do things like classification regression and clustering which are all used in machine learning so the paths you'd usually take is to start off by learning a bit about numpy pandas Syfy and matplotlib and once you have an understanding of that you can actually start using cycling to perhaps use your data that you've extracted with pandas and you scikit-learn to create a model maybe a machine learning model that classifies dog breeds it's not as hard as you think and a lot of the work actually involves just reading the documentation and going to examples api's and just understanding what these libraries give you you see at the end of the day being a programmer is all about solving problems it's not about memorization and understanding every single syntax every single trick to python whether you are learning Python or any programming language your job is to use computers to use machines to solve problems that would take a human a long time that's what machine learning is that's what scripting test automation web scraping and web development is we're able to solve problems to create business value to create personal projects using code using a way for us to communicate with the machine and the reason Python is so popular is because of this big landscape because it offers so many career options because it has so many tools libraries and frameworks for us to use the possibilities are endless and hopefully you're not too overwhelmed the good news is that you just have to pick one of these you just have to learn the foundations get a job start learning and then find out from there what interests you by the way all of these can be learned online for free you don't need to go to college for it if however you want a little help along the way this is what I actually teach among web development I also teach computer science topics like data structures and algorithms I also teach Python from scratch and also machine learning and data science so that you have someone along the way that kind of shows you the ropes but by no means do you need to take those courses you can just do this yourself just like I learned everything myself it's all about learning the right things learning how to solve problems and most of all having fun along the way I'll see you in the next one and thanks for watching bye
Info
Channel: Zero To Mastery - By: Andrei Neagoie
Views: 88,112
Rating: 4.9787736 out of 5
Keywords: python developer, how to become a python developer, python developer skills, python developer skills needed, python career path, python developer skill set, python developer skillset, python career oppurtunities, python jobs, python career, python for beginners, python, how to get a job as a python developer, python career roadmap, how to become a python programmer, how to become python developer, python developer jobs, python 2021, python developer skills 2021
Id: d5BzuLlII_Y
Channel Id: undefined
Length: 60min 46sec (3646 seconds)
Published: Thu Jun 04 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.