LINUX.ORG.RU

Программирование 2025. Полный Вкат.

 


8

4

Продублирую свой вопрос на форуме.

Так какие книги на данный момент самые лучшие для полного вката в программирование?

Речь идёт о ряде книг, которые следует изучать друг за другом и обязательно постоянно практиковаться, создавая реальные рабочие проекты (хоть и простые в начале, но точно сложнее калькуляторов).

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

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

вайбик: https://www.youtube.com/watch?v=WmnDcLGnYck


  • Таненбаум - Архитектура компьютера
  • Кормен - Алгоритмы и структуры данных
  • Макконел - Совершенный код
  • Брукс - Мифический человеко-месяц

Это абсолютная классика и база освоив которую можно сказать что ты на 100% готов к профессии на уровне мидл+. Для синьера/руководителя добавь сюда 5-10 лет опыта.

masa ★★
()
Последнее исправление: masa (всего исправлений: 1)

куда катишься?!

листани Лекции лауреатов премии Тьюринга

как точка роста очень даже

Хемминга там про науку и инженерию

в целом список лаурятов и изучаешь их тексты

даже нобелевский(1978)(поведенческая экономика) попадётся как лаурят 1975

ну и просто забавно обнаруживать то что на ЩА хайпе среди публики - «академиками витающими в облаках » было уже расмотренно и проанализированно семи людьми к кризису в софтверостроении к 1968

Бахман и Кодд - структуры данных :)

Ульман(Хопкрофт, Аха )

Дейкстра :)

Кнут

Вирт

Патерсен и Хенеси ( за risc!)

Хоар

Дал и Нугар( не симулируй)

Лампорт

византийские генералы

межголактическая сеть

крч вкат

Флойд ( там в 1978 питон по сути описан :) )

на руска есть и Лякун с Баджо крч машобуч от реально авторов

так что дерзай!

Лисков (солидно)

Наур (ебн ф)

Барто Саттон ( свеженко)

Лэмпсон

МакКарти (липс)

Милнер (хацке)

так что проффисеонализируйся на любой желаемый уровень

qulinxao3 ★☆
()
Последнее исправление: qulinxao3 (всего исправлений: 7)

Так какие книги на данный момент самые лучшие для полного вката в программирование?

С тем же успехом можно спрашивать, какие книги самые лучшие для полного вката в музыку. Для этого нужно не книги читать, а практиковаться. Книги, конечно, могут помочь, но разным людям пригодятся разные, но кто-то «вкатится» вообще без них, задротствуя по десять часов в сутки, а кто-то другой всё равно дропнет, сколько бы книг не прочитал.

annulen ★★★★★
()

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

Только есть ещё моментик: чистый программист без прикладных знаний мало на что годен, кроме написания околопрограммистких вещей.

anonymous
()
Ответ на: комментарий от riscv

Алгоритмы и структуры данных - Никлаус Вирт.

Кстати, недавно компилятор Модулы в GCC добавили, так что можно упражнения выполнять на компе, а не только на бумаге.

Ну, либо брать более старый вариант «Алгоритмы + структуры данных = программы» и компилятор Паскаля (fpc).

debugger ★★★★★
()

Так какие книги на данный момент самые лучшие для полного вката в программирование?

Это зависит от того кто ты есть и что именно ты собрался уметь программировать.

Одно дело, если ты инженер-механик и совсем другое - если ты какой-нибудь экономист, историк, журналист и прочий неуч.

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

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

Enthusiast ★★★
()

Людей которые бы уже сейчас программировалаи без llm не знаю. Даже те, которые нос воротили, сейчас используют llm в некоторых моментах. А вот матан пока везде полезен. Чистый матан llm пока освоили не так хорошо, да и для понимания любых алгоритмов он тоже нужен.

mamina_radost
()
Ответ на: комментарий от NeoX

Да и ещё, просьба не рекомендовать мёртвые и невостребованные ЯП.

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

И кстати, для изучения ООП был бы неплох смолток, тот же pharo.

anonymous
()

Так… Адекватизируем тему.

Итак, мы выбираем сейчас ЯП не для работы, а для себя, всё только открытое, свободное итд. Для работы - веб и корпоративные ЯП прежде всего, ну и естественное сишки и питон.

Только чистое непредвзятое мнение.

У нас есть рейтинги: https://www.tiobe.com/tiobe-index/

«Python стал лингва франка (языком общения №1) в мире программирования.»

«20 ведущих языков в настоящее время охватывают 83,56% всего рынка.»

TIOBE индекс Топ 20: Python C++ C Java C# JS Go VBasic Delphi/Object_Pascal SQL Fortran Scratch PHP R Ada Matlab ASM Rust Perl Cobol

Топ 15 за годы: Python C++ Java C C# JS Go VBasic SQL Fortran PHP Ada Lisp Objective-C (Visual)Basic

Исключаем лишние (умирающие, узкоспециализированные, корпоративные итд):

Java, C#, Go, Rust - корпоративные, отсутствие свобод.

Scratch - «яп» для обучения детей, игрушка.

Fortran, R, Matlab - математика, расчёты, калькуляционные «яп», Фортран - очень старый, постепенно уходит вместе со программистами-стариками.

PHP - активно заменяется на JS. (Оба «яп», ну потому что это сайты/веб/сервера и паршивые тормозные приложения, т.е. оставляем только JS.)

Objective-C - постепенно заменяется на Swift, и это только Apple.

VBasic, Delphi/Object_Pascal, Ada, Perl, Cobol, Lisp - это просто бульдозером на свалку истории всё скидываем с обрыва. Непонятно, почему у них до сих пор такие высокие позиции в рейтинге. Ну не хочет народ прощаться с прошлым, вот и тащит хлам десятилетиями. Но мы люди адекватные, современные и прогрессивные, мы - не пыль прошлого и мозги у нас на месте.

Методом исключения остаются:

  1. Python, 2) С/C++, 3) ASM/Машинный_Код - основа программирования, чтобы понимать суть 4) и веб-разработка: HTML/JS/CSS +БД (SQL и NoSQL), наверное, XML ещё надо добавить. Но PHP - на свалку.

Всё, конкретно с ЯП разобрались (это конкретно база, ЯП без счёта, но реально нужны единицы). Эти ЯП, пожалуй, всё/почти всё перекроют, с чем мы вообще можем в принципе столкнуться. Если проект с Гитхаба на другом языке - просто ищем альтернативу, мы не будем изучать десятки ЯП, это бред, как не будем изучать непальский какой-нибудь, вот и всё, пусть на нормальных общепринятых стандартных востребованных ЯП делают свои поделки, если они, конечно, делают не для себя лично.

При этом изучать и использовать корпоративные ЯП от США-шных IT-монополистов (БигТеха) - это полный зашквар в плане свобод (если только не для работы, конечно, для выживания, но для себя на них писать - это полный зашквар, это факт). Если кто-то предпочитает цифровой гулаг - это их личное дело. Наши с ними пути тут расходятся диаметрально противоположно, на 180 градусов. Пусть этот монопольный мусор остаётся только у корпорастов и им нет места в Свободном ПО вообще (mono - на свалку итд).

Причём этих ЯП хватит и для клиента и для сервера и для создания приложений на всех основных ОС.

Теперь будем определяться с фреймворками, библиотеками, компиляторами, IDE итд.

Сразу оговорюсь, что выбирать будем всё наиболее универсальное для наших ЯП. То есть, чем меньше всего нам придётся изучать и устанавливать, тем лучше.

NeoX
() автор топика
Последнее исправление: NeoX (всего исправлений: 1)
Ответ на: комментарий от NeoX

Python, 2) С/C++, 3) ASM/Машинный_Код - основа программирования, чтобы понимать суть 4) и веб-разработка: HTML/JS/CSS +БД (SQL и NoSQL), наверное, XML ещё надо добавить. Но PHP - на свалку.

ну ты прям конечно охватил всю землю матушку, два раза по диагонале… :)
харя не треснет от такого количества ??? :)

ASM/Машинный_Код - основа программирования, чтобы понимать суть

вообще не так. суть программирования аккурат в максимальном отдалении от ассемблера :)
ассемблер это очень редокприменяемый, узкозаточенный под работу процессора язык. так что выкинь его по «узкозаточенности»

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 1)
Ответ на: комментарий от NeoX

Код Пецтольд( можешь его же трёхтомник - упс Programming on purpose это Плоджер)

по асму Петерсон-Хенеси

Бентли программирование в малом в его Жемчуженах

мемуары о возведение Большого Софта начиная с Брукса продолжая архивами CODASYL - а ща POSTGREsql али ещё чё

структуры данных кури - и как пользоваться(Питон как и многие другие(в основном динамические где меньше буккипинга в ритуалах псевдотипов(типы реально полезны в целом)) в этом хорош)

структуры данных как устроенны и почему обычно чем проще тем лучше

структуры хранения данных

крч :

https://norvig.com/21-days.html

qulinxao3 ★☆
()
Последнее исправление: qulinxao3 (всего исправлений: 1)
Ответ на: комментарий от pfg

Если выкинуть ASM и МашКод, то система знаний будет неполной.

Мы дизассемблируем программу и не сможем понять, как она работает.

Низкоуровневого программирования мы вообще знать не будем.

Будем хуже понимать, как работают наши устройства.

Поэтому оставляем.

NeoX
() автор топика

Так какие книги на данный момент самые лучшие для полного вката в программирование?

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

Тренажерный зал программиста:

Необходимая теория по архитектуре приложений и ОС:

Для того чтоб находить хрошошие книги заходите та amazon.com смотрите книги с рейтинго 4.5+. Книг много, они разные все не перечислить.

Также ИИ для решения вопросов без троллинга и токсичности.

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 1)
Ответ на: комментарий от NeoX

n+1 стандарт :(

у тя пока нет экспертизы :(

ибо твои цели не твои а индуцированны средой в которой ты образовываешься

решай свои реальные задачи - если повезёт обобщения в процессе решения задач(проблем) будут общеполезны человечеству

[upd] число нобелевских лаурятов около 1к

число премии Тьюринга около 100

ты думаешь ты сможешь обобщить?

qulinxao3 ★☆
()
Последнее исправление: qulinxao3 (всего исправлений: 1)
Ответ на: комментарий от NeoX

Смихота! Иллюстрация, когда за деревьями не видят леса.

Языки программирования это как инструменты для слесаря или столяра. И тут нельзя сказать, что мне не нужны все эти стопицот рубанков, молотков и стамесок. Или нужный только зеленые с красной полоской.

Что такое программирование в узком смысле? Это написание указаний чего делать в виде текста (алгоритма) для некоторой исполняемой среды (перифирия+проц+ос+библы). Которая этот текст преобразует в приемлемый вид и исполнит. И все. Здесь, на этом уровне, нет никакого рокетсайнса и матана.

Простейший алгоритм - по нажатию кнопки загорается лампочка (это то что любой ребенок двух лет способен понять). Потом сложность растет, и вот тут начинаются дебри и ограничения на производительность, на память, на сложность (это ограничение уже мозгов человека). Приходится изучать матан, чтобы было быстро, чтобы влазило в память. Изучать абстракции, чтобы влазило в голову.

Заметь, ни одного слова про языки программирования.

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

Нужно в первую очередь для себя уяснить все эти простые вещи. Возможно, для улучшения понимания, нужно на чем-то тренироваться. Тут нужен добротная учебная платформа. Раньше на бейсике всех тренировали, потом на паскале, сейчас вот питон везде пихают. Но это не важно. Важно прочувствовать на себе возможности программирования, ограничения (потыкаться в классические алгоритмы типа поиска, сортировки, прочувствовать, чем О(nlogn) отличается от О(n2) и т д.), абстракции. Уяснить для себя, что будет в «железе» когда ты сделаешь рекурсию.

А вот потом порешать конкретные задачи, желательно реальные. Хотя бы просто спроектировать на бумажке. И вот тут появляется язык программирования, библиотеки и ИДЕ. И сделать прям от начала и до конца. С репозиторием, ветками (чтобы прочувствовать все эти индустриальные игрушки), с компилингом без варнингов. И чтобы в конце не просто экзешник запускать по F7 (или что у вас там) из ИДЕ, чтобы дистрибутив на выходе был. А еще доки написать: руководство пользователя, руководство программиста. Даже если это будет банальный калькулятор на четыре действия. От постановки самому себе ТЗ, до выкатки в публичную репу.

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

yax123 ★★★★★
()

Вот еще хорошая книга. По сути это расширенная методичка МГУ 2006 года. Тоже необходимые азы для любого программиста. Там буквально по 3-4 страницы на каждую тему, написано талантливо.

Сейчас я сам читаю эту книгу праллельно с High Performance Network Browsing от Ильи Григорика. Илья Григорик это как бы высший пилотаж, а Столяров это база, азы в которых надо хорошо разбераться, и не плохо переодически освежать.

Праллельно вчера весь день болтал с DeepSeek и QWEN по поводу совпадения и разницы между TCP и ICMP. Ведь TCP гарантирует доставку, а ICMP предупреждает о проблемах в сети. Распрашивая дублирует ли ICMP некоторые функции TCP и как они вообще вместе уживаются?

При этом DeepSeek и QWEN дали мне несколько мнемонических советов.

DeepSeek

  • TCP как управляющий самосвалом.
  • ICMP как рация, предупреждающая о проблемах на дороге.

QWEN

  • TCP как курьер.
  • ICMP как телефонная линия по которой звонят и говорят, что посылка не может быть доставлена.

L3 сетевой уровень модели OSI - ICMP, улучшает работу L4 уровня модели TCP уведомляя о проблеммах в сети. И хоть TCP может работать без ICMP, но с ним он работает быстрей, избегая длительных простоев сразу получая информацию об ошибках.

Таким образом реализация TCP в ОС учитывает сообщения ICMP. Что логично L4 базируется на механизмах L3. Транспортный уровень базируется на Сетевом.

lbvf50txt
()
Ответ на: комментарий от NeoX

а зачем тебе дизассемблить программу ?? для работы с ассемблером необходимы большие познания в работе всей аппаратного наполнения процессора. :)

так то сам по себе ассемблер очень простой - всего сотня команд :)

хех основная часть погромистов даже не пытается знать низкоуровневое погромирование :) и ничё… както живут и баблосы в ИТ режут некислые…

pfg ★★★★★
()
Ответ на: комментарий от qulinxao3

амазон хорош в сиюминутности

Почему? На амазон высокие рейтинги у классической литературы по программировани:

Книги из 80ых, до сей поры актуальны. The Unix Programming Environment - топ по практичности для любого CLI пользователя. The Practice of Programming - начал читать, не плохо, с места в карьер о программировании. Вот SICP это уже, конечно, университетский уровень, мало кому требуется так глубоко разбираться.

SICP я бы не стал рекомендовать как учебник по программированию. Это глубокий анализ на который можно годы потрарить разберая, вместо получения практических навыков. Книга известная, почетная, но очень сложная. Там сразу в первой главе разбирается пример на Динамическое Программирование, т.е. эту книгу надо не «читать», а прорабатывать каждый абзац как алгебраический пример.

P.S. Любую техническую литературу требуется читать вдумчиво, перечитывая по нескольку раз абзацы. Но SICP тут стоит особняком, там абзацы надо не перечитывать, а обрабатывать с листом бумаги расчерчивая схемы вычислений. А что хотеть? Если миомходом затрагивается Coin Change Problem в главе про рекурсию.

Когда я читал описание авторов к SICP, они говорили, что эта книга специальн обыла создана для MIT, дабы студенты умели «отгораживаться от мира». Книга требует 100% сосредоточения на предмете.

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 5)

Адаптируя старый анекдот на тему обсуждения…

Программист на приеме у анонима:

– Доктор, больше 3-х страниц в год любой CS книги, которую рекомендуют в каждом треде, не получается осиливать.

– А сколько у вас стажа работы программистом?

– 15 лет.

– Ну это же превосходно!

– Да? А мой Frontend коллега говорит, что с удовольствием все тома Кнута перечитывает и всё в них понимает, и ещё пишет на LISP!

– Ну так и вы говорите!

vsnb
()
Ответ на: комментарий от riscv

используется Oberon-07 и установить компилятор OBNC

OBNC is a compiler for Niklaus Wirth’s programming language Oberon. It implements the final version of the language from 2016. OBNC translates source code written in Oberon to the lower-level programming language C. The translated code is then compiled and linked using the C compiler and linker of the host operating system

О, а его так разве можно, без оберон-машины?

pihter ★★★★★
()
Ответ на: комментарий от yax123

Спасибо КЭП, но не стоит усложнять относительно простые вещи и идеализировать цели до невыполнимых степеней, абсолютный идеал недостижим, а большинство обойдётся и самой базой.

NeoX
() автор топика
Ответ на: комментарий от NeoX

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

Можешь конечно изобретать свой путь, только зачем тогда ты сюда это принес?

yax123 ★★★★★
()
Ответ на: комментарий от lbvf50txt

не всё достойное стало классикой

ща угораю по Дейте(80годМир2ое издание Prentice 1975-78) и по лекциям Тьюрингиатов(на https://acm.org до нонешних) первые 20 лет 66-85(Виртом) на ру 92г.

её просто не видно на амазоне ибо там не так саспенс абстрактно как у банды четырёх - хотя там реально жемчужены

из меня задевшего последнее(давнишнее удивление и Виртом и Дейкстром и Томсоном не здесь и сейчас) это Бахман с программист-навигатор(1972-3) с пояснением за ленты и вообще ram и хэши (но до сильноветвящихся B B+ B*)

ну а ща от факто что нобель 1978 по экономике один из тьюрингов 75го

но мир пошёл в 80ые как то иначе повтора теперь нет

жаль что за эпигонами часто теряется прямая(да же если и ангажированная карьерой) речь создателей

оказывается POSTGREsql это Стоунбрэйкер в ссылках у дейты и во втором издании

как то про этого чела не слышал пока ща не обнаружил его в списках тью

вот такая вот популярная литература

qulinxao3 ★☆
()
Последнее исправление: qulinxao3 (всего исправлений: 3)

А почему не пишут:

Глазная хирургия 2025. Полный Вкат.

или

Банковское дело 2025. Полный Вкат.

или

Подъемно-транспортные системы 2025. Полный Вкат.

Чем программирование заслужило это?

Невысокий порог входа в область?

И почему нужно туда обязательно «вкатываться»?

Gyros
()
Ответ на: комментарий от riscv

но впечатление иное

есть вариант запуска оберон-среды как типо wsl в винде

да даже под виртуалкой - подобно варианту acme через inferno

т.е пользоваться прелестями Oberon-среды(ну там где однопоточная кооперативная с двумя курсорами) как приложением - с возможностью компиляции в стэндэлон утилитки

есть такое живое на поиграться?

qulinxao3 ★☆
()