Computer ScienceScience & MathematicsEconomics & FinanceBusiness & ManagementPolitics & GovernmentHistoryPhilosophy
Confessions of an IT Manager
From IT projects that have trampled all over the guiding principles of successful development, to tips on training your manager to the required standard, each of Phil's tales is shot through with a wild seam of anarchic humour. And yet, in each case, the humor is just a sugar coating for a pill of sage advice, wrought from years of rough-and-t...
Optimizing software in C++
This is an optimization manual for advanced C++ programmers. This book are not for beginners. Topics include: - The choice of platform and operating system. - Choice of compiler and framework. - Finding performance bottlenecks. - The efficiency of different C++ constructs. - Multi-core systems. - Parallelization with vector operations. - CPU dispa...
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
This book takes a single line of code - the extremely concise BASIC program for the Commodore 64 inscribed in the title - and uses it as a lens through which to consider the phenomenon of creative computing and the way computer programs exist in culture. The authors of this collaboratively written book treat code not as merely functional but as a t...
Learning Zeromq
Even connecting a few programs across a few sockets is plain nasty when you start to handle real life situations. Trillions? The cost would be unimaginable. Connecting computers is so difficult that software and services to do this is a multi-billion dollar business. So today we're still connecting applications using raw UDP and TCP, proprieta...
The Unicode Cookbook for Linguists
This text is a practical guide for linguists, and programmers, who work with data in multilingual computational environments. We introduce the basic concepts needed to understand how writing systems and character encodings function, and how they work together at the intersection between the Unicode Standard and the International Phonetic Alphabet. ...
Mercurial: The Definitive Guide
This instructive book takes you step by step through ways to track, merge, and manage both open source and commercial software projects with Mercurial, using Windows, Mac OS X, Linux, Solaris, and other systems. Mercurial is the easiest system to learn when it comes to distributed revision control. And it's a very flexible tool that's ide...
Ruby Best Practices
How do you write truly elegant code with Ruby? Ruby Best Practices is for programmers who want to use Ruby as experienced Rubyists do. Written by the developer of the Ruby project Prawn, this concise book explains how to design beautiful APIs and domain-specific languages with Ruby, as well as how to work with functional programming ideas and techn...
A Rust Sampler
Thread-safe, reliable, and lightning-fast, Rust has been the most loved programming language on Stack Overflow for four years and counting! This open source systems language gets its amazing speed in large part from its memory safety - and without resource-greedy garbage collection. Offering freedom from a runtime requirement, a rich type system, a...
Object-oriented Programming in C#
This is a teaching material about object-oriented programming, illustrated with use of the programming language C#. It is assumed, as a prerequisite, that the readers have some knowledge about imperative programming, preferably knowledge about C. I believe that it is best to learn object-oriented programming after having learned and worked w...
Data Parallel C++
Learn how to accelerate C++ programs using data parallelism. This open book enables C++ programmers to be at the forefront of this exciting and important new development that is helping to push computing to new levels. It is full of practical advice, detailed explanations, and code examples to illustrate key topics. Data parallelism in C++ enables...
The CSS Handbook
CSS, a shorthand for Cascading Style Sheets, is one of the main building blocks of the Web. Its history goes back to the 90's and along with HTML it has changed a lot since its humble beginnings. This handbook is aimed at a vast audience. - First, the beginner. I explain CSS from zero in a succinct but comprehensive way, so you can use thi...
Create Graphical User Interfaces with Python
Add buttons, boxes, pictures and colours and more to your Python programs using the guizero library, which is quick, accessible, and understandable for all. This 156-page book is suitable for everyone, from beginners to experienced Python programmers who want to explore graphical user interfaces (GUIs). There are ten fun projects for you to c...
Python for You and Me
This is a simple open book to learn Python programming language, it is for the programmers who are new to Python. Python is an interpreted, high-level and general-purpose programming language. Python consistently ranks as one of the most popular programming languages. Large organizations that use Python include Wikipedia, Google, Yahoo, CERN, NA...
Think OCaml
How to Think Like a Computer Scientist is an introductory programming book based on the OCaml language. It is a modified version of Think Python by Allen Downey. It is intended for newcomers to programming and also those who know some programming but want to learn programming in the function-oriented paradigm, or those who simply want to learn OCam...
Java 3D Programming
Java 3D Programming steps programmers through the important design and implementation phases of developing a successful Java 3D application. The book provides invaluable guidance on whether to use Java 3D, user interface design, geometry creation, scene manipulation and final optimizations. The book does not attempt to exhaustively cover the API or...
OOP - Learn Object Oriented Thinking and Programming
You can find a whole range of programming textbooks intended for complete beginners. However, this one is exceptional to certain extent. The whole textbook is designed as a record of the dialogue of the author with his daughter who wants to learn programming. The author endeavors not to explain the Java programming language to the readers, but to t...
JavaScript Bible
Greatly enhanced and updated from the third edition, this is the title any JavaScripter cannot afford to be without! JavaScript Bible, 4th Edition covers the new powerful functionality JavaScript will gain with the release of new revs of Internet Explorer and Netscape Communicator. This book features essential new JS information, additional ready-t...
Assemblers And Loaders
Covering the design and implementation of assemblers and loaders, this comprehensive book opens with an introduction to one-pass and two-pass assemblers. Important concepts such as absolute and relocatable object files are discussed, as are assembler features such as local labels and multiple location counters. The format, meaning and implementatio...
Fundamentals of Computer Programming with C#
This open book aims to provide novice programmers solid foundation of basic knowledge regardless of the programming language. This book covers the fundamentals of programming that have not changed significantly over the last 10 years. Educational content was developed by an authoritative author team led by Svetlin Nakov from the Software University...
Debugging with GDB
The GNU Debugger allows you to see what is going on "inside" a program while it executes - or what a program was doing at the moment it crashed. GDB supports C, C++, Java, Fortran and Assembly among other languages; it is also designed to work closely with the GNU Compiler Collection (GCC). The GNU Debugger Program has four special featur...
Deep Learning for Coders with Fastai and PyTorch
Deep learning is often viewed as the exclusive domain of math PhDs and big tech companies. But as this hands-on guide demonstrates, programmers comfortable with Python can achieve impressive results in deep learning with little math background, small amounts of data, and minimal code. How? With fastai, the first library to provide a consistent inte...
Patterns for Beginning Programmers
Programming patterns are solutions to problems that require the creation of a small fragment of code that will be part of a larger program. Hence, this book is about teaching you how to write such fragments of code. However, it is not about teaching you the syntax of the statements in the fragments, it assumes that you already know the syntax. Inst...
The Julia Express
Julia is a high-level, dynamic programming language. Its features are well suited for numerical analysis and computational science. Julia works with other languages (C, Python, R, Rust, C++, SQL, JavaScript, ...) The Purpose of this open book is to introduce programmers to the Julia programming by example. This is a simplified exposition of the l...
C++ Today
Now that software development is shifting primarily toward mobile and cloud computing, the venerable C++ programming language is returning to the dominant position it held during the object-oriented boom of the 1990s. In this O'Reilly report, you'll learn why C++ is once again the preferred choice across several diverse industries, after ...
Clojure In Small Pieces
Rich Hickey invented Clojure. This is a fork of the project to experiment with literate programming as a development and documentation technology. Clojure is a break with the past traditions of Lisp. This literate fork is a break with the past traditions of code development. As such it is intended as an experiment, not a replacement or competiti...

1 2