99 Bottles of OOP


Sandi Metz - 2016
    This book fills that gap. It explains the process of writing good code, and teaches you to achieve beautifully programmed ends by way of extremely practical means. What It's About99 Bottles of OOP is a practical guide to writing cost-effective, maintainable, and pleasing object-oriented code. It explores: Recognizing when code is "good enough"Getting the best value from Test-Driven Development (TDD)Doing proper refactoring, not random "rehacktoring"Locating concepts buried in codeFinding names that convey deeper meaning Safely altering code by following the "Flocking Rules" Simplifying new additions with the Open/Closed PrincipleAvoiding conditionals by obeying the Liskov Substitution PrincipleMaking targeted improvements by reducing Code SmellsWhat Makes It Unique?We are practical people. We love beautiful code but we're committed to getting things done. 99 Bottles of OOP enables both of these desires. It teaches a practical technique for getting things done that leads, naturally and inevitably, to beautiful code.This book contains an extended refactoring, and it details the rationale behind every change. It is a hands-on workbook rather than a list of theoretical ideas. It explains how to use the principles of object-oriented design to guide, not just the final arrangement of code, but each decision about what line of code to write next.It teaches the theory of what good OO looks like, but even better, it supplies step-by-step guidance about how to achieve it.Who Should Read It?The lessons work for programmers with a broad range of experience, from rank novice to grizzled veteran. The code examples are written in Ruby, but this book is not about Ruby--it's about object-oriented programming and design. Regardless of your background, applying these techniques will make your code easier to understand, simpler to change, and more satisfying to contemplate.

The Little Schemer


Daniel P. Friedman - 1974
    The authors' enthusiasm for their subject is compelling as they present abstract concepts in a humorous and easy-to-grasp fashion. Together, these books will open new doors of thought to anyone who wants to find out what computing is really about. The Little Schemer introduces computing as an extension of arithmetic and algebra; things that everyone studies in grade school and high school. It introduces programs as recursive functions and briefly discusses the limits of what computers can do. The authors use the programming language Scheme, and interesting foods to illustrate these abstract ideas. The Seasoned Schemer informs the reader about additional dimensions of computing: functions as values, change of state, and exceptional cases. The Little LISPer has been a popular introduction to LISP for many years. It had appeared in French and Japanese. The Little Schemer and The Seasoned Schemer are worthy successors and will prove equally popular as textbooks for Scheme courses as well as companion texts for any complete introductory course in Computer Science.

An Introduction to Data Structures with Applications


Jean-Paul Tremblay - 1984
    Product Condition: No Defects.

Implementing Domain-Driven Design


Vaughn Vernon - 2013
    Vaughn Vernon couples guided approaches to implementation with modern architectures, highlighting the importance and value of focusing on the business domain while balancing technical considerations.Building on Eric Evans’ seminal book, Domain-Driven Design, the author presents practical DDD techniques through examples from familiar domains. Each principle is backed up by realistic Java examples–all applicable to C# developers–and all content is tied together by a single case study: the delivery of a large-scale Scrum-based SaaS system for a multitenant environment.The author takes you far beyond “DDD-lite” approaches that embrace DDD solely as a technical toolset, and shows you how to fully leverage DDD’s “strategic design patterns” using Bounded Context, Context Maps, and the Ubiquitous Language. Using these techniques and examples, you can reduce time to market and improve quality, as you build software that is more flexible, more scalable, and more tightly aligned to business goals.

Systems Engineering and Analysis


Benjamin S. Blanchard - 1981
    Each

Code Complete


Steve McConnell - 1993
    Now this classic book has been fully updated and revised with leading-edge practices--and hundreds of new code samples--illustrating the art and science of software construction. Capturing the body of knowledge available from research, academia, and everyday commercial practice, McConnell synthesizes the most effective techniques and must-know principles into clear, pragmatic guidance. No matter what your experience level, development environment, or project size, this book will inform and stimulate your thinking--and help you build the highest quality code. Discover the timeless techniques and strategies that help you: Design for minimum complexity and maximum creativity Reap the benefits of collaborative development Apply defensive programming techniques to reduce and flush out errors Exploit opportunities to refactor--or evolve--code, and do it safely Use construction practices that are right-weight for your project Debug problems quickly and effectively Resolve critical construction issues early and correctly Build quality into the beginning, middle, and end of your project

Stepping Up


Robert Culp - 2013
    So begins the story of Sonia MacTaggert. An engineer by education with dreams of actually earning a living as one, she is stuck in a dead-end maintenance job servicing the engines of starships that put into port at Tammuz. When she finally lands an engineering position on the starship Night Searcher, she finds herself thrust into the unfamiliar world of interstellar exploration on a ship with a classified mission. Has her quest for a new life and career gotten Sonia more than she bargained for? The voyage of the Night Searcher tests not only the technical savvy of the fledgling engineer, but her character and leadership, as she's faced with challenges she could never have seen coming.

Preparing to Teach in the Lifelong Learning Sector


Ann Gravells - 2008
    This includes further education, adult and community learning, work-based learning, the forces and offender learning and skills. It is easy to read with plenty of practical activities and examples throughout and the content is fully linked to the Teacher Training Standards. Please note: This book has since been updated to reflect the new title of the qualification: The Award in Education and Training.The qualification unit content contained in the appendices has since changed, and some legislation mentioned in the book has been updated.

Physics, Volume 1


Robert Resnick - 1966
    The Fourth Edition of volumes 1 and 2 is concerned with mechanics and E&M/Optics. New features include: expanded coverage of classic physics topics, substantial increases in the number of in-text examples which reinforce text exposition, the latest pedagogical and technical advances in the field, numerical analysis, computer-generated graphics, computer projects and much more.

Introduction to Fluid Mechanics [With CDROM]


Robert W. Fox - 2003
    This new edition simplifies many of the steps involved in analysis by using the computer application Excel. Over 100 detailed example problems illustrate important fluid mechanics concepts: Approximately 1300 end-of-chapter problems are arranged by difficulty level and include many problems that are designed to be solved using Excel. The CD for the book includes: A Brief Review of Microsoft Excel and numerous Excel files for the example problems and for use in solving problems. The new edition includes an expanded discussion of pipe networks, and a new section on oblique shocks and expansion waves.

Confessions of a Rogue Nuclear Regulator


Gregory B. Jaczko - 2019
    Smith. But, thanks to the determination of a powerful senator, he would soon find himself at the agency’s helm. A Birkenstocks-wearing physics PhD, Jaczko was unlike any chairman the agency had ever seen: he was driven by a passion for technology and a concern for public safety, with no ties to the industry and no agenda other than to ensure that his agency made the world a safer place. And so Jaczko witnessed what outsiders like him were never meant to see—an agency overpowered by the industry it was meant to regulate and a political system determined to keep it that way. After an emergency trip to Japan to help oversee the frantic response to the horrifying nuclear disaster at Fukushima in 2011, and witnessing the American nuclear industry’s refusal to make the changes he considered necessary to prevent an equally catastrophic event from occurring here, Jaczko started saying aloud what no one else had dared. Confessions of a Rogue Nuclear Regulator is a wake-up call to the dangers of lobbying, the importance of governmental regulation, and the failures of congressional oversight. But it is also a classic tale of an idealist on a mission whose misadventures in Washington are astounding, absurd, and sometimes even funny—and Jaczko tells the story with humor, self-deprecation, and, yes, occasional bursts of outrage. Above all, Confessions of a Rogue Nuclear Regulator is a tale of confronting the truth about one of the most pressing public safety and environmental issues of our time: nuclear power will never be safe.

Refactoring: Improving the Design of Existing Code


Martin Fowler - 1999
    Significant numbers of poorly designed programs have been created by less-experienced developers, resulting in applications that are inefficient and hard to maintain and extend. Increasingly, software system professionals are discovering just how difficult it is to work with these inherited, non-optimal applications. For several years, expert-level object programmers have employed a growing collection of techniques to improve the structural integrity and performance of such existing software programs. Referred to as refactoring, these practices have remained in the domain of experts because no attempt has been made to transcribe the lore into a form that all developers could use... until now. In Refactoring: Improving the Design of Existing Software, renowned object technology mentor Martin Fowler breaks new ground, demystifying these master practices and demonstrating how software practitioners can realize the significant benefits of this new process.

Elementary Differential Equations


Earl D. Rainville - 1962
    Each chapter includes many illustrative examples to assist the reader. The book emphasizes methods for finding solutions to differential equations. It provides many abundant exercises, applications, and solved examples with careful attention given to readability. Elementary Differential Equations includes a thorough treatment of power series techniques. In addition, the book presents a classical treatment of several physical problems to show how Fourier series become involved in the solution of those problems. The eighth edition of Elementary Differential Equations has been revised to include a new supplement in many chapters that provides suggestions and exercises for using a computer to assist in the understanding of the material in the chapter. It also now provides an introduction to the phase plane and to different types of phase portraits. A valuable reference book for readers interested in exploring the technological and other applications of differential equations.

Coders at Work: Reflections on the Craft of Programming


Peter Seibel - 2009
    As the words "at work" suggest, Peter Seibel focuses on how his interviewees tackle the day–to–day work of programming, while revealing much more, like how they became great programmers, how they recognize programming talent in others, and what kinds of problems they find most interesting. Hundreds of people have suggested names of programmers to interview on the Coders at Work web site: http://www.codersatwork.com. The complete list was 284 names. Having digested everyone’s feedback, we selected 16 folks who’ve been kind enough to agree to be interviewed:- Frances Allen: Pioneer in optimizing compilers, first woman to win the Turing Award (2006) and first female IBM fellow- Joe Armstrong: Inventor of Erlang- Joshua Bloch: Author of the Java collections framework, now at Google- Bernie Cosell: One of the main software guys behind the original ARPANET IMPs and a master debugger- Douglas Crockford: JSON founder, JavaScript architect at Yahoo!- L. Peter Deutsch: Author of Ghostscript, implementer of Smalltalk-80 at Xerox PARC and Lisp 1.5 on PDP-1- Brendan Eich: Inventor of JavaScript, CTO of the Mozilla Corporation - Brad Fitzpatrick: Writer of LiveJournal, OpenID, memcached, and Perlbal - Dan Ingalls: Smalltalk implementor and designer- Simon Peyton Jones: Coinventor of Haskell and lead designer of Glasgow Haskell Compiler- Donald Knuth: Author of The Art of Computer Programming and creator of TeX- Peter Norvig: Director of Research at Google and author of the standard text on AI- Guy Steele: Coinventor of Scheme and part of the Common Lisp Gang of Five, currently working on Fortress- Ken Thompson: Inventor of UNIX- Jamie Zawinski: Author of XEmacs and early Netscape/Mozilla hackerWhat you’ll learn:How the best programmers in the world do their jobWho is this book for?Programmers interested in the point of view of leaders in the field. Programmers looking for approaches that work for some of these outstanding programmers.

Head First Design Patterns


Eric Freeman - 2004
     At any given moment, somewhere in the world someone struggles with the same software design problems you have. You know you don't want to reinvent the wheel (or worse, a flat tire), so you look to Design Patterns--the lessons learned by those who've faced the same problems. With Design Patterns, you get to take advantage of the best practices and experience of others, so that you can spend your time on...something else. Something more challenging. Something more complex. Something more fun. You want to learn about the patterns that matter--why to use them, when to use them, how to use them (and when NOT to use them). But you don't just want to see how patterns look in a book, you want to know how they look "in the wild". In their native environment. In other words, in real world applications. You also want to learn how patterns are used in the Java API, and how to exploit Java's built-in pattern support in your own code. You want to learn the real OO design principles and why everything your boss told you about inheritance might be wrong (and what to do instead). You want to learn how those principles will help the next time you're up a creek without a design pattern. Most importantly, you want to learn the "secret language" of Design Patterns so that you can hold your own with your co-worker (and impress cocktail party guests) when he casually mentions his stunningly clever use of Command, Facade, Proxy, and Factory in between sips of a martini. You'll easily counter with your deep understanding of why Singleton isn't as simple as it sounds, how the Factory is so often misunderstood, or on the real relationship between Decorator, Facade and Adapter. With Head First Design Patterns, you'll avoid the embarrassment of thinking Decorator is something from the "Trading Spaces" show. Best of all, in a way that won't put you to sleep! We think your time is too important (and too short) to spend it struggling with academic texts. If you've read a Head First book, you know what to expect--a visually rich format designed for the way your brain works. Using the latest research in neurobiology, cognitive science, and learning theory, Head First Design Patterns will load patterns into your brain in a way that sticks. In a way that lets you put them to work immediately. In a way that makes you better at solving software design problems, and better at speaking the language of patterns with others on your team.