inside front cover
Skills of a Successful Software Engineer
Fernando Doglio
To comment go to liveBook
Manning
Shelter Island
For more information on this and other Manning titles go to
www.manning.com
Copyright
For online information and ordering of these and other Manning books, please visit www.manning.com. The publisher offers discounts on these books when ordered in quantity.
For more information, please contact
Special Sales Department
Manning Publications Co.
20 Baldwin Road
PO Box 761
Shelter Island, NY 11964
Email: orders@manning.com
2022 by Manning Publications Co. All rights reserved.
No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by means electronic, mechanical, photocopying, or otherwise, without prior written permission of the publisher.
Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in the book, and Manning Publications was aware of a trademark claim, the designations have been printed in initial caps or all caps.
Recognizing the importance of preserving what has been written, it is Mannings policy to have the books we publish printed on acid-free paper, and we exert our best efforts to that end. Recognizing also our responsibility to conserve the resources of our planet, Manning books are printed on paper that is at least 15 percent recycled and processed without the use of elemental chlorine.
| Manning Publications Co. 20 Baldwin Road Technical PO Box 761 Shelter Island, NY 11964 |
Development editor: | Doug Rudder |
Technical development editor: | Rasmus Kirkeby Strbk |
Review editor: | Mihaela Batini |
Production editor: | Deirdre Hiam |
Copy editor: | Andy Carroll |
Proofreader: | Katie Tennant |
Technical proofreader: | Tim Woolridge |
Typesetter: | Gordan Salinovi |
Cover designer: | Marija Tudor |
ISBN: 9781617299704
dedication
To my wife, whos always supported me on every single decision Ive made and whos always been by my side on every adventure: this book, just like everything else I do, is thanks to you.
And to my kids, whove mastered the art of making me a proud dad every single day: I love you!
front matter
preface
The software development industry has changed, and Im not talking about a recent changethis happened years ago. Accessing the entry-level knowledge required to start a career in software development is no longer the privilege of a few, but an opportunity for the masses. Knowledge is not the problemtechnology has allowed us to make it widespreadbut the industry itself hasnt adapted yet.
While most people trying to start a career as a developer focus on the technical side of what to learn (which language and framework to learn, which tutorial is best for understanding design patterns, etc.), they forget about everything else. And through that, they miss out on the most important detail: technical knowledge is readily available, and they will be consuming it for many years, if not decades. In contrast, understanding what to expect from your first job, choosing your first company from several job offers, or even figuring out how to work with a team of colleagues with different levels of skills than yours is not trivial, and that knowledge is less available. There are plenty of aspects of our profession that dont involve coding, and even if they do, they dont rely on code but rather on best practices and teamwork.
Thats where this book comes fromthe need to fill in that gap in the upbringing of new developers. I strongly believe that anyone can learn how to code if they spend enough time and find the right resources. I honestly believe that is the easiest part of our profession. But the rest? The rest is only learned through experience, and while I cant force experience into you through a book, I can give you a head start by sharing my own. After almost two decades in this industry, Ive picked up a tip or two, and Im more than willing to share them with you.
My hope is that by reading this book youll either be able to prepare for whats coming, or if youre already getting started, youll be able to make sense of what youre experiencing. Thats all. Im not going to teach the basics of programmingthere is the internet for that (and plenty of other books as well). But if youre interested in knowing what else to expect from the journey youve embarked on, then keep on reading!
acknowledgments
While some people would like to think that a book is the work of a single author, the reality is very different. Id like to acknowledge everyone whos been involved in the creation of this (and many other titles) within Manning: from the acquisition editor who saw potential in one of my articles on the internet and thought it could become a full-blown book, to the multiple reviewers, editors, and to all the others involved in every single step of the year-long process required to publish the book.
I thank my production editor, Deirdre Hiam; my copyeditor, Andy Carroll; my reviewing editor, Mihaela Batini; and my proofreader, Katie Tennant. Id also like to thank the reviewers who took the time to read my manuscript at various stages during its development and who provided invaluable feedbackyour suggestions helped make this a better book: Adhir Ramjiawan, Alessandro Puzielli, Brent Boylan, Christopher Villanueva, Deepak Raghavan, Dze Richard Fang, Fabian Pietro de Franca Bram, Jeremy Chen, Jessica Daubner, Joo Marcelo Borovina Josko, Joseph Pereniaj, Krzysztof Hrynczenko, Lobel Strmeki, Matthias Busch, Mattia Antonino Di Gangi, Mikael Dautrey, Oliver Korten, Owain Williams, Rodney Weis, Samantha Berk, Samvid Mistry, Simone Sguazza, Stuart Ellis, Sveta Ashokchandra Natu, and Tim Wooldridge.
about this book
Skills of a Successful Software Engineer was written with the aim of helping newcomers to the industry by sharing my own experience, my own mistakes, and the lessons Ive learned from them. Its intended to give you a glimpse into your future and to show you a possible pathway to traverse it. In the end, the way you evolve and move forward is going to be your own.
Who should read this book
Everyone!
At least, thats my hope, but on a more serious note, Ive written this book for a very specific type of reader: someone whos just getting started and has potentially not even worked as a developer yet. That person will get the most out of this book.
However, through our review process, weve also discovered that many developers with years-long careers already under their belts were able to learn a thing or two from different chapters. Some of them had been working for the same company all this time, and they found chapter 6 about the interview process interesting. Others have been toying around with the idea of working on a side project but didnt know where to begin, so chapter 5 was great for them. There is something for everyone here, so I encourage you to take a look, even if youve been working for a while already.