preface.asciidoc 4.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. [[preface]]
  2. [preface]
  3. == Preface
  4. Python is probably one of the few programming languages which is both simple and powerful. This is
  5. good for beginners as well as for experts, and more importantly, is fun to program with. This book
  6. aims to help you learn this wonderful language and show how to get things done quickly and
  7. painlessly - in effect 'The Anti-venom to your programming problems'.
  8. === Who This Book Is For
  9. This book serves as a guide or tutorial to the Python programming language. It is mainly targeted
  10. at newbies. It is useful for experienced programmers as well.
  11. The aim is that if all you know about computers is how to save text files, then you can learn
  12. Python from this book. If you have previous programming experience, then you can also learn Python
  13. from this book.
  14. If you do have previous programming experience, you will be interested in the differences between
  15. Python and your favorite programming language - I have highlighted many such differences. A little
  16. warning though, Python is soon going to become your favorite programming language!
  17. [[history_lesson]]
  18. === History Lesson
  19. I first started with Python when I needed to write an installer for software I had written called
  20. 'Diamond' so that I could make the installation easy. I had to choose between Python and Perl
  21. bindings for the Qt library. I did some research on the web and I came across
  22. http://www.python.org/about/success/esr/[an article by Eric S. Raymond], a famous and respected
  23. hacker, where he talked about how Python had become his favorite programming language. I also found
  24. out that the PyQt bindings were more mature compared to Perl-Qt. So, I decided that Python was the
  25. language for me.
  26. Then, I started searching for a good book on Python. I couldn't find any! I did find some O'Reilly
  27. books but they were either too expensive or were more like a reference manual than a guide. So, I
  28. settled for the documentation that came with Python. However, it was too brief and small. It did
  29. give a good idea about Python but was not complete. I managed with it since I had previous
  30. programming experience, but it was unsuitable for newbies.
  31. About six months after my first brush with Python, I installed the (then) latest Red Hat 9.0 Linux
  32. and I was playing around with KWord. I got excited about it and suddenly got the idea of writing
  33. some stuff on Python. I started writing a few pages but it quickly became 30 pages long. Then, I
  34. became serious about making it more useful in a book form. After a _lot_ of rewrites, it has
  35. reached a stage where it has become a useful guide to learning the Python language. I consider
  36. this book to be my contribution and tribute to the open source community.
  37. This book started out as my personal notes on Python and I still consider it in the same way,
  38. although I've taken a lot of effort to make it more palatable to others :)
  39. In the true spirit of open source, I have received lots of constructive suggestions, criticisms and
  40. <<who_reads_bop,feedback>> from enthusiastic readers which has helped me improve this book a lot.
  41. === Status Of The Book
  42. - Latest update of this book was in Mar-Apr 2014, converted to
  43. http://asciidoctor.org/docs/what-is-asciidoc/[Asciidoc] using
  44. http://swaroopch.com/2013/10/17/emacs-configuration-tutorial/[Emacs 24] and
  45. https://github.com/sensorflo/adoc-mode/wiki[adoc-mode].
  46. - In Dec 2008, the book was updated for the Python 3.0 release (one of the first books to do
  47. so). But now, I have converted the book back for Python 2 language because readers would often
  48. get confused between the default Python 2 installed on their systems vs. Python 3 which they had
  49. to separately install and all the tooling, esp. editors would assume Python 2 as well. I had a
  50. hard time justifying why I had to aggravate readers and make them go through all this when the
  51. fact is that they can learn either one and it would be just as useful. So, Python 2 it is.
  52. The book needs the help of its readers such as yourselves to point out any parts of the book which
  53. are not good, not comprehensible or are simply wrong. Please {contact}[write to the main author] or
  54. the respective <<translations,translators>> with your comments and suggestions.
  55. === Official Website
  56. The official website of the book is {homepage} where you can read the whole book online, download
  57. the latest versions of the book, {buy}[buy a printed hard copy] and also send me feedback.
  58. === Something To Think About
  59. [quote,C. A. R. Hoare]
  60. __________________________________________________
  61. There are two ways of constructing a software design: one way is to make it so simple that there
  62. are obviously no deficiencies; the other is to make it so complicated that there are no obvious
  63. deficiencies.
  64. __________________________________________________
  65. [quote,C. W. Wendte]
  66. __________________________________________________
  67. Success in life is a matter not so much of talent and opportunity as of concentration and
  68. perseverance.
  69. __________________________________________________