Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions


Herb Sutter - 1999
    Do you enjoy solving thorny C++ problems and puzzles? Do you relish writing robust and extensible code? Then take a few minutes and challenge yourself with some tough C++ design and programming problems. The puzzles and problems in Exceptional C++ not only entertain, they will help you hone your skills to become the sharpest C++ programmer you can be. Many of these problems are culled from the famous Guru of the Week feature of the Internet newsgroup comp.lang.c++.moderated, expanded and updated to conform to the official ISO/ANSI C++ Standard. Each problem is rated according to difficulty and is designed to illustrate subtle programming mistakes or design considerations. After youve had a chance to attempt a solution yourself, the book then dissects the code, illustrates what went wrong, and shows how the problem can be fixed. Covering a broad range of C++ topics, the problems and solutions address critical issues such as: *Generic programming and how to write reusable templates *Exception safety issues and techniques *Robust class design and inheritance *Compiler firewalls and the Pimpl I

Results-Based Leadership


Dave Ulrich - 1999
    Authors Ulrich, Zenger, and Smallwood--world-renowned experts in human resources and training--argue that it is not enough to gauge leaders by personal traits such as character, style, and values. Rather, effective leaders know how to connect these leadership attributes with results. Results-Based Leadership shows executives how to deliver results in four specific areas: results for employees, for the organization, for its customers, and for its investors. The authors provide action-oriented guidelines that readers can follow to develop and hone their own results-based leadership skills. By shifting our focus to the connection between the attributes and the results of leadership, this perceptive new guide fundamentally improves our understanding of effective leadership. Results-Based Leadership brings a refreshing clarity and directness to the leadership discussion, providing a hands-on program to help executives succeed with their leadership challenges.

Designing Bots: Creating Conversational Experiences


Amir Shevat - 2017
    In this practical guide, author Amir Shevat shows you how to design and build great conversational experiences and delightful bots that makes people s life more fun and productive.You ll explore several real-world bot examples to understand what works and what doesn t, and learn practical design patterns for your own bot-building toolbox. This book is ideal for beginners and intermediate designers, as well as senior professionals exploring the conversational user experience paradigm. No coding experience or prior knowledge of conversational UI is required.Learn what bots are, and understand bot types and major components that compose a botExplore different use-cases of bots and best practices around these use casesExamine real-life examples and learn from their experienceUnderstand the bot anatomy (Onboarding, Notifications, Conversations, Advance UI controls) and their associated design patternsPrototype your own first bot and experiment with user feedback"

Effective TypeScript: 62 Specific Ways to Improve Your TypeScript


Dan Vanderkam - 2019
    But TypeScript has a learning curve of its own, and understanding how to use it effectively can take time. This book guides you through 62 specific ways to improve your use of TypeScript.Author Dan Vanderkam, a principal software engineer at Sidewalk Labs, shows you how to apply these ideas, following the format popularized by Effective C++ and Effective Java (both from Addison-Wesley). You’ll advance from a beginning or intermediate user familiar with the basics to an advanced user who knows how to use the language well.Effective TypeScript is divided into eight chapters: Getting to Know TypeScript TypeScript’s Type System Type Inference Type Design Working with any Types Declarations and @types Writing and Running Your Code Migrating to TypeScript

Exploring Requirements: Quality Before Design


Donald C. Gause - 1989
    Methodologies Aren't Enough2. Ambiguity in Stating Requirements3. Sources of Ambiguity4. The Tried but Untrue Use of Direct QuestionsPart II: Ways to Get Started5. Starting Points6. Context-Free Questions7. Getting the Right People Involved8. Making Meetings Work for Everybody9. Reducing Ambiguity from Start to FinishPart III: Exploring the Possibilities10. Idea-Generation Meetings11. Right-Brain Methods12. The Project's Name13. Facilitating in the Face of ConflictPart IV: Clarifying Expectations14. Functions15. Attributes16. Constraints17. Preferences18. ExpectationsPart V: Greatly Improving the Odds of Success19. Ambiguity Metrics20. Technical Reviews21. Measuring Satisfaction22. Test Cases23. Studying Existing Products24. Making Agreements25. EndingBibliographyIndex

Learning Python


Mark Lutz - 2003
    Python is considered easy to learn, but there's no quicker way to mastery of the language than learning from an expert teacher. This edition of "Learning Python" puts you in the hands of two expert teachers, Mark Lutz and David Ascher, whose friendly, well-structured prose has guided many a programmer to proficiency with the language. "Learning Python," Second Edition, offers programmers a comprehensive learning tool for Python and object-oriented programming. Thoroughly updated for the numerous language and class presentation changes that have taken place since the release of the first edition in 1999, this guide introduces the basic elements of the latest release of Python 2.3 and covers new features, such as list comprehensions, nested scopes, and iterators/generators. Beyond language features, this edition of "Learning Python" also includes new context for less-experienced programmers, including fresh overviews of object-oriented programming and dynamic typing, new discussions of program launch and configuration options, new coverage of documentation sources, and more. There are also new use cases throughout to make the application of language features more concrete. The first part of "Learning Python" gives programmers all the information they'll need to understand and construct programs in the Python language, including types, operators, statements, classes, functions, modules and exceptions. The authors then present more advanced material, showing how Python performs common tasks by offering real applications and the libraries available for those applications. Each chapter ends with a series of exercises that will test your Python skills and measure your understanding."Learning Python," Second Edition is a self-paced book that allows readers to focus on the core Python language in depth. As you work through the book, you'll gain a deep and complete understanding of the Python language that will help you to understand the larger application-level examples that you'll encounter on your own. If you're interested in learning Python--and want to do so quickly and efficiently--then "Learning Python," Second Edition is your best choice.

Technology Strategy Patterns: Architecture as Strategy


Eben Hewitt - 2018
    This book’s toolkit provides architects, product managers, technology managers, and executives with a shared language—in the form of repeatable, practical patterns and templates—to produce great technology strategies. Author Eben Hewitt developed 39 patterns over the course of a decade in his work as CTO, CIO, and chief architect for several global tech companies. With these proven tools, you can define, create, elaborate, refine, and communicate your architecture goals, plans, and approach in a way that executives can readily understand, approve, and execute. This book covers: Architecture and strategy: Adopt a strategic architectural mindset to make a meaningful material impact Creating your strategy: Define the components of your technology strategy using proven patterns Communicating the strategy: Convey your technology strategy in a compelling way to a variety of audiences Bringing it all together: Employ patterns individually or in clusters for specific problems; use the complete framework for a comprehensive strategy