
Fundamentals of Python Programming [pdf] - lainon
https://python.cs.southern.edu/pythonbook/pythonbook.pdf
======
anongraddebt
Love this book. I decided to make a career change about six months ago, found
this book, and started learning Python. Over the past six months I've built
four apps (after learning JS and a couple different frameworks), and have
multiple interviews lined up for back-end roles.

For anyone interested in possibly writing an intro book (or some such
material) in the future, here are a beginners thoughts on what makes this a
good read:

(1) Heavy use of code examples, with accompanying explanations. For myself, at
least, I learn a lot through examples, and seeing so many examples of
functioning code was very beneficial. The explanations are easy to grasp,
without dumbing the material down. Moroever, the examples are integrated with
the flow of the material presented (so never arbitrary) and many build on each
other as the chapters progress.

(2) Functions are presented before lists.

(3) He takes time to provide clear, precise, and deep definitions and
explanations of the concepts. There is a near-philosophical exactness (like
the exactness of analytical philosophy) in the descriptions.

(4) Formatting and organization. There was never a time where I felt lost as
to where I was, where I was going, or where prior material was. Skim the book
yourself to see the myriad ways it formats and presents the material to make
study easy on the reader.

(5) The number of exercises/problems at the end of each chapter.

~~~
Aengeuad
>(2) Functions are presented before lists.

While it might not make the most sense for a beginner still learning the
fundamentals to be taught lists before functions it's generally advantageous
for introductory language books to focus on what the language excels at. But
of course this is a fundamentals book and not every book needs to be general
purpose!

Some examples of where this holds true: The Rust Programming Language
introduces ownership concepts, a difficult topic even outside of Rust,
immediately after the chapter on fundamental concepts like the data types,
functions, and control flow. It could be argued that such a concept needs to
be introduced early to understand the language more, although you see similar
things with OOP being emphasised very early on in Java on the tutorials on the
Sun/Oracle website. Any introduction to Perl will be very string processing
heavy, and Ruby introductions, like Python, will introduce lists/splicing very
early on. It's easier to appreciate as you pick up more languages.

~~~
anongraddebt
Makes sense. Thanks for the insight!

------
undecidabot
I apologize for going off topic, but if the author is reading this (perhaps I
should email him instead), please be informed that your work has been
plagiarized on Amazon, by a book called "Python Programming: A Step By Step
Guide From Beginner To Expert" [1]. Read the first few pages of the print
book's "Look inside" and you'll see a word for word copy of the book.

Not only did they plagiarize your work, but they did a really poor job of it
too. The print is full of formatting issues. The code blocks are not properly
indented, which is not only poor style but also broken given that python is
white-space sensitive. And bizarrely enough the letter "q" is continuously in
bold throughout the whole book. You can easily verify this from the pictures
by the reviewers. I don't actually own a copy of the book myself.

To make matters worse (or better?), they only decided to include the first
four chapters, ending at "Conditional Execution". Yes, the plagiarized book
claims to be a guide "from beginner to expert", yet it didn't reach the
chapters on loops and functions!

If you read the reviews, you'll quickly notice that it's full of fake five-
star reviews with very vague sentences, some of which don't even make sense.
You'll also (now) see a lot of real one-star review, which means that quite a
number of people have fallen for this scam.

Surprisingly, one of the fake reviewers even got in Amazon's top 100 reviewer
list. Check the profile of "Kip Krenz" [2], who is currently at rank #53.
Somehow he managed to review two to four books on a near daily basis for maybe
a year or more, mostly five-stars (the rest are four-stars) and full of
generic sentences. The books reviewed are most likely "fake" as well. They
often fall under one of the following: a beginner book, a self-help book, a
cookbook, a trading book, or a book on one of the latest fads.

This book is unfortunately just one of the many fake books (not the jazzy
kind) that have proliferated on Amazon. If you look at the other
recommendations, you'll probably find another one of these books (Python seems
to be one of those profitable topics).

A common technique used by these books is to put themselves under some niche
category in order to get a high rank. For example, this book categorized
itself under "Microsoft C & C++ Windows Programming" [3], and is currently at
#9 there (it used to be #1, but thankfully the real reviews probably dragged
it down). For a more peculiar example of this, take a look at what's #1 under
"Windows XP Guides" [4].

Sorry for going on a tangent with such a long wall of text. I spent a night
"investigating" this whole thing a few weeks ago, and after seeing this post,
thought that it would be best to spread awareness of the issue here.

[1] [https://www.amazon.com/Python-Programming-Beginner-
Intermedi...](https://www.amazon.com/Python-Programming-Beginner-Intermediate-
Advanced-ebook/dp/B07N4QDH92)

[2]
[https://www.amazon.com/gp/profile/amzn1.account.AGXMOOP4UKWV...](https://www.amazon.com/gp/profile/amzn1.account.AGXMOOP4UKWVEKKFAL33DYHAJ67Q)

[3]
[https://www.amazon.com/gp/bestsellers/books/3967](https://www.amazon.com/gp/bestsellers/books/3967)

[4]
[https://www.amazon.com/gp/bestsellers/books/6134002011](https://www.amazon.com/gp/bestsellers/books/6134002011)

~~~
halterman
Original author here. Someone else discovered this and notified me about three
weeks ago. Amazon has a site for reporting infringement, so I submitted my
claim of ownership. I received an immediate automated response promising a
follow up, but I have yet to hear anything more.

In the book's front matter I grant permission for anyone to use the book
freely and to make as many copies as they like as long as the original
copyright notice remains intact. It started out as my small way of helping my
students who are facing escalating higher education costs. Over the years,
I've received feedback from other instructors at both the university and high
school level who appreciate having this option available for their students.

~~~
JBlue42
Thanks for writing this book. As a someone who has had some starts and stops
with Python I look forward to giving this oen a shot.

It might be worth calling up Amazon customer service. They are usually very
helpful and might be able to route you to the correct person.

------
Animats
This is an intro beginning programming book that uses Python, not a Python
book for programmers. That's fine, but there's a distinction, which should be
clear in the title.

------
rpmisms
Aw hell yeah. Programming books that teach you how to actually think like a
programmer are THE best ones. Thanks for the resource.

~~~
asicsp
Then, you might also like: Think Python [1] and related interactive course [2]

[1] [https://greenteapress.com/wp/think-
python-2e/](https://greenteapress.com/wp/think-python-2e/)

[2]
[https://runestone.academy/runestone/static/thinkcspy/index.h...](https://runestone.academy/runestone/static/thinkcspy/index.html)

~~~
sharadov
I am using [2], love it, tons of examples with common errors you make, am
teaching myself Python and did a few courses out there, this combines
everything, one of the best I've seen so far

------
reacharavindh
Looks like a very comprehensive coverage of basic Python (from skimming the
TOC). I will pass this as an option alongside "The Quick Python book" to my
wife who wants to use Python to replace her STATA anaylses.

------
selfipaprazzi
I wish there was an abridged version of this book for experienced devs. I
guess I can just skip past the parts I feel confident about. I know Python
pretty well, but I want to get a back-end job doing it. Like, I wanna develop
services in Python for other devs. Sorry that is off-topic. Thank you!

------
Bostonian
Skimming the book, it does not use type annotations in its functions. I would
talk about type annotations and encourage their use soon after presenting the
concept of functions. Agree?

~~~
runxel
No. Type annotations are pointless because they are not enforced in any way –
if you're coming from another language it might be really misleading. It's
good the author omitted this information. Also most code in the wild doesn't
use it anyway.

~~~
DonaldPShimoda
I think in general you're right, but I think it's wrong to say type
annotations are "useless" without some qualification of that statement. I use
PyCharm as my Python IDE, which does some static analysis on type annotations
to ensure consistency and to give better autocompletion hints, which I find
very useful.

------
lepasana
I see a book, I click! I'm a simple man. Thanks for sharing!!!

