LINUX.ORG.RU

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

 


8

4

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

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

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

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

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

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


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

Свои 5 копеек про Fortran

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

Фортран - не старый язык. «Старый» и «ужасный» - это Fortran IV, 66, 77. Это был реальный ужас, но более удобный, чем кодить в командах процессора.

Современный Фортран вполне себе ООП, начиная с Fortran 90. А последний стандарт Fortran - 2023.

Фортран - узкоспециализированный язык для математических расчетов. На нем написано множество алгоритмов, поэтому быстро он не уйдет - это точно.

Разрабатывается теми же командами, кто разрабатывает компиляторы С++ в GNU и LLVM. Кроме того разрабатывается производителями процессоров - Intel, AMD, Nvidia.

Издавна код на Fortran и C++ можно было компилировать вместе в одном проекте.

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

Издавна код на Fortran и C++ можно было компилировать вместе в одном проекте.

Ты сравнивал скорость исполнения одной и той же функции на Фортране и на Си++? В своё время мне удалось сравнить скорость исполнения функций на Фортране, на Си и на Паскале. Фортран и Си исполнялись за одно и тоже время, а Паскаль отставал существенно.

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

Ну, про выживание это очень спорно. Выживают как то все на своих паттернах поведения. Человек тут просто один из.

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

Есть у меня подозрение, что общую базу нужно стандартизировать и сокращать. А дальше - специализация.

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

Этих знаний уже столько, что можно просто всю жизнь изучать и всего не изучить.

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

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

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

Поэтому я начал отталкиваться от практики, как основы. Сначала выбираю, что надо сделать. Затем выбираю инструмент. Затем пытаюсь реализовать. Что то даже получается, но криво.

…затем начинаю изучать базу по подобранным инструмента: языку, тулкитам, модулям, библиотекам.

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

Долго, неэффективно, но есть плюсы:

  1. Хоть и кривой проект, но рабочий уже есть и используется на практике.

  2. То что я использовал на практике - изучил и запомнил, теперь знаю как применять.

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

Я думаю, это естественный подход. Знания невозможно получать в изоляции от всего, что ты уже знаешь. Получая новую информацию мы её аккуратно раскладываем по нашим сознательным полочкам, решаем конфликты со старой информацией, что-то сливаем в одно, что-то старое удаляем, учимся быстро её находить. А когда пытаешься узнать что-то невообразимо новое, да ещё и в производственном объёме — на это вообще хоть кто-нибудь способен, в этом вообще есть польза? Я считаю, что нет.

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

Теоретически это все системно должны давать в ВУЗе. Несколько лет подряд планомерно, но..

..но сначала ты нихрена не понимаешь что тебе надо, что тебе надо будет в будущем.

..но ты не можешь выбрать ВУЗ. Просто потому что не знаешь, не умеешь, не имеешь возможности.

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

А для изучения нового просто нет времени, возможности, и прочего прочего - ты уже не можешь планомерно убить еще * лет вникуда.

Херня какая то, если честно.

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

Издавна код на Fortran и C++ можно было компилировать вместе в одном проекте.

Ты сравнивал скорость исполнения одной и той же функции на Фортране и на Си++?

Про скорость исполнения.

Современные компиляторы Fortran (а не сам Fortran) в большинстве расчетных задач создают такой же быстрый код как и С/C++.

В некоторых нетривиальных случаях код на С/C++ будет быстрее в руках опытного программиста, а в руках неопытного может быть по-всякому.

Современный Fortran относительно прост и им могут пользоваться (и основная целевая аудитория есть) - не профессиональные программисты, ученые в прикладных дисциплинах (математики, статистики, физики….) И код ими написанный будет сравним по скорострельности с кодом на C/C++, написанным профессиональным программистом.

Про компиляцию в одном проекте Fortran и C/C++.

Обычно создатели оптимизирующих компиляторов, как я выше указал, делают сразу как компилятор C/C++, так и компилятор Fortran, у которых, с точки зрения оптимизаций, одинаково всё процентов на 90, а то и выше, и у которых совместим генерируемых объектный код.

При этом С/C++ в проектах на обоих языках применяется для того, чтобы добавить в программу возможности, которые отсутствуют в Fortran - обработка новомодных типов данных, визуальный интерфейс и т.д.

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

При этом С/C++ в проектах на обоих языках применяется для того, чтобы добавить в программу возможности, которые отсутствуют в Fortran - обработка новомодных типов данных, визуальный интерфейс и т.д.

Нужны ли все эти возможности Си++ по работе с сетью, с графическими ускорителями и пользовательским интерфейсом в Фортране? Насколько я понимаю, Фортран используется для математических вычислений большей частью, то есть учёными, а не инженерами.

В кратенькой беседе с учёным-физиком из МГУ я спросил его о том, что именно он программирует на сверхвычислителе «Ломоносов» у себя в университете и собеседник ответил мне, что он программирует там решение дифференциальных уравнений на Фортране в обычном «Терминале». То есть без всяких графических окружений учёные просто запускают расчёты и идут по своим делам, а спустя время получают результаты в том же «Терминале». Возможности графических ускорителей для расчётов не использовались.

Кстати говоря, в современном Фортране возможно задействовать в расчётах графические ускорители?

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

Кстати говоря, в современном Фортране возможно задействовать в расчётах графические ускорители?

Конечно: https://developer.nvidia.com/cuda-fortran

Кроме того, у серьезных Fortran компиляторов есть развитые возможности параллельного программирования - Coarray Fortran, интеграция с OpenMPI и т.д.

То есть, основное назначение и специализация современного Fortran - для массивных вычислительных задач учеными-прикладниками, типа моделирования атомного взрыва, прогноз погоды на планете Земля и т.д.

Для всего остального есть другие языки. Например, для расчетов это - Python для ИИ (поверх библиотек на C++ и Fortran), R - для прикидычных статистических расчетов, Jilia, Mojo - с интерактивностью и возможностью компиляции с достаточно большым быстродействием относительно R и чистого Python

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

А как так получилось, что область, которая сейчас не нравится, нравилась в начале? Что изменилось? Можно ли найти работу, которая поближе к тому, чем теперь хочется заниматься?

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

Можно было бы и на сишке написать, что уж там мелочится. Понятно что во многих языках так.

#include <stdio.h>
#include <stdbool.h>
bool IsTrue()
{
    printf ("true ");
    return true;
}
bool IsFalse()
{
    printf("false ");
    return false;
}
int main()
{
    IsFalse() || IsTrue();
    printf("\n");
    IsTrue() || IsFalse();
    return 0;
}

Другой анон если что, не тот который глупость выше написал

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

Рутина сильно отличается от процесса познания. Т.е. учиться чему-то может быть интересно, а вот работать с этим отнюдь. По поводу найти работу, да можно, если ты пошел учиться уже имея вариант где тебя точно возьмут, например, у тебя дядя тимлид команды питонистов-датасаентистов и ты пошел на какого-то сраного датасаентиста/питониста. Тогда тебя возьмут, если за время твоего обучения дядя не умрёт/не уволится/не выйдет на пенсию/не поругается с твоим батей/у фирмы где дядя работает не кончатся лишние деньги на всяких дармоедов. В противном случае тебе светит работа во «вкусно и точка»/«пятёрочке»/армии. Ну ты понял как оно у нас устроено. Все кто будет в этом треде заливать иначе, либо начинали очень давно, когда рынок айтишки был пуст и на всю Москву было полтора программиста и куча бабла на айтишку у коммерсов, либо просто не захотят говорить о том, что они коррупционеры и устроились на работу по блату. Я вот честно скажу, все с кем я учился либо по блату работают, либо не в айтишке вообще. 2 челика которые учились лучше всех один торгует на рынке, второй вообще безработный, ХЗ чем он занимается. А вот тот кто не мог цикл написать на 4 курсе вполне себе в крупной и уважаемой Айти Компании рунета работает уже лет 6 как. Ну как работает, зряплату получает, как цикл не мог написать так и не может, но когда дядя гендиректор компании о таких мелочах никто не думает и код пишут за него другие люди.

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

претензия имхо

в том что Столяров считает за точку отсчёта(не явную - не требующу дополняющего уточнения прилагательным) shortcut eval bool expretions

и тогда полное приходится отдельять термом полное

т/е вообще Столяров очень привязан в педагогике в личной траектории своего познания той области которой он учит - у того есть как преимущества так и [МЕТОДОЛОГИЧЕСКИЕ] недостатки - он буквально персонаж описанный в относительном начале в «ПРОГРАММИРОВАНИЕ вторая ГРАМОТНОСТЬ» Ершова А

чиста для примера есть Reading in Database Systems - это http://www.redbook.io/ - переодически обновляемый дайджест первоисточников с комментариями от ОТЦОВ в этой подиндустрии

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

[upd]: --этому скелету диназавра 120млн21год!

-- позвольте, откуда такая точность метода достойная нобелевки?

-- когдя Я(Столяров :) ) пришёл 21 год назад в музей вахтёром диназавру СS было 120

без о[йвсё]бид pls

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

см Джека Венса «додкин при деле» как пример сатиры усугубляющее достаточно частое явление - особенно где сословные и прочие кастовые традиции

о очевидном расхождение между официальными должностями и фактическими полномочиями

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

учитывя что про лисп Автор уже в первом томе лестно отзывался можно было б сделать маленький полезный исторический экскурс как появилось (не полностью) в алголе60 предложенное МакКарти условное(не арифметическое ужо бывшее в трансляторе формул) ветвление

и как вообще общая форма cond позволяет сокращённые вычесления

И== (сond (A B) (T A))

ИЛИ== ( cond (A A) (T B))

или сворачивая в бинарное ветвление:

ИЛИ== if A then A else B

И== if A then B else A

в выще упомянутых 4 макроса AB лябмды сворачивающиеся в вычисленные значения при первом вызове - т.е самокыширующиеся выражения

зы: по «коверканью» - вопрос о наборе протоколов и респонсов на каком уровне (стек сети osi али какой пример вложенности ) - происходит ответ - если строгое отсичение по внешнему(нижнему) протоколу - это одно развитие взаимодействия

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

во всех случаях win/win

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

кста учитывая т3 (ленивые 488 страница) видно что для Столярова

https://en.wikipedia.org/wiki/Evaluation_strategy#Call_by_unification не так привычно как

короткая логика но полные вызовы хотя тот же https://en.wikipedia.org/wiki/Evaluation_strategy#Semantic_drift в сях сплошняком ( ибо нет var пацкаль-алгола)

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

в догон

5 и частично 4 слайды из Ершовского:

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

И 4ый

В докнижный период единство слова и дела осуществлялось естественно и постоянно. Накопление опыта и знания было совмещено с прямым и постоянным контактом старшего учителя и младшего ученика.

Столяров на голову превосходит обычных препов заборо-строительных университетов - при этом что показательно он не тереретик вообще не. и поэтому исходя из 4 слайда он очень перепривязан к собственному пути - Паскаль ->Си (Юникс это прекрсано ) часть в lisp(функ как надежду в см тьюринга Бекус можно ли освободить от императивщины программирования) - и не приятие js (а ведь это менее кривой лисп чем он был все 60ые) ибо всё - врата мудрости закрыты у Столярова гдето в 90ых

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

к слову о форматах соблюдения протоколов:

в библиографии (1 первому тому последняя эл редакция) - у части книг указано число страниц у части нет - можно разное предположить - например где есть есть pdf/djvu где нет есть тока epub pb2 и прочие без вёрстки печатной копии

в библиографии к 2 тому - в одном случае Стивенс со средним именем в другом без - это что за сигналы?!

далее ссылка https://web.archive.org/web/20050317014053/http://www.faqs.org/docs/artu/ а не на faqs.org (архив rfc хорошо) а вообще официально (согласно вике ну и Реймонду-Автору) http://www.catb.org/~esr/writings/taoup/

Столяров один из лучших представителей программерской индустрии

вот такие факты

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

Меня в Столярове умиляет как можно одновременно любить конкретно Lisp и поносить языки со сборщиками кучи и динамической типизацией в целом.

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

не приятие js (а ведь это менее кривой лисп чем он был все 60ые) ибо всё - врата мудрости закрыты у Столярова гдето в 90ых

js довольно-таки всратый язык, но Столяров не любит веб вообще. Исполнение кода (js) браузером считает вообще преступлением, а обычный html , хотя и не преступлением, но идиотиозмом из-за sgml- наследного языка разметки и некоторых других вещей.

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

js всрат ибо акулы не смогли договорится а выстрелило то что предпалагалось чиста_аплеты_для_бедных _ т.е нетскейп слегка выиграл Sun в части livescript братик_младшой ЖабыВаплетах ну и машины виртуальной подвезли на несколько лет позже - да и доткомбум успел до лопанья так эспоненциально расширится за пятилетку что ой.

ваще если посмотреть как эволюционировал стандарт ecma-20(eуже не помню ну который js) - там реально интересно что первая официальная не накаком то мерзгом сИ а на святой Жабе там ещё носорог в названии

ща курю RedBooks(in db) - и там констатация что «по странному совпадению» рынок реально на уровне хомячков не помнит(ваще) истории - возможно это не баг это фича - ибо извлекателям_прибыли позволяет продать утиль через поколение как «только что из парижу»

в части что NoSQL(вся эпопея хайпа) это буквально по тем же нотам что и IMS однако про NoSQL тем кто помнил о IMS было ясно хоть ставки делай :)

qulinxao3 ★☆
()

Так… Сам не сделаешь, никто не сделает.

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

С ЯП мы разобрались в прошлый раз, сейчас мы будем разбираться со средами разработки для этих ЯП.

Мы берём только комбайны, чтобы не устанавливать, не настраивать, не учить лишнее и не бороться с доп проблемами. Берём только адекватные, с GUI, доделанные, многофункциональные и универсальные, с плагинами, свободные, бесплатные (и с отсутствием шпионажа, либо с возможностью его реального отключения):

Итак…

IDE:

Eclipse и NetBeans.

Ещё есть худший вариант, как альтернатива первым двум - какой-нибудь форк IntelliJ IDEA Community Edition (форк бесплатной обрезки), но с выпиленным шпионажем (но не рос).

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

Text Editors (недоIDE-огрызки):

VSCodium, Notepad++, Geany. Остальное на свалку (мусор).

Так… Дальше мы должны определиться с выбором библиотек и фреймворков и подобного (наборы готового кода для быстрой комбинации при создании новых программ), ну и понятно - интерпретаторы, компиляторы итд - нас интересуют опять только комбайны, многофункциональные и универсальные, бесплатные, открытые итд…

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

я бывший программист самоучка. мне сильно помогали 1. примеры работы программ 2. человек у которого можно спросить 3. собственные проекты про программированию. у меня это было игра ГО и вращение астероидов вокруг Земли. 4. официальная документация.

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