Best Software Design, Testing & Engineering
Early in his software developer career, John Sonmez discovered that technical knowledge alone isn't enough to break through to the next income level - developers need "soft skills" like the ability to learn new technologies just in time, communicate clearly with management and consulting clients, negotiate a fair hourly rate, and unite teammates and coworkers in working toward a common goal. Plus how helping your manager with his goals can make you the MVP of your team The technical skills that every professional developer must have - but no one teaches you (most developers are missing some critical pieces, they don't teach this stuff in college, you're expected to just "know" this) An inside look at the recruiting industry. Brand New Developers In this book you'll discover what it's like to be a professional software developer, how to go from "I know some code" to possessing the skills to work on a development team, how to speed along your learning by avoiding common beginner traps, and how to decide whether you should invest in a programming degree or "bootcamp." Not Just For Beginners--Guaranteed To Make You A Better Developer When I first started reading this book I was skeptical. Rui FigueiredoSoftware Developer and Computer Science PhDDublin, Ireland Deals With The Human Side Of Software Development. This book is different from all other software development books I have read because it deals with the human side of software development. Even though as software developers we are surrounded with the latest technology, we are still people with feelings, fears and dreams, and John's book focuses on that. The Complete Software Developer's Career Guide is a great resource that I wish that I had years earlier in my career and in my education. Fernando Z.Senior Software Developer, Blogger and Programming FanaticCentral Texas Get It Even If You're NOT In Software Development. Invaluable advice for any software developer, from entry-level to senior. John Sonmez is a software developer and the author of two bestselling books, The Complete Software Developer's Career Guide and Soft Skills: The Software Developer's Life Manual. He's also the founder of the Simple Programmer blog and YouTube channel, where he reaches 1.4 million software developers yearly and helps them develop the unique blend of skills that made him a highly paid, highly sought-after developer and consultant.
Reviews
Find Best Price at Amazon"The book meets the breadth and depth requirements one would expect of a software developers' career guide. I wish I had a book like this when I was starting out as a software developer back in the days."
"I have been an engineer and architect for nearly 20 years now and have found that all of the topics covered in John's book ring home."
"You will learn many new things and some things might be a refresher, but hey who doesn't need a refresher every now and then."
"Having been involved in all aspects of software development, John does a very good job of giving good advice, and providing sufficient information for anyone to succeed in the software industry."
"John has successfully taken the big picture and broken it down into manageable chunks."
"The Complete Software Developer's Career Guide continues on the path blazed by Sonmez's Soft Skills of taking the complexity in our life (and in this book's case, your software engineering career) and breaking it down into manageable & actionable chunks."
"I first heard of John Sonmez from his Soft Skills book."
"Well much of the information you can get online, but if you prefer to know software career development by reading book, then this is a good book."
Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code “on the fly” into a book that will instill within you the values of a software craftsman and make you a better programmer–but only if you work at it. Clean Code is divided into three parts. How to tell the difference between good and bad code How to write good code and how to transform bad code into good code How to create good names, good functions, good objects, and good classes How to format code for maximum readability How to implement complete error handling without obscuring code logic How to unit test and practice test-driven development. You'll be reading code--lots of code. Each case study is an exercise in cleaning up code--of transforming a code base that has some problems into one that is sound and efficient. Readers will come away from this book understanding. How to tell the difference between good and bad codeHow to write good code and how to transform bad code into good codeHow to create good names, good functions, good objects, and good classesHow to format code for maximum readabilityHow to implement complete error handling without obscuring code logicHow to unit test and practice test-driven developmentThis book is a must for any developer, software engineer, project manager, team lead, or systems analyst with an interest in producing better code.
Reviews
Find Best Price at Amazon"What's sad about the reality is that 'bad code' will continually increase over time because people don't realize what 'bad code' can do in the long run."
"This is one of the books that I keep multiple copies of around my office for my developers to read."
"Best book for programming, period."
"I believe that mastery of computer programming involves mastery of both the science & the art of programming, and this is the go-to book for the art of computer programming."
"Although highly opinionated, applying the principles and practices here will make any programmer more productive than they might otherwise be."
"This is a great book for learning to write easy, readable, testable code."
"Great writing, with clear examples and explanations."
"Stop reading reviews, start reading the book."
Using the Smarter Way to Learn method, you actually learn HTML/CSS, you don’t just read about it. Read the reviews that call The Smarter Way of learning fun, involving, frustration-free, and confidence-building. Then, if you want to go beyond reading about HTML & CSS and actually learn the skills, do it the smarter way.
Reviews
Find Best Price at Amazon"I did learn a long ago version of HTML from the ground up, but since then, I haven't studied the newer versions in detail, just used the features without really exploring all their details. Not only do the exercises make learning fun, they reinforce the material right away so it sinks in deeper."
"I purchased the book, A Smarter Way to Learn HTML & CSS, and then to my surprise it came also on my Samsung Galaxy Tablet for free."
"As the course progresses, material from previous chapters is used repeatedly in the chapter tests so that the material remains fresh. After completing the javascript course, I was working towards an exam in Mongo DB and I was able to put my new-found javascript knowledge to great use for that class."
"Mark Myers' method of getting what can be--at times--difficult information into a format that makes it exponentially easier to consume, truly understand, and synthesize into real-world application is beyond anything I've encountered before."
"I definitely recommend this book to those looking for a great learning experience, especially to those who struggle with the average educational read."
"I am amazed at what Mark Myers has been able to accomplish with his Smarter Way to Learn books. Specifically, in the HTML and CSS book, he has given you exercises at the end of each chapter so you can build your own (admittedly ugly) webpage. Mr. Myers has been helpful throughout, whenever I needed guidance or had a question."
"Thanks Mark, for writing this book."
Best Object Oriented Design
Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct solutions to commonly occurring design problems. Design Patterns: Elements of Reusable Object Oriented Software is one of those indispensable texts for anyone who develops software using objects. The heart of this title is the "pattern catalog" of 23 basic patterns, ranging from creational patterns, such as Factory and Builder, and structural patterns, such as Facade and Flyweight, to behavioral patterns, such as Command and Mediator. This book isn't an introduction to object-oriented technology or design. It's a book of design patterns that describe simple and elegant solutions to specific problems in object-oriented software design....Once you understand the design patterns and have had an "Aha!"
Reviews
Find Best Price at Amazon"Should be required reading for graduation - but I found this to be much more relatable a few years into my career where I had seen these patterns out in the wild having used or written them without terminology to match."
"Depending on on how you think of programming, this book could be incredibly insightful, or horribly abstract and impractical."
"I have been using this book as a reference on Design Pattern."
"This book will forever stand as a foundation of software development."
"OK, so this title has become almost a bible for the software industry - it seems to get cited by every other author I read, so I thought it was about time I actually bought a copy."
"Even though I program in ABAP, it helps me to translate the pattern into that code."
"Great book for who want to understand each pattern deeply."
"Excelent book."
Best Software Development
Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code “on the fly” into a book that will instill within you the values of a software craftsman and make you a better programmer–but only if you work at it. Clean Code is divided into three parts. How to tell the difference between good and bad code How to write good code and how to transform bad code into good code How to create good names, good functions, good objects, and good classes How to format code for maximum readability How to implement complete error handling without obscuring code logic How to unit test and practice test-driven development. You'll be reading code--lots of code. Each case study is an exercise in cleaning up code--of transforming a code base that has some problems into one that is sound and efficient. Readers will come away from this book understanding. How to tell the difference between good and bad codeHow to write good code and how to transform bad code into good codeHow to create good names, good functions, good objects, and good classesHow to format code for maximum readabilityHow to implement complete error handling without obscuring code logicHow to unit test and practice test-driven developmentThis book is a must for any developer, software engineer, project manager, team lead, or systems analyst with an interest in producing better code.
Reviews
Find Best Price at Amazon"What's sad about the reality is that 'bad code' will continually increase over time because people don't realize what 'bad code' can do in the long run."
"This is one of the books that I keep multiple copies of around my office for my developers to read."
"Best book for programming, period."
"I believe that mastery of computer programming involves mastery of both the science & the art of programming, and this is the go-to book for the art of computer programming."
"Although highly opinionated, applying the principles and practices here will make any programmer more productive than they might otherwise be."
"This is a great book for learning to write easy, readable, testable code."
"Great writing, with clear examples and explanations."
"Stop reading reviews, start reading the book."
Best Software Project Management
The added chapters contain (1) a crisp condensation of all the propositions asserted in the original book, including Brooks' central argument in The Mythical Man-Month: that large programming projects suffer management problems different from small ones due to the division of labor; that the conceptual integrity of the product is therefore critical; and that it is difficult but possible to achieve this unity; (2) Brooks' view of these propositions a generation later; (3) a reprint of his classic 1986 paper "No Silver Bullet"; and (4) today's thoughts on the 1986 assertion, "There will be no silver bullet within ten years." My co-authors of that study, and our executive secretary, Robert L. Patrick, were invaluable in bringing me back into touch with real-world large software projects. In preparing my retrospective and update of The Mythical Man-Month, I was struck by how few of the propositions asserted in it have been critiqued, proven, or disproven by ongoing software engineering research and experience. In hopes that these bald statements will invite arguments and facts to prove, disprove, update, or refine those propositions, I have included this outline as Chapter 18. For a wonderful willingness to share views, to comment thoughtfully on drafts, and to re-educate me, I am indebted to Barry Boehm, Ken Brooks, Dick Case, James Coggins, Tom DeMarco, Jim McCarthy, David Parnas, Earl Wheeler, and Edward Yourdon. I thank Gordon Bell, Bruce Buchanan, Rick Hayes-Roth, my colleagues on the Defense Science Board Task Force on Military Software, and, most especially, David Parnas for their insights and stimulating ideas for, and Rebekah Bierly for technical production of, the paper printed here as Chapter 16. Analyzing the software problem into the categories of essence and accident was inspired by Nancy Greenwood Brooks, who used such analysis in a paper on Suzuki violin pedagogy. Two persons' contributions should be especially cited: Norman Stanton, then Executive Editor, and Herbert Boes, then Art Director. Boes developed the elegant style, which one reviewer especially cited: "wide margins, and imaginative use of typeface and layout."
Reviews
Find Best Price at Amazon"Fred Brooks was a software engineer at IBM for some decades and later chair of the UNC CS department."
"A great book that tells you everything your project manager and lead architect are doing wrong, leading to the depressing realization that there is nothing you can do."
"Classic book which is proven by time."
"It contains four additional chapters: No Silver Bullet, yet another influential essay by Brooks that was not in the original edition; an overview of all his points (the entire book) in an easy-to-digest format; his thoughts 20 years on from writing the original, and how the industry has changed in that time; and finally, his responses to various criticism he has received over the years specifically in response to the "No Silver Bullet" essay."
"Other topics include the distinction between the "essential" and "accidental" elements of software design; the distinction between building a computer program vs. designing a "programming a systems product" (and the ninefold difference in complexity and time between the two); the quest for software engineering's elusive "silver bullet"; the importance of documentation; the surprisingly small percentage of time that actual writing of code occupies on the timeline of a typical software-development project (as contrasted with time needed for testing and debugging); large teams vs. small "surgical teams" (and why the latter isn't always the answer for all projects); the "buy versus build" dilemma; and many others."
Best Mobile Device Programming
Move into iOS development by getting a firm grasp of its fundamentals, including the Xcode 9 IDE, Cocoa Touch, and the latest version of Apple’s acclaimed programming language, Swift 4. Matt Neuburg started programming computers in 1968, when he was 14 years old, as a member of a literally underground high school club, which met once a week to do time-sharing on a bank of PDP-10s by way of primitive Teletype machines.
Reviews
Find Best Price at Amazon"Finally someone wrote an iOS programming book that isn't half useless space-wasting screenshots of dialogue boxes in Xcode!"
"This is my second week in Swift 4 and all of the questions I had about Cocoa and the general app architecture have all been resolved after spending hours skimming sites and videos trying to get a clear, high level picture."
Best Programing Languages & Tools
After reading a short chapter, you go to my website and complete twenty interactive exercises. Many learners hit a wall when they try to understand advanced concepts like variable scope and prototypes. But the fault lies with the authors, coding virtuosos who lack teaching talent. Thanks to the interactive exercises on my website, you'll always understand and remember everything necessary to confidently tackle the next concept. "I've signed up to a few sites like Udemy, Codecademy, FreeCodeCamp, Lynda, YouTube videos, even searched on Coursera but nothing seemed to work for me. It's how you wind up satisfied, confident, and proud, instead of confused, discouraged, and defeated. The exercises keep you focused, give you extra practice where you're shaky, and prepare you for each next step. But, as Amazon reviewer James Toban says, when you get to the end of the book, you've built "a tower of JavaScript." But if you're new to programming, more than a thousand five-star reviews are pretty good evidence that my book may be just the one to get you coding JavaScript successfully. "Mark Myers' method of getting what can be...difficult information into a format that makes it exponentially easier to consume, truly understand, and synthesize into real-world application is beyond anything I've encountered before." My professional focus is on using technology to reduce the effort and tedium of learning, primarily through interactivity. I'm developing the "A Smarter Way to Learn" series on programming, a collection of instructional books paired with online interactive exercises. Along with my wife Judy and our two politically-active cats, I live in Taos, NM, where I cook under the ghostly supervision of Marcella Hazan, read extensively, play showboat frisbee once a week, and long for more episodes of "Breaking Bad."
Reviews
Find Best Price at Amazon"As part of my learning, I'm also taking another class by Jeff Escalante, it's called "Making Kittens fly with JavaScript", I'm learning so much already because his course actually involves building a project from scratch. I tried learning javascript before from the "Eloquent Javascript" book and it was more intermediate than beginners so hopefully once I'm done with a smarter way to learn javascript and the other class I'm taking, I'll be able to finally understand the content of that book."
"Granted, there's more reading involved than some of the other resources that provide video tutorials, and there isn't any elaborate are direction to the interface, but this is a small sacrifice for a fantastic value. Fun fact: I was able to complete my first InDesign script before finishing the book."
"This book and the accompanying exercises (that you get at no additional expense) make this a one-of-a-kind learning system. Because of the organization, clear communication and most of all the online component of this system, this is the best book I have ever bought."
"Pros: -Gets you writing code quickly. -Includes online practice problems, that if completed, really help you retain the information. -Doesn't assume previous programming experience and has clear explanations where needed. -Author asks for and responds to feedback. Cons: -won't be the only JavaScript book you need, as it doesn't really cover design patterns, or any super in depth stuff. -doesn't go over any of the new ES6 stuff. This was my first programming book and I'm glad it was."
"This book provides you 20 individual exercises per chapter, where the computer will keep prompting you on the answers you get wrong until you get them right. This builds muscle memory for programming, and you find yourself recalling bits of code that you would not immediately remember just from reading the standard JS texts."
Best Open Source Programming
The pros and cons of braced initialization, noexcept specifications, perfect forwarding, and smart pointer make functions The relationships among std::move , std::forward , rvalue references, and universal references Techniques for writing clear, correct, effective lambda expressions How std::atomic differs from volatile , how each should be used, and how they relate to C++'s concurrency API How best practices in "old" C++ programming (i.e., C++98) require revision for software development in modern C++. Effective Modern C++ is the most important how-to book for advice on key guidelines, styles, and idioms to use modern C++ effectively and well. For more than 20 years, Scott Meyers’ Effective C++ books (Effective C++, More Effective C++, and Effective STL) have set the bar for C++ programming guidance.
Reviews
Find Best Price at Amazon"Great book so far."
"I write c++ almost everyday and this book was immediately useful."
"Then this is the book for you."
"I was skeptical about C++11 thinking it was just a makeup to look like other newer languages."
"Excellent exploration of 11 and 14 features."
"As he has done in the past, Scott Meyers has filled-in the gaps between the raw C++ specification and everyday best usage with thorough and insightful analysis."
"It was difficult for me to fully understand C++ 11 concepts without this book."
"This book is DENSE!"
Best Computer Games Programming
The biggest challenge facing many game programmers is completing their game. Robert Nystrom has programmed professionally for twenty years, about half of which is in games.
Reviews
Find Best Price at Amazon"TL;DR: To understand the code and some of the more performance-oriented patterns, you must understand C/C++ pointers and memory model. "Game Programming Patterns" delivers, providing an in-depth look at the core engineering patterns used ubiquitously in games but seldom known outside of the games industry. I HIGHLY recommend this, especially to new-ish programmers starting off in their first job (again, regardless of whether or not they work on games)."
"While the book can be used as an absolute go to when trying to find a solution to your implementation I would suggest to take the book as an engineering course; it does show a good amount of patterns but doesn't leave those simple."
"A real technical read."
"The very best book about how to design computer software. Many other books on software design are abstract or dense and those books are valuable."
"This book is a fantastic foundation for proper game architecture."
"I want to be a professional game programmer one day and I think this book will be a great asset for me."
"Even if you think you know this stuff already this book packs enough detail to really solidify your understanding."
"It uses source code to demonstrate ideas but doesn't use any platform/library specific pre existing resources so that ideas are easily transferable to different environments."
Best Microsoft Programming
This book shows how to use the Power Query tool to get difficult data sets into both Excel and Power Pivot, and is solely devoted to Power Query dashboarding and reporting. Miguel Escobar is an Excel MVP and a consultant and expert on business intelligence, PowerPivot, Excel, Power View, and SharePoint.
Reviews
Find Best Price at Amazon"I had been wondering for a while (like the past year or so) what Power Query was, but I was not really finding a good, clear answer."
"For all the Excel users out there that are just discovering Power Pivot, do yourselves a big favor and go ahead and get familiar with Power Query as well - this is a good book to have on your shelf."
"There are some useful books on DAX (this is NOT a book on DAX), but don't overlook the role of pre-shaping and automating your data model."
"If you are a QB user and hate the Advance Report engine, dump that junk and dig into power query."
"The book isn't bad but I found that I rarely used it as Power Query has most of the important functions as easy-to-use buttons that write the code for you and the code that couldn't be generated could be found easily through google."
"I Love this book for learning Power Query and have already recommended it to a colleague."
"Great book!"
"This book is worth every penny."
Best Algorithm Programming
Some books on algorithms are rigorous but incomplete; others cover masses of material but lack rigor. The second edition featured new chapters on the role of algorithms, probabilistic analysis and randomized algorithms, and linear programming. (Gabriel Robins, Department of Computer Science, University of Virginia) Introduction to Algorithms , the 'bible' of the field, is a comprehensive textbook covering the full spectrum of modern algorithms: from the fastest algorithms and data structures to polynomial-time algorithms for seemingly intractable problems, from classical algorithms in graph theory to special algorithms for string matching, computational geometry, and number theory.
Reviews
Find Best Price at Amazon"I had my moments of wanting to hurl it across the room, but it remained amongst the few texts I held onto, thinking it might be useful or enlightening in the future, relative to the burden of lugging it around. - Problem set. Tip: Concrete Mathematics by Knuth is good primer, establishing the specific discrete and continuous mathematical techniques underpinning the algorithms, and filling several knowledge gaps."
"I bought the paperback edition, which is significant lighter because of the thinner paper however that allows the text to be seen from the other side."
"The best introduction to algorithms book, hands down."
"It would be best to study this along with a computer science course on the same matters, or along with a more practical book that concentrates on implementing those algorithms and data structures."
"Nice book both if you're trying to get started on algorithms ( that was my case) and if you are looking for a reference book."
"I bought it for school thinking I would sell it back after exams, but I decided to keep this book and have it permanently in my library."
"Just bought the Third edition Hardcover."
Best Pattern Recognition
Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct solutions to commonly occurring design problems. Design Patterns: Elements of Reusable Object Oriented Software is one of those indispensable texts for anyone who develops software using objects. The heart of this title is the "pattern catalog" of 23 basic patterns, ranging from creational patterns, such as Factory and Builder, and structural patterns, such as Facade and Flyweight, to behavioral patterns, such as Command and Mediator. This book isn't an introduction to object-oriented technology or design. It's a book of design patterns that describe simple and elegant solutions to specific problems in object-oriented software design....Once you understand the design patterns and have had an "Aha!"
Reviews
Find Best Price at Amazon"Should be required reading for graduation - but I found this to be much more relatable a few years into my career where I had seen these patterns out in the wild having used or written them without terminology to match."
"explaining all design patterns with examples by core authors in simple way ."
"Should be read by all developers."
"Still in process of reading, but it arrived in good condition."
"If you are just starting out as a software developer, I would highly recommend this book."
"The Book was a gift for my son, and he appreciate it."
"Depending on on how you think of programming, this book could be incredibly insightful, or horribly abstract and impractical."
"I have been using this book as a reference on Design Pattern."