Python For Everyone 3rd Edition Pdf Free Download

0 views
Skip to first unread message

Pierpont Oldham

unread,
Aug 4, 2024, 4:00:54 PM8/4/24
to rudmannmosal
LinkedInand 3rd parties use essential and non-essential cookies to provide, secure, analyze and improve our Services, and to show you relevant ads (including professional and job ads) on and off LinkedIn. Learn more in our Cookie Policy.

Python is now one of the most useful and popular programming languages in recent times. Using Python, you can do numerous things including building Microservice for Cloud, write codes for networking devices, do data analysis in data science, build interesting games or program IoT devices to fulfil your requirements.


There are lots of educational websites [both free and paid] and YouTube channels are available to teach you Python programming. Search YouTube channel with Python course and just check coursera.org or edx.org websites and you will have an idea. Some of the great universities are now offering online courses on these sites. Content of these sites are really great and allow you to do with interactive sessions. However, when I wanted to learn Python, I face a serious challenge as most of these sites are not organized in a way that can help me to learn the coding in an effective way. Don't get me wrong. I was either not able to learn from these highly interesting websites or my learning style is different as like everyone else. As a result, I was really looking for some serious help in learning Python.


Recently I came across a book named "Python Crash Course" by Eric Matthes from nostarch press. This book is interesting for a few reasons. First of all, this book offers Introduction to Python coding in first part and then Project-based learning in the second part. So you learn about the Python coding first and then strengthen your learning by doing a few hands-on projects. This includes building a game, do a data visualisation project and then making a web-based application. Secondly, this book is organized in a highly interesting way that will help you to grasp your understanding properly. For example, a chapter on Python Function came once you learn data types, lists, dictionaries and conditional statements in earlier chapters. In most of the books or Websites, I did not find this logical order. So as a result, my learning was better. Another interesting example of this good book is the Python Class chapter. I was trying to understand this Object Oriented Programming concept properly for quite long and this book gave me a very interesting insight on how to write code with Class properly that can simulate real-world scenarios.


There are few TRY IT YOURSELF practices in every chapter and it will improve your understanding of what you have learned. These TRY IT YOURSELF practices are also not very complicated to discourage you from learning your code properly. In so many websites or books, I have found this is a big problem. They teach you something simple and ask you to do something which is a little bit complicated. I think this approach is not good for beginner programmer. Moreover, Eric Matthes has a GitHub account to help you with your practice to TRY IT YOURSELF workout.


The first edition of this book was very famous and now it got a second edition this year. More than 500000 copies of this book are already sold. I will not recommend this book to someone who just started learning Python. For them, I will highly recommend my favourite Dr. Chuck on his famous Website Python for Everyone to learn Python fundamentals. For those who already have some understanding about Python but want to learn for better, Python Crash Course by this great writer Eric Matthes is highly recommended.


Did you know when you sign a contract with a publisher you have to update your books? Neither did I! I'm mostly joking but I've had enough demands and complaints from readers of Learn Python the Hard Way that it was time for an update, but I was too deep in JavaScript land to have bandwidth for it. Then last month my Publisher started bothering me for updates as well, so now I'm on the hook for a new edition.


I was reluctant to work on anything new related to Python due its stagnation in the web development space, but a few recent events have changed my mind: Codon and the popularity of Data Science.


I'm really excited about Codon and I'll be playing with it in the near future. I have a couple fun projects in mind that specifically leverage Codon's abilities, and I'll hopefully have a few articles about Codon in practice. Mostly I'm interested in how Codon compiles Python, and it's ability to interface with C fairly easily. It also seems to be really well designed and apparently it can embed the cpython interpreter for those cases where you absolutely have to run Python.


Codon is awesome, and it's definitely getting me interested in Python again, but the real winner in the Python world is Data Science. Right now AI, Data Science, and Machine Learning are hot, and they're the primary thing Python is being used for. I think most of the students who contact me wanting to learn Python are interested in the world of Data Science and not web development or "backend" programming. I think languages like Go, Rust, and JavaScript have largely supplanted Python for general systems programming, and there's some evidence from Github that shows this trend.


It's almost entirely data science projects, especially if you consider things like Graphing and Scraping being something primarily used in Data Science. If you do that then 80% of the top most popular projects on Github are related to Data Science. This fits with the wild success of Data Science, AI, and Machine Learning in the last five years, and the relative lack of innovation in Python's other use cases such as web development and systems management.


Now, if you think this isn't a fair analysis of popularity I want to stress that everyone is also quoting this as a measure of Python's general popularity. You aren't allowed to rave about Python climbing to the top of the Github stars chart and then balk at the suggestion that, actually, it's Data Science that's popular. Either stars are meaningless and Python's not popular, or stars are important and Python Data Science is popular.


Learn Python the Hard Way has always been focused on Pre-Beginners in that it assumes nothing and aims at building the knowledge someone needs to eventually learn the topic. My approach is not to teach someone to be a master of the subject, but to teach them all the things other writers assume "beginners" already know. If you've ever read a book that starts with print("Hello World") then jumps to "a monad is just a monoid in the category of endorfunctors" then my book teaches you what that author assumes you know.


Focusing on Data Science in my style means that I won't teach you the entire world of Data Science, since that's already covered by many more qualified people than me. My goal in the new Learn Python the Hard Way is to teach you everything about Python programming that those courses assume you already know. When you're done with my book you'll have the skills you need to then understand other books.


A secondary goal in the new book is to get you familiar with the basic tools used in Data Science, like Jupyter, Pandas, Anaconda, and low level topics like data munging, testing, and graphing. I won't go extremely deep into these topics, but having a familiarity with them will make other books easier to understand.


Finally, I'm going to target the new book at a secondary audience of people who are knowledgeable of Data Science, but maybe they feel their Python skills are lacking. This would be anyone who has impostor syndrome when they write Python code and who wants to feel more confident in their basic Python knowledge. I want to "upgrade" people from strictly using Jupyter to creating full Python projects with automated testing for repeatable results in addition to detailed explanations of basic Python topics.


I've submitted the following outline to my publisher, but I'll be changing this as I work through the exercises using Jupyter. Remember that the goal of this course is not to craft a grand master of Python Data Science, but to teach a Pre-Beginner the basics of Python most other books assume you have.


Then I move on to simple I/O but focused on how to use Jupyter to create the files and open them. It's at this point that I'll start "weening" people off Jupyter and start making little scripts using a simple external text editor. This will help when they want to move their work into an external project to share, or start adding more traditional Python resources such as automated testing, deployment, and package sharing.


It's at this point I can start introducing simple functional programming and data structures. There's some people who hang out on Stack Overflow yelling at beginners that think you should start with OOP right away, but there's a significant problem with this belief:


After learning an introductory level of these basic data structures, and the previous information on jumps and functions, it's time to get into boolean logic, loops, and if-statements. Once again, if you know about jumps, and you know about boolean tests, then you can understand if-statements. If you understand jumps and if-statements then you can figure out basic looping. After that it's a process of combining data structures with more advanced loops like for-loops:


Object Oriented Programming is an example of something that's far easier to teach once someone knows about dict and functions, so we get into this here. In the past I tried to "sneak" in an understanding of OOP with a weird method, but my JavaScript course has taught me that it's easier to teach people how to build their own basic OOP system with dict and closures, then show how that "maps" to the built-in OOP of the language:


Once they reach this point they're probably ready to move off Jupyter and learn how to create a regular Python project with automated testing. This will cover more traditional developer tools, and I might throw in an exercise that has a CLI crash course right here rather than as an appendix.

3a8082e126
Reply all
Reply to author
Forward
0 new messages