What do you need to know to be a successful software engineer? Undergraduate curricula and bootcamps may teach the fundamentals of algorithms and writing code, but they rarely cover topics vital to your career advancement. With this practical book, you'll learn the skills you need to succeed and thrive. Authors Nathaniel Schutta and Dan Vega guide your journey with everything from pointers to deep dives into specific topic areas that will help you build the skills that really matter as a software engineer.Understand what software engineering isand why communication and other soft skills matterLearn the basics of software architecture and architectural driversUse common and proven techniques to read and refactor code basesUnderstand the importance of testing and how to implement an effective test suiteLearn how to reliably and repeatedly deploy softwareKnow how to evaluate and choose the right solution or tool for a given problem