Building a Career in Software: A Comprehensive Guide to Success in the Software Industry
“`
Software engineering education has a problem: universities and bootcamps teach aspiring engineers to write code, but they leave graduates to teach themselves the countless supporting tools required to thrive in real software companies. Building a Career in Software is the solution, a comprehensive guide to the essential skills that instructors don’t need and professionals never think to teach: landing jobs, choosing teams and projects, asking good questions, running meetings, going on-call, debugging production problems, technical writing, making the most of a mentor, and much more.
In over a decade building software at companies such as Apple and Uber, Daniel Heller has mentored and managed tens of engineers from a variety of training backgrounds, and those engineers inspired this book with their hundreds of questions about career issues and day-to-day problems. Designed for either random access or cover-to-cover reading, it offers concise treatments of virtually every non-technical challenge you will face in the first five years of your career―as well as a selection of industry-focused technical topics rarely covered in training. Whatever your education or technical specialty, Building a Career in Software can save you years of trial and error and help you succeed as a real-world software professional.
What You Will Learn
Discover every important nontechnical facet of professional programming as well as several key technical practices essential to the transition from student to professional
Build relationships with your employer
Improve your communication, including technical writing, asking good questions, and public speaking
“`
Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
“`
Data is at the center of many challenges in system design today. Difficult issues need to be figured out, such as scalability, consistency, reliability, efficiency, and maintainability. In addition, we have an overwhelming variety of tools, including relational databases, NoSQL datastores, stream or batch processors, and message brokers. What are the right choices for your application? How do you make sense of all these buzzwords?
In this practical and comprehensive guide, author Martin Kleppmann helps you navigate this diverse landscape by examining the pros and cons of various technologies for processing and storing data. Software keeps changing, but the fundamental principles remain the same. With this book, software engineers and architects will learn how to apply those ideas in practice, and how to make full use of data in modern applications.
Peer under the hood of the systems you already use, and learn how to use and operate them more effectively
Make informed decisions by identifying the strengths and weaknesses of different tools
Navigate the trade-offs around consistency, scalability, fault tolerance, and complexity
Understand the distributed systems research upon which modern databases are built
Peek behind the scenes of major online services, and learn from their architectures
“`
The Practice of Cloud System Administration: Designing and Operating Large Distributed Systems (Thomas A. Limoncelli , Strata R. Chalup , Christina J. Hogan)
The Practice of Cloud System Administration: Devops and Sre Practices for Web Services, Volume 2 (Limoncelli, Thomas A;Chalup, Strata R;Hogan, Christina J)
REF
https://brainhub.eu/library/7-books-every-cto-should-read