Game Coding Complete


Mike McShaffry - 2003
    The best description of the first edition comes from two Amazon reviewers; the first proclaiming, "I got the same feeling of enlightenment when reading this one as I did all those years ago when I read the classic book "Code Complete" and the second stating "This is the first game book I have read that I was sorry when I got to the end because there wasn't any more."For Game Coding Complete, Second Edition, McShaffry returns with many more of his highly popular, shoot-from the hips war stories and expert game programming insight that only a real insider could provide. McShaffry uses his experience as a leading programmer for Origin Systems, Microsoft, and Ion Storm a division of Eidos, to illustrate real-world techniques and solutions, including examples from his recent work on the major game, Thief Deadly Shadows. Game Coding Complete, Second Edition takes programmers through the complete process of developing a professional quality game using hundreds of insider tricks and techniques developed and perfect by the author from over a decade of game development experience. It covers a range of topics that will appeal to the most discriminating programmers such as key "gotcha" issues that could trip up even veteran programmers. The new edition features expanded coverage of 3D programming, several new chapters on game interface design, game audio, game scripting, game engine technology, code optimization, production and scheduling, plus it now includes a CD-ROM packed with valuable source code and game development tools. The appendix offers solid advice on starting your own game company. The C++ language is used to explain specific programming concepts with added discussion of development with C# and Managed DirectX programming.

Effective JavaScript: 68 Specific Ways to Harness the Power of JavaScript


David Herman - 2012
    His walk through the syntax and semantics of JavaScript is both charming and hugely insightful; reminders of gotchas complement realistic use cases, paced at a comfortable curve. You'll find when you finish the book that you've gained a strong and comprehensive sense of mastery." --Paul Irish, developer advocate, Google Chrome "This is not a book for those looking for shortcuts; rather it is hard-won experience distilled into a guided tour. It's one of the few books on JS that I'll recommend without hesitation." --Alex Russell, TC39 member, software engineer, Google In order to truly master JavaScript, you need to learn how to work effectively with the language's flexible, expressive features and how to avoid its pitfalls. No matter how long you've been writing JavaScript code, Effective JavaScript will help deepen your understanding of this powerful language, so you can build more predictable, reliable, and maintainable programs. Author David Herman, with his years of experience on Ecma's JavaScript standardization committee, illuminates the language's inner workings as never before--helping you take full advantage of JavaScript's expressiveness. Reflecting the latest versions of the JavaScript standard, the book offers well-proven techniques and best practices you'll rely on for years to come. Effective JavaScript is organized around 68 proven approaches for writing better JavaScript, backed by concrete examples. You'll learn how to choose the right programming style for each project, manage unanticipated problems, and work more successfully with every facet of JavaScript programming from data structures to concurrency. Key features include Better ways to use prototype-based object-oriented programming Subtleties and solutions for working with arrays and dictionary objects Precise and practical explanations of JavaScript's functions and variable scoping semantics Useful JavaScript programming patterns and idioms, such as options objects and method chaining In-depth guidance on using JavaScript's unique "run-to-completion" approach to concurrency

The Quick Python Book


Naomi R. Ceder - 2000
    This updated edition includes all the changes in Python 3, itself a significant shift from earlier versions of Python.The book begins with basic but useful programs that teach the core features of syntax, control flow, and data structures. It then moves to larger applications involving code management, object-oriented programming, web development, and converting code from earlier versions of Python.True to his audience of experienced developers, the author covers common programming language features concisely, while giving more detail to those features unique to Python.Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book.

Why's (Poignant) Guide to Ruby


Why The Lucky Stiff - 2005
    It won’t crush you. It’s light as a feather (because I haven’t finished it yet—hehe). And there’s a reason this book will stay light: because Ruby is simple to learn.[Why’s (Poignant) Guide to Ruby is released under the Attribution-ShareAlike License. So, yes, please distribute it and print it and read it leisurely in your housecoat.]

The C# Programming Yellow Book


Rob Miles - 2010
    With jokes, puns, and a rigorous problem solving based approach. You can download all the code samples used in the book from here: http://www.robmiles.com/s/Yellow-Book...

Django for Beginners: Learn web development with Django 2.0


William S. Vincent - 2018
    Proceed step-by-step through five progressively more complex web applications: from a "Hello World" app all the way to a robust Newspaper app with a custom user model, complete user authentication flow, foreign key relationships, and more. Learn current best practices around class-based views, templates, urls, user authentication, testing, and deployment. The material is up-to-date with the latest versions of both Django (2.0) and Python (3.6). TABLE OF CONTENTS: * Introduction * Chapter 1: Initial Setup * Chapter 2: Hello World app * Chapter 3: Pages app * Chapter 4: Message Board app * Chapter 5: Blog app * Chapter 6: Forms * Chapter 7: User Accounts * Chapter 8: Custom User Model * Chapter 9: User Authentication * Chapter 10: Bootstrap * Chapter 11: Password Change and Reset * Chapter 12: Email * Chapter 13: Newspaper app * Chapter 14: Permissions and Authorizations * Chapter 15: Comments * Conclusion

Eloquent Ruby


Russ Olsen - 2011
    In Eloquent Ruby, Russ Olsen helps you write Ruby like true Rubyists do-so you can leverage its immense, surprising power. Olsen draws on years of experience internalizing the Ruby culture and teaching Ruby to other programmers. He guides you to the "Ah Ha!" moments when it suddenly becomes clear why Ruby works the way it does, and how you can take advantage of this language's elegance and expressiveness. Eloquent Ruby starts small, answering tactical questions focused on a single statement, method, test, or bug. You'll learn how to write code that actually looks like Ruby (not Java or C#); why Ruby has so many control structures; how to use strings, expressions, and symbols; and what dynamic typing is really good for. Next, the book addresses bigger questions related to building methods and classes. You'll discover why Ruby classes contain so many tiny methods, when to use operator overloading, and when to avoid it. Olsen explains how to write Ruby code that writes its own code-and why you'll want to. He concludes with powerful project-level features and techniques ranging from gems to Domain Specific Languages. A part of the renowned Addison-Wesley Professional Ruby Series, Eloquent Ruby will help you "put on your Ruby-colored glasses" and get results that make you a true believer.

Introduction to the Theory of Computation


Michael Sipser - 1996
    Sipser's candid, crystal-clear style allows students at every level to understand and enjoy this field. His innovative "proof idea" sections explain profound concepts in plain English. The new edition incorporates many improvements students and professors have suggested over the years, and offers updated, classroom-tested problem sets at the end of each chapter.

Designing Games


Tynan Sylvester - 2013
    You’ll learn principles and practices for crafting games that generate emotionally charged experiences—a combination of elegant game mechanics, compelling fiction, and pace that fully immerses players.In clear and approachable prose, design pro Tynan Sylvester also looks at the day-to-day process necessary to keep your project on track, including how to work with a team, and how to avoid creative dead ends. Packed with examples, this book will change your perception of game design.Create game mechanics to trigger a range of emotions and provide a variety of playExplore several options for combining narrative with interactivityBuild interactions that let multiplayer gamers get into each other’s headsMotivate players through rewards that align with the rest of the gameEstablish a metaphor vocabulary to help players learn which design aspects are game mechanicsPlan, test, and analyze your design through iteration rather than deciding everything up frontLearn how your game’s market positioning will affect your design

Threat Modeling: Designing for Security


Adam Shostack - 2014
    Dobbs Jolt Award Finalist since Bruce Schneier's Secrets and Lies and Applied Cryptography!Adam Shostack is responsible for security development lifecycle threat modeling at Microsoft and is one of a handful of threat modeling experts in the world. Now, he is sharing his considerable expertise into this unique book. With pages of specific actionable advice, he details how to build better security into the design of systems, software, or services from the outset. You'll explore various threat modeling approaches, find out how to test your designs against threats, and learn effective ways to address threats that have been validated at Microsoft and other top companies.Systems security managers, you'll find tools and a framework for structured thinking about what can go wrong. Software developers, you'll appreciate the jargon-free and accessible introduction to this essential skill. Security professionals, you'll learn to discern changing threats and discover the easiest ways to adopt a structured approach to threat modeling.Provides a unique how-to for security and software developers who need to design secure products and systems and test their designs Explains how to threat model and explores various threat modeling approaches, such as asset-centric, attacker-centric and software-centric Provides effective approaches and techniques that have been proven at Microsoft and elsewhere Offers actionable how-to advice not tied to any specific software, operating system, or programming language Authored by a Microsoft professional who is one of the most prominent threat modeling experts in the world As more software is delivered on the Internet or operates on Internet-connected devices, the design of secure software is absolutely critical. Make sure you're ready with Threat Modeling: Designing for Security.

The Art of Readable Code


Dustin Boswell - 2010
    Over the past five years, authors Dustin Boswell and Trevor Foucher have analyzed hundreds of examples of "bad code" (much of it their own) to determine why they’re bad and how they could be improved. Their conclusion? You need to write code that minimizes the time it would take someone else to understand it—even if that someone else is you.This book focuses on basic principles and practical techniques you can apply every time you write code. Using easy-to-digest code examples from different languages, each chapter dives into a different aspect of coding, and demonstrates how you can make your code easy to understand.Simplify naming, commenting, and formatting with tips that apply to every line of codeRefine your program’s loops, logic, and variables to reduce complexity and confusionAttack problems at the function level, such as reorganizing blocks of code to do one task at a timeWrite effective test code that is thorough and concise—as well as readable"Being aware of how the code you create affects those who look at it later is an important part of developing software. The authors did a great job in taking you through the different aspects of this challenge, explaining the details with instructive examples." —Michael Hunger, passionate Software Developer

Dealers of Lightning: Xerox PARC and the Dawn of the Computer Age


Michael A. Hiltzik - 1999
    And they did it without fanfare or recognition from their employer. Hiltzik's Dealers of Lightning provides a fascinating look at technohistory that sets the record straight. In Dealers of Lightning, Hiltzik describes the forces and faces behind the revolution that the Xerox PARC team single-handedly spawned. The Xerox PARC group was composed solely of top technical minds. The decision was made at Xerox headquarters to give the team complete freedom from deadlines and directives, in hopes of fostering a true creative environment. It worked — perhaps too well. The team responded with a steady output of amazing technology, including the first version of the Internet, the first personal computer, user-friendly word-processing programs, and pop-up menus. Xerox, far from ready for the explosion of innovation, failed to utilize the technology dreamed up by the group. Out of all the dazzling inventions born at Xerox PARC, only a handful were developed and marketed by Xerox. However, one of these inventions, the laser printer, proved successful enough to earn billions for the company, therefore justifying its investment in the research center. Most oftheteam's creations would go on to be developed and perfected by other companies, such as IBM, Apple, and Microsoft. Drawing from interviews with the engineers, executives, and scientists involved in the Xerox PARC, Dealers of Lightning chronicles an amazing era of egos, ideas, and inventions at the dawn of the computer age.

Mathematics for 3D Game Programming and Computer Graphics


Eric Lengyel - 2001
    Unfortunately, most programmers frequently have a limited understanding of these essential mathematics and physics concepts. MATHEMATICS AND PHYSICS FOR PROGRAMMERS, THIRD EDITION provides a simple but thorough grounding in the mathematics and physics topics that programmers require to write algorithms and programs using a non-language-specific approach. Applications and examples from game programming are included throughout, and exercises follow each chapter for additional practice. The book's companion website provides sample code illustrating the mathematical and physics topics discussed in the book.

Soft Skills: The Software Developer's Life Manual


John Z. Sonmez - 2014
    In it, developer and life coach John Sonmez addresses a wide range of important "soft" topics, from career and productivity to personal finance and investing, and even fitness and relationships, all from a developer-centric viewpoint.For most software developers, coding is the fun part. The hard bits are dealing with clients, peers, and managers, staying productive, achieving financial security, keeping yourself in shape, and finding true love. This book is here to help.Soft Skills: The software developer's life manual is a guide to a well-rounded, satisfying life as a technology professional. In it, developer and life coach John Sonmez offers advice to developers on important "soft" subjects like career and productivity, personal finance and investing, and even fitness and relationships. Arranged as a collection of 71 short chapters, this fun-to-read book invites you to dip in wherever you like. A Taking Action section at the end of each chapter shows you how to get quick results. Soft Skills will help make you a better programmer, a more valuable employee, and a happier, healthier person.What's InsideBoost your career by building a personal brandJohn's secret ten-step process for learning quicklyFitness advice to turn your geekiness to your advantageUnique strategies for investment and early retirement

Professor Frisby's Mostly Adequate Guide to Functional Programming


Brian Lonsdorf
    We'll use the world's most popular functional programming language: JavaScript. Some may feel this is a poor choice as it's against the grain of the current culture which, at the moment, feels predominately imperative. However, I believe it is the best way to learn FP for several reasons:You likely use it every day at work.This makes it possible to practice and apply your acquired knowledge each day on real world programs rather than pet projects on nights and weekends in an esoteric FP language.We don't have to learn everything up front to start writing programs.In a pure functional language, you cannot log a variable or read a DOM node without using monads. Here we can cheat a little as we learn to purify our codebase. It's also easier to get started in this language since it's mixed paradigm and you can fall back on your current practices while there are gaps in your knowledge.The language is fully capable of writing top notch functional code.We have all the features we need to mimic a language like Scala or Haskell with the help of a tiny library or two. Object-oriented programming currently dominates the industry, but it's clearly awkward in JavaScript. It's akin to camping off of a highway or tap dancing in galoshes. We have to bind all over the place lest this change out from under us, we don't have classes[^Yet], we have various work arounds for the quirky behavior when the new keyword is forgotten, private members are only available via closures. To a lot of us, FP feels more natural anyways.That said, typed functional languages will, without a doubt, be the best place to code in the style presented by this book. JavaScript will be our means of learning a paradigm, where you apply it is up to you. Luckily, the interfaces are mathematical and, as such, ubiquitous. You'll find yourself at home with swiftz, scalaz, haskell, purescript, and other mathematically inclined environments.