Introducing The Effective Engineer--the only book designed specifically for today's software engineers, based on extensive interviews with engineering leaders at top tech companies, and packed with hundreds of techniques to accelerate your career.
Author: Brian W. Fitzpatrick
Publisher: "O'Reilly Media, Inc."
Release Date: 2012-07-06
In a perfect world, software engineers who produce the best code are the most successful. But in our perfectly messy world, success also depends on how you work with people to get your job done. In this highly entertaining book, Brian Fitzpatrick and Ben Collins-Sussman cover basic patterns and anti-patterns for working with other people, teams, and users while trying to develop software. This is valuable information from two respected software engineers whose popular series of talks—including "Working with Poisonous People"—has attracted hundreds of thousands of followers. Writing software is a team sport, and human factors have as much influence on the outcome as technical factors. Even if you’ve spent decades learning the technical side of programming, this book teaches you about the often-overlooked human component. By learning to collaborate and investing in the "soft skills" of software engineering, you can have a much greater impact for the same amount of effort. Team Geek was named as a Finalist in the 2013 Jolt Awards from Dr. Dobb's Journal. The publication's panel of judges chose five notable books, published during a 12-month period ending June 30, that every serious programmer should read.
11 simple practices a software engineer can apply to be more a more effective contributor and more productive team member. Included are personal processes for fixing bugs and implementing new features, tips for writing, interviewing, and time management, as well as guides for bootstrapping new projects, making technical arguments, and leading a team.
Author: Murray Cantor
Publisher: Addison-Wesley Professional
Release Date: 2002
"This book will help you not become a "Pointy Hair Manager." It will give you enough insight into the nature of software, the development process, and the techniques and tools used, so that you can intelligently reason about development and adjust, plan, replan, manage risks, and lead a team to success; not just document and record their failure." --From the Foreword by Philippe Kruchten, Rational Fellow, Rational Software Canada Together, a high demand for productive software development teams and a company's call for superior software have made seasoned professionals invaluable assets to software organizations. New managers must quickly become familiar with the key skills required by the needs of the position, and seasoned professionals must learn new methods of team organization to cope with the shorter length of the development cycle. Software Leadership: A Guide to Successful Software Development provides sound, practical guidance on how to be a good manager and how to build a competitive software team. This book is for the manager with little software background, as well as the seasoned software professional. Based on the author's extensive professional experience, the book is a concise and straightforward overview of what he has found that every competent team leader absolutely has to know and practice. The following topics, which a successful leader must understand, are covered in detail: Software quality Effective development practices Team dynamics Appropriate leadership style This book will show you how to lead your team toward the delivery of timely and cost-effective software, and teach you how to lead a modern software development project or organization. 0201700441B09072001
This book has assembled a guide that will help you hire, motivate, and mentor a software development team that functions at the highest level. Their rules of thumb and coaching advice form a great blueprint for new and experienced software engineering managers alike. All too often, software development is deemed unmanageable. The news is filled with stories of projects that have run catastrophically over schedule and budget.
Author: Brian W. Fitzpatrick
Publisher: "O'Reilly Media, Inc."
Release Date: 2015-10-13
Genre: Business & Economics
In the course of their 20+-year engineering careers, authors Brian Fitzpatrick and Ben Collins-Sussman have picked up a treasure trove of wisdom and anecdotes about how successful teams work together. Their conclusion? Even among people who have spent decades learning the technical side of their jobs, most haven’t really focused on the human component. Learning to collaborate is just as important to success. If you invest in the "soft skills" of your job, you can have a much greater impact for the same amount of effort. The authors share their insights on how to lead a team effectively, navigate an organization, and build a healthy relationship with the users of your software. This is valuable information from two respected software engineers whose popular series of talks—including "Working with Poisonous People"—has attracted hundreds of thousands of followers.
Author: Mykel J. Kochenderfer
Publisher: MIT Press
Release Date: 2015-07-24
Many important problems involve decision making under uncertainty -- that is, choosing actions based on often imperfect observations, with unknown outcomes. Designers of automated decision support systems must take into account the various sources of uncertainty while balancing the multiple objectives of the system. This book provides an introduction to the challenges of decision making under uncertainty from a computational perspective. It presents both the theory behind decision making models and algorithms and a collection of example applications that range from speech recognition to aircraft collision avoidance. Focusing on two methods for designing decision agents, planning and reinforcement learning, the book covers probabilistic models, introducing Bayesian networks as a graphical model that captures probabilistic relationships between variables; utility theory as a framework for understanding optimal decision making under uncertainty; Markov decision processes as a method for modeling sequential problems; model uncertainty; state uncertainty; and cooperative decision making involving multiple interacting agents. A series of applications shows how the theoretical concepts can be applied to systems for attribute-based person search, speech applications, collision avoidance, and unmanned aircraft persistent surveillance. Decision Making Under Uncertainty unifies research from different communities using consistent notation, and is accessible to students and researchers across engineering disciplines who have some prior exposure to probability theory and calculus. It can be used as a text for advanced undergraduate and graduate students in fields including computer science, aerospace and electrical engineering, and management science. It will also be a valuable professional reference for researchers in a variety of disciplines.
Managing people is difficult wherever you work. But in the tech industry, where management is also a technical discipline, the learning curve can be brutal—especially when there are few tools, texts, and frameworks to help you. In this practical guide, author Camille Fournier (tech lead turned CTO) takes you through each stage in the journey from engineer to technical manager. From mentoring interns to working with senior staff, you’ll get actionable advice for approaching various obstacles in your path. This book is ideal whether you’re a new manager, a mentor, or a more experienced leader looking for fresh advice. Pick up this book and learn how to become a better manager and leader in your organization. Begin by exploring what you expect from a manager Understand what it takes to be a good mentor, and a good tech lead Learn how to manage individual members while remaining focused on the entire team Understand how to manage yourself and avoid common pitfalls that challenge many leaders Manage multiple teams and learn how to manage managers Learn how to build and bootstrap a unifying culture in teams
Author: National Academy of Engineering
Publisher: National Academies Press
Release Date: 2004-05-14
To enhance the nation's economic productivity and improve the quality of life worldwide, engineering education in the United States must anticipate and adapt to the dramatic changes of engineering practice. The Engineer of 2020 urges the engineering profession to recognize what engineers can build for the future through a wide range of leadership roles in industry, government, and academia--not just through technical jobs. Engineering schools should attract the best and brightest students and be open to new teaching and training approaches. With the appropriate education and training, the engineer of the future will be called upon to become a leader not only in business but also in nonprofit and government sectors. The book finds that the next several decades will offer more opportunities for engineers, with exciting possibilities expected from nanotechnology, information technology, and bioengineering. Other engineering applications, such as transgenic food, technologies that affect personal privacy, and nuclear technologies, raise complex social and ethical challenges. Future engineers must be prepared to help the public consider and resolve these dilemmas along with challenges that will arise from new global competition, requiring thoughtful and concerted action if engineering in the United States is to retain its vibrancy and strength.
Enterprise Agility is practical framework for enhancing Agility and equipping your company with the tools to survive. Key Features Prepare your company to navigate the rapidly-moving business world Enhance Agility in every component of your organization Build a framework that meets the unique requirements of your enterprise Book Description The biggest challenge enterprises face today is dealing with fast-paced change in all spheres of business. Enterprise Agility shows how an enterprise can address this challenge head on and thrive in the dynamic environment. Avoiding the mechanistic construction of existing enterprises that focus on predictability and certainty, Enterprise Agility delivers practical advice for responding and adapting to the scale and accelerating pace of disruptive change in the business environment. Agility is a fundamental shift in thinking about how enterprises work to effectively deal with disruptive changes in the business environment. The core belief underlying agility is that enterprises are open and living systems. These living systems, also known as complex adaptive systems (CAS), are ideally suited to deal with change very effectively. Agility is to enterprises what health is to humans. There are some foundational principles that can be broadly applied, but the definition of healthy is very specific to each individual. Enterprise Agility takes a similar approach with regard to agility: it suggests foundational practices to improve the overall health of the body—culture, mindset, and leadership—and the health of its various organs: people, process, governance, structure, technology, and customers. The book also suggests a practical framework to create a plan to enhance agility. What you will learn Drive agility-oriented change across the enterprise Understand why agility matters (more than ever) to modern enterprises Adopt and influence an Agile mindset in your teams and in your organization Understand the concept of a CAS and how to model enterprise and leadership behaviors on CAS characteristics to enhance enterprise agility Understand and convey the differences between Agile and true enterprise agility Create an enterprise-specific action plan to enhance agility Become a champion for enterprise agility Recognize the advantages and challenges of distributed teams, and how Agile ways of working can remedy the rough spots Enable and motivate your IT partners to adopt Agile ways of working Who this book is for Enterprise Agility is a tool for anyone with the motivation to influence outcomes in an enterprise, who aspires to improve Agility. Readers from the following backgrounds will benefit: chief executive officer, chief information officer, people/human resource director, information technology director, head of change program, head of transformation, and Agile coach/consultant.
How can you take advantage of the HipHop Virtual Machine (HHVM) and the Hack programming language, two new technologies that Facebook developed to run their web servers? With this practical guide, Owen Yamauchi—a member of Facebook’s core Hack and HHVM teams—shows you how to get started with these battle-tested open-source tools. You’ll explore static typechecking and several other features that separate Hack from its PHP origins, and learn how to set up, configure, deploy, and monitor HHVM. Ideal for developers with basic PHP knowledge or experience with other languages, this book also demonstrates how these tools can be used with existing PHP codebases and new projects alike. Learn how Hack provides static typechecking while retaining PHP’s flexible, rapid development capability Write typesafe code with Hack’s generics feature Explore HHVM, a just-in-time compilation runtime engine with full PHP compatibility Dive into Hack collections, asynchronous functions, and the XHP extension for PHP Understand Hack’s design rationale, including why it omits some PHP features Use Hack for multitasking, and for generating HTML securely Learn tools for working with Hack code, including PHP-to-Hack migration
Author: National Academies of Sciences, Engineering, and Medicine
Publisher: National Academies Press
Release Date: 2018-09-01
Genre: Social Science
Over the last few decades, research, activity, and funding has been devoted to improving the recruitment, retention, and advancement of women in the fields of science, engineering, and medicine. In recent years the diversity of those participating in these fields, particularly the participation of women, has improved and there are significantly more women entering careers and studying science, engineering, and medicine than ever before. However, as women increasingly enter these fields they face biases and barriers and it is not surprising that sexual harassment is one of these barriers. Over thirty years the incidence of sexual harassment in different industries has held steady, yet now more women are in the workforce and in academia, and in the fields of science, engineering, and medicine (as students and faculty) and so more women are experiencing sexual harassment as they work and learn. Over the last several years, revelations of the sexual harassment experienced by women in the workplace and in academic settings have raised urgent questions about the specific impact of this discriminatory behavior on women and the extent to which it is limiting their careers. Sexual Harassment of Women explores the influence of sexual harassment in academia on the career advancement of women in the scientific, technical, and medical workforce. This report reviews the research on the extent to which women in the fields of science, engineering, and medicine are victimized by sexual harassment and examines the existing information on the extent to which sexual harassment in academia negatively impacts the recruitment, retention, and advancement of women pursuing scientific, engineering, technical, and medical careers. It also identifies and analyzes the policies, strategies and practices that have been the most successful in preventing and addressing sexual harassment in these settings.
Author: Committee for Advancing Software-Intensive Systems Producibility
Publisher: National Academies Press
Release Date: 2010-10-27
Critical Code contemplates Department of Defense (DoD) needs and priorities for software research and suggests a research agenda and related actions. Building on two prior books--Summary of a Workshop on Software Intensive Systems and Uncertainty at Scale and Preliminary Observations on DoD Software Research Needs and Priorities--the present volume assesses the nature of the national investment in software research and, in particular, considers ways to revitalize the knowledge base needed to design, produce, and employ software-intensive systems for tomorrow's defense needs. Critical Code discusses four sets of questions: To what extent is software capability significant for the DoD? Is it becoming more or less significant and strategic in systems development? Will the advances in software producibility needed by the DoD emerge unaided from industry at a pace sufficient to meet evolving defense requirements? What are the opportunities for the DoD to make more effective use of emerging technology to improve software capability and software producibility? In which technology areas should the DoD invest in research to advance defense software capability and producibility?
Using a simple computational task (term frequency) to illustrate different programming styles, Exercises in Programming Style helps readers understand the various ways of writing programs and designing systems. It is designed to be used in conjunction with code provided on an online repository. The book complements and explains the raw code in a way that is accessible to anyone who regularly practices the art of programming. The book can also be used in advanced programming courses in computer science and software engineering programs. The book contains 33 different styles for writing the term frequency task. The styles are grouped into nine categories: historical, basic, function composition, objects and object interactions, reflection and metaprogramming, adversity, data-centric, concurrency, and interactivity. The author verbalizes the constraints in each style and explains the example programs. Each chapter first presents the constraints of the style, next shows an example program, and then gives a detailed explanation of the code. Most chapters also have sections focusing on the use of the style in systems design as well as sections describing the historical context in which the programming style emerged.
Author: National Research Council
Publisher: National Academies Press
Release Date: 2009-09-08
Engineering education in K-12 classrooms is a small but growing phenomenon that may have implications for engineering and also for the other STEM subjects--science, technology, and mathematics. Specifically, engineering education may improve student learning and achievement in science and mathematics, increase awareness of engineering and the work of engineers, boost youth interest in pursuing engineering as a career, and increase the technological literacy of all students. The teaching of STEM subjects in U.S. schools must be improved in order to retain U.S. competitiveness in the global economy and to develop a workforce with the knowledge and skills to address technical and technological issues. Engineering in K-12 Education reviews the scope and impact of engineering education today and makes several recommendations to address curriculum, policy, and funding issues. The book also analyzes a number of K-12 engineering curricula in depth and discusses what is known from the cognitive sciences about how children learn engineering-related concepts and skills. Engineering in K-12 Education will serve as a reference for science, technology, engineering, and math educators, policy makers, employers, and others concerned about the development of the country's technical workforce. The book will also prove useful to educational researchers, cognitive scientists, advocates for greater public understanding of engineering, and those working to boost technological and scientific literacy.