📜 ⬆️ ⬇️

Tehnokniga, part 1: literature on web technologies, algorithms and data structures, in-depth C ++ programming



In the process of building the curriculum of our educational projects, we have compiled a list of specialized books recommended for study in each of the disciplines — a total of more than 100 titles for the entire period of study. We will not conceal and present to you this list, accompanied by brief comments. It is difficult to contain such a volume of information in one article, so the review of literature recommended by Technopark is divided into four parts - by the number of semesters, with a small addition of useful books offered by students. Links in the comments on additional interesting reading are welcome.

The first semester is designed to “align” students' knowledge. It contains disciplines such as algorithms and data structures, C ++ programming, as well as an overview course on web technologies. With books on these subjects and the review will begin. Most of the books presented belong to the ageless "classics", which is a collection of fundamental concepts.

Web technologies



')
Book: "Computer Networks"
Authors: Victor Olifer, Natalia Olifer

Victor and Natalya jointly created and developed more than 22 training courses, for many years they conducted a course of lectures at MIREA, MSTU. N.E. Bauman, as well as the Center for Information Technology.

The book "Computer Networks. Principles, technologies and protocols ”recommended by the Ministry of Education of the Russian Federation. The publication is suitable for those who would like to get a basic knowledge of the principles of building computer networks, to understand the features of traditional and promising technologies of local and global networks, to study ways of creating large composite networks and managing them.



Book: "DNS and BIND"
Authors: Cricket Lee, Paul Albitts

Cricket Lee - a graduate of the University of California at Berkeley. After studying, he got a job at Hewlett-Packard, where he worked for nine years. In 1997, he left HP and founded Acme Byte & Wire, which provides consulting and training in the field of DNS. For one year, Cricket served as director of DNS products at Verisign Global Registry Services. In March 2003, he moved to Infoblox, a company creating DNS and DCHP devices, where he took the post of vice president.

Paul Albitts holds a Bachelor of Science degree from the University of Wisconsin and an MS from the Purdue University. Worked with Hewlett-Packard on BIND versions for HP-UX versions 7.0 and 8.0. He created the tools used to manage the hp.com domain.

The book "DNS and BIND" is like a Bible for system administrators. The material in it is served in simple, accessible language. The publication is devoted to BIND 9.3.2 and BIND 8.4.7. BIND 9.3.2 includes security enhancements and support for IPv6, as well as ENUM, SPF, and the use of domain names containing letters of national alphabets.

Here you will find all the necessary information about the principles of DNS operation, the structure of the domain name space, the installation and configuration of name servers, programming using the functions of the DNS client library, and many other things.



Book: "SQL for mere mortals"
By: Martin Graber

A few decades ago, a writer, teacher and consultant Martin Graber created a complete introduction to a structured query language, through which you can still easily learn how to work with SQL. “SQL for mere mortals” is a guide for any implementation of a structured query language, which provides reference for standard SQL, as well as a description of the general properties of non-standard SQL.

The book will help improve the efficiency of working with composite data tables through the use of advanced techniques of simultaneous queries to several tables, the formation of subqueries and complex queries. With this edition you can get practical skills in relational database management.



Book: Basics of Relational Databases
Authors: Jennifer Weed, Jeffrey D. Ulman

Jennifer Weadom is an associate professor of computer science and electrical engineering at Stanford University, an active participant in research in the field of heterogeneous and semi-structured databases (DB), data storage methods and active database systems.

Jeffrey D. Ullman is a professor at Stanford University, one of the founders of database theory. He acted as supervisor of a whole generation of graduate students who later became leading researchers in database theory. His textbooks on compilers, theory of computation and databases are considered educational standards.

The book "Basics of relational databases" will be useful to everyone who studies the database. It covers the SQL2, SQL3, ODMG, ODL / OQL standards, the traditional database design method, and analyzes many aspects of SQL programming.

The accessible language explains the issues of user views, integrity constraints, triggers, transactions, information protection, and recursion in SQL3.



Book: jQuery. Detailed Guide to Advanced JavaScript »
Authors: Beer Bibo, Yehuda Katz

Beer Bibo is a web developer with over 30 years of programming experience. One of the authors of the books “jQuery in Action”, “Ajax in practice”, “Ajax: Prototype and Scriptaculous libraries in action”.

Yehuda Katz designed websites for the New York Times, Allure Magazine, Architectural Digest, Yoga Journal. Member of the main jQuery project team, participated in the development of Merb (alternatives to Ruby on Rails).

JQuery Edition Advanced JavaScript Advanced Guide ”is a truly comprehensive reference guide for a web application development platform that describes how to crawl HTML documents, handle events, add Ajax technology support to your web pages, play animations, interact with other tools, platforms and methods for creating plugins for jQuery. The book is intended for those who are already familiar with JavaScript and Ajax.



Book: Learning Python
Posted by: Mark Lutz

If you know even a little what Python is, then Mark Lutz is familiar to you. He is one of the world's leading experts in Python, the author of the earliest and most popular publications. Lutz has been using Python and has been popularizing him for over 20 years, most of the time he spends teaching and writing books on this language.

The fourth edition of "Learning Python" contains the main types of objects in the language, the order of their creation and work with them, and also includes methods for working with modules and additional object-oriented tools - classes. Descriptions of models and exception handling instructions are provided, as well as a review of development tools.

Additional materials:


Algorithms and data structures




Book: “Informatics. Fundamental introduction. Part I »
Author: Manfred Boy

Volume I of the four-volume edition of the outstanding German scientist Manfred Boy, the Leibniz Award in the field of computer science, is devoted to the basic concepts of information and the various forms of its processing. Manfred gives a detailed explanation of the algorithms (including their classification, description and execution), programming methods, machine-oriented language elements. The book contains comprehensive explanations on the presentation and processing of information.



The book: “Algebraic algorithms. With exercises and solutions »
Authors: Claude Kitte, Patrice Noden

Two French mathematicians in the book, replete with formulas, give the answer to the question "what and how can I calculate?". The authors mention “The Art of Programming” (which we will definitely discuss later) as the main source of inspiration. The similarity between them is definitely traceable.
The book can be recommended to anyone who uses computer algebra and studies it. It is difficult to find the most comprehensive publication on the calculation of mathematical objects.



Book: Algorithms and Data Structures
Author: Niklaus Wirth

They usually say about such people: they need no introduction. We still briefly note that Niklaus Wirth is a scientist, engineer, Turing Prize winner, one of the world's most famous theorist of programming languages, creator of the languages ​​Pascal, Modula-2, Oberon.

Wirth's books on structured programming in education are considered a mandatory standard.

“Algorithms and Data Structures” is a desktop toolkit for programmers, giving the necessary minimum knowledge of algorithms. The book describes in detail the traditional topics of algorithms, such as sorting, searching, recursion, dynamic data structures.



Book: Data Structures and Algorithms
Authors: Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman

Alfred Aho is a Canadian computer scientist, one of the creators of the AWK scripted C-like language, author and co-author of numerous publications and books on various aspects of computer science.

John Hopkroft is an American scientist, a Turing Award winner, a researcher of theoretical aspects of computer science, in particular, analysis of algorithms and graph theory.

Jeffrey Ullman is a well-known IT researcher, one of the authors of the “classic” compiler textbooks, the theory of computation, and databases.

As you can imagine, such a troika of authors could only present a fundamental textbook that discusses the basics of modern program development methodology. The book does not require you to deep knowledge - enough to understand at least some high-level programming language (for example, Pascal).



Books:
“Fundamental algorithms in C. Parts 1-5. Analysis. Data structures Sorting. Search. Algorithms on graphs
"Algorithms in C ++"
Posted by: Robert Sedgwick

Robert Sedgwick, a professor at Princeton University, the author of numerous scientific articles and a series of textbooks on algorithms, conducted a deep study of the underlying concepts of algorithms. In "Fundamental Algorithms in C", a detailed search is carried out for searches in digraphs, non-graphographs and networks, the construction of minimal spanning trees and shortest paths, and the calculation of flows in networks with different characteristics. Much attention is paid to the performance characteristics of the algorithms, as well as their mathematical conclusion.

“Algorithms in C ++” is both a continuation and rethinking of the description of algorithms and data structures, this time performed in C ++, although the information presented is fundamental and applicable to programming in any language. New algorithms, illustrations, comments, etc. have been added to the book.



Book: Data Structures and Algorithms in Java
Posted by: Robert Lafore

Robert Laforet has been writing books on programming for 30 years. Thanks to his books, an innumerable number of programmers have mastered object-oriented programming technologies.
The book "Data Structures and Algorithms in Java" is devoted to the basics of using algorithms, with examples made in Java, although it is enough to learn any programming language to learn. The book deals in detail with topics such as sorting, abstract data types, linked lists, recursion, tree data structures, hashing, pyramids, graphs.



Book: "Discrete Analysis"
Author: Iosif Romanovsky

Joseph Romanovsky - in our collection is a rare representative of domestic authors. Professor of the Department of Operations Research at St. Petersburg State University, the author of a number of effective algorithms for solving optimization problems, including the computer implementation of these algorithms, wrote popular lecture courses on optimal programming and computer programming of optimization algorithms.

The manual "Discrete Analysis" is written on the materials of the lecture course of Joseph Romanovsky. It focuses on the relationship between the concepts of discrete analysis, arising in different branches of mathematics and modern computer science.



Book: “Concrete Mathematics. Founding Informatics
Authors: Ronald Graham, Donald Erwin Knuth, Oren Patashnik

Almost "catechetical document" on algorithms, considering the mathematical foundations of the analysis of algorithms. The title "Concrete Mathematics" contains a pun: Continual and discrete. The book presents a material about operating with discrete objects, having similarities with traditional methods of mathematical analysis.

The book contains more than 500 exercises of various levels of complexity, presented in an informal style and accompanied by "notes on the fields" from the first editors of the book - Stanford students. We recommend to everyone studying and applying discrete mathematics and computer science.



Book: “Algorithms. Construction and Analysis "
Authors: Thomas H. Cormen, Charles E. Lazerson, Ronald L. Rivest, Clifford Stein

A whole galaxy of authors has prepared a publication covering a huge amount of material.

Clifford Stein is a professor in computer science.

Ronald Lynn Rivest is a specialist in cryptography, the author of symmetric encryption algorithms RC2, RC4, RC, one of the authors of the RSA algorithm.

Charles Eric Leiserson is a professor at the Massachusetts Institute of Technology and specializes in the theory of parallel, distributed computing and its practical application.

Thomas Kormen, a professor at the Dartmouth College, also holds the position of director of program writing at this institution.

The book "Algorithms. Construction and analysis "- a fundamental work in the field of algorithms. It uses examples of pseudo-code, which is understandable to anyone who is even slightly familiar with programming, and explanations of the principles of work are given without excessive mathematical rigor and require only elementary knowledge.

The first edition of this book has become the standard reference guide for professionals and a textbook for universities. Further publications received numerous additions, many new exercises and tasks. The third edition contains the Trees van Emde Boas and multi-threaded algorithms.



Book: “The Art of Programming. Volume 1—4 "
By: Donald Erwin Knut

Professor Knut is one of the most respected and quoted authors of books on programming in the world. He also wrote a series of world-famous books on basic algorithms and methods of computational mathematics. Donald Knut has been awarded numerous prizes and awards, and since 1996 he has been awarded his name for his special contribution to the development of the fundamentals of computer science.

“The Art of Programming” is a fundamental monograph devoted to the most important algorithms used in computer science. The book is recognized as one of the 12 best physico-mathematical monographs of the century.

The main feature of the monograph created over the course of 40 years is the exceptional quality of the material supplied, as well as the depth of analysis of the issues addressed.



Book: Analytic Combinatorics
Authors: Philip Flageole, Robert Sedgwick

Philippe Flageole is a French scientist who proposed the theory of analytical combinatorics. Most of his research papers are devoted to general methods for analyzing the computational complexity of algorithms.

The book "Analytic Combinatorics" is one of the most recent approaches to the problem of ensuring the possibility of accurate quantitative predictions of the properties of large combinatorial structures. The authors (among them Robert Sedgwick, who is already familiar to us) provide the full scope of the necessary basic mathematics, and also carefully consider both classical and modern applications of the theory of analytical combinatorics. The book contains illustrative examples of applications, exercises and notes.



Book: "Combinatorics for Programmers"
Posted by:

Witold Lipsky - Polish programmer, professor at the University of Paris, with a doctoral degree. The book "Combinatorics for Programmers" covers a wide range of combinatorial and graph-theoretic algorithms. The description of the algorithms is given in Pascal. The style of presentation - reference: the formulation of the problem, the algorithm for solving it, comments, complexity, examples.



The book: "Strings, trees and sequences in algorithms. Informatics and computational biology "
Posted by: Dan Gasfield

Professor Dan Gasfield teaches at the University of Davis, California. His interests include studies on the efficiency of algorithms related to combinatorial optimization. Gasfield is particularly interested in combinatorial problems arising in computational molecular biology (in particular, bioinformatics and genomics).

The book "Strings, trees and sequences in algorithms. Informatics and computational biology ”will be interesting not only to those who are interested in biology, but also to everyone who wants to independently get acquainted with modern algorithms for processing practical information.



Book: “Methods and Algorithms for Computing on Strings”
Posted by: Bill Smith

Professor William F. (Bill) was engaged in advising on the use of computer technology in business and government organizations. His main area of ​​research is combinatorial algorithms.

The book "Methods and Algorithms for Computing on Strings" describes the fundamental algorithms and methods that effectively calculate patterns in string sequences. These algorithms and methods are used in such areas as data compression, cryptography, speech recognition, computer vision, computational geometry, molecular biology, etc. The book contains more than 500 exercises, explaining and expanding the material.



Book: "Algorithmic Tricks for Programmers"
Author: Henry S. Warren Jr.

Henry Warren worked for more than 40 years at IBM. He worked on a number of military command and control systems and on the SETL programming language project. Since 1973, Warren has been working on compilers and computer architecture in the IBM research division.

The book "Algorithmic Tricks for Programmers" contains many tricks of computer arithmetic that will be extremely useful for developers of libraries and compilers, as well as for everyone who wants to quickly create effective code. The book presents examples of work with individual bits, bytes, calculations of various integer functions.



Book: Discrete Mathematics for Programmers
The author: Fedor Novikov

Fedor Aleksandrovich Novikov - Associate Professor, Department of Applied Mathematics, St. Petersburg State Polytechnic University and Department of Programming Technologies, St. Petersburg State University of Information Technologies, Mechanics and Optics. The textbook "Discrete Mathematics for Programmers" presents the main sections of discrete mathematics and describes the most important algorithms for discrete data structures.

The book has been approved by the Ministry of Education and Science of the Russian Federation as a textbook for students of higher educational institutions enrolled in the direction of training graduates in Computer Science and Computer Engineering.



Book: "Discrete Mathematics for the Engineer"
Author: Oleg Kuznetsov

Oleg Petrovich Kuznetsov - Head of the Sector of the Institute for Management Problems of the Russian Academy of Sciences, Doctor of Technical Sciences. In the book Discrete Mathematics for the Engineer, the basic concepts of set theory, general algebra, logic, graph theory, theory of algorithms and formal systems, and automata theory are presented. The publication is of interest to engineers specializing in the field of automated control and design, computing, information technology and information transfer.

In-depth programming in C ++




Book: Object-Oriented Design Techniques. Design Patterns »
Authors: Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides

Erich Gamma is a programmer from Switzerland, a leading developer of a framework for performing unit tests on JUnit Java and cross-platform integrated software development environment (Eclipse). Worked at IBM on a scalable open source project from software development (Jazz).

Programmer Richard Helm also worked at IBM, in a research center for a company that develops new technologies.

The third author, Ralph Johnson, is a professor at the University of Illinois, a popularizer of object-oriented language with dynamic typing Smalltalk.

John Vlissides worked at Stanford University, and since 1991 - at the IBM research center. He is the author of several books, many articles and reports on object-oriented technologies, design patterns and software modeling.

The authors, known as the "gang of four", presented the world with an elegant solution of typical problems arising in the PLO. The book consists of two parts: the first describes the possibilities and shortcomings of OOP, the second part describes 23 classic design patterns. The examples given in the book are written in the programming languages ​​C ++ and Smalltalk.

The "gang" outlines the principles for using design patterns and lists their catalogs. The book demonstrates the role of patterns in creating the architecture of complex systems and shows how, through the use of the patterns contained in the reference book, a designer can develop his own applications.



Book: Refactoring Using Templates
Posted by: Joshua Kerievski

Joshua Kerievski founded Industrial Logic , but we are better known as the author of the book, accumulating the experience of a professional developer in the use of design patterns.

Kerievski teaches to avoid both insufficient and redundant design, strive to constantly analyze the performance of the code, simplify its understanding and maintenance. Based on both his own and other people's experience, the author examines in detail the various features of the code that requires refactoring, describes which refactoring is best suited for a given situation, and describes its mechanics. The book presents 27 complex refactorings.

Kirievski refers to Fowler’s book Refactoring. Improvement of the existing code ”, therefore, for a deeper understanding of the ways of introducing“ Refactoring using templates ”patterns into the program architecture, it is recommended to read them later. You do not need additional knowledge, and although all are given in Java, they do not use the complex features of the language. The book will be useful as a middle-level programmers, as well as professionals.



Book: “C ++ Programming Language. Introductory Course
Authors: Stanley B. Lippman, Josie Lajoye, Barbara Mu

Stanley B. Lippmann worked with Bjorn Stroustrup at Bell Lab research corporation in the early stages of developing C ++. In 2001, Stanley Lippman became the chief architect of Visual C ++ at Microsoft. He also worked at Emergent Game Technologies, NASA, Pixar and 2kQubits.

Josy Lajoye participated in the work on the C ++ compiler in IBM Canada, and also led the working group of the basic C ++ language in the international organization for standardization ANSI / ISO.

Barbara Mu has nearly 30 years of programming experience. For 15 years she worked at AT & T, collaborated with Bjorn Stroustrup, and for several years led the C ++ development team.

The book of these experts is clearly not limited to the dry subtitle of "introductory course", but is an exhaustive guide for learning the language. The book covers both the basics of the structure of C ++ programs, including the use of preprocessor commands and header files, as well as more complex constructs (exceptions, classes, function and class templates, operator overloading, multiple inheritance, etc.).

As C ++ develops, the book makes the appropriate changes. In addition to the fundamental concepts, the new version of the book contains the most effective techniques that allow the reader to create their own programs even before in-depth familiarity with the features of the language.



Book: “STL. Pocket Guide »
By: Ray Lishner

Ray Lishner is primarily known in Delphi-community as the author of the books Secrets of Delphi 2, Hidden Paths of Delphi 3 and many articles for such magazines as Delphi Informant, Dr. Dobb's Journal. But we recommend his other book - “STL. Pocket Guide. This is really a reference to a subset of the standard C ++ library. STL — , C++, . , , STL.



: « . Master Class"
:

— , . Jolt Excellence . .

— « ». , , , . .

« » — , . .



: «C++ STL. »
: . , . ,

. — , STL : . , , STL ANSI/ISO C++.

. — Toltec Software Services Inc., C++, — General Electric Corporate R&D.

— Fiorano Software Inc., , C++. , STL, , C++.

«C++ STL. » , . , , , .. , STL - .



Books:
« ++»
« C++»
« +»

:

— C++. Microsoft Visual C++ .NET C++/CLI. 10 ISO C++. C++ Guru of the Week. « C++».

, . C++. C++: , , , , , .



: « C++»
:

. « C++» , , , , , , , , .

, , , . (), , C++, 100 , , ( ).



Books:
« ++»
«. C++»

:

C++ . — , « C++» . . .

« ++» 29 . 1991 ., — 1997 . , , « » («» « »), 1 . , . , C++11, 2013 .

++, .



: «. »
: , , , ,

— , - , UML, , - .

, . , , Smalltalk. JUnit.

— Refactoring Browser Smalltalk. .

- ( ), .

«. » , . 70 , Java.

«Must read» .



: « C++»
:

Shieldt is a writer, scientist, and programmer who was a member of the ANSI committee, which adopted the C standards, and the ISO committee that adopted the C ++ standards. The author of the Little C interpreter is an example of a recursive descending parser.

The Complete C ++ Reference Book contains all the keywords, functions, classes, and properties of a language that conform to the ANSI / ISO standard. It covers all aspects of the language, including its basis - S.

Source: https://habr.com/ru/post/265103/


All Articles