Joel on Software


Joel Spolsky - 2004
    For years, Joel Spolsky has done exactly this at www.joelonsoftware.com. Now, for the first time, you can own a collection of the most important essays from his site in one book, with exclusive commentary and new insights from joel.

Code: The Hidden Language of Computer Hardware and Software


Charles Petzold - 1999
    And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries. Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines. It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.

Get Your Hands Dirty on Clean Architecture: A hands-on guide to creating clean web applications with code examples in Java


Tom Hombergs - 2019
    

Beginning Programming All-In-One Desk Reference for Dummies


Wallace Wang - 2007
    If programming intrigues you (for whatever reason), Beginning Programming All-In-One Desk Reference For Dummies is like having a starter programming library all in one handy, if hefty, book.In this practical guide, you'll find out about algorithms, best practices, compiling, debugging your programs, and much more. The concepts are illustrated in several different programming languages, so you'll get a feel for the variety of languages and the needs they fill.Inside you'll discover seven minibooks:Getting Started: From learning methods for writing programs to becoming familiar with types of programming languages, you'll lay the foundation for your programming adventure with this minibook. Programming Basics: Here you'll dive into how programs work, variables, data types, branching, looping, subprograms, objects, and more. Data Structures: From structures, arrays, sets, linked lists, and collections, to stacks, queues, graphs, and trees, you'll dig deeply into the data. Algorithms: This minibook shows you how to sort and search algorithms, how to use string searching, and gets into data compression and encryption. Web Programming: Learn everything you need to know about coding for the web: HyperText. Markup Language (better known simply as HTML), CSS, JavaScript, PHP, and Ruby. Programming Language Syntax: Introduces you to the syntax of various languages - C, C++, Java, C#, Perl, Python, Pascal, Delphi, Visual Basic, REALbasic - so you know when to use which one. Applications: This is the fun part where you put your newly developed programming skills to work in practical ways. Additionally, Beginning Programming All-In-One Desk Reference For Dummies shows you how to decide what you want your program to do, turn your instructions into "machine language" that the computer understands, use programming best practices, explore the "how" and "why" of data structuring, and more. And you'll get a look into various applications like database management, bioinformatics, computer security, and artificial intelligence. After you get this book and start coding, you'll soon realize that -- wow! You're a programmer!

Programming C#


Jesse Liberty - 2001
    Pursuing that vision, C#'s designers succeeded in creating a safe, simple, component-based, high-performance language that works effectively with Microsoft's .NET Framework. Now the favored language among those programming for the Microsoft platform, C# continues to grow in popularity as more developers discover its strength and flexibility. And, from the start, C# developers have relied on Programming C# both as an introduction to the language and a means of further building their skills. The fourth edition of Programming C#--the top-selling C# book on the market--has been updated to the C# ISO standard as well as changes to Microsoft's implementation of the language. It also provides notes and warnings on C# 1.1 and C# 2.0. Aimed at experienced programmers and web developers, Programming C#, 4th Edition, doesn't waste too much time on the basics. Rather, it focuses on the features and programming patterns unique to the C# language. New C# 2005 features covered in-depth include:Visual Studio 2005GenericsCollection interfaces and iteratorsAnonymous methodsNew ADO.NET data controlsFundamentals of Object-Oriented ProgrammingAuthor Jesse Liberty, an acclaimed web programming expert and entrepreneur, teaches C# in a way that experienced programmers will appreciate by grounding its applications firmly in the context of Microsoft's .NET platform and the development of desktop and Internet applications. Liberty also incorporates reader suggestions from previous editions to help create the most consumer-friendly guide possible.

Distributed Systems: Principles and Paradigms


Andrew S. Tanenbaum - 2001
    Programmers, developers, and engineers need to understand the underlying principles and paradigms as well as the real-world application of those principles. Now, internationally renowned expert Andrew S. Tanenbaum – with colleague Martin van Steen – presents a complete introduction that identifies the seven key principles of distributed systems, with extensive examples of each.Adds a completely new chapter on architecture to address the principle of organizing distributed systems. Provides extensive new material on peer-to-peer systems, grid computing and Web services, virtualization, and application-level multicasting. Updates material on clock synchronization, data-centric consistency, object-based distributed systems, and file systems and Web systems coordination.For all developers, software engineers, and architects who need an in-depth understanding of distributed systems.

Working Effectively with Legacy Code


Michael C. Feathers - 2004
    This book draws on material Michael created for his renowned Object Mentor seminars, techniques Michael has used in mentoring to help hundreds of developers, technical managers, and testers bring their legacy systems under control. The topics covered include: Understanding the mechanics of software change, adding features, fixing bugs, improving design, optimizing performance Getting legacy code into a test harness Writing tests that protect you against introducing new problems Techniques that can be used with any language or platform, with examples in Java, C++, C, and C# Accurately identifying where code changes need to be made Coping with legacy systems that aren't object-oriented Handling applications that don't seem to have any structureThis book also includes a catalog of twenty-four dependency-breaking techniques that help you work with program elements in isolation and make safer changes.

Fluent Python: Clear, Concise, and Effective Programming


Luciano Ramalho - 2015
    With this hands-on guide, you'll learn how to write effective, idiomatic Python code by leveraging its best and possibly most neglected features. Author Luciano Ramalho takes you through Python's core language features and libraries, and shows you how to make your code shorter, faster, and more readable at the same time.Many experienced programmers try to bend Python to fit patterns they learned from other languages, and never discover Python features outside of their experience. With this book, those Python programmers will thoroughly learn how to become proficient in Python 3.This book covers:Python data model: understand how special methods are the key to the consistent behavior of objectsData structures: take full advantage of built-in types, and understand the text vs bytes duality in the Unicode ageFunctions as objects: view Python functions as first-class objects, and understand how this affects popular design patternsObject-oriented idioms: build classes by learning about references, mutability, interfaces, operator overloading, and multiple inheritanceControl flow: leverage context managers, generators, coroutines, and concurrency with the concurrent.futures and asyncio packagesMetaprogramming: understand how properties, attribute descriptors, class decorators, and metaclasses work"

Rails Antipatterns: Best Practice Ruby on Rails Refactoring


Chad Pytel - 2010
     Rails(TM) AntiPatterns identifies these widespread Rails code and design problems, explains why they're bad and why they happen--and shows exactly what to do instead.The book is organized into concise, modular chapters--each outlines a single common AntiPattern and offers detailed, cookbook-style code solutions that were previously difficult or impossible to find. Leading Rails developers Chad Pytel and Tammer Saleh also offer specific guidance for refactoring existing bad code or design to reflect sound object-oriented principles and established Rails best practices. With their help, developers, architects, and testers can dramatically improve new and existing applications, avoid future problems, and establish superior Rails coding standards throughout their organizations.This book will help you understand, avoid, and solve problems withModel layer code, from general object-oriented programming violations to complex SQL and excessive redundancy Domain modeling, including schema and database issues such as normalization and serialization View layer tools and conventions Controller-layer code, including RESTful code Service-related APIs, including timeouts, exceptions, backgrounding, and response codes Third-party code, including plug-ins and gems Testing, from test suites to test-driven development processes Scaling and deployment Database issues, including migrations and validations System design for "graceful degradation" in the real world

Foundations of Software Testing: ISTQB Certification


Dorothy Graham - 2006
    The coverage also features learning aids.

A Software Engineer Learns HTML5, JavaScript and jQuery


Dane Cameron - 2013
    Due to their monopoly position in web browsers, and the fact web browsers have spread from PCs to phones, tablets and TVs; their status will continue to grow and grow. Despite their success, many software engineers are apprehensive about JavaScript and HTML. This apprehensiveness is not completely unfounded; both JavaScript and HTML were rushed in their early years, and driven by commercial rather than engineering interests. As a result, many dubious features crept into these languages. Due to backwards compatibility concerns, most of these features still remain. In addition, many software engineers have used these languages without ever learning them. JavaScript and HTML have low barriers to entry, and this, along with their similarity to other languages, led many software engineers to conclude that there really was nothing much to learn. If you have not used JavaScript and HTML for a number of years, or if you are a programmer or software engineer using other languages, you may be surprised at what they now offer. Browser based web applications are now capable of matching or exceeding the sophistication and scale of traditional desktop applications. In order to create complex web applications however, it is essential to learn these languages. This book takes the point of view that once you have a strong grasp of the fundamentals, the details will take care of themselves. It will not present you with long lists of APIs, or intricate details of every attribute, these can be found in reference manuals. It will focus on the details of each language that are fundamental to understanding how they work. This book will guide you through the process of developing a web application using HTML5, Javascript, jQuery and CSS. It contains the following content: 1. An introduction to the HTML5 markup language, and how it differs from HTML4 and XHTML. 2. An introduction to JavaScript, including an in-depth look at its use of objects and functions, along with the design patterns that support the development of robust web applications. 3. An introduction to jQuery selection, traversal, manipulation and events. 4. An in-depth look at the Web storage and IndexedDB APIs for client side data storage. 5. A guide to implementing offline web applications with the Application Cache API. 6. An introduction to the ways JavaScript can interact with the users file-system using the FileReader API. 7. The use of Web Workers in a web application to execute algorithms on background threads. 8. An introduction to AJAX, and the jQuery API supporting AJAX. 9. An introduction to Server Sent Events and Web Sockets. All subjects are introduced in the context of a sample web application. This book is intended for anyone with at least a superficial knowledge of HTML and programming.

Being Geek: The Software Developer's Career Handbook


Michael Lopp - 2010
    Is it time to become a manager? Tell your boss he’s a jerk? Join that startup? Author Michael Lopp recalls his own make-or-break moments with Silicon Valley giants such as Apple, Netscape, and Symantec in Being Geek -- an insightful and entertaining book that will help you make better career decisions.With more than 40 standalone stories, Lopp walks through a complete job life cycle, starting with the job interview and ending with the realization that it might be time to find another gig. Many books teach you how to interview for a job or how to manage a project successfully, but only this book helps you handle the baffling circumstances you may encounter throughout your career.Decide what you're worth with the chapter on "The Business"Determine the nature of the miracle your CEO wants with "The Impossible"Give effective presentations with "How Not to Throw Up"Handle liars and people with devious agendas with "Managing Werewolves"Realize when you should be looking for a new gig with "The Itch"

PostgreSQL: Up and Running


Regina O. Obe - 2012
    Not only will you learn about the enterprise class features in the 9.2 release, you’ll also discover that PostgeSQL is more than just a database system—it’s also an impressive application platform.With numerous examples throughout this book, you’ll learn how to achieve tasks that are difficult or impossible in other databases. If you’re an existing PostgreSQL user, you’ll pick up gems you may have missed along the way.Learn basic administration tasks, such as role management, database creation, backup, and restoreApply the psql command-line utility and the pgAdmin graphical administration toolExplore PostgreSQL tables, constraints, and indexesLearn powerful SQL constructs not generally found in other databasesUse several different languages to write database functionsTune your queries to run as fast as your hardware will allowQuery external and variegated data sources with Foreign Data WrappersLearn how to replicate data, using built-in replication features

Pro ASP.NET MVC 5


Adam Freeman - 2013
    It provides a high-productivity programming model that promotes cleaner code architecture, test-driven development, and powerful extensibility, combined with all the benefits of ASP.NET.ASP.NET MVC 5 contains a number of advances over previous versions, including the ability to define routes using C# attributes and the ability to override filters. The user experience of building MVC applications has also been substantially improved. The new, more tightly integrated, Visual Studio 2013 IDE has been created specifically with MVC application development in mind and provides a full suite of tools to improve development times and assist in reporting, debugging and deploying your code. The popular Bootstrap JavaScript library has also now been included natively within MVC 5 providing you, the developer, with a wider range of multi-platform CSS and HTML5 options than ever before without the penalty of having to load-in third party libraries. What you�ll learn Gain a solid architectural understanding of ASP.NET MVC 5 Explore the entire ASP.NET MVC Framework as a cohesive whole Learn what's new in version 5 and how best to apply these new features to your own work See how MVC and test-driven development work in action Capitalize on your existing knowledge quickly and easily through comparison of features in classic ASP.NET to those in ASP.NET MV Who this book is for This book is for web developers with a basic knowledge of ASP.NET and C#who want, or need, to start using the new ASP.NET MVC 5 Framework.

Access 2010: The Missing Manual


Matthew MacDonald - 2010
    With this book’s easy step-by-step process, you’ll quickly learn how to build and maintain a complete Access database, using Access 2013’s new, simpler user interface and templates. You also get practices and tips from the pros for good database design—ideal whether you’re using Access for school, business, or at home.The important stuff you need to know:Build a database with ease. Store information to track numbers, products, documents, and more.Customize the interface. Build your own forms to make data entry a snap.Find what you need fast. Search, sort, and summarize huge amounts of information.Put your data to use. Turn raw info into printed reports with attractive formatting.Share your data. Collaborate online with SharePoint and the Access web database.Dive into Access programming. Get tricks and techniques to automate common tasks.Create rich data connections. Build dynamic links with SQL Server, SharePoint, and other systems.