Free books on Perl and Python



  • Beginning Perl

    Perl is an immensely popular scripting language that combines the best features of C, key UNIX utilities and a powerful use of regular expressions. It has a wide range of uses beyond simple text processing and is commonly used for web programming - creating and parsing CGI forms, validating HTML syntax and hyperlinks - as well as e-mail and Usenet news filtering. Perl is increasingly the system administrator's scripting language of choice and is used for file and directory manipulation, database access and a whole range of daily system operator chores.

    The book promotes the use of Perl as a programming language, encouraging the creation of legible and sensible programs so as to dispel the image of Perl as a confusing and obscure language. In other words: Don't worry, whatever your current experience level in the world of Perl, this book has something for you. It covers both basic and advanced aspects of Perl, Apache modPerl and Perlscript for use with Wintel systems and stresses the cross-platform nature of Perl, with extensive examples and techniques.

  • Learn to Program Using Python: A Tutorial for Hobbyists, Self-Starters - Learn to Program Using Python is based on a popular on-line tutorial that has been expanded and enhanced for this book. It takes you step-by-step through all the essential programming topics. The book introduces elements of programming style and offers a look at the thinking and steps involved in designing a software solution. Several sample applications illustrate techniques and ideas in action.
  • Learn Python the Hard Way: This simple book is meant to get you started in programming. The title says it's the hard way to learn to write code but it's actually not. It's only the "hard" way because it uses a technique called instruction. Instruction is where I tell you to do a sequence of controlled exercises designed to build a skill through repetition. This technique works very well with beginners who know nothing and need to acquire basic skills before they can understand more complex topics. It's used in everything from martial arts to music to even basic math and reading skills.
  • Computer Vision: Models, Learning, and Inference: With minimal prerequisites, the book starts from the basics of probability and model fitting and works up to real examples that the reader can implement and modify to build useful vision systems. Primarily meant for advanced undergraduate and graduate students, the detailed methodological presentation will also be useful for practitioners of computer vision.
  • The Science of Programming (Texts and Monographs in Computer Science): his is the very first book to discuss the theory and principles of computer programming on the basis of the idea that a proof of correctness and a program should be developed hand in hand. It is built around the method first proposed by Dijkstra in his monograph The Discipline of Programming (11976), involving a “calculus for the derivation of programs.” Directing his materials to the computer programmer with at least one year of experience, Gries presents explicit principles behind program development, and then leads the reader through example programs using those principles. Propositions and predicate calculus are presented as a took for the programmer, rather than simply an object of study. The reader should come away with a fresh outlook on programming theory and practice, and the assurance to develop correct programs effectively.
  • Learn Python The Hard Way: This book tells you how the hard way is actually the easy and the right way to learn Python.
  • A Byte of Python: 'A Byte of Python' is a free book on programming using the Python language. It serves as a tutorial or guide to the Python language for a beginner audience. If all you know about computers is how to save text files, then this is the book for you.
  • Ruby Best Practices: Practice Ruby is a website that started in 2010. It contains various articles on the Ruby Programming language, which have come from the community itself.
  • Learn to Program: This is the second edition of the original Learn to Program by Chris Pine. It has been updated with more current examples and has been writtent to suit the most recent version of the Ruby language.
  • Clever Algorithms: Implementing an Artificial Intelligence algorithm is difficult. Algorithm descriptions may be incomplete, inconsistent, and distributed across a number of papers, chapters and even websites. This can result in varied interpretations of algorithms, undue attrition of algorithms, and ultimately bad science.
  • Beginning Perl - Perl is the ever-popular, flexible, open source programming language that has been called the programmers' Swiss army knife. This book introduces Perl to both new programmers and experienced ones who are looking to learn a new language. In the tradition of the popular Wrox Beginning guides, it presents step-by-step guidance in getting started, a host of try-it-out exercises, real-world examples, and everything necessary for a Perl novice to start programming with confidence.
  • Mastering Perl, 2nd Edition - Take the next step toward Perl mastery with advanced concepts that make coding easier, maintenance simpler, and execution faster. Mastering Perl isn't a collection of clever tricks, but a way of thinking about Perl programming for solving debugging, configuration, and many other real-world problems you'll encounter as a working programmer.
  • Practical mod_perl - mod_perl is an Apache module that builds the power of the Perl programming language directly into the Apache web server. With mod_perl, CGI scripts run as much as 50 times faster, and you can integrate databases with the server, write Apache modules in Perl, embed Perl code directly into Apache configuration files, and even use Perl in server-side includes. With mod_perl, Apache is not only a web server, it is a complete programming platform.
  • Mason Developer Manual - While Mason can be used for tasks besides implementing a dynamic web site, that is what most people want to do with Mason, and is thus the focus of this manual.
  • Learning Perl the Hard Way - I want a book for people who already know how to program in another language, but don't know Perl. I want a book that gets through the basics as quickly as possible. I'm sick of reading about the precedence of operators; I want to know how to do the fun stuff. I want a book that emphasizes good programming style in Perl. Many of the Perl programs I have seen are written in a quick-and-dirty style; I wanted to see if the style I have developed in other languages can translate. In many Perl books, object-oriented programming is treated as an optional feature for advanced programming. I wanted to bring it closer to the center of focus (although I am anything but an object-oriented bigot).
  • Extreme Perl - This book is about a marriage of two compatible yet unlikely partners. Extreme Programming (XP) is a software development methodology that enables users, business people, programmers, and computers to communicate effectively. Perl is a dynamic programming language that lets an XP team embrace the inevitable change caused by effective communication. Perl is the fixer and doer of the pair, and XP is the organizer and facilitator. Together they help you build robust software applications efficiently. Like any good marriage, the partners of Extreme Perl support each other. For example, XP asks business people to write acceptance tests, and Perl lets the business people use their own language and tools for the tests. Much of Perl only happens when the program runs, and XP asks programmers to define what is supposed to happen in unit tests before they write the program. In this book, you'll see other examples where Perl reinforces XP and vice versa. This mutual support system is what makes Extreme Perl applications robust.
  • Web Client Programming with Perl - Automating Tasks on the Web
  • Python Imaging Library Handbook - The Python Imaging Library adds image processing capabilities to your Python interpreter. This library provides extensive file format support, an efficient internal representation, and fairly powerful image processing capabilities. The core image library is designed for fast access to data stored in a few basic pixel formats. It should provide a solid foundation for a general image processing tool.
  • GUI Programming with Python (currently not available) - This is the first book on Python and Qt. There have been quite a few books on C++ and Qt, but you would need to be fairly adept at mentally searching and replacing C++ language constructs to be able to use those books for pleasure and profit if your chosen language is Python. The same holds for the extensive html documentation that comes with the C++ Qt library. With the growing popularity of Python, PyQt and BlackAdder, people will start using these tools who don't want to translate C++ to Python to figure out what they are supposed to do. This is the first group of people for whom I've written this book: beginning software developers who have chosen Python because it allows them to become productive quickly with a language and an environment that have been designed to accommodate ‘subject specialists'. That is, people who need to get an application done to help them with their work, but who are not developers by profession.
  • A byte of Python (currently not available) - A Byte of Python is a book on programming using the Python language. It serves as a tutorial or guide to the Python language for anyone. If all you know is how to save text files, then this is an ideal beginner's book for you. If you are an expert programmer who loves C, Perl, Java or C#, you can also learn Python using this book.
  • Beginning Perl - This book is for those new to programming who want to learn with Perl. You will find it easier if you already have some basic programming experience, but the material covered can be mastered by anyone with just a text editor, some common sense and a computer. If you want to learn how to program with Perl and then find out far you can go with it, this is the book for you. An excellent companion on any programming course.
  • How to Think Like a Computer Scientist: Learning with Python - This book owes its existence to the collaboration made possible by the Internet and the free software movement. Its three authors a college professor, a high school teacher, and a professional programmer have yet to meet face to face, but we have been able to work closely together and have been aided by many wonderful folks who have donated their time and energy to helping make this book better. We think this book is a testament to the benefits and future possibilities of this kind of collaboration, the framework for which has been put in place by Richard Stallman and the Free Software Foundation.
  • Dive Into Python - The first thing you need to do with Python is install it. Or do you? If you're using an account on a hosted server, your ISP may have already installed Python. Most popular Linux distributions come with Python in the default install. Mac OS X 10.2 and later includes a command-line version of Python, although you'll probably want to install a version that includes a more Mac-like graphical interface. Windows does not come with any version of Python. But don't despair! There are several ways to point-and-click your way to Python on Windows.
  • Thinking in Python - This is not an introductory Python book. This book assumes you've learned the basics of Python elsewhere.
  • Perl for the Web - Perl for the Web is a book I wrote that was published by New Riders in August 2001. It provides tools and strategies to improve the performance of existing Web applications in Perl. It also provides principles and ideas that help Web programmers create an extensible framework for future growth.
  • Text Processing in Python - At the broadest level text processing is simply taking textual information and -doing something- with it. This doing might be restructuring or reformatting it, extracting smaller bits of information from it, algorithmically modifying the content of the information, or performing calculations that depend on the textual information. The lines between "text" and the even more general term "data" are extremely fuzzy; at an approximation, "text" is just data that lives in forms that people can themselves read--at least in principle, and maybe with a bit of effort. Most typically computer "text" is composed of sequences of bits which have a "natural" representation as letters, numerals and symbols; and most often such text is delimited (if delimited at all) by symbols and formatting that can be easily pronounced as "next datum."
  • Perl Design Patterns Book - Perl Design Patterns documents Perl style and design/analysis. Design Patterns are a hands-on, pragmatic object oriented approach, in contrast to the vague, theory ridden texts IT is plagued with.
  • Embedding Perl in HTML with Mason - Mason is a tool for embedding the Perl programming language into text, in order to create text dynamically, most often in HTML. But Mason does not simply stop at HTML. It can just as easily create XML, WML, POD, configuration files, or the complete works of Shakespeare.
  • PHP Editors! Programming Tools for PHP! PHP, stood originally for personal home page. PHP Hypertext Preprocessor is a web development language, which deals with server side scripting. This free book download contains a concise language reference and then five detailed projects with PHP. The chapters are well organized with code and output screenshots’ in the middle for easy reference and comprehension. Informative appendices are at the end. This free book is good for reference and gaining experience with real time projects for medium level PHP users.
  • Python Tutorials
  • Learning to Program web tutor! - Become computer savie, yet do not have the true idea how programs you use are constructed? “Learning to Program Web Tutor” introduces the experienced computer user to the world of programming through simple explanation terms the new programmer can understand. Has general introduction to computer programming, its varied history, problem solving techniques and reasoning behind different programming concepts.