If you're thinking of learning Python or if you started learning it recently, you might be wondering what can I use python for exactly? Well, that's actually a tricky question to answer because there are so many applications of Python, but over time I've seen that there are three main popular applications for Python which are; web development, data science including machine learning, data analysis and data visualization and scripting.
First of all, Web frameworks like Django and Flask which are based on Python have recently become very popular for web development. These web frameworks basically help you create server-side code. That's of course the code that runs on your server.
But wait, you might say why do I need a web framework in the first place? Well, that's because using a web framework makes it easier to build a common back end logic, so this includes things like mapping different URLs to different chunks of Python code dealing with databases and generating HTML files users see on their browsers and which Python web frameworks should you use?
If you're just getting started, well, Django and flask are two of the most popular Python web frameworks, so I'd recommend using either one. If you're just getting started now, Flask is a smaller framework and it has fewer components built into the framework itself and that actually makes Flask a little bit simpler to learn than Django and a little bit more flexible.
On the other hand, Django has more components built into the framework itself. For example, it has a very specific way to deal with databases, but with Flask you need to choose what kind of database you want to use and how you want to interact with that database exactly? So I think Flask is a better choice if you want more control over what your code is going to look like exactly and Django, it's probably a better choice if you are just more focused on building a straightforward application like a news site or blog. Let's go to the next topic, Machine learning.
Let's first quickly review what machine learning is and explain what is machine learning. I think the best way to do that would be to give you a simple example. So let's say you want to develop a program that recognizes a picture. So for example, given picture of dog, you want your program to recognize that it's a dog, and given this other picture, you want your program to recognize that it's a table.
Given this problem, you might say, well, maybe we can just write some code to do that. So for example, if there are a lot of light brown pixels in the picture. Then maybe we can say that it's a dog, and if there are a lot of know straight edges. Let's say you figure out a way to detect edges in a picture and if there are a lot of straight edges in a picture, then it's a table instead of a dog but this kind of approach gets tricky pretty quickly, and you know the reason is. For example, if what if there's a white dog in the picture with no brown hair? Or what if there is a table in the picture, but it only shows the round parts of the table? And that's where machine learning comes in. Machine learning typically implements an algorithm that automatically detects a pattern in the given input.
So in this example you can give, say, 1000 pictures of a dog and 1000 pictures of a table to a machine learning algorithm and say you know these are the pictures of a dog and these are pictures of a table and it will learn the difference between the two. So when you give it a new picture of either a dog or a table. You will be able to recognize which one it is now. You can use the same idea to apply machine learning to things like recommendation systems. YouTube, Amazon and Netflix, and face recognition and voice recognition among other applications. Popular machine learning algorithms you might have heard about include neural networks, deep learning, support vector machines, and random forests.
You can actually use any of these algorithms to solve the picture of a billing problem. I explained earlier. Now there are a few popular machine learning libraries and frameworks for Python two of the most popular ones are called Scikit Learn and TensorFlow Scikit learn comes with some of the most popular machine learning algorithms built in. You know, I mentioned some of them earlier and tensor flow is more of a low level library that allows you to build custom machine learning algorithms. So if you're just getting started with a machine learning project.
I recommend that you first start with Scikit learn and then if you start running into, you know efficiency issues, then I'd consider looking into tensor flow and how should you go about learning machine learning.
I think learning the fundamentals of statistics will be really helpful as well. For that, I'd recommend websites like Khan Academy and Coursera. Let's now go to the next topic, which is scripting.
Well. First of all, what is scripting? Scripting usually refers to writing small programs that are designed to automate simple tasks. Python is also a good language for this kind of task and Python is 34. This kind of task, mainly because it has relatively simple syntax and it's easy to learn but it's also quick to you know, write something with it and test it. So these are the three main popular applications of Python. But you might say what about game development? Well, you could use this library called Pygame to develop games, but it's not the most popular gaming engine you could use it to build a hobby project, or you know a personal project, but I personally wouldn't choose it. If you're serious about game development.
If you're serious about game development, I'd rather you know, pick something like unity with C sharp, which is one of the most popular game development engines out there and what about desktop applications? You could make one using Python.