Live data from Hacker News

Fundamentals of Python Programming [pdf]

python.cs.southern.edu

21–30 of 38 posts

Re: Fundamentals of Python Programming [pdf]

#21
post #17

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?

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.

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.

Re: Fundamentals of Python Programming [pdf]

#22

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…

Don't apologise for this; your dissection, even if only a comment, was a tremendously enjoyable read. Well done for putting in the effort to research this!

Re: Fundamentals of Python Programming [pdf]

#23

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…

I'm a researcher interested in language acquisition so this is very interesting to me. Thank you for sharing! I have a couple questions: 1. Was Python your first programming language? / Was this book your first attempt at learning programming? 2. Why do you feel that presenting functions before lists was beneficial for you?

(1) If you count HTML as a programming language, then I had about 3 hours of HTML under my belt when I first started reading this book. Which is to say I understood nothing nothing about programming when I picked this up. I have a method for learning new domains, and a part of that method includes skimming intro books to find ones that seem well put together. So, I had also blitz skimmed a number of books before finding this one. One thing I noticed right away from this book was that it felt more like a normal textbook than most of the books I was skimming.

(2) This is not an easy question to answer, because it includes a lot of speculation, but I'll try. For me, at least, it was important to understand - in some rough sense - the nature of the concepts. Obviously, there is plenty more to the nature of the following basic concepts than what I provide, but here's the way I was perceiving the concepts:

Variables - being able to name and rename data (or code) and use different things you've named

Conditionals - run code under certain conditions

Loops - run the same code multiple times under certain conditions

Functions - reuse the same code at different points in time

Lists/Arrays - save code (or data) to later be used and/or manipulated

Looking back on this textbook, as well as the other material I read where lists/arrays were presented very early, I just think it was more natural to think about code reuse before thinking about storing stuff for use and manipulation.

Just my two cents.

Re: Fundamentals of Python Programming [pdf]

#24

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…

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.

Re: Fundamentals of Python Programming [pdf]

#25

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…

Writing this up in a blog post would benefit many people thinking about a career change. What lead to it, how you went about it, etc.

If I get an offer, then I'll definitely consider doing this.

Re: Fundamentals of Python Programming [pdf]

#26

Earlier quoted context omitted.

I'm a researcher interested in language acquisition so this is very interesting to me. Thank you for sharing! I have a couple questions: 1. Was Python your first programming language? / Was this book your first attempt at learning programming? 2. Why do you feel that presenting functions before lists was beneficial for you?

(1) If you count HTML as a programming language, then I had about 3 hours of HTML under my belt when I first started reading this book. Which is to say I understood nothing nothing about programming when I picked this up. I have a method for learning new domains, and a part of that method includes skimming intro books to find ones that seem well put together. So, I had also blitz skimmed a number of books before find…

I would naturally pair loops with iterables, such as lists, particularly in python. I wondered if it was more to do with learning to structure code before structuring data.

Personally, I'd be inclined to teach basic types and control flow, e.g. loops and conditions, before teaching how to structure code so that you can start with something long and repetitive and understand the benefit of utilising functions. Having said that, both are fairly basic concepts so I don't think you'd lose much either way.

Re: Fundamentals of Python Programming [pdf]

#27

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…

>(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.

Re: Fundamentals of Python Programming [pdf]

#28
post #7
post #5

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

Then, you might also like: Think Python [1] and related interactive course [2] [1] https://greenteapress.com/wp/think-python-2e/ [2] https://runestone.academy/runestone/static/thinkcspy/index.h...

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

Re: Fundamentals of Python Programming [pdf]

#29
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!

Re: Fundamentals of Python Programming [pdf]

#30

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…

>(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 Lan…

Makes sense. Thanks for the insight!
Post reply on HN