Best Stack Overflow Books In March 2019

TopTalkedBooks
16 min readJul 20, 2019

--

Here are a list of top talked books in June 2019 from Stack Overflow.

Last Updated: 2019–07–20

Working Effectively with Legacy Code

Is your code easy to change? Can you get nearly instantaneous feedback when you do change it? Do you understand it? If the answer to any of these questions is no, you have legacy code, and it is draining time and money away from your development efforts.

In this book, Michael Feathers offers start-to-finish strategies for working more effectively with large, untested legacy code bases. This book draws on material Michael created for his renowned Object Mentor seminars: techniques Michael has used in mentoring to help hundreds of developers, technical managers, and testers bring their legacy systems under control.

The topics covered include

  • Understanding the mechanics of software change: adding features, fixing bugs, improving design, optimizing performance
  • Getting legacy code into a test harness
  • Writing tests that protect you against introducing new problems
  • Techniques that can be used with any language or platform — with examples in Java, C++, C, and C#
  • Accurately identifying where code changes need to be made
  • Coping with legacy systems that aren’t object-oriented
  • Handling applications that don’t seem to have any structure

This book also includes a catalog of twenty-four dependency-breaking techniques that help you work with program elements in isolation and make safer changes.

Effective Java (2nd Edition)

Are you looking for a deeper understanding of the Java™ programming language so that you can write code that is clearer, more correct, more robust, and more reusable? Look no further! Effective Java™, Second Edition, brings together seventy-eight indispensable programmer’s rules of thumb: working, best-practice solutions for the programming challenges you encounter every day. This highly anticipated new edition of the classic, Jolt Award-winning work has been thoroughly updated to cover Java SE 5 and Java SE 6 features introduced since the first edition. Bloch explores new design patterns and language idioms, showing you how to make the most of features ranging from generics to enums, annotations to autoboxing. Each chapter in the book consists of several “items” presented in the form of a short, standalone essay that provides specific advice, insight into Java platform subtleties, and outstanding code examples. The comprehensive descriptions and explanations for each item illuminate what to do, what not to do, and why. Highlights include: New coverage of generics, enums, annotations, autoboxing, the for-each loop, varargs, concurrency utilities, and much more Updated techniques and best practices on classic topics, including objects, classes, libraries, methods, and serialization How to avoid the traps and pitfalls of commonly misunderstood subtleties of the language Focus on the language and its most fundamental libraries: java.lang, java.util, and, to a lesser extent, java.util.concurrent and java.io Simply put, Effective Java™, Second Edition, presents the most practical, authoritative guidelines available for writing efficient, well-designed programs.

Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition)

Test Driven Development: By Example

Write clean code that works with the help of this groundbreaking software method. Example-driven teaching is the basis of Beck’s step-by-step instruction that will have readers using TDD to further their projects.

Refactoring Databases: Evolutionary Database Design

Brings agile/object developers and database administrators together to develop a common language for better database design and change.

The C++ Programming Language: Special Edition (3rd Edition)

Advanced Visual Basic 6: Power Techniques for Everyday Programs

In Advanced Visual Basic 6, leading Visual Basic expert Matthew Curland demonstrates powerhouse techniques programmers can use to write high-performance, robust, and reusable VB code. Readers learn how to leverage the close relationships between VB, COM, and OLE Automation, extending the envelope of VBs capabilities and building high-quality, object-based systems./P> Key topics include how to: *Control VB array variables explicitly to directly access arbitrary memory locations *Call pointers to standard, cdecl, and class module functions *Aggregate complete interface implementations into any VB object *Override functions on any interface, including those implemented automatically by VB *Turn any user-defined type into a lightweight COM object *Minimize memory usage in systems with a large number of objects *Safely create and manage threads in ActiveX EXEs and DLLs *Interact with messages to customize windowed and windowless UserControl objects The CD-ROM accompanying this book contains extensive source code samples to enable all techniques without external DLLs. It also provides integrated type library add-ins for creating and editing referenced libraries, modifying binary compatib

C++ Primer (5th Edition)

Bestselling Programming Tutorial and Reference Completely Rewritten for the New C++11 Standard Fully updated and recast for the newly released C++11 standard, this authoritative and comprehensive introduction to C++ will help you to learn the language fast, and to use it in modern, highly effective ways. Highlighting today’s best practices, the authors show how to use both the core language and its standard library to write efficient, readable, and powerful code. C++ Primer, Fifth Edition, introduces the C++ standard library from the outset, drawing on its common functions and facilities to help you write useful programs without first having to master every language detail. The book’s many examples have been revised to use the new language features and demonstrate how to make the best use of them.

This book is a proven tutorial for those new to C++, an authoritative discussion of core C++ concepts and techniques, and a valuable resource for experienced programmers, especially those eager to see C++11 enhancements illuminated. Start Fast and Achieve More Learn how to use the new C++11 language features and the standard library to build robust programs quickly, and get comfortable with high-level programming Learn through examples that illuminate today’s best coding styles and program design techniques Understand the “rationale behind the rules”: why C++11 works as it does Use the extensive crossreferences to help you connect related concepts and insights Benefit from up-to-date learning aids and exercises that emphasize key points, help you to avoid pitfalls, promote good practices, and reinforce what you’ve learned Access the source code for the extended examples from informit.com/title/0321714113 C++ Primer, Fifth Edition, features an enhanced, layflat binding, which allows the book to stay open more easily when placed on a flat surface.

This special binding method — notable by a small space inside the spine — also increases durability.

Regular Expressions Cookbook: Detailed Solutions in Eight Programming Languages

Covers the basics of regular expressions along with recipes for common tasks using C#, Java, JavaScript, Perl, PHP, Python, Ruby, and VB NET.

CLR via C# (3rd Edition) (Developer Reference)

Your essential guide to developing applications with the common language runtime (CLR) and Micrsoft.NET Framework4.0, with examles in Microsoft Visual C # 2010.

Beginning Rails 3 (Expert’s Voice in Web Development)

Beginning Rails 3 is the practical starting point for anyone wanting to learn how to build dynamic web applications using the Rails framework for Ruby. You’ll learn how all of the components of Rails fit together and how you can leverage them to create sophisticated web applications with less code and more joy. This book is particularly well suited to those with little or no experience with web application development, or who have some experience but are new to Rails. Beginning Rails 3 assumes basic familiarity with web terms and technologies, but doesn’t require you to be an expert. Rather than delving into the arcane details of Rails, the focus is on the aspects of the framework that will become your pick, shovel, and axe. Part history lesson, part introduction to object-oriented programming, and part dissertation on open source software, this title doesn’t just explain how to do something in Rails, it explains why. Learn to create Rails web applications from scratch Includes a gentle introduction to the Ruby programming language Completely updated to include the features of Rails 3 What you’ll learn Rails 3 includes the combined power of Rails and Merb. Beginning Rails 3 will get you started in learning this technology and creating dynamic web applications in next to no time. Install Rails on a Mac, Windows, or Linux system Understand the Model-View-Controller architecture Learn the value of databases and how to set up MySQL in Rails Get instant feedback on your work by testing in the Rails Console Add Ajax and visual effects to create rich user interfaces Use and create your own Rails plug-ins Who this book is for Web developers who want to harness the power of Rails 3 to quickly build dynamic rich Internet applications. Anyone who hasn’t used Rails before will be able to learn the basics from this book. Table of Contents Introducing the Rails Framework Getting Started Getting Something Running Working with a Database: Active Record Advanced Active Record: Enhancing Your Models Action Pack: Working with the View and the Controller Advanced Action Pack Improving Interaction with Ajax Sending and Receiving E-Mail Testing Your Application Internationalization Extending Rails with Plug-ins Deploying Your Rails Applications Ruby, a Programmer’s Best Friend Databases 101 The Rails Community Git

Cocoa Programming for Mac OS X (3rd Edition)

A revision of the highly acclaimed introduction to Cocoa programming, updated for Mac OS X Leopard.

The C Programming Language

Introduces the features of the C programming language, discusses data types, variables, operators, control flow, functions, pointers, arrays, and structures, and looks at the UNIX system interface

The Definitive Guide to Windows Installer (Expert’s Voice in Net)

When a company builds and ships software, the installation process is often the first opportunity for a customer to view the the product and the company — and the installation experience can make or break a lasting impression. So this book is ideal for companies and developers who want to impress their clientele. This book covers every aspect of using the Windows Installer, the underlying installer technology in Windows. A valuable tool for you software developers, this book helps ensure thorough and reliable installation for your customers. Most other books for software developers end too abruptly and omit critical information, like how to create the necessary installation software. But The Definitive Guide to Windows Installer picks up where the other books trail off.

Parallel Programming with Microsoft® .NET: Design Patterns for Decomposition and Coordination on Multicore Architectures (Patterns & Practices)

The CPU meter shows the problem. One core is running at 100 percent, but all the other cores are idle. Your application is CPU-bound, but you are using only a fraction of the computing power of your multicore system. What next? The answer, in a nutshell, is parallel programming. Where you once would have written the kind of sequential code that is familiar to all programmers, you now find that this no longer meets your performance goals. To use your system’s CPU resources efficiently, you need to split your application into pieces that can run at the same time.

This is easier said than done. Parallel programming has a reputation for being the domain of experts and a minefield of subtle, hard-to-reproduce software defects. Everyone seems to have a favorite story about a parallel program that did not behave as expected because of a mysterious bug. These stories should inspire a healthy respect for the difficulty of the problems you face in writing your own parallel programs. Fortunately, help has arrived. Microsoft Visual Studio® 2010 introduces a new programming model for parallelism that significantly simplifies the job.

Behind the scenes are supporting libraries with sophisticated algorithms that dynamically distribute computations on multicore architectures. Proven design patterns are another source of help. A Guide to Parallel Programming introduces you to the most important and frequently used patterns of parallel programming and gives executable code samples for them, using the Task Parallel Library (TPL) and Parallel LINQ (PLINQ).

JavaScript: The Good Parts

Describes the reliable features of JavaScript, covering such topics as syntax, objects, functions, arrays, regular expressions, inheritance, and methods.

Core Animation: Simplified Animation Techniques for Mac and iPhone Development

The definitive full-color reference for Core Animation, Apple’s powerful new framework for building feature-rich user interfaces • • Shows Mac developers how to use Core Animation to build state-of-the-art user interfaces that previously required intensely complex OpenGL programming. • Task-based coverage ranges from the absolute basics to advanced optimization and integration — and every feature is illuminates with projects and detailed sample code. • Contains a full chapter on using Core Animation on the iPhone. Apple’s Core Animation API offers Mac developers a whole new way to think about user interface design — and the opportunity to quickly and easily integrate advanced UI features ranging from transparent windows to head-up displays. Core Animation contains all the goodies Mac UI designers have been craving — and could previously implement only with highly complex OpenGL code. Core Animation is the definitive reference to this powerful API for every Macintosh and iPhone developer. Leading OSX developers Marcus S. Zarra and Matt Long begin with a complete introduction to Core Animation, offering invaluable insights into when it should be used — and when it shouldn’t be. Next, the authors drill down to each specific task developers are likely to perform. Building on the essentials, the authors introduce several advanced techniques, including code optimization and leveraging the GPU to run OpenGL, QuickTime, and Core Animation code in tandem. They also present brand-new coverage of Core Animation programming for the iPhone. Each concept and technique is illuminated with usable code, end-to-end sample projects, functional examples, and advanced project suggestions designed to promote even deeper understanding.

Programming: Principles and Practice Using C++ (2nd Edition)

An Introduction to Programming by the Inventor of C++ Preparation for Programming in the Real World The book assumes that you aim eventually to write non-trivial programs, whether for work in software development or in some other technical field. Focus on Fundamental Concepts and Techniques The book explains fundamental concepts and techniques in greater depth than traditional introductions. This approach will give you a solid foundation for writing useful, correct, maintainable, and efficient code.

Programming with Today’s C++ (C++11 and C++14) The book is an introduction to programming in general, including object-oriented programming and generic programming. It is also a solid introduction to the C++ programming language, one of the most widely used languages for real-world software. The book presents modern C++ programming techniques from the start, introducing the C++ standard library and C++11 and C++14 features to simplify programming tasks.

For Beginners — And Anyone Who Wants to Learn Something New The book is primarily designed for people who have never programmed before, and it has been tested with many thousands of first-year university students. It has also been extensively used for self-study. Also, practitioners and advanced students have gained new insight and guidance by seeing how a master approaches the elements of his art. Provides a Broad View The first half of the book covers a wide range of essential concepts, design and programming techniques, language features, and libraries. Those will enable you to write programs involving input, output, computation, and simple graphics. The second half explores more specialized topics (such as text processing, testing, and the C programming language) and provides abundant reference material. Source code and support supplements are available from the author’s website.

Clean Code: A Handbook of Agile Software Craftsmanship

Even bad code can function. But if code isn’t clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn’t have to be that way.

Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship . 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.

What kind of work will you be doing? You’ll be reading code — lots of code. And you will be challenged to think about what’s right about that code, and what’s wrong with it. More importantly, you will be challenged to reassess your professional values and your commitment to your craft.

Clean Code is divided into three parts. The first describes the principles, patterns, and practices of writing clean code. The second part consists of several case studies of increasing complexity. 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. The third part is the payoff: a single chapter containing a list of heuristics and “smells” gathered while creating the case studies. The result is a knowledge base that describes the way we think when we write, read, and clean code.

Readers will come away from this book understanding

  • 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

This book is a must for any developer, software engineer, project manager, team lead, or systems analyst with an interest in producing better code.

Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries (2nd Edition)

Lead developers on the .NET team teach best practices for designing system frameworks and reusable libraries for use with .NET. • • Completely revised for .NET 3.5, with 100 pages of new material • Frameworks and libraries can help developers be much more productive • Provides not just the guidelines themselves, but also many annotations that explain the finer points of using them. • The authors are the architects of the Framework Guidelines, and this book is the definitive guide to them. In the past, reusable API design was the domain of only a handful of large software vendors. There has been a steady increase in interest in API design after the invention and widespread adoption of reusable component technologies: COM, CORBA, and recently .NET. Today, most new software projects contain some reusable APIs. Microsoft is giving the message that careful design of public APIs is crucial to realizing the full potential of software reuse. These .NET Framework Design Guidelines were created in the early days of the development of .NET. They started as a small set of naming and design conventions but have been enhanced, scrutinized, and refined to a point where they are generally considered the canonical way to design frameworks at Microsoft. They carry the experience and cumulative wisdom of thousands of developer hours over three versions of .NET. The authors avoid having the text based purely on some idealistic design philosophies, and have made it an intensely pragmatic book. The book contains many annotations that explain tradeoffs, history, amplify or provide critiquing views on the guidelines. The previous edition of this book has been widely praised, and has sold very well. This edition brings the book up to date with version 3.5 of .NET, and adds about 100 pages of new content.

Numerical Recipes in C: The Art of Scientific Computing, Second Edition

The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (2nd Edition)

Few books on software project management have been as influential and timeless as The Mythical Man-Month. With a blend of software engineering facts and thought-provoking opinions, Fred Brooks offers insight for anyone managing complex projects. These essays draw from his experience as project manager for the IBM System/360 computer family and then for OS/360, its massive software system. Now, 20 years after the initial publication of his book, Brooks has revisited his original ideas and added new thoughts and advice, both for readers already familiar with his work and for readers discovering it for the first time. In this twentieth anniversary edition, the original text is accompanied by Fred Brooks’ current advice and thoughts based on the newest developments in the computer industry.

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.”

Concrete Mathematics: A Foundation for Computer Science (2nd Edition)

This book, updated and improved, introduces the mathematics that supports advanced computer programming and the analysis of algorithms. The primary aim of its well-known authors is to provide a solid and relevant base of mathematical skills — the skills needed to solve complex problems, to evaluate horrendous-looking sums, to solve complex recurrence relations, and to discover subtle patterns in data. It is an indispensable text and reference, not only for computer scientists but for all technical professionals in virtually every discipline.

The Art of Unit Testing: with examples in C#

2nd edition of the step-by-step guide that helps developers to write test sets that are maintainable, readable and trustworthy.

xUnit Test Patterns: Refactoring Test Code

Improves software return on investment by teaching the reader how to refactor test code and reduce or prevent crippling test maintenance.

--

--

TopTalkedBooks

Presenting the best book recommendations from #HackerNews #Reddit and #StackOverflow, check it out: https://toptalkedbooks.com/