12 Essential Skills for Software Architects


Dave Hendricksen - 2011
    In today's agile environments, these "soft" skills have grown even more crucial to success as an architect. For many developers, however, these skills don't come naturally-and they're rarely addressed in formal training. Now, long-time software architect Dave Hendricksen helps you fill this gap, supercharge your organizational impact, and quickly move to the next level in your career. In 12 Essential Skills for Software Architects, Hendricksen begins by pinpointing the specific relationship, personal, and business skills that successful architects rely upon. Next, he presents proven methods for systematically developing and sharpening every one of these skills, from negotiation and leadership to pragmatism and vision. From start to finish, this book's practical insights can help you get the architect position you want-and thrive once you have it! The soft skills you need... ...and a coherent framework and practical methodology for mastering them! Relationship skills Leadership, politics, gracious behavior, communication, negotiation Personal skills Context switching, transparency, passion Business skills Pragmatism, vision, business knowledge, innovation

Modern Operating Systems


Andrew S. Tanenbaum - 1992
    What makes an operating system modern? According to author Andrew Tanenbaum, it is the awareness of high-demand computer applications--primarily in the areas of multimedia, parallel and distributed computing, and security. The development of faster and more advanced hardware has driven progress in software, including enhancements to the operating system. It is one thing to run an old operating system on current hardware, and another to effectively leverage current hardware to best serve modern software applications. If you don't believe it, install Windows 3.0 on a modern PC and try surfing the Internet or burning a CD. Readers familiar with Tanenbaum's previous text, Operating Systems, know the author is a great proponent of simple design and hands-on experimentation. His earlier book came bundled with the source code for an operating system called Minux, a simple variant of Unix and the platform used by Linus Torvalds to develop Linux. Although this book does not come with any source code, he illustrates many of his points with code fragments (C, usually with Unix system calls). The first half of Modern Operating Systems focuses on traditional operating systems concepts: processes, deadlocks, memory management, I/O, and file systems. There is nothing groundbreaking in these early chapters, but all topics are well covered, each including sections on current research and a set of student problems. It is enlightening to read Tanenbaum's explanations of the design decisions made by past operating systems gurus, including his view that additional research on the problem of deadlocks is impractical except for "keeping otherwise unemployed graph theorists off the streets." It is the second half of the book that differentiates itself from older operating systems texts. Here, each chapter describes an element of what constitutes a modern operating system--awareness of multimedia applications, multiple processors, computer networks, and a high level of security. The chapter on multimedia functionality focuses on such features as handling massive files and providing video-on-demand. Included in the discussion on multiprocessor platforms are clustered computers and distributed computing. Finally, the importance of security is discussed--a lively enumeration of the scores of ways operating systems can be vulnerable to attack, from password security to computer viruses and Internet worms. Included at the end of the book are case studies of two popular operating systems: Unix/Linux and Windows 2000. There is a bias toward the Unix/Linux approach, not surprising given the author's experience and academic bent, but this bias does not detract from Tanenbaum's analysis. Both operating systems are dissected, describing how each implements processes, file systems, memory management, and other operating system fundamentals. Tanenbaum's mantra is simple, accessible operating system design. Given that modern operating systems have extensive features, he is forced to reconcile physical size with simplicity. Toward this end, he makes frequent references to the Frederick Brooks classic The Mythical Man-Month for wisdom on managing large, complex software development projects. He finds both Windows 2000 and Unix/Linux guilty of being too complicated--with a particular skewering of Windows 2000 and its "mammoth Win32 API." A primary culprit is the attempt to make operating systems more "user-friendly," which Tanenbaum views as an excuse for bloated code. The solution is to have smart people, the smallest possible team, and well-defined interactions between various operating systems components. Future operating system design will benefit if the advice in this book is taken to heart. --Pete Ostenson

The Art of Software Testing


Glenford J. Myers - 1979
    You'll find the latest methodologies for the design of effective test cases, including information on psychological and economic principles, managerial aspects, test tools, high-order testing, code inspections, and debugging. Accessible, comprehensive, and always practical, this edition provides the key information you need to test successfully, whether a novice or a working programmer. Buy your copy today and end up with fewer bugs tomorrow.

Do Over: Rescue Monday, Reinvent Your Work, and Never Get Stuck


Jon Acuff - 2015
    Now he offers his most important book yet, a guide to making big career changes—by choice or necessity—and escaping the horrible feeling of being trapped in the wrong job.Acuff finds it amazing that people spend more than eighteen years studying and preparing for college, but little or no time honing their careers between graduation and retirement. He offers an empowering tool he calls the Career Savings Account, which will change the way readers think about their skills, relationships, character, and work ethic. He also shows that if you’re on the wrong track, you already have what you need to change it—even if your family and mortgage mean you can’t simply pick up and move for a new opportunity.Throughout the book, Acuff features inspiring and funny true stories—not merely his own, but those of friends who restarted their careers after a layoff, an extended maternity leave, or simply the realization that they were suffering fifty weeks a year just to pay the bills and enjoy two weeks of vacation. Everyone can benefit from Do Over, from new graduates to fiftysomethings and beyond.

Automate the Boring Stuff with Python: Practical Programming for Total Beginners


Al Sweigart - 2014
    But what if you could have your computer do them for you?In "Automate the Boring Stuff with Python," you'll learn how to use Python to write programs that do in minutes what would take you hours to do by hand no prior programming experience required. Once you've mastered the basics of programming, you'll create Python programs that effortlessly perform useful and impressive feats of automation to: Search for text in a file or across multiple filesCreate, update, move, and rename files and foldersSearch the Web and download online contentUpdate and format data in Excel spreadsheets of any sizeSplit, merge, watermark, and encrypt PDFsSend reminder emails and text notificationsFill out online formsStep-by-step instructions walk you through each program, and practice projects at the end of each chapter challenge you to improve those programs and use your newfound skills to automate similar tasks.Don't spend your time doing work a well-trained monkey could do. Even if you've never written a line of code, you can make your computer do the grunt work. Learn how in "Automate the Boring Stuff with Python.""

Building the Internet of Things: Implement New Business Models, Disrupt Competitors, Transform Your Industry


Maciej Kranz - 2016
    Focusing on the business implications of Internet of Things (IoT), this book describes the sheer impact, spread, and opportunities arising every day, and how business leaders can implement IoT today to realize tangible business advantages. The discussion delves into IoT from a business, strategy and organizational standpoint, and includes use-cases that illustrate the ripple effect that this latest disruption brings; you'll learn how to fashion a viable IoT plan that works with your organization's strategy and direction, and how to implement that strategy successfully by integrating IoT into your organization tomorrow. For business managers, the biggest question surrounding the Internet of Things is what to do with it. This book examines the way IoT is being used today—and will be used in the future—to help you craft a robust plan for your organization. Grasp the depth and breadth of the Internet of Things Create a secure IoT recipe that aligns with your company's strategy Capitalize on advances while avoiding disruption from others Leverage the technical, organizational, and social impact of IoT In the past five years, the Internet of Things has become the new frontier of technology that has everyone talking. It seems that almost every week a major vendor announces a new IoT strategy or division; is your company missing the boat? Learn where IoT fits into your organization, and how to turn disruption into profit with the expert guidance in Building the Internet of Things.

Scrum Shortcuts Without Cutting Corners: Agile Tactics, Tools, & Tips


Ilan Goldstein - 2013
    But when new Scrum practitioners attempt to apply Scrum theory and high-level approaches in actual projects, they often find it surprisingly difficult. In Scrum Shortcuts without Cutting Corners, Scrum expert Ilan Goldstein helps you translate the Scrum framework into reality to meet the Scrum challenges your formal training never warned you about. Drawing on his extensive agile experience in a wide range of projects and environments, Goldstein presents thirty proven, flexible shortcuts for optimizing Scrum processes, actions, and outcomes. Each shortcut walks you through applying a Scrum approach to achieve a tangible output. These easy-to-digest, actionable patterns address a broad range of topics including getting started, quality and metrics, team members and roles, managing stakeholders, estimation, continuous improvement and much more. Whatever your role, Scrum Shortcuts without Cutting Corners will help you take your Scrum skills to the next level and achieve better results in any project you participate in.

Thinking in Systems: A Primer


Donella H. Meadows - 2008
    Edited by the Sustainability Institute’s Diana Wright, this essential primer brings systems thinking out of the realm of computers and equations and into the tangible world, showing readers how to develop the systems-thinking skills that thought leaders across the globe consider critical for 21st-century life.Some of the biggest problems facing the world—war, hunger, poverty, and environmental degradation—are essentially system failures. They cannot be solved by fixing one piece in isolation from the others, because even seemingly minor details have enormous power to undermine the best efforts of too-narrow thinking.While readers will learn the conceptual tools and methods of systems thinking, the heart of the book is grander than methodology. Donella Meadows was known as much for nurturing positive outcomes as she was for delving into the science behind global dilemmas. She reminds readers to pay attention to what is important, not just what is quantifiable, to stay humble, and to stay a learner.In a world growing ever more complicated, crowded, and interdependent, Thinking in Systems helps readers avoid confusion and helplessness, the first step toward finding proactive and effective solutions.

Prince2 for Dummies


Nick Graham - 2008
    Fully updated with the 2009 practice guidelines, this book will take you through every step of a project - from planning and establishing roles to closing and reviewing - offering practical and easy-to-understand advice on using PRINCE2. It also shows how to use the method when approaching the key concerns of project management, including setting up effective controls, managing project risk, managing quality and controlling change. PRINCE2 allows you to divide your project into manageable chunks, so you can make realistic plans and know when resources will be needed. PRINCE2 For Dummies, 2009 Edition provides you with a comprehensive guide to its systems, procedures and language so you can run efficient and successful projects.PRINCE2 For Dummies, 2009 Edition includes: Part I: How PRINCE Can Help You - Chapter 1: So What's a Project Method and Why Do I Need to Use One? - Chapter 2: Outlining the Structure of PRINCE2 - Chapter 3: Getting Real Power from PRINCE2Part II: Working Through Your Project - Chapter 4: Checking the Idea Before You Start - Chapter 5: Planning the Whole Project: Initiation - Chapter 6: Preparing for a Stage in the Project - Chapter 7: Controlling a Stage - Chapter 8: Building the Deliverables - the Work of the Teams - Chapter 9: Finishing the Project - Chapter 10: Running Effective Project BoardsPart III: Help with PRINCE Project Management - Chapter 11: Producing and Updating the Business Case - Chapter 12: Deciding Roles and Responsibilities - Chapter 13: Managing Project Quality - Chapter 14: Planning the Project, Stages, and Work Packages - Chapter 15: Managing Project Risk - Chapter 16: Controlling Change and Controlling Versions - Chapter 17: Monitoring Progress and Setting Up Effective ControlsPart IV: The Part of Tens - Chapter 18: Ten Ways to Make PRINCE Work Well - Chapter 19: Ten Tips for a Good Business Case - Chapter 20: Ten Things for Successful Project Assurance Part V: Appendices - Appendix A: Looking into PRINCE Qualifications - Appendix B: Glossary of the Main PRINCE2 Terms

The New Turing Omnibus: 66 Excursions In Computer Science


A.K. Dewdney - 1989
    K. Dewdney's The Turing Omnibus.Updated and expanded, The Turing Omnibus offers 66 concise, brilliantly written articles on the major points of interest in computer science theory, technology, and applications. New for this tour: updated information on algorithms, detecting primes, noncomputable functions, and self-replicating computers--plus completely new sections on the Mandelbrot set, genetic algorithms, the Newton-Raphson Method, neural networks that learn, DOS systems for personal computers, and computer viruses.Contents:1 Algorithms 2 Finite Automata 3 Systems of Logic 4 Simulation 5 Godel's Theorem 6 Game Trees 7 The Chomsky Hierarchy 8 Random Numbers 9 Mathematical Research 10 Program Correctness 11 Search Trees 12 Error-Corecting Codes 13 Boolean Logic 14 Regular Languages 15 Time and Space Complexity 16 Genetic Algorithms 17 The Random Access Machine 18 Spline Curves 19 Computer Vision 20 Karnaugh Maps 21 The Newton-Raphson Method 22 Minimum Spanning Trees 23 Generative Grammars 24 Recursion 25 Fast Multiplication 26 Nondeterminism 27 Perceptrons 28 Encoders and Multiplexers 29 CAT Scanning 30 The Partition Problem 31 Turing Machines 32 The Fast Fourier Transform 33 Analog Computing 34 Satisfiability 35 Sequential Sorting 36 Neural Networks That Learn 37 Public Key Cryptography 38 Sequential Cirucits 39 Noncomputerable Functions 40 Heaps and Merges 41 NP-Completeness 42 Number Systems for Computing 43 Storage by Hashing 44 Cellular Automata 45 Cook's Theorem 46 Self-Replicating Computers 47 Storing Images 48 The SCRAM 49 Shannon's Theory 50 Detecting Primes 51 Universal Turing Machines 52 Text Compression 53 Disk Operating Systems 54 NP-Complete Problems 55 Iteration and Recursion 56 VLSI Computers 57 Linear Programming 58 Predicate Calculus 59 The Halting Problem 60 Computer Viruses 61 Searching Strings 62 Parallel Computing 63 The Word Problem 64 Logic Programming 65 Relational Data Bases 66 Church's Thesis

Python Cookbook


David Beazley - 2002
    Packed with practical recipes written and tested with Python 3.3, this unique cookbook is for experienced Python programmers who want to focus on modern tools and idioms.Inside, you’ll find complete recipes for more than a dozen topics, covering the core Python language as well as tasks common to a wide variety of application domains. Each recipe contains code samples you can use in your projects right away, along with a discussion about how and why the solution works.Topics include:Data Structures and AlgorithmsStrings and TextNumbers, Dates, and TimesIterators and GeneratorsFiles and I/OData Encoding and ProcessingFunctionsClasses and ObjectsMetaprogrammingModules and PackagesNetwork and Web ProgrammingConcurrencyUtility Scripting and System AdministrationTesting, Debugging, and ExceptionsC Extensions

Grading Smarter, Not Harder: Assessment Strategies That Motivate Kids and Help Them Learn


Myron Dueck - 2014
    In sharing lessons, anecdotes, and cautionary tales from his own experiences revamping assessment procedures in the classroom, Dueck offers a variety of practical strategies for ensuring that grades measure what students know without punishing them for factors outside their control; critically examining the fairness and effectiveness of grading homework assignments; designing and distributing unit plans that make assessment criteria crystal-clear to students; creating a flexible and modular retesting system so that students can improve their scores on individual sections of important tests.Grading Smarter, Not Harder is brimming with reproducible forms, templates, and real-life examples of grading solutions developed to allow students every opportunity to demonstrate their learning. Written with abundant humor and heart, this book is a must-read for all teachers who want their grades to contribute to, rather than hinder, their students' success.

Ask Your Developer: How to Harness the Power of Software Developers and Win in the 21st Century


Jeff Lawson - 2021
    The landscape has shifted from the classic build vs. buy question, to one of build vs. die. Companies have to get this right to survive. But how do they make this transition?Software developers are sought after, highly paid, and desperately needed to compete in the modern, digital economy. Yet most companies treat them like digital factory workers without really understanding how to unleash their full potential. Lawson argues that developers are the creative workforce who can solve major business problems and create hit products for customers—not just grind through rote tasks. From Google and Amazon, to one-person online software companies—companies that bring software developers in as partners are winning. Lawson shows how leaders who build industry changing software products consistently do three things well. First, they understand why software developers matter more than ever. Second, they understand developers and know how to motivate them. And third, they invest in their developers' success.As a software developer and public company CEO, Lawson uses his unique position to bridge the language and tools executives use with the unique culture of high performing, creative software developers. Ask Your Developer is a toolkit to help business leaders, product managers, technical leaders, software developers, and executives achieve their common goal—building great digital products and experiences.How to compete in the digital economy? In short: Ask Your Developer.

Adaptive Code Via C#: Agile Coding with Design Patterns and Solid Principles


Gary McLean Hall - 2014
    Your process may be agile, but are you building agility directly into the code base? This book teaches .NET programmers how to give code the flexibility to adapt to changing requirements and customer demands by applying cutting-edge techniques, including SOLID principles, design patterns, and other industry best practices.Understand why composition is preferable to inheritance and how flexible the interface really can be Gain deep knowledge of key design patterns and anti-patterns, when to apply them, and how to give their code agility Bridge the gap between the theory behind SOLID principles, design patterns, and industry best practices by pragmatically solving real-world problems Get code samples written in upcoming version of Microsoft Visual C# Topics include: Agile with Scrum process; dependencies and layering; the interface; patterns and anti-patterns; introduction to SOLID principles, including open/closed and dependency interjection; and using application templates

My Product Management Toolkit: Tools and Techniques to Become an Outstanding Product Manager


Marc Abraham - 2018
     ­Written by successful product manager Marc Abraham, My Product Management Toolkit is a comprehensive guide to developing a physical or digital product that consumers love. Here’s a sample of what you’ll find within these pages: Strategies for determining what customers want—even when they don’t know themselves Clear suggestions for developing both physical and digital products Effective methods to constantly iterate a product or feature Containing wisdom from Abraham’s popular blog, this book explores product management from every angle, including consumer analysis, personnel management, and product evolution. Whether you’re developing a product for a small start-up or a multinational corporation, this book will prove invaluable.