Book picks similar to
VRML Browsing & Building Cyberspace by Mark Pesce


software
technology-computers
computer-science
cyberspace

Growing Object-Oriented Software, Guided by Tests


Steve Freeman - 2009
    This one's a keeper." --Robert C. Martin "If you want to be an expert in the state of the art in TDD, you need to understand the ideas in this book."--Michael Feathers Test-Driven Development (TDD) is now an established technique for delivering better software faster. TDD is based on a simple idea: Write tests for your code before you write the code itself. However, this simple idea takes skill and judgment to do well. Now there's a practical guide to TDD that takes you beyond the basic concepts. Drawing on a decade of experience building real-world systems, two TDD pioneers show how to let tests guide your development and "grow" software that is coherent, reliable, and maintainable. Steve Freeman and Nat Pryce describe the processes they use, the design principles they strive to achieve, and some of the tools that help them get the job done. Through an extended worked example, you'll learn how TDD works at multiple levels, using tests to drive the features and the object-oriented structure of the code, and using Mock Objects to discover and then describe relationships between objects. Along the way, the book systematically addresses challenges that development teams encounter with TDD--from integrating TDD into your processes to testing your most difficult features. Coverage includes - Implementing TDD effectively: getting started, and maintaining your momentum throughout the project - Creating cleaner, more expressive, more sustainable code - Using tests to stay relentlessly focused on sustaining quality - Understanding how TDD, Mock Objects, and Object-Oriented Design come together in the context of a real software development project - Using Mock Objects to guide object-oriented designs - Succeeding where TDD is difficult: managing complex test data, and testing persistence and concurrency

Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman


Dave Hoover - 2009
    To grow professionally, you also need soft skills and effective learning techniques. Honing those skills is what this book is all about. Authors Dave Hoover and Adewale Oshineye have cataloged dozens of behavior patterns to help you perfect essential aspects of your craft. Compiled from years of research, many interviews, and feedback from O'Reilly's online forum, these patterns address difficult situations that programmers, administrators, and DBAs face every day. And it's not just about financial success. Apprenticeship Patterns also approaches software development as a means to personal fulfillment. Discover how this book can help you make the best of both your life and your career. Solutions to some common obstacles that this book explores in-depth include:Burned out at work? "Nurture Your Passion" by finding a pet project to rediscover the joy of problem solving.Feeling overwhelmed by new information? Re-explore familiar territory by building something you've built before, then use "Retreat into Competence" to move forward again.Stuck in your learning? Seek a team of experienced and talented developers with whom you can "Be the Worst" for a while. "Brilliant stuff! Reading this book was like being in a time machine that pulled me back to those key learning moments in my career as a professional software developer and, instead of having to learn best practices the hard way, I had a guru sitting on my shoulder guiding me every step towards master craftsmanship. I'll certainly be recommending this book to clients. I wish I had this book 14 years ago!" -Russ Miles, CEO, OpenCredo

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.

Category Theory for Programmers


Bartosz Milewski - 2014
    Collected from the series of blog posts starting at: https://bartoszmilewski.com/2014/10/2...Hardcover available at: http://www.blurb.com/b/9008339-catego...

Comptia A+ 220-801 and 220-802 Exam Cram


David L. Prowse - 2012
     Limited Time Offer: Buy CompTIA(R) A+ 220-801 and 220-802 Exam Cram and receive a 10% off discount code for the CompTIA A+ 220-801 and 220-802 exams. To receive your 10% off discount code:Register your product at pearsonITcertification.com/registerFollow the instructionsGo to your Account page and click on "Access Bonus Content" CompTIA(R) A+ 220-801 and 220-802 Exam Cram, Sixth Edition is the perfect study guide to help you pass CompTIA's A+ 220-801 and 220-802 exams. It provides coverage and practice questions for every exam topic, including substantial new coverage of Windows 7, new PC hardware, tablets, smartphones, and professional-level networking and security. The book presents you with an organized test preparation routine through the use of proven series elements and techniques. Exam topic lists make referencing easy. Exam Alerts, Sidebars, and Notes interspersed throughout the text keep you focused on what you need to know. Cram Quizzes help you assess your knowledge, and the Cram Sheet tear card is the perfect last minute review. Covers the critical information you'll need to know to score higher on your CompTIA A+ 220-801 and 220-802 exams!Deploy and administer desktops and notebooks running Windows 7, Vista, or XPUnderstand, install, and troubleshoot motherboards, processors, and memoryTest and troubleshoot power-related problemsUse all forms of storage, including new Blu-ray and Solid State (SSD) devicesWork effectively with mobile devices, including tablets and smartphonesInstall, configure, and troubleshoot both visible and internal laptop componentsConfigure Windows components and applications, use Windows administrative tools, and optimize Windows systemsRepair damaged Windows environments and boot errorsWork with audio and video subsystems, I/O devices, and the newest peripheralsInstall and manage both local and network printersConfigure IPv4 and understand TCP/IP protocols and IPv6 changesInstall and configure SOHO wired/wireless networks and troubleshoot connectivityImplement secure authentication, prevent malware attacks, and protect data Companion CDThe companion CD contains a digital edition of the Cram Sheet and the powerful Pearson IT Certification Practice Test engine, complete with hundreds of exam-realistic questions and two complete practice exams. The assessment engine offers you a wealth of customization options and reporting features, laying out a complete assessment of your knowledge to help you focus your study where it is needed most. Pearson IT Certifcation Practice Test Minimum System RequirementsWindows XP (SP3), WIndows Vista (SP2), or Windows 7Microsoft .NET Framework 4.0 ClientPentium-class 1 GHz processor (or equivalent)512 MB RAM650 MB disk space plus 50 MB for each downloaded practice exam David L. Prowse is an author, computer network specialist, and technical trainer. Over the past several years he has authored several titles for Pearson Education, including the well-received CompTIA A+ Exam Cram and CompTIA Security+ Cert Guide. As a consultant, he installs and secures the latest in computer and networking technology. He runs the website www.davidlprowse.com, where he gladly answers questions from students and readers.

How to Stop Sucking and Be Awesome Instead


Jeff Atwood - 2013
    He needed a way to keep track of software development over time – whatever he was thinking about or working on. He researched subjects he found interesting, then documented his research with a public blog post, which he could easily find and refer to later. Over time, increasing numbers of blog visitors found the posts helpful, relevant and interesting. Now, approximately 100,000 readers visit the blog per day and nearly as many comment and interact on the site.In “How to Stop Sucking and Be Awesome Instead” you’ll find a thought-provoking and entertaining collection of Jeff’s writings on several programming-related topics.

Patterns Principles and Practices of Domain Driven Design


Scott Millett - 2014
    A focus is placed on the principles and practices of decomposing a complex problem space as well as the implementation patterns and best practices for shaping a maintainable solution space.

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

97 Things Every Programmer Should Know: Collective Wisdom from the Experts


Kevlin Henney - 2010
    With the 97 short and extremely useful tips for programmers in this book, you'll expand your skills by adopting new approaches to old problems, learning appropriate best practices, and honing your craft through sound advice.With contributions from some of the most experienced and respected practitioners in the industry--including Michael Feathers, Pete Goodliffe, Diomidis Spinellis, Cay Horstmann, Verity Stob, and many more--this book contains practical knowledge and principles that you can apply to all kinds of projects.A few of the 97 things you should know:"Code in the Language of the Domain" by Dan North"Write Tests for People" by Gerard Meszaros"Convenience Is Not an -ility" by Gregor Hohpe"Know Your IDE" by Heinz Kabutz"A Message to the Future" by Linda Rising"The Boy Scout Rule" by Robert C. Martin (Uncle Bob)"Beware the Share" by Udi Dahan

Data Analysis Using SQL and Excel


Gordon S. Linoff - 2007
    This book helps you use SQL and Excel to extract business information from relational databases and use that data to define business dimensions, store transactions about customers, produce results, and more. Each chapter explains when and why to perform a particular type of business analysis in order to obtain useful results, how to design and perform the analysis using SQL and Excel, and what the results should look like.

Lean Inception: How to Align People and Build the Right Product


Paulo Caroli - 2018
    The Lean Startup movement is very promising, but for many teams it ends up translating into an important question: ”Yeah, but what to build ?” “In ThoughtWorks, our response has been a process called an inception. We gather together a good sample of the people who will be affected by the product and have an intensive session to set an initial direction, using a series of exercises focusing on collaboration and the capture of broad goals. We don't attempt a detailed specification, as that is exactly the kind of thing that becomes out of date as soon as code hits production. But we do want to understand what kind of outcomes we are hoping for, the features that we think will drive these outcomes, and how to assess the effectiveness of our product. With The Lean Inception, Paulo has captured his experience in running these inceptions over the last decade. In particular it's focused on his work to boil the inception down to its essence, concentrating the activity on a single, if very intensive, week of work. Paulo shares how he makes this work, through writing a product vision, capturing personas, understanding the user journeys, and developing high-level features. The result isn't a detailed plan of work, which we find quickly rots into irrelevance. It is a guiding set of goals to set us off in the right direction. It doesn't plan out a final product, with all the features that our users will need, instead it focuses on an initial product that we can release and learn from - the Minimum Viable Product. “ – Martin Fowler, Chief Cientist at ThoughtWorks

Types and Programming Languages


Benjamin C. Pierce - 2002
    The study of type systems--and of programming languages from a type-theoretic perspective--has important applications in software engineering, language design, high-performance compilers, and security.This text provides a comprehensive introduction both to type systems in computer science and to the basic theory of programming languages. The approach is pragmatic and operational; each new concept is motivated by programming examples and the more theoretical sections are driven by the needs of implementations. Each chapter is accompanied by numerous exercises and solutions, as well as a running implementation, available via the Web. Dependencies between chapters are explicitly identified, allowing readers to choose a variety of paths through the material.The core topics include the untyped lambda-calculus, simple type systems, type reconstruction, universal and existential polymorphism, subtyping, bounded quantification, recursive types, kinds, and type operators. Extended case studies develop a variety of approaches to modeling the features of object-oriented languages.

API Design for C++


Martin Reddy - 1996
    It is the only book that teaches the strategies of C++ API development, including interface design, versioning, scripting, and plug-in extensibility. Drawing from the author's experience on large scale, collaborative software projects, the text offers practical techniques of API design that produce robust code for the long term. It presents patterns and practices that provide real value to individual developers as well as organizations.API Design for C++ explores often overlooked issues, both technical and non-technical, contributing to successful design decisions that product high quality, robust, and long-lived APIs. It focuses on various API styles and patterns that will allow you to produce elegant and durable libraries. A discussion on testing strategies concentrates on automated API testing techniques rather than attempting to include end-user application testing techniques such as GUI testing, system testing, or manual testing. Each concept is illustrated with extensive C++ code examples, and fully functional examples and working source code for experimentation are available online.This book will be helpful to new programmers who understand the fundamentals of C++ and who want to advance their design skills, as well as to senior engineers and software architects seeking to gain new expertise to complement their existing talents. Three specific groups of readers are targeted: practicing software engineers and architects, technical managers, and students and educators.

.Net Microservices: Architecture for Containerized .Net Applications


César de la Torre - 2017
    It discusses architectural design and implementation approaches using .NET Core and Docker containers. To make it easier to get started with containers and microservices, the guide focuses on a reference containerized and microservice-based application that you can explore. The sample application is available at the eShopOnContainers GitHub repo.

The Psychology of Computer Programming


Gerald M. Weinberg - 1971
    Weinberg adds new insights and highlights the similarities and differences between now and then. Using a conversational style that invites the reader to join him, Weinberg reunites with some of his most insightful writings on the human side of software engineering.Topics include egoless programming, intelligence, psychological measurement, personality factors, motivation, training, social problems on large projects, problem-solving ability, programming language design, team formation, the programming environment, and much more.Dorset House Publishing is proud to make this important text available to new generations of programmers -- and to encourage readers of the first edition to return to its valuable lessons.