[Rabbit King’s Book Gift No. 11] Becoming an excellent programmer starts by reading a good book

write in front

If you have ever wanted to learn software development but were confused because of zero foundation, then "Code Complete 2 Commemorative Edition" is your perfect choice! This book has become a classic in the industry and has high reputation and evaluation. It will guide you to learn from the basic principles of code and help you become an excellent programmer step by step. If you want to realize your software development dream, then this will be a must-read book for you!

"Code Complete 2"

JD Direct:https://item.jd.com/13228095.html
Code encyclopedia

Preface

In the process of writing this book, my main consideration was to shorten the gap between the two ends of the same industry, one end is authoritative and professional people, and the other end is ordinary commercial practitioners. Many powerful programming techniques have actually been hidden in journals and academic papers for many years before they trickle down and become common practices known in the industry.

In the first decade of the twenty-first century, cutting-edge software development practices have advanced by leaps and bounds. However, general practice has stalled. Bugs are everywhere, delivery times are delayed, budgets are exceeded, etc. Such situations are still common in many software projects, and there are even many software that simply cannot meet the requirements of its users. Researchers from the software industry and academic institutions have discovered that as early as the 1970s, there were many effective practices that eliminated most programming difficulties. However, reports on these efficient practices have not left the circle of influence of professional technical journals, so that a considerable number of software organizations still have not adopted these efficient programming practices in the first dozen years of the 21st century. Research has also found that it generally takes five to ten years or more for a research progress to become commercial practice (Raghavan and Chand 1989, Rogers 1995, Parnas 1999). The original motivation for writing this book was to shorten this process in an efficient way so that these key discoveries can be adopted by most programmers immediately.

Who is suitable to read this book

The research and programming anecdotes contained in this book will help you create high-quality software and do your job more easily and faster. This book will help you see clearly the problems that existed in the past so you can know how to avoid them in the future. The programming practices described in the book will help you calmly control large-scale projects and help you successfully maintain and modify the software until the needs of project changes are met.

  • Experienced Programmers
    As a comprehensive and easy-to-use practical guide to software development, this book is suitable for experienced programmers to read. This book focuses on software construction (the part of the software life cycle that programmers are most familiar with), with the original intention of giving self-taught programmers as well as formally trained programmers a thorough understanding of powerful software development techniques.
  • Technical leaders
    Many technical leaders have used "Code Complete 2" to train junior programmers in the team. However, you can also use this book to fill in the gaps in your knowledge. If you are an experienced programmer, you may not completely agree with the conclusions drawn in the book, but if you read this book carefully and think about each problem carefully, you will find that you can calmly solve any software proposed by others from now on. construction problems, because you have thought carefully about these issues.
  • Self-taught programmer
    If you have not received much formal training, then this book will be your constant companion. Nearly 50,000 novices enter the software development industry every year (BLS 2004, Hecker 2004), but only 35,000 actually have software-related degrees each year (NCES 2002). * Based on these numbers, it can be quickly concluded that there are many programmers who have not received formal software development education. Among the emerging professional community of engineers, accountants, scientists, teachers, and small business owners emerged self-taught programmers who programmed as part of their daily work but who did not consider themselves to be programmers. No matter what level of programming development training you have received, this book can help you understand the subtleties and gain insight into efficient programming practices.
  • Students
    The counterpart to the experienced programmers mentioned earlier but lack of formal professional education is young students. As newcomers to the workplace, they often have rich theoretical knowledge but lack practical hands-on experience in building software products. Those practical knowledge and knowledge about good code are usually passed on very slowly. The real usefulness is passed down in the "dance" that is like a religious ceremony in which software architects, project leaders, business analysts and senior programmers participate together. Practice is very rare. What's left is often the experiments and errors of individual programmers. The purpose of this book is to replace the slow delivery of these traditional wisdom feasts and, through careful selection, highly integrate previously available tips and effective development strategies. For students, this book can help them move easily from an academic environment to a professional development environment.

Where else can you find more information?

This book provides a comprehensive introduction to a large number of software construction techniques, which come from a wide range of sources. Over the years, much of the wisdom about software construction has not been documented as a written reference, other than being widely scattered in many places (Hildebrand 1989, McConnell 1997a).

I would like to talk about the situation of Github here. Github pointed out in the Octoverse report released in November 2021 that the number of Github developers has now reached 73 million, including approximately 13.55 million developers in the United States and 7.55 million in China. Overall, there were 213,000 new first-time open source project contributors in 2021 compared with the previous year. By 2025, the number of users is expected to reach 100 million.

In fact, the efficient and high-power programming techniques used by professional programmers are not mysterious. However, in the rush and fatigue of working on the project in front of them day after day, there are really few experts who have time to share their experiences and lessons publicly, making it difficult for programmers to find a good resource to focus on. Programming related information.

The programming techniques described in this book fill the gap between introductory and advanced programming textbooks. After reading Introduction to Java Programming, Intermediate and Advanced Java Programming, and Advanced Java Programming, which book about programming will you read? You will read books that introduce Intel or Motorola hardware in detail, books that introduce the functions of Windows or Linux operating systems, and other programming languages. No one will use those programming languages ​​​​or programs without detailed reference books. However, this book is one of the few that focuses exclusively on programming. Some programming techniques that always benefit people are general practices that apply to any environment or language. For such practices, other books generally ignore it, but this book is different, and it is necessary to focus on introducing these common practices.

This book can be said to draw on the best of everyone and selects materials from a wide range of sources, as shown in the figure below. The only other way to get all the information contained in this book is to traverse the voluminous text, search for treasures in the mountains of books and hundreds of technical journals, and you also need to have rich practical development experience. If all of these are ok, you can still benefit from this book, because it "embraces all rivers" and gathers all the essence in one place, making it very convenient for you to refer to it at any time.

  • Professional Experience
  • Books that introduce programming languages
  • Other books introducing software
  • in magazine
  • Essay published
  • software build
  • Technical reference

Key benefits of this book

Regardless of your background, this book can help you write better programs in less time and with less pain.

  • A complete software construction reference This book discusses all aspects of software construction, such as software quality and programming thinking. It goes straight to the real details of software construction, such as the steps to build a class, peels off the cocoon, and explains the use of data and control structures, debugging, refactoring, and code tuning techniques and strategies. These topics do not have to be read from beginning to end in order. Because when this book was designed, priority was given to making it easier for everyone to find specific information that interests them.
  • Ready-to-use checklists The book contains 35 checklists that can be used to evaluate software architecture, design methods, quality of classes and subroutines, variable names, control structures, code layout and test cases, etc.
  • Current Information This book describes cutting-edge technologies, many of which have not yet become common commercial development practice. The material in this book is drawn from industry practice and research institutions, and many of the development techniques described will be generally applicable for many years to come.
  • View software development from a broader perspective Through this book, you will have the opportunity to step into the shoes of a visitor and stop running around and calm down to figure out what works and what doesn't. Practical programmers basically don't have time to read hundreds of books and articles published in professional and technical journals (the best of which are included in this book). The research experience and development experience included in this book will help you expand your imagination, inspire you to think about the project, and enable you to choose strategic actions so that you will not fall into the same pit over and over again.
  • Every word is precious and full of practical information. Some technical books are flashy and are full of nonsense, with only 10% or 20% of real knowledge and insights. This book is eclectic and discusses the pros and cons of each programming technique. You obviously have a better idea than the onlookers of the specific requirements of a particular project. So, to help you make better decisions under specific conditions, this book provides the objective information you need.
  • Concepts that Apply to Most Common Programming Languages ​​The techniques described in this book are fully applicable to the programming language of your choice, whether it is C++, C#, Java, or another language.
  • Lots of Code Examples This book contains nearly 500 code examples, ranging from good code to bad code. I include so many code examples because I personally benefited greatly from them. By extension, I hope other programmers will learn a lot from it. These code examples span multiple programming languages, since knowing at least two languages ​​is often what separates professional programmers from non-professional programmers. As a programmer, once he realizes that programming principles transcend the syntax of any specific language, it means that the palace of professional knowledge has opened to him, and quality and productivity will take a qualitative leap from now on. In order to reduce the burden of multiple programming languages ​​as much as possible, I have deliberately avoided language features that only true experts will understand (unless there is a specific discussion). You don't need to understand every subtle difference between different code snippets to understand their meaning. If you focus on the key points you want to illustrate, you'll find that you can read code no matter what language it is written in. To make it easier for you to understand, I have added comments to the important parts of the code examples.
  • Access Other Sources of Information This book collects most of the information on the topic of software construction, but it doesn't end there. In addition to Chapter 1, the "More Resources" section of each chapter also lists other books and articles to help you learn more about the topics that interest you most.

Why write this book

The field of software engineering has fully recognized the urgent need for a software development reference manual that comprehensively covers efficient development practices.

A report from the Computer Science and Technology Board stated that the greatest gains in software development quality and productivity can only come from codifying, classifying, and widely disseminating knowledge about existing efficient software engineering practices (CSTB 1990, McConnell 1997a). The committee concluded that the dissemination strategy of knowledge related to these software engineering practices should be rooted in the basic concept of "Software Engineering Reference Manual".

Software building is a long-underappreciated subject. For a while, software development and writing code were conflated. But after some unique activities in the software development cycle were identified, some thought leaders in the circle began to spend time analyzing project management, requirements, design and testing, and started a vigorous methodological debate. The craze for research in these new areas has left the original code construction aside as if it has nothing to do with software development.

There's another reason why discussions of code construction are less popular. It has been suggested that treating code construction as a separate software development activity means that it must be treated as a separate phase. In fact, there is really no need for any specific one-to-one correspondence between software activities and phases. Whether other software activities are performed in phases, iterations, or other ways, it does not affect our discussion of code construction. This is the only way to " correct.

The importance of software construction cannot be underestimated. Another reason why software construction has long been ignored by researchers and technical writers is that they mistakenly believe that compared to other software development activities, code construction is a relatively mechanical process with few improvements. Opportunity. However, it is not.

In small projects, the proportion of investment in code construction is generally about 65%, and in medium-sized projects it is 50%. Regarding errors, the proportion caused by code construction is 75% in small projects, and 50% to 75% in medium and large projects. Clearly, any activity with 50% to 75% errors has an opportunity for significant improvement (Chapter 27 contains more detailed statistics and analysis).

Some commentators pointed out that although code construction errors account for a high proportion of total errors, their repair costs are lower than requirements and architecture errors. The implication is that the importance of code construction should not be so high. That’s right, build errors are actually not that expensive to fix. But researchers have found that, over time, minor coding errors are responsible for software bugs that cost hundreds of millions of dollars to fix (Weinberg 1983, SEN 1990). Obviously, just because the repairs aren't expensive doesn't mean they should be low priority.

Ironically, another reason why software construction is not taken seriously is that it is the only activity in the software life cycle that must be completed seriously. Requirements can be based on assumptions without serious development; architecture can be discounted without careful design; testing can be reduced or skipped without comprehensive planning and execution. But if you're going to develop a program, you have to structure the code well, and that makes construction a unique and fruitful area in improving development practices.

There is no ideal equivalent book on efficient building practices.

Since the importance of building software is so obvious, I took it for granted that when I conceived this book, someone else must have written about efficient building practices.

Clearly, the industry needs a book on how to program efficiently. But I found that the books on software construction were lackluster and not comprehensive. Some were written before the 1990s or even earlier, in niche languages ​​that only true experts can understand, such as ALGOL, PL/I, Ratfor, and Smalltalk. Some are written by professors who have never written production code at all. Professors write technical books that are applicable to students' projects, but they have little idea of ​​whether the techniques are applicable in an overall large-scale software development environment. There are also books that promote the author's latest favorite method system, completely ignoring the huge treasure trove of practical knowledge that has been accumulated over the years.

In short, there has never been a book that can extract such a practical programming technology system from professional experience, industry research and academic results, including current programming languages, object-oriented programming languages ​​and cutting-edge programming languages. development practices. Obviously, books on programming need to be written by people who know the latest theoretical development level, rather than by people who actually write code to build software products and take pleasure in practice. My vision for this book was to be a comprehensive and complete discussion of how to build code, a book written by programmers for programmers.

Reasons for recommendation

"Code Complete 2: Commemorative Edition" is a classic software engineering book written by Steve McConnell. It is a must-read book for those who want to improve their programming skills and develop software. The following are the reasons why this book is recommended:

First of all, this book covers a wide range of topics, including code quality, software development process, software design, code optimization, code debugging, etc., deepening readers' understanding and mastery of the entire software development process. Each topic forms a chapter, and for each chapter, the author provides detailed, easy-to-understand explanations, allowing readers to gain an in-depth understanding of every aspect of software development.

Secondly, the explanation method of this book is very systematic. Each chapter has a clear goal and a detailed explanation of the goal, so that readers can clearly understand the background and purpose of each chapter and each topic. The author also provides some practical tips and suggestions to help readers better practice and apply these concepts. Therefore, the book is presented in a very clear and easy-to-understand manner.

Third, the specific examples and cases given in this book are very enlightening. The author uses practical cases to illustrate problems that may arise during the software development process and provides some solutions. The examples provided in this book can help readers gain an in-depth understanding of all aspects of the software development process and improve the efficiency and quality of software development.

Finally, this book is rich in content, systematic, and combined with many years of software engineering practice and experience. It is a very valuable book for those who want to further improve their coding and software development capabilities. Whether you are considering developing your own software, looking for ways to improve your programming skills, or dealing with coding challenges in your daily work, readers will find useful information and tips in this book.

All in all, "Code Encyclopedia 2: Commemorative Edition" is a very good software development guide book that can help readers improve their programming skills and improve the quality of software development. It is a book worth recommending.

Fan benefits

  • Now Like and save comments "Life is short, I love code"
  • Up to threethree friends will be randomly selected from the comment areafor freeFree a book
  • Deadline:December 17, 2023

write on the back

I am a funny bunny, thank you for your like!

Guess you like

Origin blog.csdn.net/m0_68111267/article/details/134918956