 Now we have a wonderful talk for you by Sean Ray about his lesson on learning for beginners, Sean as an India and believe he's also one of the youngest speakers in Python India too. So I'll not take any more of your time I'm heading and in the stage over to Sean. Sean good luck for your talk and everyone happy learning. Thank you, Nick Hill. So, to all of you. Hello and welcome to the last talk of the day here at Python India 2021. Congratulations on making it here. My talk is titled is Python worth learning for beginners. I'm Sean Ray, I'm a ninth grader from high school in the United States. I am a Python programmer who I've been using Python for about four years now, and it's really been an amazing journey for me. And I really just want to give back and to all of you who are on the ledge of deciding whether they want to pursue Python or not kind of just help you out and help you make that decision. So let me go over the outline. Firstly, I'll introduce the big question and really introduce Python. Then I'll talk about my motivation or what motivated me to go further in Python. I'll then talk about why I was my first choice really all the things that made it so appealing. I'll then talk about the features and exclusive features of Python. I'll then talk about the applications of Python or where it is used. Then I'll talk about my achievements and finally I'll summarize. So let me introduce Python. So the big question that I'm trying to answer is that estimates have concluded that there are approximately 25,000 total programming languages. Of all these, why would a beginner choose Python? Now this entire presentation is designed to answer this question, but let me first give you a short answer. Firstly, Python was created for programmers, not programs. This is really the biggest thing about Python. It's really the core value of Python. It was designed not just to make it very easy for programs to run, but also with the comfort and usability for the programmer in mind. The second thing is that in comparison to top computing programming languages, Python is a language which has simpler syntax, lesser memory consumption, more readability, and more object orientedness. These four things are very important features of Python. Simpler syntax means that the code is simpler, literally. It's more concise and it's just more simple in general. It also has lesser memory consumption, meaning that it has a lot of efficiency techniques that allow for it to use less memory than even if it's the same task. Of course, more readability, which means if you just look at Python code, you'll be able to understand what it's doing a lot more than if it were some more complicated programming language. And more object orientedness. Object orientedness, in case you don't know, is essentially just modularity. It means that a system is able to be molded into modules and be used as such. And the third thing is that Python, unlike many competing languages, can be applied to assorted activities. Now, before I move forward, I want to go ahead and give you this quote from Dan Callahan at Python USA 2018. Quote, there's an old saying, Python is the second best language for everything, unquote. And in my experience, this could not be more true. I mean, really any task you find, I mean, I've done so many different things with Python and I have to say it is rarely the best language to accomplish a task, but no matter what, it's always going to be somewhere up there. And that's an amazing accomplishment. Being good at one thing is great. But to be an all-rounder and be good at pretty much everything is an even bigger accomplishment. Let's talk about my motivation. The first thing is that I recognize the potential of computer science. Computer science today is one of the world's biggest industries. And really, there's not an industry that's more potentially computer science... I mean, well, there are, but as in computer science is one of the most potential industries. And to enter it is definitely something that a lot of people would probably be interested in. And I was definitely one of those people. Continuing, the recently begun global digital millennium runs on technology. The digital millennium is a name given to the era starting in the year 2000. And really it's really the word given to the absolute boom in technology that we've seen since 2000. And really, I mean, we've seen technology just seep into every sector of life for people. And of course, that means that with more technology, there's a greater need for programmers. The next thing is that many top companies want Python developers, including Fang companies, Facebook, Apple, Amazon, Netflix and Google. Python being such a language that's, you know, demanded in such a massive quantity means that companies too are really interested in getting Python developers because of really how Python has so many uses within really any context. And if you are looking for a job, Python is a great place to start. Further, if I want to develop my computer, my career in computer science, the time to begin is now. Really, that applies to everything in life. But including program, of course, programming as well, the time to begin is always now with increasing competition and more people that are entering the sector. The faster you begin, the faster you learn Python, the better off you are. Lastly, I must know programming for present education, future education and to get opportunities. As I said earlier, I'm in ninth grade, therefore I'm in high school. And in present education, I do have to take some computer science classes. I also will in the future. And even after I graduate to get many opportunities, I will have to know computer science. And of course, Python is a great place to start even then. So let me now talk about why Python was my first choice. The biggest thing for me is open source. It's really any programming language that's open source has a bit of an advantage, because firstly, that means that it has to be free. Second, it means that anybody in the world can download that source code and find bugs and errors and fix them and publish them back to be used in the next Python version, which is a big benefit that some programming languages that are not open source may not have. And of course, along with that, that means that the language is cross-platform compatible. The next thing is that it's elegant. When you look at Python code, it's not a disaster of words and phrases and weird types of random, you know, jargon. Instead, it's quite clean. And even someone who's never seen Python before could look at it and be, you know, could clearly see the structure in it. Next thing is that it's accessible. Python, being an offline programming language, which can be downloaded to the system and be used anywhere by anyone, is easily one of the most accessible programming languages in the world. The next thing is Python is simple. Of course, it's great to be elegant and structured and all of that, but of course, Python is also a very simple programming language in that, you know, if you look at the code, it's, you know, everything is just small, concise, and to the point. The next thing is that it's easy to use. Of course, Python being pretty much used everywhere means that there's also a lot of different ways you could use it. You could use it in the command line. You could use it in a bunch of different IDs. You could even, I've seen people just write it in a notepad or something like that and then run it. I mean, Python is one of the cleanest languages for being able to be used. And then, of course, it's easy to learn. This is a big one for a beginner because any programming language that they want to pursue as their first would be easy to learn. And Python in particular, I mean, I've seen people learn the fundamentals of Python in a matter of days, so great language there as well. The next thing is that it's fast. Okay, I admit it. Python is not the world's fastest language. It is exceeded a little bit by Objective C and C and C Sharp and all those languages, but it is still, for what it does and how it does it, Python is still incredibly fast. And of course, it has great debugging tools. I mean, let's face it, any beginner will face errors and those errors, they want it to be as easy as possible to fix them. And Python just offers some of the greatest debugging tools out there. I mean, the errors themselves are literally just plain English and it makes it super easy to fix bugs and errors compared to some programming languages. Continuing, Python has a large and helpful community. This is very, very important for a beginner. Those great debugging tools might not be able to fix everything and when they do face errors and when they do need help on doing something, you would need a large and helpful community which can help out the beginner. And Python is really a great language for this. Being one of the most used programming languages in the world, it has a very large and very helpful community that can help you on sites like Stack Overflow. The next thing, lots of corporate support and opportunities. Again, if you do want to develop your career in computer science, Python is the way to go. I mean, Python is literally one of the most corporately demanded companies in the world. I mean, really, along with languages like Java and JavaScript and some of those, I would say that Python is perhaps the most supported programming language in the corporate world, along with, of course, some others that are also very demanded. But Python is, of course, a great language if you are looking for a career. Of course, Python also has hundreds of libraries and frameworks. Personally, I really like the Python standard library. Personally, I believe it's one of the most powerful in the world, one of the most featured ones. But along with that, you can also add hundreds, really thousands of libraries and frameworks on top of that to make it all the more powerful. The next thing is that it's versatile, reliable, efficient, and it has quick runtime. If you were to summarize Python in four words or five words, they would be these. Versatile in that it can be used in a lot of different places. It can be used in a lot of different ways. It's very flexible. It's also very reliable. You can trust that the code that you write today 50 years later will still work. It's efficient. It doesn't cut corners and all that. It does it the right way, but it also does it in a very efficient manner in that it uses less memory. It uses less memory than some competing programming languages. And it does it, of course, just generally in an efficient manner. And then, of course, quick runtime. Python is an interpreted language. And when you do run your Python code, you can trust that it will run fairly quickly, no matter how much the size. The next thing, big data, machine learning, and cloud computing. Big data is exactly what it sounds like. It's just large amounts of data. And Python is good at handling large amounts of data, which is why I slapped that there. And then machine learning. Machine learning is literally synonymous with Python. If you ask someone about Python, that would come up to their head is probably machine learning. And Python, and for good reason too, Python perhaps one of the best languages at training a model and just getting a machine learning process in action, even without using many external libraries. And then, of course, cloud computing. Python standard library has good integration with the internet and the ability to run your code somewhere else, not just your local system. And of course, the libraries and frameworks make that whole process even easier than it already is. And then, of course, Python is flexible. Python is literally one of the most agile, fast, bendable programming languages in the world. It really provides a lot of flexibility for the programmer, which is very important for a beginner, because you don't want to have to write everything a certain way in a certain place or something like that. You want to be able to really move it around and trust that it'll still work. And then, of course, the use of Python for academic purposes. We've seen academia accept Python more and more and more over the years. I mean, it skyrocketed the use. We've seen, as few as five years ago, Python was almost non-existent in academia. But at this point, it's one of the most used programming languages in terms, in for academic purposes, which is really an amazing thing to have seen just over the last couple of years. And then, of course, automation. Along the machine learning, this is another word that's almost synonymous with Python. And Python really does make it very clean and simple to automate pretty much anything. So I'd like you to look at these two images. The one on the left is from the 2020 JetBrains Developer Survey. And the one on the right is from the 2021 Stack Overflow Developer Survey. The one on the left says that 85% of people use Python as their main programming language. And of these, many of them are beginners, which means that a lot of people are just like you, starting out with Python and going a distance. And so I would definitely say that if you are starting in Python, there's going to be a lot of people just like you, which will make the process a lot easier. And of course, there's also a large and helpful community willing to help you out when needed. The one on the right, now, of course, it is 54% as used for work in personal, but the one I want you to focus on is the 26%. You can see that 26% of people use Python for educational purposes. And really, that's a very high ratio compared to what I've seen in some other programming languages. And it's really amazing to have seen that rapid growth throughout the years. Let me not talk about the features of Python. The first thing is simplified syntax. I want to reinstate this. I already said it. But really, it's very, very nice to have Python being so simple. You don't have to go over a complete headache to write some simple code. I mean, if you write it down, it's as simple as that. I mean, I say that Python is one of those languages where you don't generally have to use too many external sources at a time. I mean, even for beginners, to write code, it's much more simple than in some of the more complicated programming languages. And because of that simplified syntax, you can create smaller programs, which is always good because it can never be a bad thing to create smaller programs, because really, not only is that more readable and more concise and more usable, but it's also better because you can read through it and you can find bugs and errors or fix certain things a lot easier than if it were very lengthy. Also, you can split parts of code or parts of programs into modules. Now, modularity is not a unique feature of Python, but you can use those modules in other programming languages, even if it's written in Python. And of course, you can also use those modules to create libraries. Then, of course, there's automation capabilities of Python. I did talk about this once, but, again, it's very, very notable and important Python's automation capabilities. I mean, really, again, training a model, creating some kind of automation. If you use a computer for a long time, you'll always find something that's irritating and tedious that you'd like to automate. Python is a great language for this. And of course, Python is designed to be multi-purpose. And when I say multi-purpose, I mean multi-purpose. Take a look at this graph in a 2021 Stack Powerful Developer Survey. Python is used literally everywhere. It could possibly be used everywhere, from data analysis to desktop development to system administration. It's really everywhere, and people use Python for all sorts of things. So let's not talk about the internal workings of Python. This graph is a... This table is a very simplified one. It doesn't show everything that happens, but I want you to just get the general idea. First, you write your high-level Python code, and then it goes... Once you do run that, it goes into a translator. The translator turns it into a sample-level code, or medium-level code, and then eventually into byte code, or binary, low-level code. And then Python does all this internally without your assistance or help or anything like that. And it turns all that stuff back to the output of code, which is either going to be an error if you were interrupted anymore in there, or your output. So really, Python handles a lot of the nitty-gritty, little tiny details by itself, which is something that makes your life much easier. Let's not talk about the exclusive features of Python. The first thing, Python might be simple, but it is a structured and very well-supported programming language. Structure is very important for me in a programming... Really, it makes it so much easier to write when you can have structure. You can... And Python definitely does very well at this, and along with that, it's also a very well-supported technology. Along with that, it's an ideal language for scripting and rapid application development, or RAD. And in fact, really, Python, being an interpreted language and having a dynamic typing of nature, it makes it very easy to create applications rapidly. And of course, it's also great for scripting, which is basically when you write code to do something that would normally involve a human operator. And of course, the Python interpreter and that's something we talked about earlier, but again, this is a feature that not many programming languages have. It's quite the headache to do it in some competing programming languages, but Python makes the process very easy. Now, so here are the applications of Python. Now, before you even look at this, I want to go ahead and say you do not need to understand everything you see. That's not the objective of me showing you this. What I want you to see is all the places that Python is used. I mean, it's used everywhere from web development with frameworks like Django and Tornado, to scientific and numeric purposes, to graphical user and interface development with things like PyQt, software development, all the way to system administration. And it does quite well at all of these tasks. Let me now talk about Python for AI and machine learning. Personally, I established five criteria that make a programming language good for AI and machine learning. You may not agree with all of these, but I say that these are some fundamentals that a programming language that's good for AI and machine learning should have. The first criteria on is that it's powerful for AI. I already talked about how Python is a great language for using large amounts of data. And of course, this criterion is easily passed by it. The second criterion is that it must be a modern up-to-date language which will not suffer entropy for a long time. Entropy literally means just the fact that everything will eventually fall into disorder and stop being used. In a programming sense, it would be that a programming language will eventually be replaced by a superior programming language and it will almost completely fall out of use. Now, Python is... A quote here is another picture from the 2021 Stack Overflow Developer Survey. It is literally the most wanted programming language in the world by a margin, which means that you can trust that it's not going away anywhere. The third criterion is that it must support extensions. Now, I think I've already stated enough times that Python has hundreds of libraries and frameworks. So this criterion is also easily passed. The fourth criterion is that the language must have an easy interaction with other languages. Now, Python, you can literally package it into a module and use it with other programming languages without even changing the code. So this criterion is also, I don't think I need to speak further, easily passed. The fifth criterion is that it must have high levels of support globally. I was just talking about the large and helpful community and also the large amount of wantedness. Large amount of wantedness means there's also a lot of people using it. So high levels of support globally from companies and from people, definitely another thing that Python has. Making it one of the best fits for AI machine learning and deep learning. So I'm going to briefly go over how I ended up learning Python. In 2015, I started learning HTML. At this point, I didn't really realize what a programming language was exactly. I just thought, you know, programming is doing something to a computer that makes it do things. But in 2015, I started doing HTML, unknowingly. I just thought, you know, it was programming. But in 2016, I moved on to JavaScript, which is another network or web-oriented programming language. Later in 2015, though, I realized what a programming language was. And that's when I really started getting interested in programming. I started experimenting around with PHP, Java, and Python to kind of see what was good and what was good for me. In 2017, I made up my mind and I decided to go with Python. And since then, I've been able to accomplish a tremendous amount. I've been able to create educational resources, including a YouTube channel, and help nearly 20,000 others to learn Python for both advanced learners and beginners. And that's called coding with Sean. Continuing, I've been able to do data analytics, statistical analytics, and a tremendous amount of all sorts of mathematics, including arithmetic, calculus, and more. And that's something that is really incredible because, firstly, data analytics means that there's a lot of math involved. So, statistical analytics means there's even more math involved. And really, Python just makes the process very clean. You don't have to do that math by yourself. It'll do it for you. And it's made the whole process for data analysis much easier than it has been for me using some other programming languages. I've also been able to do a lot of data processing. So, data processing is basically what you do after data analysis. And that's where you can process the data, chunk it out, and put a lot of operations on it to create a better output. And that's also something that's done very cleanly with that. I've also been able to create some very nice looking data visualizations using libraries like pandas and matplotlib. And, of course, I've been able to do a lot of automation to do boring, repetitive procedures. And, of course, it's given me the opportunity to speak at this extremely prestigious conference. So, let me talk about how Python enhanced my skills. So, firstly, it made learning other programming languages easier. Now, I mean, every programming language is connected in some way or another, and to learn one will make learning another easier intuitively. So, that's definitely been the case. I've been able to learn programming languages a little bit easier than I have before I learned Python. It's also increased my knowledge about data. Dealing with so much data means that, really, in general, my knowledge about data has increased quite a bit, thanks to all the operations and things I've done using Python. It's also further enlarged my skills regarding statistics. All the statistical operations that I've done using Python and Jupyter Notebook and all these kinds of things that are available in the Python ecosystem, it's really enlarged my skills regarding statistics as well. Because, I mean, if you do a lot of something, you're bound to know more about it. And statistics is definitely one of those things. It's also enhanced my visualization skills. With all the visualizations that I've done with all the graphs and plots and all that I've created, it's literally made it easier for me to just look at a table and visualize it in my head, which is something that I never thought would be possible. But it's really been an amazing experience to be able to do that as well. It was quite surprising as well when I first did that, but it's really, it's something that is quite incredible, one of the best parts of learning Python, helping you in everyday life. And then, of course, it's taught me patience. With all the bugs and errors that are bound to occur, it's important to be patient and hopefully just have the patience to do all this stuff and, you know, just persevere through it, you know, learn and do the things without giving up. And Python is definitely something that's helped me with that. And of course, Python itself gets easier as more errors are resolved. This is something that's obvious. Now, as you learn Python and as you make errors, in fact, I'd argue that it's even better to make errors than it is to not. Because when you don't make errors, you're just getting completed code. When you do make errors, you're also learning. And yes, Python definitely gets easier. I can see that from personal experience as more errors are resolved. So, let's talk about how I learned Python. A lot of ways, because it's never good to only learn something one way. It's always good to, you know, go around, kind of do a lot of different things. And for me, firstly, I learned from my parents and siblings. Now, they're not computer scientists, but they do have some experience in Python and a couple of other programming languages. And I was able to learn a little bit from them. I also learned quite a bit from the documentations of Python and some of its libraries and frameworks. Of course, a lot of books and a lot of videos also helped. And some online tutorials made the process even easier. And then, of course, some previous knowledge from JavaScript, HTML, and PHP seeped over my knowledge of Python. As I was saying earlier, Python makes it easier to learn other programming languages, but other programming languages also make it easier to learn Python. So, I want to go over why I created educational resources. Firstly, despite thousands of tutorials that I found, I couldn't really find very many step-by-step user-friendly tutorials. Many of these tutorials were aimed at higher-grade students and assumed that you had some prerequisite knowledge, which you may not have. And the necessity of persistent creation of these resources forced me to be organized, dedicated, and even to some extent helped me learn Python. It also vitalized work ethic and it stipulated me to work hard. Now, for Python Learner, all of these may not apply, but those bottom two surely do. And those will help you not only with programming, but also just with your life, with day-to-day life-free. So, what's next? I want to go beyond being a user. In the future, I want to contribute. I want to handle immense amounts of data all with Python and its libraries. And, of course, I want to give back by identifying a few weaknesses and gaps that Python does have and possibly patching them. And really, you can do all of this too. The hardest thing is just getting started. Let's summarize. The first thing, Python is a great language for beginners. With all the things I've said, I'm sure you could agree with me on this, that Python is definitely a great choice for any beginner. Of course, Python is also widely used and demand for it is high. We talked a lot about the corporate support and we also talked about how many people were either getting started with Python or already using Python. And, so, definitely it's one of the better programming languages used just for its large community. And, of course, Python's popularity is still rising. I studied that image from the Stack Overflow Developer Survey about how Python was the most wanted programming languages in the world. And really, we can only expect it's popular to keep rising for quite a while. And, again, the best kind of start is now. And, of course, I've been able to do a lot in these years and I start to do even more in the future. And, lastly, I want to encourage you to try it out for yourself. There's no better way to know if something is right for you than to just try it. And, really, Python, if you do try it out, I'm sure that a lot of you will find it to be a great programming language that makes everything really nice and comparatively easy. And I'm sure that you'll all like it. I'd like to acknowledge Mr. Manikant Roy, who helped me make this presentation and also my parents who have helped me from day one. And I'd also like to thank Havan Pratapan Vishal and the whole Python team for making not only this presentation but this whole conference possible. I and I'm sure the audience are really grateful and thankful for all that you've done. Here are the sources and credits in case you wanted to look at that Stack Overflow Developer Survey or the JetBrains one or some of the images that I used. Those are here. And at this point I'd be glad to take any questions. Thanks, Sean. That was a wonderful talk.