ТОП 5 Лучших книг от Русских программистов для начинающих и продолжающих

Андрей Столяров выложил в свободный доступ второе издание книги «Программирование: введение в профессию»

1 марта 2021 года автор-программист Андрей Викторович Столяров выложил в свободный доступ второе издание книги «Программирование: введение в профессию». Трехтомник можно скачать бесплатно в формате pdf (том 1 «Азы программирования», том 2 «Системы и сети», том 3 «Парадигмы»), так и купить в бумажном варианте.

Автор пояснил, что учебник «Программирование: введение в профессию» ориентирован на самостоятельное изучение и предполагает использование систем семейства Unix (в том числе Linux) в роли сквозной среды для обучения. Объем второго издания составляет 2112 страницы.

В учебнике описана история программирования, языки Pascal, ассемблер, Си, C++, LISP, Scheme, Prolog, Tcl, операционные системы, ядро ОС, создание сетевых приложений и параллельное программирование, создание графических интерфейсов с помощью библиотеки FLTK на C++ и фреймворка Tcl/Tk.

А.В.Столяров. Введение в язык Си++

http://www.stolyarov.info/

Краткое (объём пятого издания — 156 страниц) введение в язык Си++. Содержание построено по принципу плавного перехода от средств чистого Си: в начале даётся определение ООП как парадигмы, основанной на обмене сообщениями, затем вводится метод для обычной открытой структуры, уже после этого рассказывается о защите и её предназначении, затем (поскольку теперь это необходимо) вводятся конструкторы и деструкторы, и т.д. Так называемая «стандартная библиотека» Си++ (известная также под названием STL) в книге не упоминается вообще, поскольку если начать изучение Си++ с STL, есть риск никогда не узнать сам язык. Для ввода-вывода в примерах используются функции библиотеки Си (printf и др.) Кроме того, в книге сознательно игнорируются все «усовершенствования», предлагаемые авторами так называемых «стандартов».

В пятом издании незначительно изменена рубрикация, добавлены несколько новых параграфов, исправлен ряд обнаруженных ошибок и полностью переработан текст предисловий.

Сергей Тепляков. Паттерны проектирования на платформе .NET

Teplyakov

В отличие от остальной литературы, вошедшей в наш обзор, эта книга изначально написана на русском языке и поэтому лишена недостатков, присущих большинству современных переводов с английского. Однако на этом ее достоинства не заканчиваются.

Книга написана C# разработчиком для C# разработчиков, что подразумевает наличие базовых знаний по ООП с вашей стороны. Автор делится опытом, рассматривая как классические, так и более подходящие для платформы .NET способы реализации каждого паттерна. При этом анализируются плюсы и минусы каждого способа.

На протяжении всей книги возможность применения рассмотренных паттернов демонстрируется на едином примере, что позволяет сформировать целостную картину мира паттернов.

Александр Гранин (Senior Haskell Developer) книга «Functional Design and Architecture»

Моим первым языком был Basic, потом Pascal, а первым профессиональным языком был C++, за ним — C# и Python. Haskell я начал изучать 10 лет назад в качестве хобби, и инвестировал в него очень много времени. Профессионально я пишу на Haskell более трех лет. Ещё я пишу на PureScript — это язык, очень похожий на Haskell, но компилирующийся в JavaScript. И я даже написал фундаментальную книгу о том, как создавать реальные приложения на Haskell — Functional Design and Architecture.

Любопытно, что изучать Haskell как первый язык можно, и это будет даже легче, чем изучать его после 5-10 лет опыта в C++, Java, PHP, C#, Python, JavaScript и других мейнстримных языках. Это связано с тем, что мейнстримные языки исповедуют, в основном, императивную и объектно-ориентированную парадигмы. Долгое их использование ведет к образованию ментальных рельс, и опытному разработчику становится трудно с них соскочить и понять функциональную парадигму.

Обратный эффект, вероятно, тоже есть: когда сначала изучаешь ФП, долго на нем пишешь, а потом традиционное ООП кажется очень неудобным и сложным. Но обратный эффект зафиксировать сложнее, так как не очень много людей начинали с Haskell или другого функционального языка.

Есть смысл в том, чтобы изучать Haskell в качестве первого языка. Это будет чуть-чуть сложнее, чем Python или Pascal, но не намного. На начальном уровне Haskell — довольно простой язык. Проблемы с его изучением возникают из-за его необычности, так как его синтаксис и набор базовых концепций стоит сильно в стороне от привычных Си-подобных языков. Haskell могут понять все. Однако его более продвинутое использование, конечно, требует значительной подготовки. Но я все-таки считаю, что нет ни одного языка, сложнее С++, — на всех уровнях (базовый/средний/продвинутый). А С++ повсеместно учат и повсеместно используют.

В качестве первого языка я бы все же посоветовал Python, но ни в коем случае на нем не останавливаться. Pascal — тоже вариант, Golang и даже Rust! На самом деле, с какого бы языка вы ни начинали, вы должны понимать, что на этом этапе важнее всего умение понять задачу, декомпозировать её на простые подзадачи, вплоть до мельчайших частей, составить алгоритм, его запрограммировать и отладить.

С первым языком программирования вы должны изучать программирование как таковое, потому что навык составлять инструкции для компьютера — основополагающий. Без него дальнейшее продвижение в разработке невозможно. А какой там будет язык — это уже дело десятое, можно выбирать что-то себе по душе. И конечно же, через какое-то время нужно учить другие языки программирования. Лучше всего — из разных парадигм, тогда у вас будет наиболее полное представление о разработке, и как таковые языки перестанут быть загадочными. Вы сможете взять любой и разобраться в нем за считанные часы. Так что имеет смысл учить по одному или нескольким языкам из следующих категорий:

  • системные языки (Си, Rust, Assembler)
  • низкоуровневые статически типизированные языки с ручным управлением памятью (С++, Rust)
  • высокоуровневые языки с управляемой (managed) памятью и статической типизацией (C#, Java, Scala, Kotlin, Haskell, Go)
  • динамические языки (Python, JavaScript, PHP, Clojure, Ruby, Erlang)
  • императивные языки (Си, С++, Rust, Go)
  • объектно-ориентированные языки (Java, C#, Ruby, C++, JavaScript, PHP)
  • функциональные языки (Haskell, Scala, Clojure, Erlang)
  • логические языки (Prolog)

Учить, конечно, не за один присест, но постоянно, методично и планомерно.

Ссылки: https://habr.com/ru/users/graninas

«Kotlin в действии», 2017 год

Авторы: Дмитрий Жемеров, Светлана Исакова.

Язык: русский.

Книга научит вас использовать Kotlin для создания приложений, работающих на виртуальной машине Java на Android. Авторы книги работают в JetBrains с 2003 года и были одними из первых разработчиков, внесших огромный вклад в создание языка. Книга разделена на две части. В первой описывается, как начать использовать Kotlin вместе с существующими библиотеками и API, а вторая часть объясняет, как создать собственные API/абстракции и разобраться с нюансами разработки на Kotlin.

Предназначена для знающих Java разработчиков.

Книга предназначена исключительно для Java-разработчиков, которые хотят изучить Kotlin. Все описываемые возможности Kotlin сравниваются с аналогичными в Java, поэтому человек, который не знает Java на достаточно хорошем уровне, мало что сможет понять. В целом мне очень понравилось. Читать интересно, каких то ляпов я не заметил. Рекомендую.

Язык Kotlin предлагает выразительный синтаксис, мощную и понятную систему типов, великолепную поддержку и бесшовную совместимость с существующим кодом на Java, богатый выбор библиотек и фреймворков. Kotlin может компилироваться в байт-код Java, поэтому его можно использовать везде, где используется Java, включая Android. А благодаря эффективному компилятору и маленькой стандартной библиотеке Kotlin практически не привносит накладных расходов.

Данная книга научит вас пользоваться языком Kotlin для создания высококачественных приложений. Написанная создателями языка – разработчиками в компании JetBrains, – эта книга охватывает такие темы, как создание предметно-ориентированных языков, функциональное программирование в JVM, совместное использование Java и Kotlin и др.

Издание предназначено разработчикам, владеющим языком Java и желающим познакомиться и начать эффективно работать с Kotlin.

Бонус, не книга, а целый человек: Тимофей Хирьянов преподаватель кафедры информатики МФТИ, г. Долгопрудный

Лекции и занятия с открытым доступом: https://www.youtube.com/c/%D1%82%D0%B8%D0%BC%D0%BE%D1%84%D0%B5%D0%B8%D1%85%D0%B8%D1%80%D1%8C%D1%8F%D0%BD%D0%BE%D0%B2

Тимофей Хирьянов наглядно рассказывает азы, сортировки, вспоминает булеву алгебру логики и таблицы истинности, местами прививает хорошие приёмы разработки. В описании роликов имеется ссылка на лабораторные работы с автопроверкой. Сразу хочу предупредить — автопроверка там кривая, не стоит на неё равняться, лучше просто прорешивать задачки «для себя», не обращая внимания на оценку.

Практика программирования на Python 3 от Тимофея Хирьянова

  1. Основы Python
  2. Золотой фонд Python
  3. Функции
  4. Вычитка кода, анализ кода на Python
  5. Структурное программирование
  6. Событийно-ориентированное программирование
  7. Модульное программирование
  8. Классы и объекты
  9. Введение в ООП

Страница курса на Github: https://github.com/tkhirianov/lections_2019
Другие видео на Youtube: https://www.youtube.com/playlist?list=PLRDzFCPr95fLuu..

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

5 × два =