Learn a programming language online. How to start learning programming if you are a complete zero


  • Technologies: HTML, CSS, JavaScript, Git, Node.js, React.js and others.
  • English language.

The freeCodeCamp program consistently teaches the user all the basic aspects of web programming from basic concepts to complex development techniques. At the beginning of each lesson, you read the theory, then apply it in practice: write code in a special editor, and the system tests you. If difficulties arise, you can discuss them with other students on the forum.

At the end of the theoretical modules you are shown projects based on which you should create native web applications. The development results must be published on the resource, after which they can be evaluated by other users.

In addition, freeCodeCamp helps students form teams and work together on real-life non-profit projects. This is a good chance to gain valuable development experience and a portfolio needed for employment.

2. Codecademy

  • Technologies: HTML, CSS, JavaScript, Angular.js, React.js, Python, Ruby and others.
  • Cost: free or from $20 per month for additional content.
  • English language.
  • Difficulty level: easy-medium levels.

Like the previous resource, Codecademy focuses on teaching web programming. You read the theory, and then complete tasks in the interactive code editor. At the user's service individual courses dedicated to different technologies. The bulk of each of them is available for free, but verification tests and project development tasks are unlocked after you subscribe.

Codecademy also has comprehensive paid programs that organize and combine materials from different courses. For example, Build Websites from Scratch teaches you step-by-step how to develop a simple website from scratch using a variety of technologies.

3. Coursera

  • Technologies: HTML, CSS, JavaScript, Angular.js, Java, Python, Ruby, Swift and others.
  • Cost: free or from $49 per month for additional content.
  • Language: English, Russian and others.
  • Difficulty level: all levels.

On Coursera you will find many courses on different programming languages ​​from the world's leading universities. Here you can learn not only web development, but also the creation of mobile and desktop programs. Some courses are self-contained, but most are combined into specializations - sets of related courses.

You can view theoretical material presented in texts and videos for free. But most test and practical tasks, which require verification by a teacher or other users, are available only with a paid subscription.

4.edX

  • Technologies: HTML, CSS, JavaScript, Java, Python, Ruby and others.
  • Cost: free or from $49 per month for a certificate.
  • Language: English and others.
  • Difficulty level: all levels.

On edX you can access courses from famous companies and universities. Among them there is, for example, the famous introductory course for beginning programmers, Introduction to Computer Science, from Harvard University. Educational content is represented mainly by video lectures and texts. Some courses contain tests and other interactive activities.

The platform does not ask for money for completing most materials. But you can only get a certificate confirming the successful completion of a particular course for money.

5. INTUIT

  • Technologies: HTML, CSS, JavaScript, algorithms and databases, C#, Java, Python, Ruby, and others.
  • Cost: free or from 500 rubles per month for tutor services.
  • Russian language.
  • Difficulty level: all levels.

The catalog of the INTUIT educational platform contains text and video courses from Russian educational institutions and international IT companies. The site's content covers all major areas of programming from website development to the creation of desktop programs. Self-study is free, but there is a paid service in which the user is assisted by a personal tutor.

6. Stepic

  • Technologies: JavaScript, C#, neural networks, C++ and others.
  • Cost: completely free.
  • Language: Russian, English.
  • Difficulty level: easy-medium.

Another non-profit platform, courses for which are created by Russian companies and universities. Although Stepic doesn't have a lot of material about specific programming languages, it does provide fundamental knowledge of mathematics and algorithm theory that will be useful to every developer.

7. Modern Javascript Tutorial

  • Technologies: JavaScript and others.
  • Cost: free or from 6,500 rubles for an additional course.
  • Russian language.
  • Difficulty level: all levels.

This resource is dedicated to JavaScript language and related web technologies. Here you will find a very detailed, well-structured and easy-to-understand text course on JS. Assignments after each topic will help you consolidate your knowledge. At the same time, the material is purely theoretical and does not teach how to create projects in practice.

You can study the textbook on your own for free, or pay for advanced courses that include learning JavaScript itself or related technologies with a teacher.

You should start your path to a career as a programmer by answering the question, do you need programming at all? This question does not apply to those who are studying or have studied in a specialty close to programming. If you were better at math at school than the humanities, if you like to spend a lot of time on the computer, if you want to learn something new, then programming is for you.

Where to begin

There are several options for the development of events, as a result of which a person becomes a programmer. The first is parents-programmers who taught their children everything. These children don't even need to go to university. The second option is the fashionable profession of a programmer. After school, we had to choose where to go to study, and we chose the fashionable field of IT, which we seemed to like. And the last option is a hobby that has grown into work.

If none of the above happened to you, then you have a choice of four options:

  • Self-education. This option can be used either independently or in combination with other methods. The Internet is full of applications that help you learn various programming languages ​​and technologies. But this is the most difficult path for beginners.
  • University. If you finish school and want to be a programmer, then go to university. If not for knowledge, then for the crust. It can serve as a bonus when applying for a job. Although you will also gain some knowledge. But don't forget to educate yourself. Choosing a university should be approached very responsibly. Carefully study the training programs and choose the best technical universities.
  • Mentor. It will be very good if you find a person who agrees to help you and point you in the right direction. He will suggest suitable books and resources, check your code, and give useful advice. By the way, we have already written about where you can find a mentor. You can look for a mentor among familiar programmers, at IT parties and conferences, on online forums, and so on.
  • Specialized practical courses. Try looking for courses in your city that will teach you some programming language or technology. I was pleasantly surprised by the number of such courses in Kyiv, including free ones and with subsequent employment.

Which language, technology and direction to choose

When you become a programmer, after a year or two you will be free to choose any language you like. But when choosing a first programming language, a beginner should consider the following criteria:

  • Availability of vacancies on the market. The ultimate goal of this path is to find a job as a programmer. And this will be difficult to do if no one is looking for developers in your programming language on the job market. Check job sites, see who is most sought after, write down a dozen languages. And move on to the next criterion.
  • Low entry level. If you have to spend long time to learn a language, it may discourage you from programming in general. Read about the languages ​​you selected above. Review the literature you will need to read to learn these languages. And choose those that are described as easy, or that seemed easy to you. Such languages ​​may be PHP, Ruby, Python.
  • The thrill of the process. If you don't enjoy writing code in your chosen language, you won't enjoy the process, your work, or your life. Do you need it? Make the right choices.

You will also have to decide on the direction of programming. Mobile, desktop, games, web, low-level programming and so on. The most popular and relatively easy industries are development for web, mobile and desktop clients. One language may be suitable for each direction and not another at all. That is, when choosing a programming language, it is also worth starting from this factor.

Either way, learn web technologies. This is a markup language, styles and that will make your page dynamic. In the next step, explore server language(Python, PHP, Ruby and others) and web frameworks suitable for it. Study the databases: almost every programmer vacancy mentions this.

How to get initial experience

Without experience you won't get a job. Without work you won't get experience. A vicious circle of real life. But it’s okay, we’ll get out of it.

First, don't wait until you've read every book on your chosen programming language. Start writing your first lines of code after the second chapter of the book. Complete all the tasks from the books, retype the examples, understand them. Complicate the examples and tasks from books with your own ideas. Create your own tasks for the material you have covered. Solve these problems.

Secondly, you need to find your first projects. This is probably the most difficult option, but it works. You will have to look for orders yourself, fulfill them, and bother with payment. For a beginner, this is extremely difficult, but then all other options will seem like a piece of cake. Completed projects can be recorded as experience and shown to your future employer. Real projects are a big plus on your resume.

If you know English, it is better to register on English-language exchanges. The market is bigger there. If you don't know English, learn it. In the meantime, Russian-language freelance exchanges are available to you. Look for small projects that are at or just above your skill level. Apply for a couple dozen of these jobs. And get ready to receive a sea of ​​refusals. But if one or two applications come through, you'll have a chance to gain real experience.

Another good option for getting real experience is open source. Such projects always need new people, even beginners. You can search for bugs in the project or look in the bug tracker and suggest methods for solving them. You can easily find such projects on GitHub or . Feel free to ask questions there.

The fourth option for gaining experience is helping fellow programmers. Ask them to hand over small, simple tasks to you. If something doesn't work out, you will always have someone to turn to. And at the same time you will participate in a real project.

The last way is own projects, various hackathons or working in a coworking space. It’s difficult to start your own projects on your own; it’s better to look for acquaintances or friends.

Why choose Python

Let's talk a little more about choosing your first programming language. The first language should be simple and popular in the market. Such a language is Python. I highly recommend choosing it as your first programming language.

The Python program code is readable. You don't even need to be a programmer to get a basic understanding of what's going on in a program. Due to Python's uncomplicated syntax, it will take you less time to write a program than, for example, in Java. A huge database of libraries that will save you a lot of effort, nerves and time. Python is a high-level language. This means you don’t have to think too much about memory cells and what to put there. Python is a general purpose language. And it's so simple that even children can learn it.

In fairness, it is worth mentioning other programming languages. Java could be a good choice for a beginner. This language is more popular than Python, but also a little more complex. But the development tools are much better developed. One has only to compare Eclipse and IDLE. After Java, it will be easier for you to move on to working with low-level programming languages.

PHP- another very popular language. And I think it's even simpler than Python. It is very easy to find a mentor or a solution to a problem on the forum. This is because there are a huge number of PHP programmers of different levels in the world. There is no normal import in PHP; there are many options for solving the same problem. And this complicates learning. And PHP is designed exclusively for the web.

Languages C And C# very difficult for a beginner. Ruby - a good choice as a second language, but not a first. JavaScript- a very simple language, but it won’t teach you anything good. But the task of the first programming language is still to teach you something correct, to set some kind of logic.

Is English important?

Important! Do not know? Teach. Do you know? Improve. Learn to read, write, listen and speak English. Focus on technical literature. Listen to English-language podcasts. Read English-language programming textbooks.

What you need to know besides the programming language

Of course, besides the programming language and English, you need to know something else. But what depends on the direction you choose. A web programmer must know HTML, CSS, JavaScript. A desktop programmer teaches operating system APIs and various frameworks. A mobile application developer learns Android, iOS or Windows Phone frameworks.

Everyone needs to learn algorithms. Try taking a course on Coursera or finding a book on algorithms that suits you. In addition, you need to know one of the databases, programming patterns, and data structures. It's also worth checking out code repositories. At least with one. Knowledge of version control systems is required. Choose Git, it's the most popular. You need to know the tools you're working with, the operating system, and the development environment. And the main skill of a programmer is to be able to Google. You won't live without this.

Last steps

You need to prepare a resume. Not just a resume, but a . You shouldn’t write there, but you also don’t need to remain silent about your skills. Once you are invited to an interview, you must prepare for it. Go through the material that is listed on your resume. You must be confident in your knowledge. Look through the projects you've worked on, think about the technologies you've used. And forward - to a bright future with a new profession as a programmer.

Download

D. Knut. The art of programming. In three volumes. A programming classic. djvu.

Volume 1. 680 pp. 5.8 MB. Download.

Volume 2. 790 pp. 6.3 MB. Download.

Volume 3. 800 pp. 6.6 MB. Download.

Kernighan B.W., Ritchie D.M. C programming language. 3rd ed. and correct. 2003 355 pp. PDF. 15.9 MB.
The book by well-known authors, developers of the C language, revised and expanded taking into account the ANSI standard for the C language, the 2nd English edition of which was published in 1988, has long become a classic for all students and/or users of both C and C++. The Russian translation of this book was first published by the Finance and Statistics publishing house in 1992 and has since been in constant demand among readers. For this third Russian edition, the translation has been re-checked with the original, some amendments have been made to it, taking into account changes in terminology that have become established over the years, and the comments posted by the author on the page http://cm.bell-labs.com/cm/ are also taken into account cs/cbook/2ediffs.html.
For programmers, teachers and students.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download.

Kernighan B.W., Ritchie D.M. Programming language pp. 229 pp. PDF. 1.3 MB.
The C language (pronounced "C") is a universal programming language characterized by parsimonious expression, modern control flow and data structures, and a rich set of operators. The "C" language is neither a language "very high level" is not a "big" language, and is not intended for any special application. But the lack of restrictions and generality of the language make it more convenient and efficient for many tasks than languages ​​​​supposedly more powerful. The "C" language, originally intended for writing operational "UNIX" system on the DEC P DP-11 computer, was developed and implemented by Dennis Ritchie. Operating system, compiler C and essentially all UNIX application programs (including all software used in the preparation of this book) are written in C. Commercial C compilers also exist on several other computers, including the IBM SYSTEM /370, HONEYWELL 6000, INTERDATA 8/32 The C language, however, is not associated with any particular hardware or system, and it is easy to write programs in it that can be run without modification on any computer, having a "C" compiler.
This book is designed to help the reader learn to program in C. It contains a tutorial aimed at allowing new users to start programming as quickly as possible, separate chapters on all the main features of the language, and reference guide. The training is based mainly on reading, writing and analysis of examples, and not on the bare formulation of rules. The examples given in the book are, for the most part, complete real programs rather than individual fragments. All examples have been checked directly from the text of the book, where they are printed in a form suitable for entering into a machine. In addition to providing guidance on how to make language use more efficient, we have also tried, where possible, to illustrate useful algorithms and principles good style and smart design.
This book is not an introductory course to programming; it assumes some familiarity with basic programming concepts such as variables, assignment statements, loops, and functions. However, even a newbie to programming should be able to read back-to-back and get comfortable with the language, although some help from a more experienced colleague would be helpful.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download.

Carrano, Pritchard. Data abstraction and problem solving in C++. 3rd ed. 2003 850 pp. PDF. 21.9 MB. In addition to providing a solid foundation of data abstraction techniques, it emphasizes the distinction between specification and implementation, which is fundamental to the object-oriented approach. The book discusses in detail the key concepts of object-oriented programming, including encapsulation, inheritance, and polymorphism, but the focus is always on data abstraction rather than C++ syntactic constructs. The book will be useful to anyone interested in an in-depth study of the most important aspects of OOP and full mastery of the corresponding capabilities of the C++ language.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download.

Coat of arms of Kammer. New complex problems in C++. 2005 year. 271 pp. djvu. 2.2 MB.
This book is a continuation of the previously published book “Solving Complex Problems in C++”. In the form of problems and their solutions are considered modern methods design and programming in C++. The book concentrates not only the author’s wealth of years of programming experience in C++, but also that of the entire C++ programming community, so some of the author’s recommendations may seem unexpected even to experienced professional programmers. The author also examines specific programming techniques, techniques, and idioms, but the main theme of the book is programming style, in the broadest sense of the word. In all tasks of the book, special attention is paid to the issue of design, which should ensure maximum reliability, safety, performance and maintainability of the created software.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download.

Laszlo M. Computational geometry and computer graphics in C++. 1997 150 double pages DJVU. 18.6 MB.
The book describes the main problems arising in computer graphics and computational geometry. Practical problems are considered and relatively simple methods for solving them are presented. Basic techniques for developing and analyzing algorithms are presented, elementary data structures (lists and trees) and ways to use them are discussed.
For applied mathematicians, graduate students and university students as a textbook on machine design, computer graphics, and pattern recognition.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download

Laptev et al. C++. Object-oriented programming. Tasks and exercises. 2007 288 pp. DJVU. 3.2 MB.
The book is intended to explore the possibilities of the object-oriented programming style in C++. Information about the syntax and semantics of object-oriented C++ constructs and the standard STL template library is provided. The book contains the necessary theoretical information, exercises and tasks for independent work, background information on the most popular programming environments: C++ Builder 6 and Visual C++.NET 2003. For teachers and students, novice programmers.
Approved by the Ministry of Education and Science of the Russian Federation as teaching aid for students of higher educational institutions studying in the field of preparation “Informatics and Computer Science”.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download

J. Liberty. Learn C++ on your own. 3rd ed. year 2009. 820 pp. djvu. 10.4 MB.
The book provides a wide range of possibilities. latest version Microsoft Visual C++ software product. The tools and approaches to programming modern professional applications are described in detail. The book's materials are supplemented by numerous demo programs, the development process of which makes maximum use of the capabilities of Microsoft software tools Visual Studio.
Particular attention is paid to what's new in version 6.0 and the latest object-oriented programming technologies, including the use of the MFC library and class templates, as well as the creation of linked lists. A separate lesson is devoted to issues of object-oriented analysis and application design. All means and approaches for constructing your own custom classes are discussed in detail. The book is intended for a wide range of readers interested in modern problems programming.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download.

Stanley B. Lippman, Josie Lajoye. C++ for beginners. year 2001. 1167 pp. PDF. 6.1 MB.
The book by the famous C++ language expert Stanley Lippman was co-authored with Josie Lajoie, who took an active part in the development of the international C++ standard. Despite the title, this publication is a comprehensive guide to learning the modern version of the C++ language. The authors consider both the basics of the language (the structure of a C++ program, the use of preprocessor commands and header files) and more complex structures (exceptions, classes, function and class templates, operator overloading, multiple inheritance, etc.). The text contains a large number of examples that explain the material presented. The book is intended for those who are beginning to learn the C++ language, but more experienced programmers will also find useful information about the functioning of complex language constructs, as well as a description of the latest innovations in the C++ standard.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download.

Mozgovoy M.V. 85 non-trivial projects, examples and tasks. Master class C++ series. 2007 135 pp. djvu. 5.1 MB.
This book is devoted to the analysis of interesting problems encountered in everyday programming practice and requiring non-trivial approaches to solving them. Using a small number of representative, realistic examples, the application of important algorithms and programming techniques is illustrated. The tasks in which certain approaches and solutions can be used are identified.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download.

Overland. C++ without fear. Series "Knowledge and Experience of Experts". Rybe can be read from scratch, meaning no programming skills are required. 4.6 MB. 430 pp. djvu.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download.

Pakhomov B.I. C/C++ and MS Visual C++ 2008 for beginners. Textbook. year 2009. 609 pages, djvu. 9.3 MB.
The book is a beginner's guide to developing applications in the Microsoft Visual C++ 2008 environment. Express Edition. The basic elements of the C/C++ programming languages ​​and examples of creating the simplest classes and programs are considered. Principles set out visual design and event programming. On specific examples shows the main features of the visual development environment Visual C++ 2008 Express Edition, the purpose of the basic components and the development process various types console and Windows applications.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download.

Prokhorenok N.A. Programming in C++ with Visual Studio 2010 Express. 2010 229 pp. djvu. 2.1 MB.
The basic syntax of the C++ language is described in relation to the free Visual Studio 2010 Express environment: data types, operators, conditions, loops, built-in functions, object-oriented programming, working with files and directories, frequently used modules of the standard library.
In addition, the book discusses the Standard Template Library (STL), which implements dynamic arrays, sets, queues and stacks. Thanks to a large number of examples, the book will be useful as a tutorial for beginning developers. Readers already with programming experience can use the book as a reference.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download.

Pavlovskaya T. A., Shchupak Yu. A. C++. Object-oriented programming: Workshop. 2006 265 pp. PDF. 7.9 MB.
The workshop is intended for students learning the C++ language in seminars or on their own. Classes, templates, inheritance, exceptions, the standard library, UML, software engineering concepts and design papers are discussed with examples, accompanied by the necessary theoretical background. Algorithms, debugging techniques, and quality issues are discussed. For each topic I will give 20 variants of tasks. Approved by the Ministry of Education of the Russian Federation as a teaching aid for students of higher educational institutions studying in the field of "Informatics and Computer Science".

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download.

T. A. Pavlovskaya. C/C++. Programming in a high level language. From the series "300 best textbooks". 2003. 461 pp. PDF. 9.7 MB.
The purpose of this book is to provide a concise and clear presentation of the C++ language in accordance with the ISO/IEC 14882 standard. It is intended for students learning the language from scratch, but will also be useful for more experienced programmers. The goal that was set when writing the book was to give a correct understanding of the capabilities of the C++ language and how to use them, an impetus for further study of this and other programming languages ​​and the key to understanding modern object-oriented technologies.
Test assignments on key topics are presented in 20 versions, and the author hopes that teachers will appreciate the care shown about them.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download.

Pavlovskaya T. A., Shchupak Yu. A. C++. Object-oriented programming: Workshop. 2003 240 pp. djvu. 3.2 MB.
The workshop is intended for students learning the C++ language in seminars or on their own. It is a supplement to the textbook by T.A. Pavlovskaya: C/C++.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download.

K. Polyakov. Programming in SI language. 2002 4 chapters in separate files PDF. Archive size 2.7 MB.
Chapter I. Introduction to programming. Chapter II. Data storage and processing. Chapter III. Software development. Chapter IV. Dynamic data structures.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download.

Podkur M.L. Podkur P.N. Smolentsev N.K. Programming in the Borland C++ Builder environment with MATLAB C/C++ mathematical libraries. 2006 498 pp. djvu. 8.9 MB.
This book is devoted to the presentation of COBMeCThoro issues of using the rich library of visual components Borland C++ Builder and the capabilities of the C++ language with powerful mathematical procedures of MATLAB@. The book contains the basics of programming in Borland C++ Builder and MATLAB, a description of MATLAB mathematical libraries for CjC++ and MATLAB compilers (including latest version). Examples of programs in Borland C++ Builder that use MATLAB mathematical libraries are considered. Although there are quite a lot of books on the basics of the MATLAB system and on programming in CjC++ and Borland C++ Builder, at present there is not a single book that would cover the issues of joint use of MATLAB and C/C++ and Borland C++ Builder.
The book is intended for teachers and university students in specialties close to applied mathematics (the reader’s mathematical training is assumed within a technical university), professional C++ programmers who are faced with the problems of implementing mathematical algorithms in C++, and MATLAB programmers who want to use the flexibility C++ language and a large library of visual components Borland C++ Builder for implementing MA TLLV algorithms in the form of complete and MATLAB-independent applications.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download.

Prata Steven. Programming language C++. Lectures and exercises. Textbook. 2005 year. 1100 pp. djvu. 30 MB.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download.

Rex Zheszke. TOLKOBBLY SILOBARb STANDARDSCH8 Y3blKA SI. 225 pp. DJVU. 5.2 MB.
The dictionary is a pilot in the sea of ​​names and terms used when working in the SI language: American (ANSI C) and international (ISO C). The book is intended for programmers of all levels of SI language proficiency.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download

Sutter, Herb. New challenging tasks in C++. 2005 year. 272 pp. 2.2 MB.
This book is a continuation of the previously published book Solving Complex Problems in C++. Modern methods of design and programming in C++ are discussed in the form of problems and their solutions. The book concentrates not only the author’s wealth of years of programming experience in C++, but also that of the entire C++ programming community, so some of the author’s recommendations may seem unexpected even to experienced professional programmers. The author also examines specific programming techniques, techniques, and idioms, but the main theme of the book is programming style, in the broadest sense of the word. In all tasks of the book, special attention is paid to the issue of design, which should ensure maximum reliability, security, performance and maintainability of the created software.
The book is intended primarily for professional programmers with deep knowledge of the language, but it will be useful to anyone who wants to deepen their knowledge in this area.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download.

Slabzhennikov S.N. Programming in C++. Uchebntmk. 2004-2008. 3 PDF files in one archive 880 KB.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download.

Stephens, Diggins, Turkanis, Cogswell. C++. Collection of recipes. 2007 624 pages, djvu. 11.6 MB.
This book covers the following topics:
working with numbers; working with date and time; streaming I/O; Exception Handling; working with classes and objects; building applications; parsing XML documents; string and text processing; multi-threaded processing; standard library algorithms and containers; programming mathematical problems; internationalization; Boost.Build system.
The book provides real solutions that reflect modern C++ programming methods. The focus is on performance and portability, taking into account official and specific standards. Many solutions take advantage of the C++ Standard Library. The authors also review the Boost libraries, which reflect some of the most innovative ideas in the C++ world.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download.

Stevens. PROGRAMMING TECHNIQUES FOR TURBO SI. txt in RAR archive, 135 KB.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download.

Stroustrup. Design and evolution of C++. The book was written by the creator of the C++ language. 2006 440 pp. djvu.
2.9 MB.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download.

Stroustrup. C++ programming language. 2nd add. ed. doc in RAR archive. 430 KB.
I prefer this PDF file. 2.6 MB.
A book from the creator of the most popular programming language.
An excellent C++ textbook that should be on the shelf of every self-respecting C++ developer. The author talks in his book about the basics of the language, focusing primarily on the object orientation of C++.
From the book the reader learns about:
1. What are the basic principles of object-oriented programming and how are they implemented in C++. 2. How data abstraction is supported. 3. What are classes and objects. 4. What virtual functions are used for 5. What are type templates and class templates 5. How error handling occurs 7. By what means is data input/output carried out 8. What are the stages of the object-oriented design process 9. How to design libraries. And much more.
The book will certainly be useful to absolutely everyone who is interested in object-oriented programming and in particular the C++ language.

. . . . . . . Download doc. . . . . . . . . . . . . . . . Download PDF.

Sedgwick. Fundamental algorithms in C++. Princeton, 3rd ed. 15.4 MB. 690 pp. djvu

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download.

Tikhomirov Yu.I. MFC tutorial. year 2000. 628 pages, PDF. 20.5 MB.
The MFC library is a powerful and flexible tool for developing Windows applications based on the Visual C++ language. The book contains detailed information about the main classes of the library and their components. The principles of creating single- and multi-document applications, all types of windows, controls and working with databases are considered. Practical examples will help you master the theoretical material and at the same time master the modern programming style.
The appendix outlines the basics of the C++ language, which makes it possible to recommend the book not only to trained programmers who want to get acquainted with the MFC library, but also to beginners.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download.

Tan, Steeb, Hardy. Character C++. Introduction to computer algebra using object-oriented programming. Per. from 2nd English ed. year 2001. 622 pages, djvu. 5.2 MB.
The book presents an approach to developing a new computer algebra system based on object-oriented programming. The first introductory chapters outline the user requirements for such systems, describe the necessary mathematical apparatus underlying the development of the system, and provide an overview of the most popular existing systems (REDUCE, MAPLE, AXIOM, MATHEMATICA, MuPAD). Next, the basic concepts of object-oriented programming, the languages ​​Java, Eiffel, Smalltalk, Lisp and Oberon are discussed, the tools of the C++ language are outlined, new system computer algebra SymbolicC++. Examples are given of the application of the system to problems in mathematics and physics (Gödel numbering, Padé approximation, Lie series technique, Picard method, Mandelbrot fractal set, etc.). The book includes listings of all system components, which allows users to develop and expand the system in accordance with their needs. For undergraduate and graduate students of universities as a teaching aid, for specialists in computer algebra as reference guide, as well as for non-professionals who want to expand their knowledge of the possibilities computer technology.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download.

Flenov M.E. DirectX and C++. 2006 195 pp. djvu. 5.8 MB.
The programming of graphic effects in C++ using the popular DirectX library is considered. Fun, practical examples show how to create different visual effects(realistic fire, electrical discharges, mirrors, etc.) used in the development of demo videos (Demoscene). The use of basic DirectX methods and interfaces is described step by step. Shows how to write optimal and efficient program code. Much attention is paid to the technology of using vertex and pixel shaders to create realistic images.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download.

Holzner S. Visual C++ 6. Training course. 2007 575 pp. DjVu. 16.2 MB.
The popular "Step by Step" series is intended for those who are learning new software products in courses or on their own. After studying this book, you will take a basic Microsoft programming course. Visual Basic 6.0. The secret to becoming a professional Visual Basic developer is to write programs that require you to use a wide variety of Visual Basic features. Among them: thorough knowledge and ability to put into practice standard means toolbar controls and ActiveX components; the ability to correctly establish and manipulate the properties, functions and events of an object; ability to write clear and concise code with the ability to reuse some program segments in the future; ability to create a visual and effective user interface. In each of the lessons in this course, the reader's attention is focused on these programming principles. You'll find that you'll be able to immediately apply the skills and knowledge you learn from the examples in this book to create more complex Visual Basic applications to perform real-world, practical problems.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download.

Hyman, Arnson. Visual C++ .NET for dummies. So you've decided to take Visual C++ .NET seriously. This is a good idea, because you actually kill three birds with one stone: you have a powerful, useful and widespread tool in your hands. There's a lot you can do with C++. It has been used to create products such as Excel and Access. This language is also used in the development of management information systems and target systems used to analyze the activities of enterprises and make decisions in the field of business management. And, of course, entire armies of hackers and other hackers use C++ to create tools, utilities, games and multimedia masterpieces. The knowledge you will gain by learning the C++ .NET language. will allow you to create not just applications, but applications that run on different operating systems. The possibilities of this language are practically unlimited, and you will see for yourself by reading this book. The book is intended for beginner programmers. 3.0 MB. 280 pp. PDF.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download.

Max Schlee. Professional programming in C++. 3rd ed. year 2009. 863 pp. djvu. 25.1 MB.
The best book for initial learning of the cross-platform Qt library for C++. If you haven't worked with Qt before, don't even consider other options. Max Schlee described in great detail and clearly the use of all the main classes of the library in the book.
It is worth noting that this book is significantly different from a similar book on Qt3: a lot of information has been updated and added. Even new sections have appeared, and in some programming tasks, for example, graphics with the transition from Qt3 to Qt4, much newer and better approaches to solving these problems have appeared, which has led to the emergence of completely new classes (old similar classes are now obsolete, but are retained, which would get rid of compatibility problems, of course, but they are no longer discussed in the book) and a complete revision of some sections of the book! That is, draw a conclusion: the book on QT3 is clearly outdated and it’s even better not to open it, but immediately switch to this one... otherwise you’ll have to relearn it...

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download.

G. Shildt. C++. Beginner's Guide. 2005 year. 669 pp. djvu. 18.1 MB.
The book describes the basic tools of the C++ language that a novice programmer needs to master. After covering elementary concepts (variables, operators, control instructions, functions, classes and objects), the reader can easily move on to more complex topics such as operator overloading, exception handling mechanisms, inheritance, polymorphism, virtual functions, input facilities output and templates. The author of the book, a generally recognized authority in the field of programming in the C and C++, Java and C# languages, included in his book many self-tests that allow you to quickly check the degree of mastery of the material, as well as “question and answer” sections that promote deeper learning the basics of programming even at the initial stage.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download.

Yu.A. Shupak. Win32 API. Efficient development applications. 2007 573 pp. djvu. 22.5 MB.
This book outlines the fundamental principles of programming for Windows in C/C++ using the Win32 API. The book is aimed at a wide range of readers: from novice programmers, university students, graduate students and teachers to programming professionals who want to master special Win32 API tools. Practice shows that those programmers who begin to master programming for Windows immediately at the MFC or Windows Forms level, without having any experience with the Win32 API, face serious problems as soon as it comes to creating real applications. On the contrary, experience programming with the Win32 API allows you to master more high tech much more harmonious and productive.
Possession basic knowledge Win32 API is a reliable basis for your professional development in the field of programming.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download.

Alger. C++, programmer's library. The book assumes that you have been programming for a couple of years and have stopped calling yourself just a programmer, but are adding senior, presenter, and so on. If you recognize yourself, then this book is for you. 1.9 MB. 260 pp. PDF.

Learning programming is becoming more and more accessible thanks to the continuous growth in the number of online resources that help everyone with it. The advantage of such resources is the unlimited amount of knowledge they can provide and the highly qualified teachers. The downside is that no one forces you to study and the quality of the knowledge you gain depends only on how much effort you put in.

An interactive online platform for teaching 12 programming languages: Python, PHP, JavaScript, Ruby, Java, etc., as well as working with the jQuery library and markup and web page design languages ​​HTML and CSS.

If you need to quickly get acquainted with the basics of a new technology, then these courses are very useful and will help you quickly understand new language. But the resulting knowledge will be shallow and after these courses it is necessary to continue studying.

The educational streaming service LiveEdu.tv offers you unique tutorials for learning programming. What's so special about LiveEdu.tv? The lessons are interactive, you see the project being written in real time and can communicate with the teacher via chat, recordings of streams are also available.

Livedu.tv contains a huge library of recorded broadcasts on all kinds of programming languages ​​and frameworks. Most of the content is available for free, you just need to register, there are paid projects, they are more structured and educational, a monthly subscription will cost 500 rubles.

The site recently launched a Russian-language premium section, where you can find various training projects, for example: “Server implementation of the messenger”, “How to write a link shortener in Node.js”. Thanks to a huge database of training videos and projects, the site is suitable for both beginners and experienced professionals. And any specialist who meets the requirements can become a teacher and create their own educational project here.

A service for learning programming, namely Full-stack development in JavaScript. The training is based on the principle of self-education from simple to complex. First, the basics are given, and then they give a task that goes beyond what has been studied and you need to solve it yourself.

It all starts with HTML, CSS, Bootstrap and continues with tasks on basic JS functions, tasks on algorithms, front-end projects. A section about React is planned to be launched. For communication there is a chat on Gitter.

This site provides programming exercises specifically in: C#, C++, Haskell, JavaScript, Lua, Objective-C, Perl 5, Python, Ruby and Scala.

The idea is simple:

  • You download the exercise in the language of your choice (mentioned above) from client application exercism.io
  • Add the solution to the site.
  • Programmers from all over the world will comment on what you have done.
  • You improve your code.
With this learning method, where you, as a newbie to programming, get feedback from experts, you can avoid getting stuck in your training if you fail to find the right solution. This also helps shy people or those who are hesitant to ask questions since there is no way to move forward. Katrona Owen, creator of Exercism.io, noted that this type of training will help students at Jumpstart Labs in Denver, Colorado, complete the exercises.

Pluralsight is one of the leaders in developing interactive training courses for professional developers. Pluralsight offers subscriptions for individuals and businesses starting at $29 per month. The following categories are available on the site: IT Ops, Software Development, Data Professional, Architecture and Construction, Manufacturing and Design, Business Professional, Information and Cyber ​​Security.

Video lectures on English language with subtitles, combined with built-in tests and follow-up homework, based on a learn-by-doing model. Each lecture includes a built-in quiz to help students understand the concepts and ideas presented.

Nanodegree Plus programs are also available. The bottom line is that Udacity guarantees employment for 6 months after graduation or gives you your money back. The training costs $299/month. The big advantage is code reviews, and very detailed ones. The program also includes: assistance in preparing a resume, GitHub and LinkedIn accounts, test interviews (with real people).

Code School uses screencasts and video lessons for teaching about HTML/CSS, JavaScript, Ruby, Python, .NET, iOS, Git and other languages, presenting the material through interesting stories. Most of the content is aimed at advanced programmers, but there are free courses available for beginners on the basics of programming.

To access free courses You must register and access to Code School's paid courses is only available on a subscription basis, starting at $29 per month.

Udemy is a learning platform where you can be both a student and a teacher. Udemy offers a large number of courses in such applied areas as design, programming, and web development. Among the teachers you can meet Mark Zuckerberg and other giants of the IT industry. The price of courses on Udemy ranges from $10 to $200, there are also free ones.

Lynda.com is a veteran of the online education industry. Lynda.com is a service paid online training mainly in the direction of IT and design. The service was founded in 1995 and was acquired by Linkedin in 2015.

Lynda works on a subscription basis. Although some courses are available for free, the majority are available only with a subscription starting at $19/month. After payment, the user receives unlimited access to any courses in the Lynda database. To get acquainted with the functionality of Lynda, a 10-day trial version is offered, with full access to the entire library.

This is an interactive collection of programming problems, by solving which you will develop your skills in a particular language.

A variety of tasks, achievements, tests, viewing the most best solutions, discussions, rankings — all this makes the service very convenient and valuable for those who want to solve problems in a particular language. The service currently supports following languages: Clojure, C++, C#, Elixir, F#, Go, Haskell, Java, JavaScript, PHP, Python, Ruby, Rust, Shell, SQL, Swift, TypeScript.

Coursera is an educational platform that provides the opportunity to undergo online training at leading educational institutions in the world. The project cooperates with universities that publish and teach courses in various fields of knowledge in the system.

Students take courses, communicate with fellow students, and take tests and exams directly on the Coursera website. The project presents courses in physics, engineering, humanities and arts, medicine, biology, mathematics, computer science, economics and business.

Courses are approximately six to ten weeks in length with 1-2 hours of video lectures per week, and contain assignments, weekly exercises, and sometimes a final project or exam. For $40 you can receive a certificate from the university where you took the course. Coursera has approximately 700 courses in various fields.

Code Avengers provides the opportunity to learn the basics of HTML5, CSS3, JavaScript directly in the browser in an interactive and playful way. During the training, you will be able to learn the basics of programming and layout step by step, completing small tasks.

With a free account you can study the first 5 lessons of each course. Some courses are available in Russian (currently translated HTML/CSS/JavaScript/Game Dev/Intro to Coding)

The site was created by StackOverflow developer. The resource is a tour of the best guides on the Internet, including interactive activities, videos, and reading materials. Bento is free and presents the material in a completely logical sequence.

Bloc helps you master the professions of UI/UX designer and developer in order to create “modern responsive websites and mobile applications.” The service is not quite conventional system payment: for a fixed amount of $3,999, you can choose one of three workload options - 3 months of 40 hours per week, 4.5 months of 25–30 hours and 9 months of 12–15 hours. This way, training can be combined with studying elsewhere or even working.

CheckIO is a resource for learning and practicing the Python programming language. Training is presented in the form of a game in which each user needs to use their knowledge to one degree or another. For example, the first stage of learning “Learning” is a chain of tasks from easy to complex. Moreover, the description of the problem itself contains all the reference data for solving it.

Codingame.com - service for learning various languages programming in a game form. In each case, the player is required to solve a specific problem or fix someone else's code.

The highlight of our Codebabes.com list. All video lessons on this online resource are taught by young girls. The specificity of such lessons is that as the material becomes more complex, the girls... undress. Each section has several videos for training. In the video, the girl who teaches the course explains to the user one of the topics of a block for several minutes.

A great place for people who want to learn how to create with code. This free platform uses video lessons from experts covering many different topics from mathematics and physics to history and art history. Apps are available for Android and iOS, giving you the ability to take the platform's courses anywhere.

MIT OpenCourseWare is a special resource from the Massachusetts Institute of Technology, which contains many training courses, lectures and seminars. OpenCourseWare contains content from more than 2,000 courses. The site has audio and video courses, search by catalog, by course number, by discipline name, all subjects and degree of difficulty are divided into separate sections.

With this resource, you can watch interactive presentations that explain how to write programs from scratch. Not only do you see the code being written, but you can also understand what changes each line of code makes to the final product.

The project is an online collection of documents from various sources that are dedicated to web development and are suitable for people of all skill levels: from experts to students and beginners. MDN is a wiki, which means anyone can make edits to it and correct inaccuracies.

HTML5Rocks is a collection free lessons for help in solving various problems. The videos are often accompanied by various written instructions, diagrams, and useful explanations can be found in the comments.

Detailed learning CSS using a large CSS almanac. Now the blog covers many topics besides CSS - for example, Sass, JavaScript, PHP and more. You can check out a huge amount resources and even code fragments.

Helpful English speaker educational portal with an audience of about 5 million users. A large number of free training programs in various areas of programming, as well as paid courses. More than 600 video courses and e-books.

Code4startup.com - training in different programming languages ​​and frameworks using examples of successful startups. For example, Code4Startup suggests learning AngularJS and FireBase by creating a clone of TaskRabbit, and HTML 5, CSS and jQuery by copying Airbnb (then you can create a hybrid mobile application for the service).

Russian-language sites for learning programming:

These are interactive online courses on HTML and CSS that will help you go from solving simple practical problems to creating full-fledged websites. Great attention is paid to practice here, everyone new material is supported by examples and quizzes that you will have to solve to move on to the next lesson.

Hexlet is an open web platform for learning to code, offering short courses lasting a few hours for software developers, from beginners to professionals. All learning programs consist of two parts: theoretical and practical.

LendWings – this platform offers video lectures from the best teachers from around the world in Russian, but not all courses are free. LendWings allows users to connect to training courses from independent teachers (“instructors”) who provide training through recorded video lectures, text documents, slides, presentations and other materials.

This is an online school for teaching programming, system administration, design and Internet marketing. Each GeekBrains course has detailed program and reviews. Classes cover almost all areas of development and prepare for specific work in one area or another of IT. Internship and certification programs are also available for students.

JavaRush teaches Java programming in the form of an online game. The game is based on the Futurama universe. The goal of the game is to upgrade your character (the Amigo robot) from level 1 to level 80. In the game you complete tasks and earn black matter, which you spend on opening new levels. The JavaRush course contains 1200 practice problems of increasing difficulty.

The purpose of the site is to provide the most competent and, if possible, up-to-date information about javascript and related technologies. There is a textbook, tools and a large number of correct articles for general development. An offline version of the directory is available for download. There are several quite complex tests.

A resource for online programming training, offering not only video lessons for independent viewing, but also free services that allow you to develop practical coding skills. Each user has the opportunity to develop practical skills using the Simulator, communicate with other students on the forum, read interesting publications on the blog, listen to free IT webinars. The video courses themselves are included in larger educational modules - “IT Specialties”

  • Technologies: HTML, CSS, JavaScript, Git, Node.js, React.js and others.
  • English language.

The freeCodeCamp program consistently teaches the user all the basic aspects of web programming from basic concepts to complex development techniques. At the beginning of each lesson, you read the theory, then apply it in practice: write code in a special editor, and the system tests you. If difficulties arise, you can discuss them with other students on the forum.

At the end of the theoretical modules, you are shown projects from which you must create your own web applications. The development results must be published on the resource, after which they can be evaluated by other users.

In addition, freeCodeCamp helps students form teams and work together on real-life non-profit projects. This is a good chance to gain valuable development experience and a portfolio needed for employment.

2. Codecademy

  • Technologies: HTML, CSS, JavaScript, Angular.js, React.js, Python, Ruby and others.
  • Cost: free or from $20 per month for additional content.
  • English language.
  • Difficulty level: easy-medium levels.

Like the previous resource, Codecademy focuses on teaching web programming. You read the theory, and then complete tasks in the interactive code editor. The user has separate courses dedicated to different technologies. The bulk of each of them is available for free, but verification tests and project development tasks are unlocked after you subscribe.

Codecademy also has comprehensive paid programs that organize and combine materials from different courses. For example, Build Websites from Scratch teaches you step-by-step how to develop a simple website from scratch using a variety of technologies.

3. Coursera

  • Technologies: HTML, CSS, JavaScript, Angular.js, Java, Python, Ruby, Swift and others.
  • Cost: free or from $49 per month for additional content.
  • Language: English, Russian and others.
  • Difficulty level: all levels.

On Coursera you will find many courses on different programming languages ​​from the world's leading universities. Here you can learn not only web development, but also the creation of mobile and desktop programs. Some courses are self-contained, but most are combined into specializations - sets of related courses.

You can view theoretical material presented in texts and videos for free. But most test and practical tasks that require checking by a teacher or other users are available only with a paid subscription.

4.edX

  • Technologies: HTML, CSS, JavaScript, Java, Python, Ruby and others.
  • Cost: free or from $49 per month for a certificate.
  • Language: English and others.
  • Difficulty level: all levels.

On edX you can access courses from renowned companies and universities. Among them there is, for example, the famous introductory course for beginning programmers, Introduction to Computer Science, from Harvard University. Educational content is represented mainly by video lectures and texts. Some courses contain tests and other interactive activities.

The platform does not ask for money for completing most materials. But you can only get a certificate confirming the successful completion of a particular course for money.

5. INTUIT

  • Technologies: HTML, CSS, JavaScript, algorithms and databases, C#, Java, Python, Ruby, and others.
  • Cost: free or from 500 rubles per month for tutor services.
  • Russian language.
  • Difficulty level: all levels.

The catalog of the INTUIT educational platform contains text and video courses from Russian educational institutions and international IT companies. The site's content covers all major areas of programming from website development to the creation of desktop programs. Self-study is free, but there is a paid service in which the user is assisted by a personal tutor.

6. Stepic

  • Technologies: JavaScript, C#, neural networks, C++ and others.
  • Cost: completely free.
  • Language: Russian, English.
  • Difficulty level: easy-medium.

Another non-profit platform, courses for which are created by Russian companies and universities. Although Stepic doesn't have a lot of material about specific programming languages, it does provide fundamental knowledge of mathematics and algorithm theory that will be useful to every developer.

7. Modern Javascript Tutorial

  • Technologies: JavaScript and others.
  • Cost: free or from 6,500 rubles for an additional course.
  • Russian language.
  • Difficulty level: all levels.

This resource is dedicated to the JavaScript language and related web technologies. Here you will find a very detailed, well-structured and easy-to-understand text course on JS. Assignments after each topic will help you consolidate your knowledge. At the same time, the material is purely theoretical and does not teach how to create projects in practice.

You can study the textbook on your own for free, or pay for advanced courses that include learning JavaScript itself or related technologies with a teacher.







2024 gtavrl.ru.