Classic computer resource sharing my collection of practicing internal strength

Hello everyone, I shared my collection of classic computer resources practice internal strength in this article, we want to enhance the internal strength to help, thank you ~

algorithm

leetcode

A brush line algorithm exam questions, topics divided easy, medium, hard, almost every problem has a lot of people's answers and multiple solutions.

The total number of questions is growing, I have a problem when the brush before 500 +.

I just put a simple question brush, and feel a great help to improve my ability of the algorithm.

Also to interview students can brush under the title.

Online links

design

"Structure and Interpretation of Computer Programs"

SICP book is famous, in Lisp, from the viewpoint of programming ideas introduced abstract process configuration, the abstract data structure, an object-oriented design and concurrent content streams and the like, a number of design examples given.

This book is a book about design, focusing on the abstract thinking, it is a good book ah! Can significantly improve the ability to abstract!

Chapter 1: The construction process of abstraction.
This chapter describes the process-oriented design ideas.
Chapter 2: The structure of data abstraction.
This chapter introduces a modular, hierarchical thinking.
Chapter 3: modular, object and state
chapter describes the contents of the structure of the object to achieve, concurrent streams.

I just read the book before Chapter 3, and online reference materials do exercises 3 times before Chapter 1 (3.5 exercises do not flow. "Flow" I learned only this part of the next thought, no master).
Chapter 1 is very simple, difficult chapter, Chapter Three simple (did not do the exercises stream, there is a certain degree of difficulty).

This book made me deepen the understanding of programming, and learned to use recursion.
The first three chapters suggest that you do the exercises, the Internet has detailed answers.

"Colon classroom: OOP programming paradigm and thought"

Teachers and students by way of dialogue, very vividly explain the object-oriented thinking.

First as a novice in this book to learn object-oriented thinking, it is very appropriate.

"Zen Design Patterns"

Five spoke design principles and design patterns 23, and gives a variety of design patterns used in combination.

The book is very easy to understand, the book is also very vivid case, for everyone to get started learning design patterns.

"Domain Driven Design"

This book presents a model-driven design, modeling around the field to start on.
This book is a classic book, it helps to improve design capability!

Section 1-3 presents considerations domain modeling.
Chapter 5 describes the components of the model: Entity, Value Object, Service, Module.
Chapter 6 presents the aggregate AGGREGATE, repository REPOSITORY, factory.
Chapter 7 describes the domain model refinement for the detailed architecture of the preliminary process of reconstructing domain model refinement process, we demonstrated.
Chapter 8 shows the evolution of the process until the initial breakthrough of the domain model.
Chapter 9 explains how deep modeling, business rules, and will put forward the idea (proposed SPECIFICATION standard mode).
Chapter 10 presents some principles, inspiration, these patterns can get flexible reference design.
The fourth part from a higher range to start on.
Chapter 14 presents the context BOUNDED CONTEXT, continuous integration, how to link the relationship between the CONTEXT MAP, BOUNDED CONTEXT (relationship shared core customers / suppliers, etc.) between context, select the context of the policy and how to convert between BOUNDED CONTEXT relationship.
Chapter 15 explains how to extract the core model CORE DOMAIN.
Chapter 16 explains the large-scale structure. Evolution includes the idea of an iterative reconstruction to large-scale structure, the system metaphor, layered, KNOWLEDGE LEVEL, pluggable assembly frame PLUGGABLE COMPONRNY FRAMEWORK.

By reading this book, I understand the importance of the domain model. Field of the model is not only used to transform a database table, also should correspond to the actual architectural model. Also received a revelation related to design (style and "agile" a bit like).

"Software Architecture Design (Second Edition)" (Author: Wen Yu)

This book reviews the knowledge of architecture, let me have a deeper understanding of the architectural design, it is a good reference architecture design.

The book, a total of three sections explain the concept of software architecture, architecture design thematic approach, processes and procedures, module division and so on.

Part 2 of the book, describes the overall architecture from requirements to design processes, and each process to expand a description, and gives examples.

Part 3 of the book, describes the key skills of architect: module division. Comprising a horizontal division (stratification), vertical division (partition), drive design (bottom-up) and other content use cases. This part of the package can be combined with the design part of the "Agile Software Development Principles, Patterns and Practice" is understood to digest.

"Frontline Architect Practice Guidelines" (Author: Wen Yu)

The book heavy practice, "software architecture design," the theory.
This book gives some practical experience, as well as specific examples, can be used as supplemental "software architecture" in the practical aspects!

Recommended design architecture, the reference "Software Architecture Design" and the book!

engineering

"Refactoring: Improving the Design of Existing Code"

Reconstruction of areas of classic books. Each section tells a reconstruction approach, covering all aspects of reconstruction.

If you want your code more readable and easy to maintain, it is recommended to read this book.

"Code neat way"

Some of the content is similar to the "reconstruction" of the idea, but also explain how to improve the code book.

"Art modify the code of"

This book explains the art legacy code, which contains a discussion of the test (e.g., test private methods).

If you are remodeling or take over someone else's code, or are you continuing to develop the project before the book is that you need to look at.

"Test-driven development Javascript"

If you want to develop large-scale software, automated testing is very important. Although it will take double the time to develop pre-writing tests, but more to the latter, the more it can guarantee that the code quality and reduce the time for bug fixes.

This book explains how to develop products before the code, I write the test, with test driven development.

One benefit of this is from a user perspective, to look at the code. By explicitly code input and output, to improve the design of the code.

Of course, not all areas are suitable for the test drive, I feel like algorithm, code is relatively stable and clear (if not in the realization of the demo) places can use the test drive.

"Agile Software Development Principles, Patterns and Practice (C # Edition)"

This book explains the agile design, package design class design principles and principles, UML, design patterns, design and implementation of projects and salary package and other content, for me to learn iterative development and design very helpful, indeed the classic books.

The following sections helped me a lot:
Chapter 6 (using TDD to develop a bowling game program (C #)), Chapter 20 (Object Design and Implementation of a coffee machine oriented), object-oriented Chapter 26 (salary project design process and thinking), Chapter 28 (package design principles and components), Chapter 30 (salary packet analysis program), chapter 37 (test data layer)

"XUnit Test Mode: Test code reconstruction"

This book is a book of practical experience on how to solve the problems encountered in testing, we give the concepts, terminology, experience, taste and test models and related instances.

Part 1 describes the overall patterns and knowledge tests, including tests of taste, objectives, basic concepts, principles, policies, and management proposed fixture, result verification, testing stand-in, organize testing, database testing and so on.

Part 2 describes the taste test three categories: code smell, taste behavior, projects taste of each flavor analyzed in detail, and introduces the solution patterns.

Section 3 describes the test mode. Corresponding portions of the first, specific examples are given, it is complementary to the first part 1.

The book is organized manner similar to the "reconstruction", which is also used in combat, from combat.

After reading this book, in practical application if you have problems related to testing, you can quickly know the problem corresponding term in the book, patterns and solutions.

Because I have practical experience some tests, so when you read a book more smoothly, but also in-depth understanding of my test problems usually encountered.

Therefore, it is recommended to accumulate some practical experience, then look at the book, and then applied to actual combat.

Development experience

"Mythical Man-Month"

The book talked about some of the practical experience of software development, such as:
adding more people to develop, and can not increase the speed of development, but there is likely to fall. Because the more people, the higher the cost of communication;
there is no silver bullet, no can-take-all solution for all scenarios;
avoid falling into the tar pits;

"Software Wandering"

The book for the students to do project management, economics analysis to explain the content publishing software, in which knowledge of project management (such as "evidence-based planning schedule") is instructive.

"Those things entrepreneurs must go through 1"

Explain why the venture failed, the contents of the three stages of enterprise development, such as how to run a business, thought helpful in learning entrepreneurship.

"Those things entrepreneurs must go through 2"

This book is the second book in the series, and the first book of some of the same concepts, such as three roles (King, managers, technicians), innovation, quantification, reunification.

The core concept of this book is: As a manager, you want as the company as their own companies as entrepreneurs, stressed the need for self-awareness, focus on empathy.

The book emphasizes management system, rather than the manager, because people are unmanageable, so you need to create a vision, a set of processes, everyone can quickly get started in the process, identity corporate culture.

"Venture" series of books of different perspectives, thought-provoking, need to be carefully read before the product business.

"Pragmatic Programmer"

This book explains how to become a better programmer, to become involved in all aspects of good programmers, focusing on practical experience.

This book made me a better understanding of how to become a good programmer, learn some best practices.

"Efficient programmer 45 habits: Agile development practice of the Road"

This book explains the best practices for agile development, the attitudes, life-long learning, interactive user desired software, agile feedback, agile coding, debugging quick, agile collaboration, to discuss agile to expand these areas, demonstrating agile development process, implementation methods, made me "how to become agile staff college" deeper understanding.

Here is my inspiration larger content:

  1. Chapter 4-15 early automate deployment.
    We made a start on the application of automated deployment, such as: the user can see our online demo system.
  2. Chapter 5-21 different environments, there is a different problem.
    He referred to the "continuous integration." A continuous integration tools may be periodically acquire code from a source code control system, and run the code. If any test fails, it will notify the relevant developers.
  3. Chapter 5-22 automatic acceptance testing.
    He referred to the FIT, ie integrated testing framework. It can be easier to use HTML tables defined test, and comparing the test result data.
    Use FIT, customers can define sample with new features. Customers, testers and developers (according to sample) can create tables for code describes the possible input and output values. Developers can reference sample writing test code. Success or failure of the test results will be displayed in an HTML page, the user can easily reference.

The underlying principle

"HTTP Definitive Guide"

This book is the definitive work on HTTP and its associated core Web technologies for all those who want to understand the underlying structure of the Web HTTP and reading.
This book contains 21 chapters, divided into five logical parts (each part is a technical presentations), as well as eight useful appendices These appendices contain reference material, as well as the introduction of related technology.
The first part of the HTTP: Web basis for
the second part of the structure of HTTP
third part identification, authentication and security in
Part IV entity, coding and internationalization
Part V content publishing and distribution
Part VI Appendix
space with the first part of Chapter 4 describes the Web the base member and the core technology of HTTP.
Chapter 1 provides an overview of HTTP.
Chapter 2 describes in detail the Uniform Resource Locator (Uniform Resource Locator, URL) format, as well as various types of resources URL naming on the Internet, also describes a Uniform Resource Name (Uniform Resource Name, URN) of evolution.
Chapter 3 details the HTTP message is how to deliver Web content.
Chapter 4 explains some of the HTTP connection management process and rules of behavior are often misunderstood and rare documentation of.
The second section focuses on the structure of the building blocks of Web system: HTTP server, proxy, caching, gateway and robotics applications. (Of course, Web browser, but also a building block, but in the first part of the book it has been subjected to a very detailed introduction.) The second part contains the following chapters 6.
Chapter 5 introduces the Web server architecture.
Chapter 6 depth study of the HTTP proxy server, HTTP proxy server is used as an intermediate server HTTP services and control platform.
Chapter 7-depth study of Web caching problems. Caching is used to improve performance by storing local copies of frequently used documents and reduce the flow of equipment.
Chapter 8 discusses the concept of gateway and application server, through which, HTTP and can communicate using different protocols (including SSL encryption protocol) of the software.
Chapter 9 describes the various types of clients on the Web, including the ubiquitous browser, robots and spiders and search engines.
Chapter 10 describes the HTTP protocol is still being studied: HTTP-NG protocol.
The third section provides a set of technologies and techniques for tracking identity, enhance security and control access to content. 4 contains the following chapters.
Chapter 11 discusses some of the techniques to identify the user in order to provide personalized content services to users.
Chapter 12 focuses on some basic ways to authenticate users. This chapter also HTTP authentication mechanism to interface problems with the database were studied.
Chapter 13 details the digest authentication, it is a comprehensive enhancements to the HTTP recommendatory, can significantly improve their security.
Chapter 14 describes the password system of the Internet, digital certificates and SSL.
The fourth part covers HTTP packets and Web standards body, the former contains the actual content, which describes the main content and processing. The fourth part contains the following chapter 3.
Chapter 15 describes the structure of HTTP content.
Chapter 16 discusses some Web standards, by these standards, users worldwide can exchange content with different languages and character sets represented.
Chapter 17 explains some of the mechanisms for negotiating acceptable content.
Part V describes the publication and dissemination of Web content skills. It includes the following four chapters.
Chapter 18 discusses the deployment server in the modern way of website hosting environment, and HTTP virtual web hosting support.
Chapter 19 discusses some Web content creation, and loaded onto to the Web server technology.
Chapter 20 describes the input Web traffic can be distributed to a number of tools and techniques to a group of servers up.
Chapter 21 describes some of the log format and frequently asked questions.
The sixth part is some reference to Appendix useful, and tutorials related technologies.

This book knowledge points more, wide and shallow content, there is no difficulty that can help you understand the underlying structure of the Web.

"In-depth understanding of computer systems."

This book describes from a programmer's point of view of the computer system, an overview of the entire system by computer, to help the reader establish a hierarchical model of the computer system.

Chapter 1: computer system roam
about the entire computer system described
in Chapter 2: representation and processing information
describes the memory unit, integer and floating point arithmetic representation and
Chapter 3: machine-level representation of the program
describes the assembly language
4 Chapter: a processor architecture
introduces processor hardware design, describes the instruction set, a logic circuit, five stages of instruction processing (fetch, decode, execute, memory access, write-back), describes the principle of the instruction pipeline, as well as related and control-related use pause, forward and other technical data processing pipeline.
Chapter 5: performance optimization program
introduced the critical path program optimization strategies to optimize cycle, including:
elimination of a continuous function call
will be moved outside the loop calculation
to eliminate unnecessary memory references (the introduction of temporary variables to store intermediate results)
unrolling loops (by a cycle step)
by using the multi-grid variable cumulative executing in parallel
recombination
rewriting operation conditions with functional style, compiling such data transfer conditions using
Chapter 6: a memory hierarchy
introduces a cache SRAM, a DRAM main memory, disk implementation principle, describes the storage hierarchy.
Chapter 7: Link
introduces the
main tasks of the linker (symbol resolution and relocation)
statically linked
static library
dynamic link
Chapter 8: exceptional control flow
describes the four types of interrupts, switching user mode and kernel mode, process control and inter-process communications signals, non-local jumps.
Chapter 9: Virtual Memory
Introduced a page hit between the virtual memory address translation, CPU, MMU and cache, disk, execution missing pages, dynamic memory allocation (heap) and so on.
Chapter 10: System level I / O
describes the operation, the file descriptor table -> open file table -> v-node table.
Chapter 11: Network Programming
introduced hubs, gateways, routing, introduced socket operation to achieve a simple web server
Chapter 12: Concurrent Programming
describes the process, I / O multiplexers, three thread different mechanisms for building concurrent programs, and extended a concurrent network server.
It introduces exclusive, introduced the producer - consumer and reader - writer model, introduces thread-safe function and compete deadlock.

The book describes the underlying implementation system, as I understand the whole computer is helpful.

Guess you like

Origin www.cnblogs.com/chaogex/p/11262509.html