Pull to refresh

Comments 302

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

Почему же?

Язык - это просто инстумент. Это как спорить о том, что плоскогубцы лучше чем пила. Оно, с одной стороны понятно, что лучше, но объяснить я это не смогу.

Почему противоречите? Потому что выставляете Питон как нечто плохое, тем самым выставляя каждый из оставшихся языков как нечто лучшее, чем Питон.

Питон - это язык. У него есть свои плюсы и минусы. Программист, который понимает что это такое в состоянии оценить питон с точки зрения: "нужно ли его использовать Питон в данном проекте?"

Сатанист будет с пеной у рта рассказывать о том, что питон хорош или плох. Только ситхи думают абсолютами.

Только ситхи думают абсолютами

Не, ну у вас вся статья из абсолютов состоит, как и эта фраза про ситхов. Вас раскусили, Дарт Nurked.

- PHP лучше, чем Python!

- Чем?

- Чем Python!

Это как спорить о том, что плоскогубцы лучше чем пила.

Повалите мне вот этот столетний дуб, пожалуйста. Вот Вам плосокогубцы.

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

Вот и я намекал на то, что не бывает инструментов, сферически лучших в вакууме — всегда есть контекст, а уже в нём что-то будет более подходящим, а что-то — менее.

UFO just landed and posted this here

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

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

А вам вот пила в мультитуле, длина лезвия миллиметров 100, мелкий зуб. Или лучше нет, вон тот лобзик возьмите… с пилкой по металлу...

Чудо с отшельником сталося:
Бешеный гнев ощутил,
Бросился к пану Глуховскому,
Нож Пилу ему в сердце вонзил!

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

Так что нет, выбор у нас не меж "подходящими" и "неподходящими" инструметами, увы, в дело ещё вступает удобство, эргономичность и всё такое прочее.

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

И сразу же классика в ответ :))

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


«Только ситхи всё возводят в абсолют»

Сказал джедай

Мне попадалась идея, возможно, в SICP, не помню, что одна версия языка может быть лучше другой версии. Например, java 1.17 обратно совместима с 1.3, рынок разработчиков один и тот же, но отличия в выразительности колоссальны.

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

Понятно дело, что на любой тезис не составит труда найти контраргумент. Вот вариант: под андроид можно писать только на java 1.7 или 1.8.

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

Ну вот. За какие-то лет 30 мы прошли путь от умиления танцам с шаманским бубном вокруг компьютера, к разного рода евангелистам, и наконец, манифесту программистского атеизма. Поразительная скорость эволюции. Так и сигулярность не за горами

К сожалению, некоторые бубнотанцевальщики просто заигрались.

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

Вы можете пользоваться абстракциями и фреймворками. Но при этом вы обязаны либо знать, как они тикают, либо не бояться лезть и читать сорцы этой мутотени."
.
Возражение 1):
Распространено мнение, в том числе и сред тех, кто стоял у истоков компьютерных наук, что хорошие абстракции и фрейворки должны освобождать вас от необходимости знать технические подробности того, как они устроены. Да, ограничения, свойства и смысл абстракций должны быть описаны, но не обязательно такое описание давать через из техническую реализацию. Хорошей практикой счита(лось)ется разработать для этого свой подходящий язык. Например RAM и O-большое фармализм - скорее будут лучшими языками для объяснения сложности программ, чем техническое описание работы конкретного процессора и жесткого диска.
Тезис: абстракции и фреймворки надо уметь готовить.
.
Возражение 2):
Программисты часто отсылают за знаниями к какой-то технической документации. Плачевная практика, причина многих (если не большинства) проблемм вашей профессии. Почему? Понимаете, мозг - это тоже компьютер, его тоже надо уметь программировать.
.
Предположим, вы замечательный программист, написали программу и создаете для нее документацию, предполагая, что по ней будут учится пользоваться вашей программой другие люди. Кто сказал, что вы действительно умеете программировать их мозг, вас учили этому, или вы этому учились? Вы правда думаете, что подробное и формально верное описание всех функций и возможностей вашей программы уже достаточно для эффективного обучения ее пользователей?
.
Представим себе типичную команду программистов, которые трудятся над какой-то сложной программой. Ваше воображение нарисовало там человека, чья роль составить понятное обучающее руководство, разработать иерархию абстракций и создать подходящий язык? Это тоже работа, она требует времени и напряжения мозгов. В вашей фирме считают эту работу важной, учат ли ей и контролируют ли ее качество?
Тезис: надо уметь писать доходчивые тьюториалы к программным продуктам, а не отсылать пользователя читать их техническую документацию или еще хуже заставлять его изучать исходники.
.
.
В общем, вы зря не любите котиков - в них много витамина C )))
.
(Да, насчет абстракций. Что за великий гений среди разработчиков Хабра сделал так, что новые строки и отступы текста в редакторе комментариев отображаются не так, как после его публикации. В чем великий смысл?)


Нормальный карго-культ, что вам не нравится?

Только знание поможет вам избавляться от воображаемых богов.

Я бы не называл это атеизмом, здесь пахнет новым богом Знаний.

Я тут шибану еще один мета-уровень. Теперь нам надо научиться как из правила «нам нужно отсутствие культов», перестать скатываться в культ культоотрицания, и генерить сентенции формата «скрам это плохо потому что культ».

Пример - lesswrong сообщество которое изначально про cognitive issues и критическое мышление в отношении собственного мышления, в котором все равно периодически появляются индивиды формата «великий труд Rationality AI to Zombie, и пророк Юдковски давший его нам, а все это ваше остальное от лукавого и когнитивных искажений», хотя написанное как раз о том, что именно таких паттернов СВОЕГО мышления стоит избегать. Да что, там вроде есть прямая глава про культы, где описано что каждая идея имеет шансы стать культом, и это все равно не помогает =)

Этот текст был написан человеческим существом, которое пропустило его через ChatGPT 4 

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

О, сектанты chatGPT подкатили :)

Это просто Фил Ранжин на минималках.

Я человек в индустрии новый (но не вкатун, а мечту детства осуществляю), надеялся, что тут все сплошные атеисты, люди науки, не тратящие времени на разговоры об общих проблемах, а фокусирующиеся на решении конкретных. А тут философы и религиозные фанатики... Прям как у нас, гуманитариев. За простыню лайк, конечно же.

Я закончил школу по гуманитарному направлению, поступил в институт по математическому. Так что кое-какое сходство вижу.

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

смешно: я не вкатун, как некоторые, у меня мечта детства.

Вкатунами обычно называют, как я понимаю, быстроучек, мечтающих с курсов попасть в офис на овербольшую "айтишную" ЗП, и заполонивших однотипными вакансиями ХэХэ и т.д. У меня немного другой подход, я и сейчас что-то зарабатываю, однако устал от своей рутины. Хочу другую. Но по поводу материальной составляющей лукавить не буду, она для меня важна.

Хочу почитать про ваш опыт. Грубо говоря, у меня сейчас 300к/нсек, есть накоплений лет на пять. Хочется программировать на хаскелле, чтобы к тому моменту, как вышел бы на 300к/нсек, не кончились бы накопления, а то из мужей уволят.

Матаппарат в голове и базовые навыки написания кода имеются. Но и сомнения имеются. Но и желание имеется.

UFO just landed and posted this here

Жаль. Мне нравится вообще сама парадигма функционального программирования (в рамках моих небольших знаний о ней). Я больше по электронике и computer science.

UFO just landed and posted this here

… но это не значит, что нельзя зарабатывать хорошие деньги :]

Можно. Но это не значит, что всем. И особенно не значит, что Вам мне конкретному Васе Пупкину.

UFO just landed and posted this here

есть только рецепты в среднем.

Ну да, "чиновники едят мясо, народ — капусту, а в среднем мы все едим голубцы" (с)

Хехех, ну весь ООП - абсолютно недоказуемая абстракция. Так что почти все программирование - это вера в правильность паттернов. Есть исключение в виде функционального программирования, но это оставим за скобками - холивар начнётся)))))

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

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

Сложность! Нужно больше сложности, для служения Богу Сложности!

Как же, как же! Знаем и его, поклонялись и ему! Почему же это нельзя просто взять и написать пятистраничный сайт на чистом HTML! Это же противоречит устоям великого Бога Сложности и сына его Фреймворка Усложнящего. Надо запустить CRA или написать PWA на VueJS. Ибо неположено нам просто на HTML писать, ведь не язык это!

И побольше уровней абстракций! Ибо нефиг с первого прочтения кода понимать его.

И обязательно добавить какой-нибудь Reducer чтобы никто не знал кто и что вызывает что.

...и ватчдог в уголке посадить, а то мало ли.

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

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

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

Монга - больная тема и гайды по ней, как не откроешь, кидают в базу все как есть, про ту же jsonSchema нигде толком не пишут (да, у схемы есть свои минусы, но это не повод кидать в базу данные в сыром виде и молиться, что нигде на клиенте нет ошибки из-за чего цена товара отправиться в базу не децималом, а флоатом к примеру). И ладно этот клиент какой-нибудь типизированный язык, но зачастую это js(даже не ts), python. А от fullstack гайдов по MERN стеку рыдать хочется. Пытаешься агрегировать в монге данные и что-то не можешь решить, гуглишь, находишь в основном решения, где данные прогоняют через клиент. В монге замечательная интеграция с языками, особенно js, настолько замечательная, что многие перестают видеть грань между приложением и базой.

Ну вот я как раз о том, что вместо того, чтобы изучать вещи, мы просто будем надеяться что на Великом и Могучем Стаковерфлоэ кто-то ответит на наш вопрос.

Мне кажется корень проблемы в том, что люди просто не хотят фильтровать информацию, которую находят. Недавно была ситуация, хотел сделать селект с поиском на реакте, ну и начал гуглить как люди это делают, чтобы понять какие подходы используют, а не изобретать велосипед. Гайдов 10 перелистал и по итогу все гайды это npm i react-select. Правда там есть и хорошие моменты, такие как асинхронная подгрузка. Судить насколько имеет смысл тащить его в проект не могу(зависит правда от проекта), основное направление все же это бекенд на Go. Но лично я не привык тащить в проект зависимости ради проблем на решений которых можно потратить день.

К слову, в go очень много последователей другой религии. Если в js условном тянем всё с npm, то в go религия - сделай сам (хотя и в других яп свои последователи будут) .

Судить насколько имеет смысл тащить его в проект не могу

Не судите и не судимы будете! (c)

Как-то не так давно я попытался скомпилировать монгу на своём NanoPI M4, но с последней версией обломился - видимо в RK3399 нет волшебной инструкции FJCVTZS. Удалось скомпилировать 4.4 - ну и ладно. Проблема вылезла очень быстро на множестве параллельных запросов - точь в точь как у нас на работе было когда мы на WT попробовали переползти много лет тому назад. Cache Eviction называется емнип. До сих в пор у них в проде четвёрка и MMAPv1. Как сейчас люди выживают? Перезапускают раз в сутки? Или эту багофичу только в community server оставили а за денежку всё норм?

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

Да там писать-то нечего. Скачал, а дальше строго по инструкции. Даже и не помню уже. Вот если бы я шестёрку бэкпортировал - тогда да. Но оно мне надо? Постгрес рулит. Ну её нафиг эту монгу.

Оставь меня старушка я в печали - Да я младше тебя!!!

Да просто навеяло. Из фильма. Мне примерно столько же, но я ещё видел dbase в подлиннике :)

Тоже поною рядом. 38, начинал на C и ассемблер для pic, помню mfc/ATL/WTL и Delphi.

))))

Я еще на чистом Win32 API пару пет-проектов написал.

Про ассемблер БК0010-01 и ДВК было уже?)

Про ассемблер БК0010-01 и ДВК было уже?)
Вы порвали писькомер. Дорежу — мк-52.

МИР-1, МИР-2. На ассемблере там было никак, но матрицы (пзу на трансформаторах) перепрошивали.

Оно не программируемое ;)

шестеренки менял

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

Ну так-то я могу и логарифмической линейкой "ответить". До сих пор храню ГДР-овскую металлическую. А ваш арифмометр? :)

Линейка вещь забавная, но не програмируется.

ЗЫ странно что никто на счётах не умножал ;)

Линейка вещь забавная, но не програмируется.

Просто она использует внешнюю память программ — она у линейки реализована на человеках.

Ну тогда карандаш, бумажка, и 4значные таблицы вместо кеша ;)

Не врите, столько не живут!

Вы не очень вежливы.

Когда мне было 13 лет, мне подарили старый арифмометр, который до этого не знаю сколько лет простоял на чердаке.

ld bc,6912LD DE, 16384 ; destination address LDIRz80, motorolla 68020, demoscene - эхх было время

Сюда бы еще один абзац про Rust дополнить и статья была бы просто восхитительна.

По моим наблюдениям абсолютное большинство провозгласивших/принявших Rust новым божеством, не то, что не пишут на нём — они его даже не знают. Заводчики пингвинов знают, что на нём теперь можно писать ядрёные модуля для пингвиникса. Глядящие в форточки знают, что Руссинович перешёл на Rust и очень доволен. И те и другие читали на Stack Overflow, что в Rust не бывает buffer overflow. 8 из 10 “юношей с горящими глазами” не могут объяснить простыми словами принципиального отличия модели памяти Rust от того же C, и лишь мямлят что-то невнятное про [не]мутабельность, borrowing и его суровый checker. Продвинутые знают слова трэйт, крэйт и карго. Где-то здесь знания заканчиваются. То есть, все признаки религиозного экстаза, ведь для этого не требуется знать Тору, Евангелие или Rust. Главное — почитать (от слова ”почтение”).

UFO just landed and posted this here

Можно. Плюсы божественны ибо ничто не сравнится с ними в быстродействии. Сишечка божественна ибо гениальна. Там нет ничего лишнего!

UFO just landed and posted this here

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

что такое быстродействие и нужно ли вам именно оно?

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

Кстати, на горизонте замаячил восход нового божка - Zig, его ключевая фишка - "No hidden memory allocations", что есть в Rust.

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

Из моих впечатлений (я, правда, пока в prod не затащил и всё ещё сомневаюсь - но пару внутренних утилит написал, а перед этим интересовался rust-"движухой"):

В теории - Rust мало ошибок и бОльшая гибкость за счёт выделения слоя абстракций (ну сколько там D и Haskell переходили на big endian архитектуры? лет по 6? А вот писали runtime на Rust - переход занял бы месяцы).

На практике - писать низкоуровневый код с выделениме всех абстракций и соблюдением растовского safe-API с памятью рука устанет. А какую-нибудь арифметику проще вообще *.try_into(..).unwrap() использовать, чем учитывать наличие платформ, где usize < u32 (выяснили что безопасность стоит времени, где-то подзабили, где-то вылезли из бюджета, хорошо если вообще Rust оставили).

UFO just landed and posted this here

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

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

Проблемы начинаются тогда, когда цели не совпадают - например, у разработчика и заказчика. Но это вопрос коммуникации и выстраивания ТЗ.

Но это все так, лирика. Главная моя претензия вот к этому тезису:

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

Но что в этом плохого? Абсолютно ничего. Нет ничего ужасного в том, чтобы учиться чему-то новому. Даже если вы читаете абсолютно бесполезную книгу о том, как ловить котиков в капканы, вы от этого не станете глупее.

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

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

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

без понимания причин ничего не надо трогать

А вот с этим - согласен. Хотя, опять же, это только половина вопроса. Зависит от того, что требуется прямо сейчас. Грубо говоря, если сейчас требуется срочно привести машину в рабочее состояние заменой модуля, пытаться вместо этого его починить с мультиметром и паяльником будет не самым разумным вариантом, просто потому что не соответствуют цели.

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

У Лема в "Сумме технологий" был хороший пример с математикой - в 19 веке были универсалы, которые разбирались во всех имеющихся областях математики, в 60х были люди, которые досконально разбирались в одной-двух смежных областях, а с ростом объема знаний обязательно появятся теоремы, которые _не сможет доказать ни один человек_ чисто из-за их объема.

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

Как-то так.

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

Вы правы. В силу того, что полупроводниковые устройства работают на эффекте квантового туннелирования действительно не возможно знать "что _на самом деле происходит ".
Но это к делу и не относится. Автор, на сколько я понял статью, не предлагает знать что происходит, а предлагает знать вещи, которые влияют на то, как программа исполняется. Это благодаря стараниям инженеров, разрабатывающих процессоры и микроконтроллеры, в общем-то не большой список вещей и знать их программисту очень желательно, если программист рассчитывает использовать ресурсы доступной вычислительной техники ЭФФЕКТИВНО. Ну а если не рассчитвает, то можно и в майнкрафте Тюринг-полный компьютер замоделировать и там что-нибудь считать. Почему бы и нет?

Так в голову не влезет - а часть еще и не (полностью) документирована - остается просто верить что то, что есть работает и работает правильно. Причем ограничиться условно знанием "того, что влияет на результат" не получится - т.к. "влияет" примерно все, сверху донизу - очень часто debug проблем с производительностью прям БЕЗДНЫ открывает - и то, что в процессе разборок с бэкендом в кубере ты доходишь до багов в musl'е - нифига не означает, что ты эту цепочку сколько-нибудь "знаешь" - а через рукопожатие коллега у меня и до багов в компиляторе доходил - понятно, а еще рядом - пляски вокруг железа (Где ты, ЕМСишный саппорт?)

А суть простая - может человек достигнуть своих целей, или нет. Если он ее может достигнуть при помощи питона и стек оверфлоу - молодец.

Сравните: А суть простая — может человек достигнуть своих целей, или нет. Если он мешок орехов может расколоть или коробку гвоздей заколотить при помощи микроскопа или инструкции к микроскопу — молодец.

Молодец ли? В самом деле? Цель таки оправдывает средства?

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

Хватит уже жонглировать словами и придумывать соломенные чучела для борьбы с ними, всегда можно придумать цель под средство или оправдать любое средство придуманной целью.

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

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

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

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

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

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

В остальном это борьба с соломенными чучелами и какими-то абстрактными Вовами, верящими абстрактным Васям.

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

Опять же - достаточно вон на коммент ниже глянуть, где на полном серьезе кто-то заявляет, что микроконтроллеры использовать - "не по совести". Не "не по ТЗ", не "неоптимально с учетом наших требований", а "не по совести". Вот это как раз - натуральная религия уже.

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

Не совсем корректный пример. Все же условный реакт не сломается, если им 1 html страницу делать, но вот смысла в этом не очень много. Да и осваивание вещь относительная. К примеру, есть стартап, какая-то фича нужна срочно и сейчас - выбрать известный, но не совсем подходящий, инструмент идея хорошая. Или у нас условная средне-крупная компания и нам нужно заменить какой-то сервис, у нас есть время, а эта замена послужит основанием для крупного роста, то тут лучше взять подходящий инструмент.

Да, я про то же, все зависит от контекста.

Но один момент все же от контекста не зависит. Не надо тащить все что не приколочено с npm/pip/go get и тд

Кстати, насчёт Условного Реакта - он ещё как и сломается.

Ну тут все же зависит от задачи и того кто это будет реализовывать. Кстати еще из забавных моментов, когда смотришь на код людей, некоторые не понимают, что (на примере js) такие методы как - includes, split, filter, map, reduce и т.д. выполняются не за O(1) времени или когда какой-нибудь цикл выносят в отдельную функцию и вот уже сложность не n^2 а линейная(хотя это и не так). Как раз такие люди любую технологию могут сломать, какой-бы она продвинутой не была. Мне в этом плане очень нравится Go(на счет других яп сказать не могу, работал только с python, js, golang), если тебе надо обойти массив, то тебе надо обойти массив, циклом, в лоб.

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

Да, понимание сути алгоритма и знание его границ применимости очень сильно помогает понять, с каким именно из подходов/алгоритмов надо разобраться для решения данной конкретной задачи. А знать наизусть все алгоритмы или структуры данных – тупо невозможно, если ты их все не применяешь на регулярной основе, сотрутся из памяти как как мало значительная информация последней степени важности :-)

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

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

Я помню в школе хватался за все что хоть немного было интересно, всяких кружков и секций посещал огромное количество (большую часть быстро бросал). Вроде звучит как-то не очень, с другой стороны - пробовал, бросал то что не зашло, каких-то базовых знаний по многому нахватался и в итоге пошел по направлению программирования, совершенно случайно прочитав какую-то нудную и приготовленную к выбрасыванию советскую книгу про ЭВМ. Как по мне нужен какой-то баланс, между развитием того что уже есть и изучением чего-то нового, возможно вообще никак с прошлым опытом не согласующегося. Вот недавно мне неожиданно зашла тема 3D моделирования, хотя никогда особо этим не интересовался. За месяц продвинулся до неплохого уровня, теперь сам делаю довольно сложные модельки (технического плана, не скульптинг) для печати. Был-бы таким суперцелеустремленным - не стал бы даже пытаться, это ведь нерациональная трата времени!

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

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

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

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

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

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


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

Ха. А что нынче ремонтопригодно? Я вот в выходные выяснил, что в моем триммере (со щеточным мотором) нет такой запчасти, как щетка (копеечной стоимости), а есть только "мотор в сборе" (уже далеко не копеечной стоимости). С одной стороны, поменять его конечно можно, и наверное даже легко — только стоимость мотора и щеток несопоставима.

Увы, средний потребитель не обладает достаточными навыками, чтобы поменять щётку в моторе, так что, выкладывая денежки, гордитесь.

поменять щётку в моторе

Поменять запрессованную щетку непросто. Особенно если запасной в природе не существует.

На прошлой неделе пытался в пылеосе LG. Щетки оказались на заклепках, запасные ессно не продаются...

Обычно все щетки стандартных размеров. Даже если щетка неразборная, производителю пылесоса ее надо где-то достать. Он звонит на щеточный завод и ему там сообщают примерно следущее: или выбираете из имеющихся стандартных типоразмеров или платите сверху 1 млн$ на прессформы, оснастку и пр. и мы вам сделаем какую хотите, хоть треугольную. Какой вариант выберет производитель пылесоса - думаю, очевидно. И это хорошо.

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

Да, формально щетка незаменяемая. Но фактически, ее поменять особого труда не составляет.

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

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

Если у вас в городе есть троллейбусы, то можно за копейки разжиться б/у щетками с токоприемника, из одной такой можно несколько десятков маленьких щёток нарезать.

В вашем случае отгибается лепесток

И при загибании обратно ломается.

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

если для всего этого вам нужно сходить купить дрель, сверло и заклёпочник

Стоимость ремонта сравнима со стоимостью нового устройства и явно превышает стоимость крупноблочного ремонта ;)

Да ,что-то подобное тоже приметил.

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

А среднему потребителю и не надо это уметь - ему можно дойти до конторы где сидит профессионал с опытом и необходимыми инструментами, который за разумную денежку сделает ремонт.

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

А среднему потребителю и не надо это уметь - ему можно дойти до конторы где сидит профессионал с опытом и необходимыми инструментами, который за разумную денежку сделает ремонт.

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

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

машинке уже лет 15

Такие машинки и девайсы сами по себе стоят того чтобы попытаться их отремонтировать. Новое нынче хлам полнейший.

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

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

Ну и холодильник аристон работает лет 20, сломался лишь единожды из за того, что от вибрации перетёрлась трубка датчика. Отремонтировали за 30 минут.

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


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

Когда эти времена наступят случится, скорей не прозрение, а истерия и перманентная грызня всех со всеми. А потом и распад цивилизации.

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

Раньше например простые вещи делали...

Это чайники, утюги и пр. без каких-либо электронных табло или особо интеллектуальных функций. По сути там выбор между двумя-тремя режимами работы. Эта тенденция в последнее время очень сильно заметна, всё тоже самое, но уже динамик пикает и светодиоды моргают по другому.
Возможно на потребителя это магическим образом действует, когда во время включения светодиод не просто загорится, а замигает и из маленького динамика ещё мелодия заиграет.
Было как-то давали починить маленький китайский стабилизатор напряжения, внутри стоит обычный автотрансформатор с несколькими отводами от обмотки, переключение релюшек на них идёт с определённым шагом напряжения в сети, например 190, 205, 220, 235 вольт, а на табло всегда показывается 220, хотя в реале на выходе может быть эти самые 206 или 234 вольт. Там и стоит обычная микросхема-компаратор которая всю эту интеллектуальную работу делает и микроконтроллер на индикацию. Знакомый даже предлагал провести эксперимент, достать микроконтроллер из колодки и посмотреть, будет ли схема по прежнему работать. Так как вознико подозрение, что мк лишь выводил "220" и "Err" на табло. Но я не рискнул.

Мне кажется что вы правы в первой части комментария. Это относится к вопросам функионирования психики.

На мой взгляд проблемы современности в двух взаимовлияющих на человека факторах:

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

К этому еще хочется добавить: программисты вынуждены осваивать в одиночку то, что было придумано многочисленными коллективами людей, специалистов в их областях. Это чем-то напоминает ситуацию с историей развития науки, когда она зарождалась учащимся было проще дойти до "края" системы знаний. Теперь же нужно положить треть жизни, чтобы добраться до неизведанных областей и там работать. Но в науке структура знаний хотя бы имеет доказательный фундамент. Программирование — абстрактная паутина из невесомых костылей, плести которую не стоит вообще ничего! И человек в одиночку вынужден всё это великолепие, созданное тысячами других людей как-то умять в собственной голове при том, что эти знания еще и стремительно устаревают.

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

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

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

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

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

Это статья о том, сколько бед может наделать дурость. Истинно так. Но качество мира падает повсеместно.

Где это было, наверно тут же, на Хабре?
"Если бы строители строили дома так же, как программисты пишут код, первый залетевший дятел разрушил бы цивилизацию"

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

Так что проектанты молодсы. Это опять эксплуатанты накосячили.

Ну да, ну да.. К пуговицам нет претензий? (ц) ;)

Ну так я ж и сказал: пуговицы калоши — как новенькие!

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

Ага. И был бы обязательный к исполнению кодекс программирования на MISRA C для всех. Не нравится - живите (на улице) без компуктера. А в Германии еще бы требовали обои на выбор из 3 стандартных цветов в зависимости от того в какой части города живет человек.

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

то ли дело сейчас, когда дизайн меняют по 10 раз в год, и постоянно добавляют нескучные шрифты и обои

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

И при всем при этом — софт все равно был бы плохого качества.

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

Плюсую, конечно.
Сын работает инженером в совершенно другой отрасли, не в программировании. Более "железной", в прямом смысле. Ну совсем железной, по много тысяч тонн. Говорит, что там тоже самое, причем по нарастающей.
Пугает, если честно.

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

Я-то по глупости думал, что он скажет, что у них не так. Какое там! Он просто сидел, кивал, и говорил "ты не представляешь как ты прав!"

В итоге - эта статья.

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

> В итоге - эта статья.

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

Из "железных" случаев:

1) начинал работать в новом стеке, дали посмотреть библиотеку работы с моторами, чтобы разобраться в параметрах. Говорят расскажи потом как работает рампа - алгоритм последовательного разгона/замедления мотора. Начал разбираться - циклы не сходятся. Получается алгоритм разгоняет мотор в 2 раза медленнее, чем указано оператором. Пошел к "лиду" разбираться, оказалось что никто эту библиотеку и не проверял, действительно реальный параметр в 2 раза нижен заданного. Финальный ответ: медленнее - не быстрее, а этот код уже на десятках производств крутится. Хотя где-то параметры стоят для "алгоритмов безопасности" и такие просчеты могут дорого стоить.

2) Коллега разбирал модуль управления дверью холодильной камеры - как те, в которых в боевиках держат заложники. Внутри холодильной камеры кнопка открытия двери изнутри, чтобы повар не замерз, если дверь закроется. Так мало того, что эту кнопку можно было бы сделать просто нормально разомкнутой слаботочкой управлящей контактором для электромагнита, а не цифровым сигналом для управляющего контроллера, так и сделана она двухпроводной без контроля целостности сигнала. Но, компания применяла такие решения и в качестве аварийных выключателей для очень мощного оборудования. Повреждение кабеля и аварийный выключатель не работает.

В "железе" работал не очень долго, но задуматься хватило.

Так у "железных" инженеров использования чисто эмпирических наработок гораздо больше. Только вместо StackOverflow выступают отраслевые справочники. У Фейнмана железно-инженерный подход очень хорошо описан:

Первое:
трение в каждом подшипнике такое-то, а в каждом сопряжении шестеренок -
такое-то. Из этого ты можешь вычислить, какая понадобится сила, чтобы
привести эту штуку в движение. Второе: когда у тебя передаточное число,
скажем, два к одному и ты хочешь знать, надо ли тебе сделать 10 к 5, или 24
к 12, или 48 к 24, то вот как это решается. Ты смотришь в "Бостонский
каталог шестеренок" и выбираешь те шестеренки, которые находятся в середине
перечня. У тех, которые в верху перечня, так много зубьев, что их трудно
сделать. Если бы удавалось делать шестеренки с более тонкими зубьями,
перечень продолжили бы еще дальше вверх. Шестеренки в нижней чести перечня
имеют так мало зубьев, что легко ломаются. Поэтому в лучших конструкциях
используются шестеренки из середины списка.

Я не железный инженер, но, полагаю, существуют и теоретические обоснования выбора конкретной реализации заданного передаточного отношения. Однако, подозреваю, что даже если проект требует такого обоснования, там поступают точно так же, как поступали программисты, когда от них требовали в отчёт блок-схемы. Программисты писали программы и по ним постфактум рисовали схемы, а железные инженеры, наверняка, так и выбирают шестерни из середины списка, а потом подтверждают этот выбор всеми необходимыми расчётами. Заповедь полурелигиозная и старая: работает - не трожь!
Конечно, идеалом было бы если бы все были умные и понимали не только что это работает, но и как это работает (и, заодно, все хорошие победили всех плохих). Но реальность такова, что далеко не все настолько умные. Вот, для этих недостаточно умных, достаточно умные и придумывают эмпирики. Можно, конечно, видеть в них религию. Собственно, религии и были придуманы примерно так же и примерно для того же. Как заставить неумытых дикарей умываться? - "Так бог велел!". И оно работало! Ну, да, до тех пор, пока такие же умные, но недостаточно высокоморальные не придумали извлекать прибыль из антуража.

Не имею возможности развернуть тему — отрасль чувствительная. Но у Вас хорошее, разумное, доброе представление о ситуации. К сожалению, далекое от реальности. Всё гораздо, гораздо хуже. О справочниках можно только мечтать, вместо них нынче PowerPoint. А представитель конструкторского отдела до хрипоты отстаивает решение, которое проверяется на уровне школьной задачки о бассейне с трубами и не лезет ни в какие ворота. Ведь в САПР всё сошлось, какие вопросы? И это всё всерьез, не в курилке.

А у вас есть какие-то аргументы или предположения, почему "на уровне школьной задачки о бассейне с трубами" не сошлось, а в САПР - сошлось?

Потому что, знаете, говорить "фу, да в этом вашем сапр может что угодно быть, пофиг что оно там показывает" так-то не менее глупо, чем говорить "фу, да пофиг на твои расчеты, сапр показал и ладно". Если это не очередное соломенное чучело, призванное усилить эмоциональный акцент, то это серьезная проблема. Я бы обеспокоился, если бы у меня САПР выдал один результат, а расчеты - другой, потому что это значит только одно: долгое разбирательство, что же конкретно вызывает расхождение, т.к. кому-то в этом случае придется в итоге принимать решение, чему конкретно верить, и чтобы это не было "пальцем в небо" и не пришлось за это отвечать, придется перепроверять и первое и второе.

Я не могу говорить здесь по существу. Извините.
Но нет, не соломенное чучело. И да, серьёзная проблема.
Причины расхождение хорошо известны. Это прослойка между стулом и клавой. Прослойка, которая перестала понимать физический смысл параметров, подаваемых в САПР. А с САПРом всё в порядке: что вложили, то и получили. В общем существенное сходство со статьей, которую мы тут обсуждаем.
Вы, разумеется, вправе не верить, доказывать не стану, по упомянутой выше причине.

Не очень понятно, что вам мешает в этом случае в САПР подать правильные входные данные и продемонстрировать совпадение с расчетами, это как минимум сместит фокус с доверия или недоверия САПРу на конкретные параметры.

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

Да ладно! Мы, помню, раму для багажных полок в самолёт считали:

  • напроектировали, чтобы уложиться в вес

  • просчитали при прямых нагрузках, чтобы закрытой выдерживало вертикальную перегрузку 5g ("жёсткая посадка") и статику с максимальным весом

  • рассчитали "пневмо-амортизатор", частично компенсирующий вес багажа при подъёме

  • собрали выставочний образец

...а на МАКСе эту раму сломал первый же посетитель, оперевшийся рукой о торец открытой багажной полки! Всего-то не учли один из возможных векторов приложения усилий. При этом, ещё до сборки, все, кто видел эту конструкцию, говорили "не выдержит", но не могли объяснить, в чём ошибка прочностного расчёта. А ошибки и не было - была неполнота расчёта.

Я не железный инженер, но, полагаю, существуют и теоретические обоснования выбора конкретной реализации заданного передаточного отношения.

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

Раньше это делали на бумаге с калькулятором или логарифмической линейкой. У нас курсач на втором курсе такой был. Сейчас в КАД системе автоматом считается + из справочника предложит набор из готовых вариантов.

Насколько я знаю уже миллионы лет человек и его предки являются социальными организмами и следовательно эволюционировали все это время в обществе. В результате наш мозг лучше всего адаптирован к взаимодействию с другими членами общества и намного хуже работает если ему нужно разбираться в чем-то точном и техническом. Мы очень хорошо видим эмоции других, понимаем по выражению лица, глаз где опасность а где нет и так далее. Еще одним следствием является то, что любое необъяснимое являете человек стал наделять личностью, так как тогда можно сказать что явление тоже как член общества обладает своим характером и поведением, которое свойственно другим членам общества. А тогда явление становится более понятным и его можно объяснить. В итоге все это превратилось в религию. Так как вместо попыток найти рациональное объяснение тому что например ветер дует - человек просто сказал что у ветра такой характер и он дует потому что хочет. А дальше по индукции. Стало можно объяснить все необъяснимое. Так и появилась религия. Кстати у животных тоже есть религия. Точнее признаки религии и того что у них есть вера в высшие силы. Так вот… Из-за невероятного количества технологий, языков, методик и фреймворков уже стало невозможно запомнить как все они работают и тут подключаются те самые механизмы когда мы начинаем наделять личностью уже технологии а затем превращать их в духов и божества

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

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

А вот само сравнение(читай наделение сущностью) будет называться абсурдным строго после изучения объекта/явления.

умиляет как вы бросаетесь из одной крайности (ой молодняк ниче не знает, молится только) в другую (надо знать все, разобрать фреймворк и любую тулзу на косточки, просто сядь и разбирайся!)

вопли стареющих разрабов это отдельный жанр.

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

А в чем, собственно говоря, проблема? Вот тут вот господин чуть повыше сидит и жалуется, что у него недостаточно времени чтобы во всём этом разбираться. Но при этом - у нас достаточно времени на всё остальное.

Я умею водить машину с ручной коробкой с правым и левым рулём. Я всё ещё знаю как работает манифолд и что такое карбюратор.

Что же это вы меня в стареющие записываете? Мне только 37, я отрываю вторую компанию, жизнь только начинается.

Проблема в том, что в реальности, образование перестаёт им быть. И мы скатываемся к очередной катастрофе, пережить которую смогут те, кто может адаптироваться. Я - могу. Адаптировался ко многому уже. Так что проблем не будет. Но остальным надо подумать об этом. Если у вас нет хороших познаний в какой-либо области, то вы будете чувствовать себя незащищённым и рассказывать про то как "я всё время думал, что быть взрослым - это круто, хотя на самом деле все вокруг - дети".

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

Что же это вы меня в стареющие записываете?

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

Кто вам сказал, что я шипел на молодняк? Идиоты, про которых рассказываю они моего возраста.

Не раз я видел замечательных молодых программистов. Не раз видел замечательных и очень хороших стариков. Я с кем только не работал.

Я не говорю о молодых и старых. Я говорю о том, кто как учится.

Я не говорю о молодых и старых. Я говорю о том, кто как учится.

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

И вам обидно, что они добиваются сопоставимых с вашими карьерных успехов, хотя работают как-то не так.

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

Это ощущение "недодаденности" - опасная штука, давите в себе эту гадину.

У меня раньше такое было, когда мне было 20+

Как это так - чуваки ардуинку юзают, вместо того, чтобы хреначить плату с нуля!

К счастью, к 30+ это прошло, и пришло понимание, что имеет значение только цель и стратегия ее достижения. И если у кого-то цель - поскорее проверить свою идею, то пусть использует хоть ардуинку, хоть конструктор Лего.

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

Но прикол-то в том, что вы, судя по вашим постам, с закрытми глазами эти платы в темноте на ощупь строить можете. Вы, естественно знаете, что надо делать. И когда придёт время мне держаться за SMD мелочёвку, скорее всего я ваши-то как раз статьи на Торте читать буду.

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

Ну серьёзно, сколько раз ВЫ лично видели какого-нить неофита, который с унинием на лице подходил к вам и просил поправить плату, в которой на входе питания не было шумоподавителя. Идиот? Да, очевидно. Непоправимый? Нисколько нет. Всему можно научиться. Главное, чтобы не обожествляли вас и не говорили что это Вася, Великий Платодел, а делали из вас хорошего учителя, к которому все ходят за мудростью.

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

А ежели какой-то дебил начнёт орать что кроме микросхемы ЧЕБУРАН2000 ничего в мире не должно было быть, то наверняка тяжко вздохнёте и скажете что-то интересное.

Смотрите, у меня претензия в другом. Вопрос в том, как человек эту правоту защищает.

Если он имеет смелость признаться, что использовал микросхему потому, что у него только с ней и был опыт и он учился по каким-то статьям, в каждой из которых была такая микросхема, это вполне валидное обоснование. Оно может не стыковаться с моей целью, как заказчика (или тим-лида, или кого там еще, кто с этим товарищем будет взаимодействовать), но оно дает вполне разумное объяснение почему человек это сделал - потому что это решение, которое многократно и много где было реализовано как rule of thumb и потому, что лично у этого человека есть опыт работы именно с ним.

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

Вы вот мои посты упомянули - может, вас это разочарует, но я железо не брал в руки лет 10, я с 2012го года с головой погрузился в машинное обучение. Вот захватило оно меня, когда это еще не было мейнстримом, когда еще о "пришествии ИИ" не кричал каждый блоггер. Я тогда прикинул, в каком направлении мы движемся и с удовольствием начал подтягивать свое понимание математики и работать с нейросетевыми моделями, понимая, что это станет самой громкой темой грядущих десятилетий (а заодно инвестировал в NVidia, как в основного производителя ускорителей для таких вычислений, чему сейчас очень рад).

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

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

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

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

А если он приходит к вам с той-самой-микросхемкой, а после долгих разбирательств, он, в слезах, идёт и впаевает-таки эту микросхему, потому что он так знает?

Что же поделать? Я не знаю, что с такими делать. Его либо вы научите, либо жизнь. Лучше уж, может быть, кто-то решится таки открыть нормальную книгу по расту, голангу или любому другому языку, который его привлёк. Может быть кто-то тряхнёт стариной и возьмётся за изучение чего-то обстоятельно и хорошо, чтобы можно было быть профессионалом. Что же, если это произошло с этой статьи хотя бы один раз, то я буду считать, что всё было не зря.

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

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

Вижу отсылку к моему комментарию. При этом же написали


что имеет значение только цель и стратегия ее достижения.

у предприятия цель — получение прибыли, при чём с максимальной выгодой и стабильной во времени. На микроконтроллере получается дешевле для производителя, но не всегда для потребителя.


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


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

Если вы постулируете всеблагость подхода "цель оправдывает средства" то не должны жаловаться если вашу квартиру взломают и обокрадут. Человек достигал цель поправить своё материальное положение. Кратчайшим и самым технологичным путём.

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

Добиваются успехов, извините? Откуда?

Я себе бизнес на этих людях делаю. Мне вообще всё радостно. Моя компания занимается IT консультированием. Мы приходим, и разбираем приложения, которые плавят сервера, переписывая их на голанге, и запуская в 10% мощности. У меня есть дюжина старых бородатых дядек из России и Белорусии, которые могут заревёрсить код практически на любом языке. Но в основном это либо лаварельчик, либо нодик.

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

У нас была команда из [сынков директора|индусов|местных|вообще непонятно кого] они обещали за год написать [Примочку для ЦРМ|плагин|портал|бэкенд]. Писали последние два года, там куча логики, куча всего, но мы не смогли это запустить. Вот, у нас всё на AWS вертится, не могли бы вы помочь запустить.

Берёшь, пересобираешь это добро, получаешь на лапу хорошую сумму и радуешься жизни.

Только правило твёрдое:

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

Это касается даже босса, который ничего кроме двойного щелчка мыши в своей жизни не знает.

Если ваше ПО собирается только с костылями, и для его запуска нужна специальная процедура, то скорее всего оно написано через жопу. Тогда у меня есть работа.

А работы у меня много, я не жалуюсь.

Я себе бизнес на этих людях делаю. Мне вообще всё радостно. Моя компания занимается IT консультированием. Мы приходим, и разбираем приложения, которые плавят сервера, переписывая их на голанге, и запуская в 10% мощности. 

Вы ведь понимаете, что у вас неслабая такая ошибка выборки при работе с чужим кодом? Нормальный софт на Python / NodeJS, вас просто не позовут исправлять. Не как что-то плохое, я и сам люблю с legacy копаться, потому что за него платят больше.

Вы так мой поинт и не поняли, к сожалению. Или предпочли сделать вид, что не поняли.

достаточно времени чтобы во всём этом разбираться. Но при этом - у нас достаточно времени на всё остальное.

"всем в этом" - в чем? "на все остальное" - на что? Почему вы подменяете "выбирать, на что тратить свое время" своим "отказываться от познания"?

Я умею водить машину с ручной коробкой с правым и левым рулём. Я всё ещё знаю как работает манифолд и что такое карбюратор.

Круто, а вертолетом управлять можете? Двигатель его починить? А операцию на сердце проведете?

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

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

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

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

Этого можно избежать если человек осознает, что работает с ограничениями и понимает, почему он использует тот иной инструмент (а не в стиле "я умею так и до этого все было нормально, значит не чего больше знать не надо"), и, желательно, оценивал возможные риски - это, как понимаю, вы описали в своих комментариях.
Но тут чаще всего и возникает проблема, которую автор возвел в ранг "религии" (да, не спорю, очень экспрессивное сравнение). Люди, нередко, отказываются подходить к задаче комплексно - сейчас работает и этого достаточно, а после нас хоть...
"Суть в том, что ценность таких знаний упала практически до нуля" - вот тут и происходит подмена понятий - знать ВСЕ не возможно и не нужно, а вот понимать структуру в которое ты с встраиваешь свое решение, тут питонисту вполне может помочь хотя бы общее представление об ассемблере... и да это потребует временных затрат, которые в будущем окупятся с лихвой.
И сейчас это проблема любой области - в том же промышленном проектирование решение тенятся из одного проекта в другой и на вопрос "почему так?", обычно слышишь, "а так всегда делали", а потом потом проваливается фундамент под оборудование, потому что оказывается не учли состав почв, а в другом заводе все норм.

UFO just landed and posted this here

Это не волевой и осмысленный поступок. Они вырастают в плотном потоке инфомусора из за чего не могут сформировать мышление так, как это повезло нам.

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

А тут мы кормим целое поколение инфомусором, пытаем их непомерным стрессом в школе и получаем поколение с нарушенным мышлением.

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

А в чем, собственно говоря, проблема?

В том, что вы программируете 30 лет, а я 3, но если я не знаю что-то, что знаете вы — то я тупой.

UFO just landed and posted this here

Отличный гуманитарный коммент. Увы, не могу ныне поставить лайк в силу космических причин. Вставлю пять копеек. Отношения к работе недостаточно. Чтобы работа получилась хорошо, надо еще и быть умным. Последнее понятие тоже градиентно, и много ситуаций когда самые умные скажут - "эту работу не надо делать вообще". ;)

За статью лайк, и вопрос поднят очень важный. Каждый инструмент должен решать какую-то задачу, не важно, новый ли это язык, фремворк, паттерн и так далее. И бывает очень полезно спросить кандидата на эту тему, вроде: "А почему vue? Почему не другой фреймворк или vanilla?", или "почему Go, а не, например, NodeJS/Java/Python?". Я таким и в обычной жизни пользуюсь - вроде "так вот ты говоришь, что человек_нейм плохой, а почему?". И если дальше следуют аргументы, возможно жизненный опыт - то значит человек знает, какие проблемы решает инструмент, значит он может его верно применять. Значит, что он способен построить логическую цепочку. Но зачастую слышу ответ в стиле: "это модно", "так все делают", и самый бронебойный: "это же очевидно!". Это значит человек просто транслирует мнение, услышанное где-то, не знает реального целеполагания инструмента, а значит далеко не факт, что сможет его верно применять.

Но зачастую слышу ответ в стиле: "это модно", "так все делают"

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

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

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

грустно это всё.

Пишите, будет интересно. Вот вам инвайт - потратье его на эти статьи. Только чтоб с мясом, обстоятельно и понятно. Хабр будет торт.

с мясом, примерами и оптимизациями :)

Нам в провинциальном ВУЗе более-менее рассказывали про индексы, ключевые поля, организации записей в БД и всё такое. Только базовые вещи, конечно, но всё же рассказывали. Хотя и факультет был физическим, что ещё больше сбивает с толку. Тут, наверное, можно переделать старый анекдот:

Не, дядь, вы не поняли. Я не настоящий программист, я просто программы пишу.

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

Занятное чтиво. Сами виноваты, как говорится. Бизнес решил резко опускать планку, потому что инженеров стало нужно МНОГО! Еще придет время подсчета TCO для инженеров, делайте скриншот :)

Хорошо хоть LLM позволят стать крутым еще круче, а бездарям еще ненужнее. Умные организации будут увольнять в ближайшие 5 лет.

А насчет ассемблера и прочего, я думаю что мысль можно сформулировать проще: программисты больше не хотят гордиться своей работой; как говорится (из трамвая в NYC): Why IT? Money!

Все, кто здесь «гундит» пришел в IT, когда владельцы пирожковых зарабатывали существенно больше программистов. Как говорится, не за бабки :)

Тут как раз можно уже говорить, что пора перестать превращать свою жизнь в религию. Мы начинаем винить всё и вся вокруг себя, говоря что справится с этим не сможем. Дикие перепады на рынке труда! Бууу! Плохой Бог Трудовик. Всех будут увольнять потому что ИИ! Бууу! Плохой бог ЧатГПТ.

А всякие предприниматели в такое время бегают с горящими глазами и приговаривают "Наконец-то, изменения на рынке! Деньги!"

Вы так все к религии сведете. Я с двух сторон смотрю. И не вижу вообще религии вокруг. Кажется, Вы смакуете идею, которая дает Вам восторг. Знаете, в районе лет 20 мне в голову пришла мысль в духе «завтра будет завтра», так я пол дня писал кипятком. Еще бы и на хабр написал бы. Не кормите своего бога внутри :)

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

Ну знаете, такая она суть социума. Мы же не про Ницше тут…

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

А как так получилось, что вы находитесь в пустыне без воды? Люди совершают непоправимые ошибки. Не умение их предвидеть - это проблема.

А как так получилось, что вы в Турции, а там землетрясение? Ну камон. Вселенной срать на нас и наши планы временами. Не лезьте в бутылку.

Я не призываю быть фаталистом никого, но думать, что мы управляем всем и как supermassive blackhole пространство гнем, по меньшей мере, неразумно :)

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

Дискуссия перестала быть томной. В этой системе координат не вижу пространства для обсуждения.

А когда вы знаете асм хотя бы пары процессоров, вы понимаете, как они работают. Вы будете уважать менеджер памяти. Вы не будете создавать массивы по 10 000 элементов в гигабайт каждый. Ваши приложения не будут пухнуть как на дрожжах, потому что вы следуете какому-то видео ютубчика какого-то индуса, который сказал, что надо загрузить 300 мегабайт ассетов в вашу программулину, которая показывает текущее время на андроиде.

А знание асм как-то повлияет на 300 мегабайт ассетов?

Вопрос со звездочкой: Можно ли избежать загрузки 300 мб ассетов если не знаешь асм?

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

Во-вторых, когда понимаешь что 300 МБ ассетов - это дофига, то уже сможешь разобраться что происходит и понять - реально ли все ассеты нужны?

Во-первых может прийти понимание, что 300 мегабайт ассетов - это как-то дофига. 

А может и не прийти. Может так же прийти если твой единственный ассемблер это ассемблер из игры Shenzhen IO или вообще никакой.

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

А почему 300 Мб - это много? Для какой-нибудь игрушки - это тьфу
Может оно просто кажется много, ибо еще помнятся времена когда и жесткие диски были меньше этого не говоря про оперативку

Потому что речь шла о отображении времени. А в 300 Мб можно 3D модель дедушкиных часов засунуть с анимацией маятника и хода часов. Можно, но зачем?

когда понимаешь что 300 МБ ассетов - это дофига,

Эти 300 мб для начала кто-то сконструировал, наверное, ему они зачем-то были нужны.

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

Мне понравился тот момент с интервью. Я раньше этот кусочек читал в другом посте.

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

Вставлю свои 5 копеек в защиту религии...

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

Теперь перенесем это к современному IT. Ничтожно малая часть инженеров решает объективно сложные вызовы, где субоптимальные решения не решают проблему бизнеса в принципе. Что имею в виду, - условно, если пишешь HFT робота для примитивного межбиржевого арбитража, то самый быстрый бот делает деньги. Бот, отстающий от него на 1 наносекунду, может даже не окупить электроэнергии, не говоря уже о стоимости доступов и каналов. Там надо искать оптимальное решение, которое включает в себя софт, хард, алгоритм, а субоптимальные не стоят и цента.

А чем же занимается абсолютное большинство разработчиков, - они решают задачи, где бесконечное множество субоптимальных решений решит проблему бизнеса. Условная еще одна CRM может работать на практически любом СУБД/фреймворке/ЯП/железе, и решать поставленную задачу. И, фактически, религия дает возможность начать решать задачу мгновенно. Без нее команда может застрять в бессмыссленных спорах "какая субд лучше себя покажет в проекте на 20 пользователей".

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

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

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

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

Умный не тот, кто знает многое, а тот, кто знает нужное!

А как же вера в ООП — с высшей мантрой "полиморфизм, инкапсуляция, наследование" и священным текстом "Design Patterns"? Ведь именно с этого всё началось.


P.S. Прекрасная статья.

Вы тоже помните этот дикий синхронный вой начала 90-х о приходе ООП - нового мессии, который решит все проблемы программирования? Эти непрерывные славословия, это постоянное "фу" на все остальные подходы?

Там еще CASE был рядом, который строился по классам и обратно.

Борьба с мракобесием основывается на использовании рационального мышления и, в частности, логики, на культуре именования, на культуре ведения мысли, на использовании фактов. Печально, что текст, направленный против мракобесия вообще и ИТ в частности, в первой половине неаккуратно работает как с понятиями, так и с фактами.

Вместо слова «религия» лучше использовать слово «секта», которое в контексте статьи подходит в широком и в узком смысле, в историческом и в современном.

Как отмечали выше другие, наклеивание ярлыка «религиозный фанатик» на всех несогласных — тоже форма сектантства.

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

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

Когда кто-то выбирает мейнстрим технологию, то обычно ссылается на ее авторитетность в глазах международного сообщества, намекая на то, что миллионы разработчиков не могут ошибаться. Чтобы не выглядеть идиотом, предварительно нагугливается какая-нибудь статья о том, как красиво решается подобная проблема. Собственно отсюда и идет вера в стек. А еще это приправляется вопросом: а кто это потом все поддерживать будет? Ответ будет простым: да кто угодно, кто также верит и интересуется этой же технологией. Самое главное, чтобы технология была от какой-то известной компании, а не ноунейма.

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

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

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

на этом принципе "абстракции от низлежайшего уровня" построена любая сложная система

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

База лежала долго, так как при попытке записи чего-то нового, она шерстила все миллионы предыдущих записей и сравнивала их ИДшники с ИДшником записываемого.

Можете пояснить, почему? Это какая-то специфика используемой базы данных? Разве базе много времени требуется, чтобы отыскать коллизию среди 16-байтовых (GUID'ы вроде бы как 16-байтовые последовательности) последовательностей в проиндексированном столбце, на который навешен unique или primary key?

Он написал код, котррый выгружал эти гуиды и обрабатывал его на сервере каждый раз при записи.

ОК. А что если бы он пытался сделать вставку в базу данных с ON DUPLICATE KEY UPDATE guid = guid (т.е. тупо ничего не делать)? Все равно бы тормозило?

В то время, как я помню, монгодб такого синтакса не понимала.

Наверноеж можно было. Знаете только чем мы её заменили, эту БД? Текстовыми файлами на диске. Оказалось что GREP был намного более эффективным решением.

Оказалось что GREP был намного более эффективным решением.

Так аналитика на unix-окружении всегда была самым эффективным и быстрым решением. Где-то рядом ещё sqlite находится.

А код ревью у вас бывает? Очевидно же что перебор всех строк в данной задаче - это совсем не то, что нужно

Краткое содержание статьи:
Мойте руки перед.... и зад! (и прочие труизмы)

интересно каких высших истин Вы ожидали :)

каждый день на хабре в топе очередной преисполнившийся. Уже забыли как патчить kde под bsd

Вот, не поверите, чем я щас занимаюсь.

Посмотрите комменты мои, которые заминусованные. Я тут недавно рассказывал народу о том, что меня утомил Убунта, которая засильно пыжится представить свои снапы мне в систему где от них перестают работать lsblk и тому подобные и переезжаю на фряху, как основную систему для разработки.

Вот, не поверите, чем я щас занимаюсь.
Только не говорите, что вы кеды патчите.

"Ну и что, что не знает? Хрен с ним, с этим ассемблером, кто на нём пишет?" А вот хренушки вам. На нём всё работает. А когда вы знаете асм хотя бы пары процессоров, вы понимаете, как они работают.

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

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

С учетом кучи не особо документированных оптимизаций на уровне процессорной микроархитектуры все становится совсем смешно. Если до первых пентиумов еще можно было верить в то, что CPU выполняет вот ровным счетом то и так как ты в своей assembler'ной портянке понаписал, то сейчас это ну... э... та самая "слепая вера".

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

Так вот в подавляющем большинстве случаев ответ будет обескураживающим: мысли сперва взялись, а потом уже под них психика стала подкидывать сознанию аргументацию, которое оно приняло. Вот так психика манипулирует сознанием, чтобы не дать ему себя обнаружить и познать. В этом самое главное -- мотив, т.к. ради него всё было, а содержание аргументации выполнило лишь роль ключа к замку. И потому эта аргументация образовалась довольно произвольным образом: человек поверил либо в утверждение, либо в его отрицание. Т.к. иной путь -- проверять и выяснять, т.е. исходить из начальной точки "неизвестно" или "существуют исходные варианты с таким-то способом их перечисления и разбиения". И это не путь человека, а путь разума, который может обрести достаточную мощь и силу по сравнению с человеческой психикой лишь с развитием неокортекса (т.е. около 25-28 лет), в отличие от интеллекта.

Так вот это расследование может вывести на самого себя в том смысле, что наблюдаемое поведение процессов или системы, сложившаяся ситуация -- это результат сделанного выбора из пространства вариантов. Причём, когда человек поверил, этот выбор был сделан тем, кто сформулировал утверждение и вызвал в человеке действие "верить". Ничего не напоминает? Если эти утверждения собрать в систему, то получится программа, изложенная директивным образом. Синоним директивы -- догма.

Религия состоит из догм, ритуалов и историй их раскрывающих (не должно быть табу на её исследование научно-инженерными методами). Т.е. класс объектов по своему принципиальному устройству и построению один и тот же, лишь термины, обозначающие их, различаются ввиду разных доменов. Тогда отношение между человеком, действием "верить" и религией ровно такое же, как отношение между устройством, применением программатора и программой. Опять же, по построению, принципам и эффектам (а не чьим-либо представлениям, убеждениям, ожиданиям, желаниям или восприятию: решает не человек, т.к. эта история, выбор уже произошли). А во всех случаях над этой тройкой находится тот, кто своим выбором образует из них связь как экземпляр отношения (ассоциации). В случае религии -- это церковная иерархия в лице конкретного проповедника или пастыря. В случае вычислительной системы -- это создатель программы.

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

Таким образом, лишь разум обладает свободой воли, т.е. субъектностью, и потому иногда и кое-где может что-то выбирать, вызывая, местами, требующиеся для этого действия в человеке. Относительная свобода приходит лишь с освобождением разума от оков человеческой психики: больше всего обманывает она и мозг в силу своего устройства и задач, под которые они затачивались. Хотя бы для этого стоит разбираться и проверять там, где можно либо знать, либо не знать (в противоположность верить = игнорировать само существование объекта описания, его поведение и увязывание мысленного или иного образа с ними). Т.е. чтобы совершать осознанный и свой выбор, а не чужой (особенно когда это бессознательный выбор собственной психики или человека), наивно веря при этом, что он свой (особенно потому что человеческий и на эмоциях). В этом смысле программист становится таковым лишь познав собственное мышление, его методы и причины, по которым он не может заложить их в вычислительную систему для воспроизведения (эмоции как сигналы давно уже заложены и воспроизведены в технических и вычислительных устройствах).

Вот что-то мне показалось, что в чём-то автор лукавит. "Если вы не понимаете, как работает Нода, то сядьте и разберитесь в ней." (с) Ага, и с Пайтоном так же? И с JS? И с TS? А есть ещё Java, PHP, C#, Go тот же. RDBMS - сядьте и разберитесь с Oracle/MS SQL/PostgreSQL. Изучите отличия MariaDB от MySQL. А потом разберите отличия всего это многообразия от NoSQL DBs, объектно-ориентированных БД, БД документов и иерархических БД. Чем отличается Tailwind от CSS3. Когда лучше применять React, когда Angular, а когда Vue? Для чего нужен Svelte? Нужен ли вообще $mol? Можно изучить ещё различия PHP'шных фреймворков друг от друга - Laravel, Symfony. Java'вский Spring. Занырнуть в архитектуру и особенности функционирования WordPress, Magento, Joomla, Django, Odoo, 1C, Liferay. Понять чем CMS отличаются от CRM, а всё это от ERP и BPMS.

Мне кажется, что тут зарождается (или уже родилась?) новая религия "Сядь и разберись, если не понятно". Я вас уверяю, что все, кто писал, с точки зрения автора, говно-проекты, именно так и сделали - сели и разобрались. А получилось, что получилось. Кто-то разбирается лучше, кто-то хуже. Автор может всем ответственно заявить, что он уже разобрался с Нодой? Или хотя бы хоть с чем-то разобрался до конца?

"Я знаю только то, что ничего не знаю, но другие не знают и этого" (с) Сократ

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

Говорить кому-то, что ты - сын божества, - удивительно удобно.

Вообще-то не совсем. Если вы почитаете «Золотую ветвь: Исследование магии и религии» Фрэзера (имхо, книга № 1 для по данной теме), то увидите, что божественных посланников периодически пускали на фарш просто за то, что дождик, например, вовремя не пошел.

Вера и знания - две противоположности.

Вера позволяет экономить время и уклониться от ответственности за свои действия.

Знания позволяют объяснить (оправдать ) свои действия, но требуют умственных усилий и время находить причинно-следственные связи.

Каждый сам решает, что ему выбрать.

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

  1. Похожий на 95% текст появляется на Хабре раз в год. Я, читая думал, что это кто то залил еще один перевод.

  2. Евангелист жалуется на евангелистов, спешите видеть.

  3. Это все кукареки без подкрепления. Пусть и направленный против кукареков без подкрепления.

Да просто многие уже привыкли к тому, что разбираться должен devops ….

Даже если вы читаете абсолютно бесполезную книгу о том, как ловить котиков в капканы, вы от этого не станете глупее.

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

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

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

>>Если постоянно потреблять бесполезную информацию в больших количествах, то она может со временем вытеснить что-то полезное

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

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

А для чего нужны эти быстро создаваемые и быстро выкидываемые на свалку программы? ИМХО - в первую очередь ради корпоративных менеджеров. Создается проект, выбиваются бюджеты. Потом наверх идет красивый отчет, дальше кто-то получает приличный годовой бонус, а возможно и повышение. Что будет через год-другой с этим программно-аппаратным комплексом - nobody cares.

А разработчики и ихние технологии в этом процессе - всего лишь необходимый для пьесы реквизит. См. "Бредовая работа" Дэвида Гребера.

Вместо этого мы говорим, что "образование сейчас никому не нужно", "диплом бесполезен" и другую подобную ерунду.

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

Нет ничего ужасного в том, чтобы учиться чему-то новому.

Учиться чему-то новому - это прекрасно. Ужасно то, что жизнь наша конечна, как и когнитивный ресурс, а потому выучить мы можем ограниченное количество знаний. Лично я для себя выбрал вместо Informix выучить поглубже PostgreSQL.

Луддит

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

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

Необразованный

Про историю и в частности историю религии написана полная ахинея. Приведу только несколько примеров.

Греки и Римляне пришли к мысли о необходимости строительства дорог, школ и храмов в качестве главной цели.

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

Мы использовали религию, чтобы объяснить то, чего не могли понять.

Нет. Религия не используется для этого. Основная задача религии - снижение войск для контроля территориии.

Но чем больше мы узнавали, тем меньше нам требовалось Испанская Инквизиция.

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

Бредит

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

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

Даже если вы читаете абсолютно бесполезную книгу о том, как ловить котиков в капканы, вы от этого не станете глупее.

Станете.

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

Не казалось. Не помогла. Видно.

Не существует плохих занятий. Не существует плохих книг.

Существует.

Никогда не говорите, что какой-то язык лучше, чем какой-то другой язык.

C++ умеет гораздо больше и более выразителен, чем TypeScript, Rust, JAVA, например. Запрещаешь говорить об этом.

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

Ну-ка, вмемогущий, сделай так, чтобы HTML-вёрстка сайтов была не тестовой, а передевалась с сервера в виде бинарного объекта, и воспринималась браузером. Или, вот, в TS нет нормальной типизации и перегрузки. Пойдёшь пилить, потратишь бесконечность времени. Ах, ну, да, я же забыл: "Не существует плохих занятий".

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

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

Помимо отмеченных вами закономерностей существует много других, вами незамеченных.

Оптимальное разделение труда не нужно целеполагающей системе. А сложность решений, распространяющаяся очень широко, не укладывающаяся в ваш наивный шаблон "только инфраструктура", ведёт к востребованности умных на тех местах, где посажены макаки. Ну и в таком духе можно ещё продолжать, но это я предлагаю сделать вам самостоятельно в качестве д.з.

Что то автор над питоном слабо надругался. Подкину дровишек:
— Нет языка лучше Питона и Гвидо ван Россум — пророк его.
UFO just landed and posted this here

Мозг потребляет много энергии. Экономить энергию — эволюционно выгодная стратегия. Разбираться во всём — требует много работы мозга. Там на разные вопросы могут появится разные ответы. Религиозная вера даёт на все вопросы один и тот же ответ и, следовательно, требует меньше работы мозга. Следовательно тратится меньше энергии. Следовательно, это эволюционно выгодная стратегия.

Нюанс в том, что человек, объясняющий некоторые вещи через религию, будет выполнять неверные действия, которые невыгодны с точки зрения эволюции. Бог меня бережет, поэтому можно шагнуть в пропасть - упал и разбился. Докинз много писал на тему обоснования религий с точки зрения эволюции. Основной вывод - религия это вирусоподобный кусок информации, который подходит к некоторым мозгам как ключ к замку.

Нюанс в том, что человек, объясняющий некоторые вещи через религию, будет выполнять неверные действия, которые невыгодны с точки зрения эволюции. Бог меня бережет, поэтому можно шагнуть в пропасть - упал и разбился

Не понял. Можно было бы подумать (как это ни звучит запредельно цинично), что с точки зрения эволюции, как бы это сказать, нужно иногда обрывать ветки. Или Докинз, как раз, говорит об этом? Объясните, пожалуйста.

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

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

Нюанс в том, что человек, объясняющий некоторые вещи через религию, будет выполнять неверные действия, которые невыгодны с точки зрения эволюции

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

Забавный факт, атеисты в какой-то степени тоже религиозные фанатики. Верующие свято верят в условного Бога, но не могут доказать его существование. Атеисты верят в отсутствие бога, но не могут доказать его отсутствие. (Я знаю, что бремя доказательства лежит на том кто делает заявление)

Атеисты верят в отсутствие бога,

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

но не могут доказать его отсутствие

Доказать отсутствие чего-либо практически невозможно. Потому что оппонент всегда может придумать такое место, где не искали.

Таким образом:

Забавный факт, атеисты в какой-то степени тоже религиозные фанатики

не забавный и не факт

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

Атеизм – это отрицание существования Бога или богов.

Вики говорит:


Не следует путать с Антитеизмом

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

Спасибо, не знал. Тогда приношу свои извинения.

Ничего страшного, их сложно не спутать )
Собственно, если бы, когда-то каджит не полез уточнять термины в запале спора — тоже не знал бы.

Согласен, Антитеизмом, Атеизм, Агностицизм, крайне похожие термины, но суть все же разная.

Атеизм не отрицает существовение богов, они ему просто не нужны.

Это просто опять Оккам бритвочкой побаловался.

утверждение о том, что религия эволюционно не выгодна, противоречит реальности и должна быть отброшена.

Люди заражаются вирусом гриппа и носят в себе паразитов. Значит ли это что болеть гриппом и иметь паразитов выгодно для человека с эволюционной точки зрения?

Это другое. Вирусы и паразиты — отдельные организмы, которые так же эволюционируют с целью обойти защиту от них. У людей нет эволюционного варианта избавиться от них.

С религиями же напротив, человек может выбрать любую или отказаться от всех. Причём, это не вчера началось — Сократа осудили за антирелигиозную пропаганду. 2500 лет назад, примерно. Таким образом, если бы строго атеистическое общество имело бы преимущество перед религиозными обществами, оно бы появилось и вытеснило бы религиозные общества

В отсутствие давления естественного отбора — не вытеснит.
Ну и, в целом, эти процессы занимают несколько больше времени. На порядки.

В отсутствие давления естественного отбора — не вытеснит.

То есть как так "в отсутствие"? То есть, по вашему, общества не объединяются по принципу религии и не конкурируют друг с другом?

Ну и, в целом, эти процессы занимают несколько больше времени. На порядки.

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

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


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

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

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

Это относится к эволюции религии, а не эволюции человека.
И никак не коррелирует с этим выражением:


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

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


Вы же приводите в пример типичную войну паразитов как обоснование отсутствия иммунитета.

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

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

Ещё вспомнил: однажды у меня код работал в 2.5 раза медленнее из-за ложного разделения. Это когда разные ядра процессора пишут информацию в разные переменные, но эти переменные находятся в одной строке кэш-памяти. Так что о кэш-памяти программистам тоже неплохо бы знать.

А ещё у нас в графическом редакторе есть код, который написан в двух вариантах потому, что у Arm и Intel разные протоколы кэш-когерентности, и код затачивался под каждый из них.

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

А что не так? Мелкие оптимизации зачастую плохо портируются между процессорами от разных вендоров, а тут целые разные архитектуры.

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

Ну, такое... Да, университетское образование изначально заточено под понимание принципов работы вселенной.

Но тут же вопрос о ремесленниках (кто знает, как делать) и мастерах (кто понимает, почему именно так надо).

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

А философия – да. Чувствуется. Без сарказма.

Как по мне - краткое содержание статьи это негодование автора о том, что софт стал раздут а программисты непрофессиональны. Конечно, всё можно сделать качественно и быстро работающим, написать на С/С++ , заниматься годами отладкой и нагрузочным тестированием, вопрос, сколько времени это займёт? И нужен будет ли этот софт спустя это потраченное время? Софт нужен здесь и сейчас, софт вокруг нас. Терминалы электронных очередей, онлайн банкинг, такси, умный дом, наукоемкий софт на gpu и тд. Сфера информационных технологий развивается очень стремительно.То что нельзя было представить в 2005 , сейчас можно сделать за неделю. Просто оптимизации производительности и закрытие тех долга должны решаться по мере реальной необходимости и окупаемости софта.

Суть поста не в том, что всё можно сделать на плюсах и будет всё летать. Суть в том, что разработчики выбирают какую-то технологию не разбираясь в ней, а просто потому что(подчеркнуть нужное): так повелось, так сказали в каком-то гайде, тот авторитетный человек назвал технологию нужной. А последствия того, что человек не изучает то, с чем он работает могут быть ужасающими. В статье отличный пример с монгой, когда человек прогоняет всё данные через клиент. Если бы человек разобрался в своём яп и монге, произошло бы такое? Нет. И да, софт булет здесь и сейчас, а потом бизнес будет разгребать последствия. Другой пример, сейчас всех джунов заставляют учить js event loop, и они зубрят, но понимания что и как у них не появляется, а про конструкцию сет тайм-аут с нулевой задержкой я давно не слышал, хотя, при тяжёлых действиях на фронте, она может ускорить рендер. Такая же ситуация и с алгоритмами, их возвели в культ, но того, что за ними стоит никто толком не учит. На фронте вообще ужасная ситуация, люди тащат с npm даже самые мелкие библиотеки. Имхо, но суть статьи в том, что если что-то изучаешь, то копни чуть глубже, не до самого ядра планеты, а чуть-чуть, если что-то собираешься сделать, то подумай перед этим, ты разработчик, и тебе платят не за следование религиозным догмам, а за твой мозг в первую очередь. Ты ты можешь решить задачу сейчас, не подумав, с наскока, выбрав, только те технологии, которые знаешь, даже если они совсем не подходят, и бизнес будет благодарен тебе, сегодня, а завтра проклянет, когда весь проект начнёт сыпаться. И да, предыдущее предложение не значит, что нужно под каждый проект учить новые технологии и тратить на это время и деньги бизнеса, определить где это целесообразно, а где нет, тоже входит в зону ответственности разработчика.

Программистом я в последний раз был 15 лет назад, а с тех пор геймдизайнер, но у нас всё так же. Абсолютно солидарен.

Автор похоже прочитал "Князь света" и вдохновился) Лично я не вижу в этом ничего плохого. Послушники методично фиксят баги и двигают на два пикселя вправо, пока Просвященные занимаются своими делами. Но политическая иерархия мне не нравится, я больше за децентрализацию.

Наука - тоже религия, со своими догматами (логика), разве что логика может обосновать саму себя. А так наука отвечает на тот же вопрос, что и другая религия - че у вас тут происходит? Один из постулатов - причинность. А дальше уже трактовка текстов различных Святил науки (святых). Чем Эйншейн не святой?

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

А так - это уже третья статья с +100 голосов о недостатке у коллег критического мышления. Чё происходит?

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

Этот текст был написан человеческим существом, которое пропустило его через ChatGPT 4 с целью поиска ошибок и недочётов.

Автор призывает разбираться на низком уровне, но использует ChatGPT вместо того, чтобы разобраться в русском языке...Сильно сильно)

Один раз я был на интервью в UMG. Это такие ребята, которые держат за яйца всю музыкальную индустрию в США. Они задали мне вопрос:

— У вас перестал работать сервер на кубере, лежит под нагрузкой в 100%. Что будете делать?

— Этот сервер работал вчера?

— Да.

— Нагрузка была нормальной?

— Да.

— Не буду ничего трогать, пока не пойму, что сломалось.

Вот эту историю слово в слово кто только не пересказывал от своего лица...

Я её и пересказываю. Второй раз уже.

Многие самоучки начинают писать свои проекты на NestJS после просмотра 20-минутных видеороликов на YouTube. Они действительно не имеют понятия о том, что такое HashMap, хотя и могут болтать о хэшах на собеседовании, как попугаи.

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

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

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

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

С доводом про яму согласен.

Вместо этого мы говорим, что "образование сейчас никому не нужно", "диплом бесполезен" и другую подобную ерунду.

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

Теперь статьи преобразуем в серию вопросов.

  • Почему группа программистов создает в СМИ массовое мнение, что фундаментальное образование бесполезно?

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

  • Почему экономика произвела такой перекос в сторону дешевых рабочих кадров?

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

  • Почему мы имеем сейчас ИТ, а не фундаментальные компьютерные науки?

Вопрос надо задать в РАН и конкретно почему принято направление именно использовать MS-DOS и Widnows, а не продолжать разарбатывать свои инструмены. Сейчас направление резко поменяли, но все равно непонятно как разделить всех по корзинкам и нужно ли знание микрокода процессора дизайнеру или верстальщику.

  • Почему группа программистов создает в СМИ массовое мнение, что фундаментальное образование бесполезно?

Сама по себе конструкция "народная группа создает в СМИ мнение", говорит о том, что автор не читал или не понял "Капитализм наблюдения" Ш.Зубофф. Уже с конца нулевых СМИ стали винтиком в бизнесе цифровых олигополий и народ не только не имее отношения к СМИ, но и напротив все срежессировано против него. Причем это не теория заговора, а прямо доказано Шошаной по принципу "если кому-то это приносит прибыль в 300%, то это становится реальным с соответствующей скоростью".

Статья хорошая, т.к. поднимает правильные вопросы и в хорошем ключе, но выводы ошибочные.

  1. "И со временем мы поняли, что для достижения целей нам не нужна религия". ...Иначе: "Недавно мы поняли, что для достижения целей нам нужна не только религия, но и религиозное государство". См: капитализм наблюдения. Цели то мы имеем, но в реальности без защиты нас теистическим государством целей достигают только паразиты во власти.

  2. Нет пока никакого "мы" столь часто упоминаемого в статье. Общество антагонистически разделено. Не на классы как писал Маркс, но на паразитов и их хозяев/жертв.

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

А что с сектой пробельщиков делать, который табы не используют?

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

Ох :) Какой нервный текст с нотками самолюбования и графомании ;)

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

С «молодежью» нужно уметь работать. И нет, сказать "учитесь" и "разберитесь" — не выйдет. Нужно заинтересовать, а ныть про времена, нравы и религию хз зачем. Как это поможет?

Аааабсолютно не согласен.

Нужно заинтересовать?

Ха! Не смешите моего пузатого кота. Ему и так сложно валяться по полу.

Тут всё очень просто. Либо ты берёшь, и учишься, выясняешь, расследуешь и разбираешься и прорываешься вверх, либо ты сидишь и строчишь статьи на Хабре о том, как войти в айти.

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

Но когда тридцатилетняя дурында приходит ко мне и начинает спрашивать "Ну ты же в Айти работаешь, у тебя есть кто-то, кто нанимает?" хочется опустить руки. Чувак просидел штаны на курсе по питону пару лет назад, ничерта не понял, и с тех пор сидит и строчит объявы на indeed.com и glassdoor.com. Ну да, так его и наняли. За эти два года он нифига не потратил время на изучение питона, или совершенствование навыков, но с удовольствием тратился на то, чтобы ему получше резюме переписывали.

Тут как бы всё просто. Ты либо заинтересован, либо тебя жизнь быстро научит.

Хорошо, вы помните откуда взялась ваша мотивация? Не из вакуума же? У вас были родители, окружение, общество, государство — они прививали вам определённые ценности. Быть умным — котировалось, а сейчас больше котируется быть быстрым, предприимчивым и богатым. Если хочется развернуть эту реку вспять, то нужно снова раскручивать «культ сильного ума». Как? Хз. Но точно не приказами "учитесь и разбирайтесь".

Articles