Comments 72
Но если честно, ключевая перемена — в самой коммуникации. Теперь разработчик может задать вопрос в любом комьюнити и получить ответ за несколько минут. И это не поверхностная помощь: иногда там такие рассуждения, что диву даёшься.
Статья-перевод? :)))
Потому что я, простите, с трудом представляю какое-то российское "любое программистское комьюнити" с быстрым адекватным ответом на вопросы.
лет 5 назад я проходил бесплатные курсы от Rolling Scope, и вот там было долгое время выстроено добротное комьюнити, многие товарищи после прохождения курсов задерживались в чатах платформы, даже те, кто не переходили в разряд менторов любили часами разговаривать с молодыми вкатунами на разные темы, ну и в чатах ответы на вопросы редкостью не были. Как дела сейчас там обстоят я не знаю, но скорее всего кардинально ничего не изменилось. И это не единственное такое комьюнити, которое я встречал, просто для меня конкретно это оставило более яркие воспоминания
Зря вы так. Чаты в тг по Django/aiogram точно живы и с хорошим активом, по крайнем мере были с пару лет назад. По наблюдениям сейчас ничего не изменилось. Другое дело что последнее время проще спросить нейронку и получить ответ за пару секунд, а не минут. И как правило ничуть не хуже, а иногда даже лучше. Ждать пару часов, как на stack overflow, уже не приходится
Читаю вас и комментатора выше и думаю - да, мимо меня как-то прошло, у меня не было таких групп... Впрочем, и начинал я тоже в районе 2003...
Насчет "спросить нейронку" - это да, сейчас основной вспомогательный инструмент.
Я сталкивался с тем, что на мой вопрос либо хохмят, либо предлагают платную консультацию. Вопросы я конечно не джунские задаю. Может бы вы знаете комьюнити где сеньоры сидят?
Нет, просто это статья от ИИ 😁
Если оглянуться назад,
то там будет почему-то монитор с кодом /s
Простите, не удержался
Почему, почему. Да потому что сейчас аппаратных ресурсов до и больше.
Посмотрел бы я на этих молодых разработчиков за компьютером с 640 килобайтами оперативки, 40 мегабайтами диска и одним медленным ядром без графического интерфейса. Ну и без интернета, вся документация только на бумаге.
А то, что описано в статье - это не разработка, как таковая, а сборка из готовых модулей. Как только не будет модуля с нужным функционалом или в одном из этих модулей возникнет ошибка, вот тут то и начнётся собственно разработка.
вы помните, сколько времени у вас ушло, чтобы впервые поднять собственноручно собранный TCP-сервер
Да, собственно, немного. Простейший TCP-сервер на C под DOS выглядит так же, как пример на питоне в статье. Проблема начинается потом, когда надо перейти от цикла ожидания к асинхронной работе и параллельным процессам обработки запросов.
Посмотрел бы я на этих молодых разработчиков за компьютером с 640 килобайтами оперативки, 40 мегабайтами диска и одним медленным ядром без графического интерфейса.
Моим первым персональным компьютером в 1988 году был ДВК (разработан на основе американского PDP-11) с 64 килобайтами оперативной памяти. Жесткого диска не было, только два дисковода для 5-дюймовых дисков.
И в этих условиях мы с коллегой написали набор программ для управления экспериментальной установкой для радиозмерений, численной обработки результатов эксперимента и выдачи графиков на печать.
Сначала писали на Бейсике и Паскале, а в 1990 году у нас появился компилятор языка Си. Он был многопроходным, потому что не помещался целиком в оперативной памяти.
А то, что описано в статье - это не разработка, как таковая, а сборка из готовых модулей. Как только не будет модуля с нужным функционалом или в одном из этих модулей возникнет ошибка, вот тут то и начнётся собственно разработка.
Да именно таким и является современное высокоуровневое программирование. Фреймворк на фреймворке, тонна готовых инструментов вместо ручных реализаций. Но так ли это плохо? Нужно ли переизобретать postgres, Kafka и инструменты работы с ними, если всё уже было написано?
Современная разработка как раз славится своей компановкой и структурой, а не тем, что надо текст на клавиатуре набрать и не влететь в синтаксическую ошибку
Ну ведь почему-то после постгри появились десятки новых СУБД, и многие зачем-то берут условный кликхаус, или даже khepri, поверх ra. Постгри не справляется с консенсусом в кластере под нагрузкой, а кафка — слишком громоздкое для 99% случаев решение, даже rabbitmq часто — значительный оверкил.
Да именно таким и является современное высокоуровневое программирование. Фреймворк на фреймворке, тонна готовых инструментов вместо ручных реализаций. Но так ли это плохо? Нужно ли переизобретать postgres, Kafka и инструменты работы с ними, если всё уже было написано?
А это зависит от того, с какой стороны забора вы находитесь. Текущая ситуация в некоторых компаниях сейчас как раз располагает к тому, что бы были люди, которые смогут это сделать.
Другая проблема, это те самые фреймворки. Как написано в одной старой книге, которая судя по статье устарела ... "Тебе нужен банан, вместо этого ты получаешь джунгли, стаю обезьян, и одна из них держит банан"
Да, и "специалисты" не то, что бы сильно вникают, давай везде Kafka и PG с редисом втыкать.
Если на расте не писал, за вечер можно только навайбкодить прототип, но вряд ли честно написать с нуля - утонешь в ошибках борроу чеккера. )
Даже пример простого многопоточного кода на Rust — вещь, которую молодой разработчик сегодня спокойно скомпилирует в браузере на любом онлайн-песочнице, а лет десять назад это бы выглядело как мини-квест
Это какой-то тонкий тролинг? Онлайн компиляция rust на их офсайте доступна с 14-го года минимум. Допустим tokio еще как такового не было, но докер и кубер тогда уже были. Что за странные утверждения в статье? Это не скачок в производительности разработчиков, это взросление технологий как таковых.
Заголовок стремный кликбейт, первые компиляторы высокоуровнего кода с этой точки зрения тоже сделали "молодых разработчиков" бородатых годов способными "на то что раньше казалось недостижимым", но причем тут молодые разработчики-то?
Один молодой разработчик способен создать систему, которая обслуживает тысячи пользователей.
А теперь спросите этого молодого разработчика, насколько эффективна созданная им система... И в большинстве случаев вы не сможете получить адекватный ответ.
В том-то и проблема, что все умения наиболее распространённого в России типажа "молодого разработчика" сводятся к бездумной (как научили, так и клепаем) сборке кое-как работающих систем из готовых кубиков-библиотек. Без какого-либо понимания и того, насколько эти библиотеки эффективны в данном конкретном случае, и того, насколько алгоритмически эффективны написанные им самим прокладки между библиотеками.
И написанная таким разработчиком система способна обслуживать тысячи пользователей не потому, что "молодой разработчик" написал качественный код, а потому, что высокопроизводительное железо способно [частично] замаскировать проблемы качества кода.
"скомпилирует". "в браузере".
что я сейчас прочитал? выполнять там же будет?
многопоточность вряд ли стала проще, а вот инструменты — намного
сами себе противоречите - толку от того что он "сконпелирует" нет.
открывает документацию, смотрит практический пример в репозитории и уже через пару часов экспериментирует с рабочими конструкциями.
потом приносит на прод буллшит от ИИ, он там не работает и он увольняется? потому что токсики насовали за воротник?
Пример простого многопоточного кода, который буквально ничего не делает, — на любом языке — каждый запросто мог написать и 50 лет назад, позволяло бы железо.
сейчас молодой разработчик за вечер собирает кластер на Kubernetes
Мама дорогая. В трех регионах, я надеюсь? Молодого разработчика никто не пустит ничего собирать в мало-мальски серьезной конторе — по той простой причине, что он выкатит кривой кластер на кубере для каждого магазина мягкой игрушки в Бирюлёво.
Молодому разработчику проще не стало, потому что пройдет полгода, и его выгонят за какой-нибудь очередной косяк ллмки, а старый разработчик докурит трубку и перее^W переделает все по-своему.
Просто для справки, борланды придумали так называемый RAD 35 лет назад. Вкатиться в Delphi можно было за день, кликами мышкой вообще фактически без написания кода можно было создать работающий блокнот, или калькулятор. Выжили в индустрии только те, кто в какой-то момент перестал кликать мышкой и стал писать код руками.
сервисы, которые по масштабам и сложности раньше потянули бы только ветераны с десятилетним стажем?
Но есть один нюанс. MVP ращраба старой школы это почти продукт, в который можно добавлять фичи и не скатиться в набор костылей и подпорок
А сейчас молодой разработчик за вечер собирает кластер на Kubernetes, хотя ещё полгода назад только учил основы программирования. Он не добывает инструменты — он их просто включает.
Ну да. Мы сначала построили инфраструктурный ад, а теперь восхищаемся, что наконец-то его худо-бедно автоматизировали.
Иногда мне даже хочется спросить читателя: а вы помните, сколько времени у вас ушло, чтобы впервые поднять собственноручно собранный TCP-сервер?
На том же уровне - ровно столько же
Я 20 лет назад делал самодельный HTTP-сервер на Delphi, который проверял ЭЦП на входящих документах и складывал их по папочкам. Помнится, сам HTTP-сервер делался путём кидания компоненты IdHTTPServer на форму и настройки её параметров (порт, таймаут). А установка на сервере состояла в копировании исполняемого файла в нужную папку и единоразового запуска с параметром /install
Но если честно, ключевая перемена — в самой коммуникации. Теперь разработчик может задать вопрос в любом комьюнити и получить ответ за несколько минут. И это не поверхностная помощь: иногда там такие рассуждения, что диву даёшься. И что интересно: эти обсуждения заметно уплотняют путь к пониманию. Хочу спросить вас: когда вы в последний раз тратили несколько дней на поиски решения проблемы? Уверен, уже давно нет.
А ещё важно, что молодым не нужно преодолевать психологический барьер — им нормально писать в открытые сообщества, делиться прототипами, спрашивать мнение. Они выросли в этом.
То чувство когда я модерировал топики на программерском форуме для новичков и студентов в начале нулевых, где новички делали именно то самое о чем Вы написали.
Статья не о чем. Молодые разрабы не могут удержать в голове простейшую бизнес логику. Опыта построения архитектуры нет от слова совсем. А благодаря ИИ даже не знают, что они написали, поскольку просто не читают и не проверяют сгенерированный код.
А почему в РФ проблема с местом в ЦОД?
Мб как раз потом что такие вот разрабы пишут? Ой прототип на rust или ruby. Два года разработки и вот мы попадаем в нагрузку, где оказывается нам нужен был иной стек. Он быстрее и дешевле по ресурсам.
А, что ваше приложение жрет ресурсы как не в себя? Ну закиньте ещё одну all-flash схд и Блейд. А что? Место в ЦОДе кончилось?
Ну и вишенкой на тортик: svace и ещё пол года работы верхом.
Ой прототип на rust или ruby. Два года разработки и вот мы попадаем в нагрузку, где оказывается нам нужен был иной стек. Он быстрее и дешевле по ресурсам.
Ой, да это же вы твиттер в конце нулевых описали! Наверняка, не взлетел.
И сколько стоила оптимизации/изменение кода твичу?)
Понятия не имею, но вроде, они не разорились, а продались в результате бешеному понторезу за 40 с лишним ярдов, так что по факту оказалось, что подход прибыльный.
Ну воду из ванной тоже продавали стримеры, маржа ещё выше. А есть и иные прибыльные подходы. Вот только прибыльный не значит правильный. А главное не факт что второй раз прокатит, а значит не профессиональный.
Вы написали ерунду в самом первом предложении, мне приходится вяло отмахиваться.
Стек не бывает «быстрее и дешевле по ресурсам». На руби можно написать все до единого приложения, с которыми 99% разработчиков в принципе сталкивались в жизни. Гляньте, на каких нагрузках руби стал подводить твиттер, уверен, что вы таких в глаза не видели (и не увидите).
Есть три с половиной монстра, где стек действительно имеет значение (WhatsApp, например, потому что в отличие от всех твиттеров и фейсбуков они не могут «потерять пару твитов», собеседник заметит). И там действительно о стеке имеет смысл думать сразу (они хорошо подумали и выбрали эрланг).
А в задачах, которые решает подавляющее большинство — надо брать тот стек, с которым хорошо знакома команда. И получится лучше, чем на «правильном» стеке, но с недостатком опыта.
svace и ещё пол года работы верхом.
а вы, сэр, погляжу оптимист. полгода.
Эти чудесные молодые разработчики сейчас с нами в одной комнате?
А теперь представьте разработчика, который начал путь уже в такой среде. Он не тратит годы на освоение рутинных вещей: как поднять окружение, как собрать проект, как выловить ошибку из-за несовпадения версии зависимости. Его энергия уходит на саму логику.
Ага, поэтому есть огромное количество людей, которые настолько не понимают жизненный цикл разработки и среду, в которой будут работать их программы, что не отличают компайлтайм от рантайма и не могут запустить своё приложение без IDE.
Ничего экстраординарного, но сам факт: многопоточность вряд ли стала проще, а вот инструменты — намного. А когда входной порог низкий, начинает играть роль чистое инженерное мышление, без прослойки страданий.
Именно, многопоточность проще не стала, инструменты её просто скрыли, и если не понимать как, то страдание перемещается с этапа разработки на этап эксплуатации.
Когда-то, чтобы разобраться в устройстве протокола или сетевой подсистемы, приходилось перепахивать толстые спецификации и искать случайные примеры в редких книгах. Сейчас же молодой инженер открывает документацию, смотрит практический пример в репозитории и уже через пару часов экспериментирует с рабочими конструкциями.
Но вот ведь незадача, наш мозг, спроектированный глупой природой два миллиона лет назад, связи выстраивает как раз в процессе длительного поиска ответа, поэтому быстрые и лёгкие ответы не дают формировать понимание.
Хочу спросить вас: когда вы в последний раз тратили несколько дней на поиски решения проблемы?
Еженедельно! Сеньорский уровень от мидлового и джунского отличается в том числе тем, что на нём работаешь с проблемами и вопросами, на которые нельзя найти ответы на Stackoverflow. И даже если у кого-то настолько простая работа, что все ответы легко нагуглить или навайбить, радоваться этому не стоит, если кто-то поднимает за вас гантели, ваши бицепсы не растут.
А сейчас молодой разработчик за вечер собирает кластер на Kubernetes, хотя ещё полгода назад только учил основы программирования.
Да, собирает кластер и добавляет оверхед по ресурсам, хотя его приложение даже не умеет горизонтально масштабироваться, и ему был нужен простой linux-сервер.
Наверное, самый яркий эффект — то, что возможности перестали прямо зависеть от количества людей в проекте.
Что-то я не заметил, чтобы мне стали меньше рассказывать о важности софт-скиллов, ведь разработка - это командная дисциплина.
собирает кластер и добавляет оверхед по ресурсам, хотя его приложение даже не умеет горизонтально масштабироваться
Да, именно тотальное заблуждение, что кластер сам по себе — это масштабирование, — одно из самых больших зол современной индустрии в принципе. Пример про «многопоток» из текста — ярчайшее тому подтверждение, автор даже не понимает, что это никакой не многопоток, как только появляется кластер.
Помню, что-то подобное в конце восьмидесятых про молодых экономистов писали.
"ещё важно, что молодым не нужно преодолевать психологический барьер — им нормально писать в открытые сообщества, делиться прототипами, спрашивать мнение" - секунду, это те самые зумеры, у которых распространен "гостинг" и проблемы с коммуникацией в принципе?
Не выстрадав - не поймёшь. Я не говорю о том, что нужно обязательно писать на ассемблере или выходить на ринг против чемпиона в первый день тренировки, нет. Но глубокое погружение - ключ к понимаю (если цель - именно понять). Та же многопоточность - да, можно как-то примерно себе представить, как работает какой-то код, написать 5 строк на го… но так ли плохо погрузиться и пощупать руками все эти мьютексы, семафоры, race condition и т.д. в рамках процесса обучения? Не думаю.
создавать системы, которые раньше выглядели мягко сказать нереально
А можно примеры? А то выглядит так, что вся статья — это обсасывание какого-то выдуманного несуществующего факта.
раньше потянули бы только ветераны с десятилетним стажем?
Давайте перенесёмся на 20 лет назад. Сколько десятков лет опыта было у Павла Дурова и Марка Цукерберга на момент создания их первых продуктов.
Ну или ещё на 20 лет назад, и посмотрим, сколько десятков лет опыта было у создателя, скажем, MS-DOS?
А что такого технологически внятного создали Дуров и Цукерберг? Речь, вроде, про технические компетенции, в которых оба — нули.
Оба создали по одному сайту на php. А что такого технологически внятного могут создать в одиночку современные молодые разработчики? Пока что я вижу, что 50% прорывных изобретений - это парсеры, а вторые 50% изобретений - это телеграм-боты. И то, и другое по сложности ничуть не больше, чем сайтик на php с регистрацией пользователей.
Ну или ещё на 20 лет назад, и посмотрим, сколько десятков лет опыта было у создателя, скажем, MS-DOS?
Немного, но у него и задача была нехитрая - взять операционку с 8-битных компьютеров и портировать на 16-битные.
То есть мы пришли к выводу, что старый софт весь примитивный. Но вопрос же не в этом, а в том, что такого непримитивного сейчас создают молодые разработчики?
То есть мы пришли к выводу, что старый софт весь примитивный.
Ну как весь? Софт 1970-х, естественно, примитивный. Софт начала нулевых, тот же фейсбук там - это вполне себе сложный и главное, полноценный продукт для конечного пользователя.
Тем не менее, многоуважаемый curpaer считает фэйсбук технологически невнятной поделкой, а его создателя технически некомпетентным. Тут я на самом деле не хочу спорить, т.к. всё это достаточно субъективно, и вопрос не в этом. Вопрос в том, что автор говорит, якобы молодые разработчики способны на нечто большее, чем вот это вот всё. Так а где оно? Где вот это вот всё, которое круче всяких фэйсбуков и создаётся сейчас молодыми разработчиками? Вопрос в том, что автор выдумал тезис, но не привёл не то что обоснования, а даже примеров.
Я ведь тоже могу задать ряд вопросов в таком ключе:
Почему молодые разработчики жмут от груди 800кг?
Почему у молодых разработчиков по 18 конечностей?
Почему молодые разработчики живут в вагончике под мостом через Москва-реку?
Многоуважаемый cupraer никогда не говорил, что согласен с тезисами автора, но с автором дискутировать бессмысленно: он несет пургу такого уровня, что там только таблетки помогут.
Вам же я просто сообщил, что фейсбук взлетел не благодаря, а вопреки технической составляющей. Так-то современники ничего путного не создали, кроме Elixir Liveview — ни одной завалящей идейки со времен Матца с его «everything is an object» и Джо Хьюджеса (property-based tests).
Ну сейчас много стартапов именно молодежью создается, у которых то опыта в компаниях нет даже (так как джуны не нужны)
Но вы же понимаете, что абсолютное большинство стартапов не проживают и года?
Ну какие-то не выживут
Выживут те единицы, которые будут сделаны опытными разработчиками
Хахаха. Вашими бы устами.
Выживут те, кто сумеет лучше убедить инвестора во втором раунде. Совсем джуны жизнеспособный продукт не сделают, но уже мидлы — запросто. Я могу назвать кучу высокотехнологичных стартапов, которые померли, не родившись, хотя там были прям профи. И цуелую пачку совсем говнокода, который взлетел.
Но тут ранее писали, что ни Дуров, ни Цукерберг не были опытными разработчиками
Но они оба учились в профильных вузах и писали код самостоятельно — это такой уровень профессионализма, который современные вайтишники не получат за всю жизнь.
Но статья не про вайтишников вроде
Статья про молодых разработчиков, которые делают что-то такое, примеры чего автор не смог привести. Вы, кстати, тоже. Говорите "много стартапов", ну так назовите хотя бы один.
Да их много. Вон Cluely тот же? Scale AI
Scale AI основан в 2016 году. Да, основатели тогда были очень молоды. Но в статье как бы сравнивается "сейчас" и "раньше". Не думаю , что автор подразумевал, что 2016 год это "сейчас".
Cluely - как успешный стартап, очень хороший пример. Но с технологической трчки зрения — это всего лишь графическая оболочка для апишки сторонних LLM. Это совсем не rocket science, и большой команде там просто нечего делать.
Выживут те единицы, которые будут сделаны опытными разработчиками
Выживут те единицы, в руководстве которых будет опытный продавец. Хороший продавец продаст любое говно. Без продавца лучший код останется невостребованным.
Мы не приходили к такому выводу. Ничего круче LISPa, SmallTalk’а и эрланга создано так и не было, за последние-то 40–50 лет.
Примитивный софт — это кубер (жалкое кривое подобие деревьев супервизоров эрланга), го (даже обсуждать неохота) и миллион сайтов ни о чем.
В коммах перекличка дедов?
Тоже зашли проверить есть ли на посте дизлайки?
В коммах перекличка дедов?
Не обязательно дедов, скорее перекличка тех, кого эта ИИшная статья зацепила клацнув по одной их внутренней кнопке под названием "страх". Статья, как мне кажется, по сути о том, что в близком будущем вкатиться в АйТи на любой уровень смогут пацаны чуть ли не с дет.сада (немного утрирую). В статье много мусора, много неточностей за которые текущие боящиеся айтишники цепляются как за соломинку, пытаются себя успокоить, что проблемы нет. А она как тот суслик таки есть.
Вот вы говорите - забанить ИИшные статьи, ну хорошо, не говорите, думаете. Кто ж вам тогда правду скажет, сами-то вы такое не напишите.
Вкатиться в ойти никто не мешал и в начале девяностых (до появления ДВК и 286 хотя бы в двух рукопожатиях — это было сложнее, но тоже не бином Ньютона). Как я уже выше говорил, когда Борланды придумали RAD — вкат в дельфи занимал несколько часов и ноль касаний клавиатуры: только мышь. Такой вкатун не написал бы драйвер клавиатуры, резидентный модуль, или даже скринсейвер, — но уж бухучет типа 1С — запросто.
И ничё.
И ничё.
Новый вкатун тогда не был проблемой для тех, кто уже вкатился. В статье о том что вскоре молодые и наглые вкатуны с помощью новых технологий обучения смогут обоснованно вкатываться выше тех, кто годами кодит и совершенствуется по-старинке, они бы и рады по-новинке, но и времени нет и не особо уже и получается забыть по-старому (un-learn).
вскоре молодые и наглые вкатуны с помощью новых технологий обучения смогут обоснованно вкатываться выше тех, кто годами кодит и совершенствуется по-старинке
Обоснованно? Да окститесь.
Те, кто годами совершенствуется по-старинке уже не должны перекладывать джейсон (а если все еще перекладывают — их не жалко). А новые технологии не способны ни на что сложнее джейсоноукладки без очень тщательного руководства, которое молодые да наглые осуществить не в состоянии из-за недостатка компетенций.
Такой вкатун не написал бы драйвер клавиатуры, резидентный модуль, или даже скринсейвер
Скринсейвер написал бы с лёгкостью, это обычный экзешник без каких-либо особенностей. Резидентные программы на винде отстутствуют как класс, но мог бы написать на Турбо-Паскале. Виндовый же сервис Delphi сделает без проблем. Драйвер клавиатуры - тоже можно, но скорее из спортивного интереса и с танцами с бубном: хедеры из DDK надо было бы переводить на Паскаль самому, плюс, нужен был бы внешний компоновщик, и скорее всего, ещё понадобилось бы конвертнуть под него объектные модули Delphi, потому что Delphi генерила в интеловском OMF-формате, а 32-битные майкрософтовские компоновщики хавают, если мне память не изменяет, COFF-формат.
Я статью особо не читал, но удивился, что комменты в основном про какие-то 90 и нулевые, поэтому так и написал про перекличку xD
Казалось бы, простота. Но за этой простотой — работа мощных библиотек, серверов, инфраструктурных механизмов. И когда начинающий разработчик привыкает к миру, где многое уже готово, он начинает концентрироваться на архитектуре.
А архитектуру ему ветром надуло, или там же на форумах за пару минут подсказали. Вместе со всеми стандартами и требованиями, если он наёмный ?
Почему молодые разработчики сейчас способны на то, что раньше казалось недостижимым