Dive Into Python
However, from time to time, you can find a programming language book that stands apart. You can tell from the way the author writes, the topics s/he covers, the unique presentation style and insight that s/he brings that the book is a labor of love. These books enjoy placement on the shelf closest to my desk -- that is, if they're not propped open beside my computer. Dive Into Python is such a book.
One thing that sets Dive Into Python apart from many other programming language books is that its author, Mark Pilgrim, didn't originally plan to make any money from it. As we often say in Open Source circles, he simply had an itch and decided to scratch it. Mark explains this in a story on his weblog in the form of a dialog between him and his manager after showing him a rough 20-page draft:
Manager: "This is really good. You could probably make some money off this someday."
Mark: "Maybe, but I'm not going to. I'm giving it away for free."
Manager: "Why would you do that?"
Mark: "Because this is the way I want the world to work."
Manager: "But the world doesn't work that way."
Mark: "Mine does."
First released in late October 2000 and published in online and downloadable forms under the GNU Free Documentation License, Dive Into Python had grown in fits and starts until 2003, when Mark declared the project closed. Even as an unfinished work, it was held in such high regard by the Python community that developers consistently recommended it; it was also included with ActiveState's Python and FreeBSD's ports distributions. When Mark announced that Apress had decided to pay him to finish the book and publish it, it became the most-anticipated book on Python ever. Even better, Apress has been gracious enough to allow Mark's world to work way it always has: Dive Into Python is still available for free download and is still under the GNU FDL.
What's in Dive Into Python
Many programming language books follow what I like to call the "Computer Science 101 Format", with the first few chapters devoted to covering basic concepts that any moderately experienced programmer already knows. Whenever I leaf through such a book and encounter a chapter that tries to reintroduce me to data types, looping or branching, I feel cheated; I'm essentially paying for a big chunk of book that I'll never read. If you've ever been annoyed by such filler, you'll find Dive Into Python a refreshing change. Rather than wasting time and trees devoting whole chapters to rehashing Computer Science 101, Mark chose to build each chapter after the first around a program that illustrates a number of Python features and programming techniques.
The programs upon which Dive Into Python's chapters are based strike a carefully-maintained balance. They are rich enough to illustrate a number of points and be the basis for some "real world" code, yet small enough to be comprehensible tutorials. For example, chapters 2 and 3 are based on "Your First Python Program", which is a mere six lines of code. However, in those six lines, you are introduced to function declarations, documentation strings, objects and their attributes, importing modules, Python's indentation rules, the "if __name__" idiom, dictionaries, lists, tuples, string formatting and list comprehensions. Within the first hundred pages, a point where many books are re-acquainting you with the "else" keyword, Dive Into Python covers the aforementioned topics as well as Python's reflection capabilities, list filtering, the "and-or trick", lambda functions, OOP and exception handling, all with enough thoroughness to be useful. After reading Dive Into Python, you may have trouble reading other programming language books because they'll seem glacially slow and fluff-laden in comparison.
For the first two-thirds of the book, Mark continues with this approach, presenting a program and then analyzing it to see what makes it tick, teaching Python and oftentimes a programming technique along the way. Each program covers useful tasks that you're likely to run into while programming and does so in an interesting way. At the same time, concepts are introduced in a way that makes sense. For instance, chapter 4 covers two topics that mesh together quite well -- exceptions and file handling -- and it does this by exploring an interesting application: a program that displays the ID3 tag information about each file in your MP3 collection. Later chapters explore regular expressions, HTML and XML processing and Web services. By the time you've finished the first two-thirds of Dive Into Python, you'll have been introduced to enough Python to start writing a wide array of "real world" applications. The book might have benefited from having a chapter covering database access, a task that's at least as common or as useful as accessing Web services, but that's a minor complaint.
While the first two-thirds of the book concerns itself with helping the reader become a Python programmer, the final third is about elevating Python programmers above mere competence. It covers useful topics (albeit rarely-covered in language books) such as refactoring and performance optimization as well as ones that may be new to even some experienced programmers: unit testing, functional programming and dynamic functions. Each chapter in this section is still based on an example program, but rather than analyzing a completed program, its evolution is traced. Although you can get by as a Python programmer without ever reading the material in this section, you'll be a much better one for having done so.
In keeping with the spirit of Python, Mark writes the chapters to present the material as completely and clearly as possible without extra clutter. If there's any additional material that doesn't apply directly to what he's trying to explain, he provides references or links to that material rather than attempting to "fatten up" the book.
The book's long gestation period, assisted by years of reader feedback and James Cox's editing has paid off. It doesn't have the rushed feel that many language-of-the-moment books have (especially the ones written by an army of authors, each one taking a chapter). As far as I know, there isn't any of the sloppiness that pervades many programming books these days, save one instance of the popular typo "teh" (and really, what truly 1337 book doesn't have one of these?).
Mark is aware that Python is likely not to be the reader's first programming language; it's more likely to be some descendant of ALGOL (or more precisely, a language that borrows heavily from either C or BASIC). He also knows that many programmers tend to misapply techniques from the languages with which they're familiar to the language they're learning. With these in mind, he's taken great care to introduce Python idioms as soon as possible. If you follow his advice, you'll be writing "real" Python and taking advantage of what the language has to offer rather than just writing Python-flavored version of whatever programming language you're most comfortable with.
Dive Into Python's Audience
The "user level" specified on the back cover of this book says "Beginner - Intermediate", which I feel is a little misleading. As I mentioned earlier, the book takes great care not to rehash topics with which programmers with some experience are already familiar and is written with the assumption that the reader is proficient in at least one object-oriented programming language. I think many programming novices would be overwhelmed with the speed with which Python features are introduced.
Experienced programmers, whether they are new to Python or are fluent with the language will benefit the most from the book. One programmer I know works with Python daily and and even submitted a patch to wxPython; even he said that Dive Into Python showed him things about Python that he never knew. If you're tired of books aimed at "Introduction to Computer Science" students, you're going to love this book. This doesn't mean that people who don't normally program can't benefit from the book: Joi Ito, who is a tech entrepreneur and not a programmer, learned enough from Dive Into Python to put together jibot, a bot for the IRC channel that bears his name. If you're new to programming, you might want to make Dive Into Python your second book or supplement it with an introductory text such as Apress' own Practical Python, O'Reilly's Learning Python or the free online book How To Think Like a Computer Scientist (the Python edition).
ConclusionDive Into Python may be one of the thinnest programming language books on my shelf, but it's also one of the best. Whether you're an experienced programmer looking to get into Python or grizzled Python veteran who remembers the days when you had to import the string module, Dive Into Python is your "desert island" Python book. If you're new to programming but have heard all the wonderful things about Python, make sure that this is the second programming book you read. My congratulations to Mark Pilgrim on an excellent book and authorial debut!
(Remember, you don't have to just listen to my effusive praise. Dive Into Python is available for free at diveintopython.org. Read it for yourself and if you like it, vote with your dollar!)
You can purchase Dive Into Python from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
Dive Into Mark. Lots of interesting/useful stuff.
Any chance we'll get php style documentation to accompany this wonderful book?
Here's a good link to diveintopython.org. The one at the end of the review is horked.
With perl, you can learn all that with 6 characters.
I have been waiting a long time ti find a book like this. It is a breath if fresh air. Similar (as far as fresh air goes, not writing style) to the Head First series. While the Oreilly 'animal' books take up most of my shelf space, this one will find a place there too.
My
It's the first thing I recommend to read after the official python tutorial to my co-workers who are just starting to learn python.
This book, Python in a nutshell, and the online python library reference are the 3 tools that I always recommend for python newbies
This book was awesome, I've been using it for awhile, and it's a really good python guide.
Is there a point to this?
If writing a book like that could get me $60K a year kind of job, I'd write one for free too.
(I hope the author makes enough money - I just want to point out a possible reason for doing that kind of thing).
From the article I noticed one interesting thing - his world didn't quite work out until that company chipped in some money for him to finish the thing.
The same is with music and software - if it weren't for companies and/or sponsors....
Just in case the site crashes, you should be able to get the book via eMule( "diveintopython" the current version is 5.4.)
strange that this article should pop up today when just last night, i was digging through the local barnes & nobles looking for a good python book and went home with nothing more than another work of fiction.
i've been meaning to get further into computer programming than the basic knowledge i already have, and this book seems worthy of a purchase. i have suffered through quite a few "intro" books that do little more than teach how to code math equations and silly text manipulations.
what i am really in need of is either a series of problems to be solved (with solutions, natch) or a good book suggestion that actually makes me want to write programs.
the how-to books are easy, but i tend to get bored with huge compilations of instructions pretty quickly. perhaps what i need is a good "why-to" book. any suggestions?
-knowles
Time to back off on the cold medication! Mod to you hearts' content :(
Python is great very robust, easy to use, and capable to do a lot of things quickly. I also know that Mark is a great guy. I have sent him emails on trouble I have had on things and he has given great responses to them. Very upstanding guy. All blessings to Mark Pilgrim and his contribution to OSS with Python.
...and got covered in spam. ...bloody vikings
no
The first two posts modded up to 3+ on this article, and BOTH of them are pimping their free iPod links in their sigs.
Moderators: Down with the "free iPod" spammers!
Sure, I could turn off sigs, but occasionally people actually do have interesting/informative links. But these iPod referral crap links are just too much.
Now go ahead and mod me down. Argh.
A few years back I needed to develop a program to download all of UserFriendly's archives (ok need is a strong word but thats not important). At the time I was familiar with the normal languages; java, C, C++, etc. I had heard about Python and figured this was something I could use to learn it.
I was blown away. Having never touched the language within a couple of hours of going through the online documents I had picked up enough to write the full script. Once that was done I didn't want to stop. I found Python to be an absolute wonderful language that made programming fun again. Since then I've written my fair share of Python apps to do nearly everything. Infact anytime I need a program that I can't quickly find or isn't out of it's realm, it gives me an excuse to use Python. A lot of the time I lookup a way to do something and sit there smiling to myself going "now thats freaking cool".
I haven't read this book, but from my experience Python is an awesome language. I'm sure the Perl people feel the same way about their language. To me Python feels clean, flexible and productive. Most importantly its fun.
can't sleep slashdot will eat me
For all of you who still haven't seen it, I strongly recommend this 'propaganda' gem from the Python community:
Video: Introducing Python
Features GvR, ESR, etc.
It's so bad it hurts. You'll want to show it to all your friends.
A message from the system administrator: 'I've upped my priority. Now up yours.'
I've been using Python for years and I like to read all the books I can get my hands on. Yeah I'm one of those Python Zealots.
This book is quite good, although the PDF has odd little gray icond behind some of the text for some reason. It doesn't bother me really but I'm not sure what their for.
The book does have some great chapters and some not so hot ones but it's probably not the best read if you don't already have some Pygramming (that's Python Programming) experiance.
Lots of fun and by far one of the best free books I've ever read.
As an author of one of those "bookends," I'd have to assume that AccordianGuy has never written one. The money is certainly not a huge draw -- it's not enough to live on, for sure. I can't speak for all authors, but for me, it was an opportunity to do two things that I love - play with one of my favorite programming languages, and write. Perhaps it really is crap, but at least I enjoyed writing it!
The developer of gmailfs wrote it in Python. He claims it is his first jump into Python, and apperently he learns fast--two days from zero Python knowledge to a working prototype of gmailfs. Odds are decent that he learned from this book. If everything people are saying about Python is true, I might have to give it a go. I can already tell from Chapter 2 of this book that it's my kind of programming guide, so I shouldn't have any trouble.
$ whatis themeaningoflife
themeaningoflife: not found
How very, very cool of Apress. Nice to see - now I'll probably buy the book to show them the GNU FDL can work - you can make money with open works.
========
77 77 77 2e 6d 65 6c 76 69 6e 73 2e 63 6f 6d
How do you do sql db access via those tools? What about multithreaded/multiprocess tcp/udp servers?
What a Tool. What drives awk, sed grep with ease? It's bash, ksh, csh, or what ever the hell shell you use.
Python and Perl are for amateurs
YEAH! Google is just a bunch of amateurs, using languages like Python! OTOH, it is now your duty never to use Google anymore. Do you think you can do it?
Why is this example function named 'fib' when it computes the factorial of a number, not the nth fibonacci..?
I like your style clown-shoes, but isn't OSS all about choice? I agree with you, but let the proverbial baby have his bottle; shit, if I wanted NO choice I'd use windows!
========
77 77 77 2e 6d 65 6c 76 69 6e 73 2e 63 6f 6d
I wasn't a Python Zealot(tm) until I tried it... in fact, just the opposite.
When I heard about the whitespace-is-significant, I had nightmarish flashbacks of MVS JCL (thoughts of which still cause me to twitch uncontrollably). As such, I refused to even look at Python seriously for quite some time.
However, that being said, once I actually did get over my (admitted) prejudice and gave it a serious test - it earned an official "WOW", something which few languages have ever done for me. Never mind that I was as productive while just learning Python as I am as an expert in any of the other languages I use regularly.
Now, I'm an official convert. Python gives you all the tools you need, but never forces you to use the wrong one for the job.
All I need to do now is find a shop that actually uses Python...
Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.
Python might be the most useful language since scheme.
e.g, look at this super-terse, but still legible, sub-array code:List comprehensions are another great feature:This is so amazingly compact when compared with list processing in Java or C++.
Anyhow, hats off to Guido Van Rossum for such a great language. I'll have to check this book out... I've been using the python cookbook (OReilly) and the documentation on the site almost exclusively...
std::disclaimer<std::legalese> sig=new std::disclaimer; sig->dump(); delete sig;
Funny, I have been reading both the online version and the print version over the weekend.
It is in many ways an excellent book, but geared towards more experienced programmers than I. The style is readable, but the program illustrating introspection (chapter 4 I believe) is really hard to get into. Mark could have chosen a better example.
I particularly liked the way that Pilgrim annotated the code. He started out a chapter with the raw code, broke them into blocks with annotations and then concluded the chapter with a review.
The approach of these diveinto books is to introduce unfamiliar concepts and then dissect them one by one. My only complaint is that sometimes he introduces a lot of things all at once. It would have been better (though less succinct) to use more examples with fewer concepts thrown together all at once. On the other hand, I can appreciate the succinctness of the example programs by presenting them without first dumbing them down. The good thing about diveintopython is that it helped me to read a program pretty easily --although that doesn't imply that I can apply this knowledge..Give me another week or two:) The key question is at what point do I feel like coding on my own? I tried the examples in chapters 1 and 2, and then didn't feel like I could start coding until I finished the first 8 chapters. (and am slowly getting the hang of it).
Interestingly, when I started out, I found that I was referring to Oreilly's Python in a Nutshell more and more. Didn't look that user friendly at first, now seemingly more useful.
My sense is that programming is a matter of incremental mastery. (First read Fun with Dick and Jane, then read Wizard of Oz, then Melville, then Shakespearean sonnets). This book starts out by throwing out the Shakespearean sonnets at us and then explaining piece by piece until we have a sense of the whole.
Guido von Rossum's tutorial is more of a stepping stone approach, though the example code is more academic than practical.
One advantage of the online book: great hyperlinked references to Rossum's tutorial and other sources.
Despite my griping, this was still a good instructive read (though challenging). And way to go Mark for putting this online for free!
Robert Nagle, Idiotprogrammer, Houston
Yawn...stretch...Database access.
Just looked in the man pages (cause i'm not a real Unix developer) and none of those programs (sed, awk, grep) have any kind of network connection. So add to database access any type of networking...
Please don't read my sig.
--Jon
Cleanstick.org: Dumb weblog about nothing
Anyone got a mirror?
I think someone should write us a Dive into zope book with the same quality as Dive into python!
It seems to have been a while since you have had to do some quick file parsing on a windows box as well. There is much to be said of the common syntax that can be supported on all of the platforms that I need to touch.
Well, ok... nothing is really "supportable" on WinCE, but besides that...
Not to troll, but has anyone else noticed that the total shelf space is much smaller than it was just a few years ago for computer books and specifically programming books ?
Fat language books are just, well, fat. I learned 98% of FORTRAN IV from a book about .75" thick, and my ALGOL 68 book is even thinner. It takes very little space to thoroughly introduce the programmer to Modula or Icon. Even COBOL books don't have to be wordy even though most COBOL code is.
When I see a slender volume sitting among the telephone-directory-sized tomes, I usually pick it up on the assumption that it should be good if it's so lean. I am not often disappointed.
(I just realized that LISP books *all* tend to be rather slender. McCarthy, Siklossy, and Steele all managed to say quite a lot in very little space. Hmmm.)
So I'd heard about Python and that it was good, so (since I like the process of learning new languages) I decided to try rewriting the scripts in python. In about two days I had them doing everything the perl had done and the added functionality as well and with remarkably few bugs.
Eventually I went back to add on more functionality and "Lo!" I had no trouble reading my Python code and even better adding in the new stuff was simple.
The biggest problem with Python has been the lack of a good book, I'll be considering "Dive into Python" carefully - being in the education biz I'm looking for a really good Python book for students.
>>... one gets the feeling that its primary purpose is to allow the author to make some payments on a car or mortgage...
Geez, how did some people become so naive? Just figuring out that professional authors write for money? And you're offended by it?
-- Slashdot: When Public Access TV Says "No"
Alrite, well, that was fun but thats the end of those invites, ill find someone more diserving i guess.
It's easier to fight for one's principles than to live up to them.
Mark Pilgrim works down the hall from me. I had no idea he wrote this particular book.
Small world.
here is a mirror
If there is no numerical rating, just assume a "9". Almost all book reviews are a "9" under the Slashdot Book Rating System.
THANK YOU!
...you would expect to go more like this:
/ 22 5217
"...a dialog between him and his manager after showing him a rough 20-page draft:
Manager: "This is really good. You could probably make some money off this someday --
but you did it while employed by us, so now it belongs to us.
Cough up the rest.
You have a month."
http://yro.slashdot.org/article.pl?sid=04/08/03
site seems down to me so I'm wondering if anyone has started a torrent for the book?
Your CPU is not doing anything else, at least do something.
There is a python compiler for Win32.. i dont have the name handy but a quick search on Guido's site should bring it up for you..
---- Booth was a patriot ----
If you use ActiveState's free distribution of Python for Windows, ActivePython, the electronic version of Dive into Python is included in the documentation file under "Helpful Resources". Very handy!
Read my blog.
Using Tkinter for a GUI is not as simple as I had hoped, but that's because the Python documentation doesn't cover much TK and I'm new to it - hence I need to learn that too.
If you like the more practical approach of books like this and always wanted to see what the fuss about Common Lisp is all about, then Practical Common Lisp is for you. The book isn't finished yet, but some chapters are already online for review.
Learn CL while writing a flexible MP3 database, a spam filter or a generic parser generator for binary files. How about a streaming MP3 server or a unit test framework? It's all in there without the boring stuff, which usually accompanies books like these.
-- The plural of 'anecdote' is not 'data'.
So here's the contents page from Google's cache:-
Dive Into Python Table Of Contents
It's not readable. 'string'.reverse() is more readable (but it doesn't work on strings, and it would reverse it "in place" anyway).
It works in Ruby exactly the way you wrote it!
What would you recommend for learning Python for almost absolute beginner (only little vey simple c; without understanding of object oriented programming)? And one more thing - written in very simple language (as you can tell from my errors, English is far from beeing my native languge...in which there are'nt any good Python books for begginers)
One that hath name thou can not otter
You guys discovered mod_python ?
Which now comes with PSP. That is, server side web scripting using
Python as the language. Similar in spirit to PHP, just using Python.
Amazingly much more fun than PHP.
Talking about how great Python can be, I imagined this kind of sites run on a more stable servers.
"and really, what truly 1337 book doesn't have one of these"
:)
Books written by Dvorak users, of course
Anyone know of libraries for creating printable reports with python in windows?
Right now for database clients apps for windows I am using java with jasper reports. I would not mind trying python with either QT or WXwindows but I need robust printable report creation in windows and I have not found an viable python solutions.
Reading them, one gets the feeling that its primary purpose is to allow the author to make some payments on a car or mortgage.
Unless we are talking about a book that really interests a LARGE portion of the geeks out there, the above statement is really missing the point. I don't know any technical book authors who do it for the money. I am certainly not writing for the money. Royalties are nice, but they are really small in the end, especially when you consider the time and effort that you put in writing technical books. In addition, think about the 'life expectancy' of a book that covers a technical topic - not much longer than firefly's.
Long story short, one doesn't write this type of stuff to make money, and Mark certainly didn't write Dive into Python for $$$ - I've had it bookmark in my Simpy account (URL in sig) for 6+ months now. I just wanted to get this straight, so there is no confusion. This may also be interesting to those considering writing a book on a technical topic.
Simpy
"For too many people, the "Why-to" is "because I heard you can make lots of money as a programmer". To answer this demand, colleges and universities churn out rank and file incompetent and ambivalent programmers, weilding their Microsoft inspired toolchest of Visual Basic 6 or MS Access, they flood the resume pool, and pollute the code base with their lazy half-hearted attempts at development, causing project failures and frustration on a massive scale and dramtically increasing the costs of corporate IT."
Gee I will never understand why people ruin an otherwise good post with a political agenda.
Here's a couple things for you.
1) Project failure, frustrations and cost overuns predate the VB and MS Access era. But it is nice to have a scapegoat, instead of looking at the real reasons.
2) There's nothing wrong with asking for money for your work. Disregard those whom are envious of you, and wish to bring you down by implying your a bad person for asking to get paid for your work (you'll hear things like "do it for the love").
There's another reason to learn it. Quite a few OSS programs have python as their scripting language.
Kind of hard to extend them without knowing it.
why didn't the author think to utilize NYU's Coral content distribution network (covered here on /. just a couple weeks ago) to keep the bandwidth off diveintopython.org? Now it's too late, since Coral can't access the site to get it in the cache.
--Justin
"Long story short, one doesn't write this type of stuff to make money, and Mark certainly didn't write Dive into Python for $$$ - I've had it bookmark in my Simpy account (URL in sig) for 6+ months now. I just wanted to get this straight, so there is no confusion. This may also be interesting to those considering writing a book on a technical topic."
I think a more insightful question about the human condition is. Why do people keep saying things like that? Is it ignorance? Is it envy? Is it apathy?
For all our talk about being an advanced species, sometimes we can be rather backwards.
i stopped reading after i read this from the book...
"Automatic datatyping is a double-edged sword. It's convenient, and it can be extremely powerful. But it places an additional burden on you to understand when and how Python coerces data into different types."
i can't code in a language that does this.
You should check out Structure and Interpretation of Computer Programs, published by MIT Press. It's available online at http://mitpress.mit.edu/sicp/
Toasted for now. Hope it's back later...
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
The funny thing: I've been reading this book online and in dlownoadet html since it had 4 chapters. And now I bought it through amazon.co.uk.
Open Source makes it easier to distinguish shit from cinnamon, that's why certain someone is so afraid.
python
I'd start with command line proceedural programming[1], which is likely what you were doing in C. You can write quite useful programs while ignoring 80% of the core language, and that should give you a good base to build on. Unfortunately I don't know any good tutorials.
...
[1]
i/o: input, print
flow control: if, while, for [...] in [...],
functions: def foo()
data types: strings, lists, tuples, dictionaries, numbers (don't worry about comprehensions)
operations on data: slicing, indexing
classes: just the basics. to some extent these function like C's structs.
This is enough to take you quite far in python.
http://www.artfiles.org/freebsd.org/distfiles/dive intopython/diveintopython-pdf-5.4.zip
It's probably flamebait, but here goes...
Instead of working for the man, Mark did what he wanted to do. Now the 'FLOSS-zealot' has written a well-respected book and the manager looks like a selfish loser.
I'd rather be a well-respected author than a manager with no imagination.
Seems like Mark decided to be the change he wanted in the world. Good for him.
My father is a blogger.
Drooling to give it a read, but can't get to the site? The previous link was to a version from 2002. If you go to google and search for anything along the lines of "diveintopython_5.4.orig.tar.gz" you'll find the May 20th, 2004 version is on many linux distro sites. Enjoy!
I wanna see the Python interpreter written in Brainfuck...
For those looking for some decent Python hosting (or PHP 5 even for that matter), I use http://www.a2webhosting.com/. They seem to know what they're doing.
My bias is towards Wing IDE (note 2.0 is still in beta tho).
You're right. Project failures did occur before Visual Basic and MS Access. But then again, so did all the tools inadequate for the jobs they were supposed to solve. As did wannabe programmers who never coded for fun.
If you do it for money, and money alone, you'll never become great at what you do. Good, possibly, but you'll never be *great*. That goes for all professions in life. 'Nuff said.
How am I a troll? I was asking how we can get rid of this stuff....
Scott
©20014 angrykeyboarder & Elmer Fudd. All Wights Wesewved
e of pi
You never know...
My thesis on programming books:
No matter how many books there are in a particular subject you can only find about 5 books that are good.
My colleauges thinks that 5 is an overestimation. Anyway, it's nice to hear about yet another good programming book. I'll make sure to check it out.
But i keep finding myself to use Perl at work all the time. Why? Well, i'm a sysadmin and all my colleagues have some knowledge of Perl as well, but no Python and they certainly don't have any interest in learning it. Even when looking for a job i have found the interviewer to act surprised when i say i prefer Python over Perl.
But no question about it, when i'm working on personal projects i go for Python all the time.
This book is excellent, although i used the 'learning Python' from O'Reilly and ofcourse the online documentation (which is also more then excellent!)
On a long enough timeline, the survival rate for everyone drops to zero.
I agree with the author of this review that this kind of book can be very useful and refreshing.
Giving props where due, this review reminds me of another book: "Learning Perl" by Larry Wall. Or actually maybe it's "Programming Perl" by Schwartz and Phoenix, but I'd guess Larry Wall to write the different kind of book. I know Python lovers will never, ever admit to any Perl roots, but the Perl book was very similar to "Diving into Python" in that it taught you by examples full of diverse concepts. Maybe this is where the author of the Diving book gots the idea?
(Also I followed the link in this review to regular expressions, and thought that Python-lovers should really love Perl since it makes this topic similar but even easier. Nyah nyah.)
P.S. Also the book "Programming Windows With MFC" by Prosise had a similar holistic approach. The Perl and MFC books are a couple of my favorites for that reason.
P.P.S. After Perl 4, though, it got so complicated that I never did use Perl 5. I did, however, learn a lot about objects by the way Perl 5 implemented them in a twisted new way. And that I didn't really need everything to be an object (another Python slam? You young kids should learn something from the old school now and then) I also learned that a "scripting" language can be as expressive as a complete language, which ruined all the fun.
Good programmers are too busy to write books.
I at least can understand the reason for enforcing whitespace as Python attempts to do, misguided as it is. But enforcing effectively incompatible forms of whitespacing? That is annoying.