Book picks similar to
Peopleware: Productive Projects and Teams by Tom DeMarco
management
business
programming
non-fiction
Grokking Algorithms An Illustrated Guide For Programmers and Other Curious People
Aditya Y. Bhargava - 2015
The algorithms you'll use most often as a programmer have already been discovered, tested, and proven. If you want to take a hard pass on Knuth's brilliant but impenetrable theories and the dense multi-page proofs you'll find in most textbooks, this is the book for you. This fully-illustrated and engaging guide makes it easy for you to learn how to use algorithms effectively in your own programs.Grokking Algorithms is a disarming take on a core computer science topic. In it, you'll learn how to apply common algorithms to the practical problems you face in day-to-day life as a programmer. You'll start with problems like sorting and searching. As you build up your skills in thinking algorithmically, you'll tackle more complex concerns such as data compression or artificial intelligence. Whether you're writing business software, video games, mobile apps, or system utilities, you'll learn algorithmic techniques for solving problems that you thought were out of your grasp. For example, you'll be able to:Write a spell checker using graph algorithmsUnderstand how data compression works using Huffman codingIdentify problems that take too long to solve with naive algorithms, and attack them with algorithms that give you an approximate answer insteadEach carefully-presented example includes helpful diagrams and fully-annotated code samples in Python. By the end of this book, you will know some of the most widely applicable algorithms as well as how and when to use them.
Programming Interviews Exposed: Secrets to Landing Your Next Job (Programmer to Programmer)
John Mongan - 2000
This classic book uncovers what interviews are really like at America's top software and computer companies and provides you with the tools to succeed in any situation. The authors take you step-by-step through new problems and complex brainteasers they were asked during recent technical interviews. 50 interview scenarios are presented along with in-depth analysis of the possible solutions. The problem-solving process is clearly illustrated so you'll be able to easily apply what you've learned during crunch time. You'll also find expert tips on what questions to ask, how to approach a problem, and how to recover if you become stuck. All of this will help you ace the interview and get the job you want.What you will learn from this bookTips for effectively completing the job application Ways to prepare for the entire programming interview process How to find the kind of programming job that fits you best Strategies for choosing a solution and what your approach says about you How to improve your interviewing skills so that you can respond to any question or situation Techniques for solving knowledge-based problems, logic puzzles, and programming problems Who this book is for This book is for programmers and developers applying for jobs in the software industry or in IT departments of major corporations.Wrox Beginning guides are crafted to make learning programming languages and technologies easier than you think, providing a structured, tutorial format that will guide you through all the techniques involved.
Upstream: The Quest to Solve Problems Before They Happen
Dan Heath - 2020
We put out fires. We deal with emergencies. We stay downstream, handling one problem after another, but we never make our way upstream to fix the systems that caused the problems ... [This book] probes the psychological forces that push us downstream--including 'problem blindness,' which can leave us oblivious to serious problems in our midst. And Heath introduces us to the thinkers who have overcome these obstacles and scored ... victories by switching to an upstream mindset.
Business Model Generation
Alexander Osterwalder - 2010
You will learn how to systematically understand, design, and implement a new business model or analyze and renovate an old one.2) Co-created by 470 strategy practitionersBusiness Model Generation practices what it preaches. Co-authored by 470 Business Model Canvas practitioners from 45 countries, the book was financed and produced independently of the traditional publishing industry. It features a tightly-integrated, visual, lie-flat design that enables immediate hands-on use.3) Designed for doersBusiness Model Generation is for those ready to abandon outmoded thinking and embrace new, innovative models of value creation: executives, consultants, entrepreneurs and leaders of all organizations.
What Would Google Do?
Jeff Jarvis - 2009
By “reverse engineering the fastest growing company in the history of the world,” author Jeff Jarvis, proprietor of Buzzmachine.com, one of the Web’s most widely respected media blogs, offers indispensible strategies for solving the toughest new problems facing businesses today. With a new afterword from the author, What Would Google Do? is the business book that every leader or potential leader in every industry must read.
Never Split the Difference: Negotiating As If Your Life Depended On It
Chris Voss - 2016
Never Split the Difference takes you inside his world of high-stakes negotiations, revealing the nine key principles that helped Voss and his colleagues succeed when it mattered the most – when people’s lives were at stake.Rooted in the real-life experiences of an intelligence professional at the top of his game, Never Split the Difference will give you the competitive edge in any discussion.
Developer Hegemony: The Future of Labor
Erik Dietrich - 2017
The modern economy—the world itself—relies on technology. Demand for the people who can produce it far outweighs the supply. So why do developers occupy largely subordinate roles in the corporate structure? Developer Hegemony explores the past, present, and future of the corporation and what it means for developers. While it outlines problems with the modern corporate structure, it’s ultimately a play-by-play of how to leave the corporate carnival and control your own destiny. And it’s an emboldening, specific vision of what software development looks like in the world of developer hegemony—one where developers band together into partner firms of “efficiencers,” finally able to command the pay, respect, and freedom that’s earned by solving problems no one else can. Developers, if you grow tired of being treated like geeks who can only be trusted to take orders and churn out code, consider this your call to arms. Bring about the autonomous future that’s rightfully yours. It’s time for developer hegemony.
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.
Think Like a Programmer: An Introduction to Creative Problem Solving
V. Anton Spraul - 2012
In this one-of-a-kind text, author V. Anton Spraul breaks down the ways that programmers solve problems and teaches you what other introductory books often ignore: how to Think Like a Programmer. Each chapter tackles a single programming concept, like classes, pointers, and recursion, and open-ended exercises throughout challenge you to apply your knowledge. You'll also learn how to:Split problems into discrete components to make them easier to solve Make the most of code reuse with functions, classes, and libraries Pick the perfect data structure for a particular job Master more advanced programming tools like recursion and dynamic memory Organize your thoughts and develop strategies to tackle particular types of problems Although the book's examples are written in C++, the creative problem-solving concepts they illustrate go beyond any particular language; in fact, they often reach outside the realm of computer science. As the most skillful programmers know, writing great code is a creative art—and the first step in creating your masterpiece is learning to Think Like a Programmer.
The E-Myth Revisited: Why Most Small Businesses Don't Work and What to Do About It
Michael E. Gerber - 1985
500 CEOs.An instant classic, this revised and updated edition of the phenomenal bestseller dispels the myths about starting your own business. Small business consultant and author Michael E. Gerber, with sharp insight gained from years of experience, points out how common assumptions, expectations, and even technical expertise can get in the way of running a successful business.Gerber walks you through the steps in the life of a business—from entrepreneurial infancy through adolescent growing pains to the mature entrepreneurial perspective: the guiding light of all businesses that succeed—and shows how to apply the lessons of franchising to any business, whether or not it is a franchise. Most importantly, Gerber draws the vital, often overlooked distinction between working on your business and working in your business.The E-Myth Revisited will help you grow your business in a productive, assured way.
Managing the Unmanageable: Rules, Tools, and Insights for Managing Software People and Teams
Mickey W. Mantle - 2012
Their rules of thumb and coaching advice are great blueprints for new and experienced software engineering managers alike." --Tom Conrad, CTO, Pandora "I wish I'd had this material available years ago. I see lots and lots of 'meat' in here that I'll use over and over again as I try to become a better manager. The writing style is right on, and I love the personal anecdotes." --Steve Johnson, VP, Custom Solutions, DigitalFish All too often, software development is deemed unmanageable. The news is filled with stories of projects that have run catastrophically over schedule and budget. Although adding some formal discipline to the development process has improved the situation, it has by no means solved the problem. How can it be, with so much time and money spent to get software development under control, that it remains so unmanageable? In Managing the Unmanageable: Rules, Tools, and Insights for Managing Software People and Teams , Mickey W. Mantle and Ron Lichty answer that persistent question with a simple observation: You first must make programmers and software teams manageable. That is, you need to begin by understanding your people--how to hire them, motivate them, and lead them to develop and deliver great products. Drawing on their combined seventy years of software development and management experience, and highlighting the insights and wisdom of other successful managers, Mantle and Lichty provide the guidance you need to manage people and teams in order to deliver software successfully. Whether you are new to software management, or have already been working in that role, you will appreciate the real-world knowledge and practical tools packed into this guide.
Thinkertoys: A Handbook of Creative-Thinking Techniques
Michael Michalko - 1991
But how can you be the person who comes up with those ideas? In this revised and expanded edition of his groundbreaking Thinkertoys, creativity expert Michael Michalko reveals life-changing tools that will help you think like a genius. From the linear to the intuitive, this comprehensive handbook details ingenious creative-thinking techniques for approaching problems in unconventional ways. Through fun and thought-provoking exercises, you’ll learn how to create original ideas that will improve your personal life and your business life. Michalko’s techniques show you how to look at the same information as everyone else and see something different. With hundreds of hints, tricks, tips, tales, and puzzles, Thinkertoys will open your mind to a world of innovative solutions to everyday and not-so-everyday problems.
Tribes: We Need You to Lead Us
Seth Godin - 2008
For millions of years, humans have been seeking out tribes, be they religious, ethnic, economic, political, or even musical (think of the Deadheads). It's our nature.Now the Internet has eliminated the barriers of geography, cost, and time. All those blogs and social networking sites are helping existing tribes get bigger. But more important, they're enabling countless new tribes to be born—groups of ten or ten thousand or ten million who care about their iPhones, or a political campaign, or a new way to fight global warming. And so the key question: Who is going to lead us?The Web can do amazing things, but it can't provide leadership. That still has to come from individuals—people just like you who have passion about something. The explosion in tribes means that anyone who wants to make a difference now has the tools at her fingertips.If you think leadership is for other people, think again—leaders come in surprising packages. Consider Joel Spolsky and his international tribe of scary-smart software engineers. Or Gary Vaynerhuck, a wine expert with a devoted following of enthusiasts. Chris Sharma leads a tribe of rock climbers up impossible cliff faces, while Mich Mathews, a VP at Microsoft, runs her internal tribe of marketers from her cube in Seattle. All they have in common is the desire to change things, the ability to connect a tribe, and the willingness to lead.If you ignore this opportunity, you risk turning into a "sheepwalker"—someone who fights to protect the status quo at all costs, never asking if obedience is doing you (or your organization) any good. Sheepwalkers don't do very well these days.Tribes will make you think (really think) about the opportunities in leading your fellow employees, customers, investors, believers, hobbyists, or readers. . . . It's not easy, but it's easier than you think.
Writing Effective Use Cases
Alistair Cockburn - 2000
Cockburn begins by answering the most basic questions facing anyone interested in use cases: What does a use case look like? When do I write one? Next, he introduces each key element of use cases: actors, stakeholders, design scope, goal levels, scenarios, and more. Writing Effective Use Cases contains detailed guidelines, formats, and project standards for creating use cases -- as well as a detailed chapter on style, containing specific do's and don'ts. Cockburn shows how use cases fit together with requirements gathering, business processing reengineering, and other key issues facing software professionals. The book includes practice exercises with solutions, as well as a detailed appendix on how to use these techniques with UML. For all application developers, object technology practitioners, software system designers, architects, and analysts.