Лаборатория Математики и Программирования Сергея Бобровского – Telegram
Лаборатория Математики и Программирования Сергея Бобровского
1.29K subscribers
1.19K photos
24 videos
930 links
ЛаМПовое с Бобровским
Download Telegram
Есть классические антипаттерны кодирования, которые встречаются у 100% программистов, причём любой классификации. Их к сожалению не выявить при code review, и вы всё равно их будете постоянно допускать. С копипастой я и сам до сих пор иногда мучаюсь ) Потому что не следую своей же рекомендации "никогда не копипастить код и не злоупотреблять подсказками ide (а сегодня ещё и ai-ассистанты начинают морочить голову), всегда хотя бы немного сперва подумать и набирать код с нуля".

Рефлексия от курсанта Александра:

"1. Стараться не использовать copy|paste. После копирования части своего кода, который отрабатывает правые листья, не внес полностью корректировки для того, чтобы конструкция работала для левых
2. В моих тестах была проверка поиска правого листа, но отсутствовала для левого. Хотя для узлов не являющихся листами проверка была как для левого так и для правого. Здесь вывод: покрывать тестами вообще все случаи. Почему не покрыл? не мог и подумать, так как прошел все другие проверки, что возможно еще и здесь ошибка"


P.S. А когда ребята обращаются с вопросом почему не получается пройти тесты на сервере, я прежде всего прошу показать тесты (которые они конечно не делают), и в 80% проблема решается непосредственно в процессе написания тестов. Это всё то же важнейшее мышление письмом "по-программистски".
👍145🫡1
Пишет курсант М.

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

Напомню, мой пост
"Как легко и просто реализовывать API на сотню разных версий, не ломая фронтенд"

"Подключили меня в помощь на один проект с горящим сроком, работали почти 2 недели по 12-16 часов, чтобы за 2 часа до дедлайна проект перенесли на следующий год. :)"

Я не против переработок (хотя в целом против дедлайнов, это 100% что в конторе многое идёт не так), но только в ситуациях, когда вас не принуждают к этому психологическим давлением "надо!", и, конечно, они оплачиваются хотя бы x1.5. Это часы вашей жизни, которая довольно коротка в целом (я помню хорошо, как 40 лет назад вроде бы ещё вчера в 20 лет гулял с девушками:), и времени на просто пожить в дополнение к работе в целом будет не так и много.
💯13🔥6🫡2👍1🤔1
2025-й год. Программисты владеют ai-ботами, как гоночными автомобилями, тщательно за ними ухаживая, развивая и совершенствуя, чтобы они выигрывали соревнования по программированию.
В резюме основное внимание уделяется достижениям вашего ai-бота.
Активно развивается бизнес по прокачке и продаже ai-ботов под конкретные проекты и задачи.

Наконец-то станет возможным иметь 10-летний опыт работы в новеньком фреймворке, вышедшем месяц назад...
🤔17😁11👍4🤩2🫡2
Когда вы отключаетесь от монитора, чтобы подумать, менеджеры обвиняют вас в бездеятельности (в лучшем случае, что вы чрезмерно увлекаетесь инженерией, вместо того чтобы тупо писать код).

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

Если вы просто зафигачите первый пришедший вам в голову дизайн логики и кода, то он 100% не будет самым простым.
💯13👍5🔥3🫡2
Ко мне каждый месяц возвращаются ребята, которые занимались полгода, год, два, три назад, и потом бросили. Ситуация у всех примерно одинаковая:

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

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

Да, увы, но я не справился с попытками помочь таким ребятам получать зарплаты в несколько (много) сотен тысяч рублей. Самое печальное, что когда я спрашиваю, а что вы делали эти годы в плане роста в ИТ, почти все отвечают, что
ничего. В лучшем случае работают программистами непонятно где за копейки; послушайте, сейчас нормальному джуниору меньше 100т получать просто стыдно.

Сколько миллионов рублей вы потеряли за эти годы?

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

Вы не поверите, но меня периодически спрашивают, а стоит ли им подписываться в доны? Типа, 200-300 рублей в месяц для них проблема... Даже не знаю что сказать, это поразительно. Люди хотят получать сотни тысяч рублей ежемесячно, однако экономят на этом один доллар! (при том, что доступен полный список контента). А некоторые, реально подозреваю, думают что делают мне какое-то одолжение, став донами ))) Мне и ваши 100 долларов за мои курсы нафиг не нужны -- я вообще ничего не чувствую, когда у меня на счету меняется чиселка в шестом разряде. Кто у меня занимается, хорошо знает, как легко словить бан за нерадивость (поэтому и оплата только по завершению каждого курса, чтобы мне быстро и легко банить без финансовых обязательств).

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

P.S. В частности, многие, особенно кто обучился у меня с околонуля и устроился на первую работу, делают стратегическую ошибку: хватаются за "интересненькое" в ИТ, за сайд-проекты, сделать клон доты, и т.п. Хорошо их понимаю, это действительно очень увлекательно, изучать кучу новеньких технологий на хайпе можно бесконечно, и это кайф.
И всё же, зачем вы тратите по большому счёту время вашей жизни впустую?
Прежде всего, вам надо однозначно и честно определиться с самим собой хотя бы на год вперёд: что для вас действительно важнее, интересненькое или больше денег?

P.S. Важное дополнение про сайд-проекты.
13🔥9🫡8💯54
Лаборатория Математики и Программирования Сергея Бобровского pinned «Ко мне каждый месяц возвращаются ребята, которые занимались полгода, год, два, три назад, и потом бросили. Ситуация у всех примерно одинаковая: "Вы говорили (и я полностью с этим согласен), что без денег заниматься не стоит и что сразу начнем вторую серию…»
В дополнение к вчерашнему, насчёт сайд-проектов.
Я говорил, что особо их не поддерживаю, потому что они вам особо ничего не дадут. Если очень хотите, делайте конечно, только не надо пожалуйста задумывать ничего эпического! Максимум 1000 строк, какой-нибудь микро-фреймворк, игра, плагин, библиотечка, по вашему рабочему стеку. 50 таких проектиков на гитхабе будут смотреться куда выгоднее, нежели что-то крупное, да на которое ещё вы тратите приличное время, что понравится далеко не каждой компании.

Однако есть важное исключение: это любые проекты по AI и ai-ботам. Например, я бы сам с удовольствием платил за какой-нибудь ai-сервис, которому скармливаешь проект с гитхаба, он на нём дообучается и затем адекватно подсказывает. ChatGPT и подобные слишком универсален, тут нужна именно программистская LLM-ка, заранее натасканная на конкретный стек и фреймворк.

В России есть один неплохой маркетплейс, но там по программированию нету ничего.

Короче говоря, товарищи курсанты, кто будет делать адекватные сайд-проекты конкретно по теме AI, вам будут дополнительные скидки на занятия 👍
👍18💯1🫡1
Никогда не думал, что скажу такое, но...
Введение Чебурнета в России технологически частично оправдано (увы).

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

Времена открытого интернета могут скоро закончиться, поскольку стаи самосовершенствующихся ai-ботов сеют тотальный хаос, и карантины -- единственный способ их остановить. Поэтому нам нужен рубильник для блокировки Рунета.
🤔15😁8🫡7👍5🤯4
Заметил, что ChatGPT и подобные сильно тупит на рекурсиях. Оно пробует множество вещей, статистически "похожих" на решение, но особенность фундаментальной декларативной вычислительной модели в том, что тут надо реально обдумывать довольно странные по форме вычисления, и близко не напоминающие императивные. ChatGPT может бесконечно предлагать вам варианты, похожие на то, что вы хотите, заставляя вас просматривать все эти неправильные рекурсивные функции и пытаться понять, что же в них опять неверно.
🤔15💯7
Что с этим делать? Кто у меня проходил трек "как понять в программировании всё", после первых двух курсов имеет минимальное представление о формальной семантике рекурсивных вычислений, чтобы делать правильные промпты, правильные ограничения.
Вообще, в контексте использования AI этот вроде бы чисто теоретический трек внезапно оказался крайне полезным в прикладном плане: там мы разбираем и stateful- и объектную модели, и можем общаться с ChatGPT достаточно формально -- понимая на глубоком уровне, что хотим получить.
❤‍🔥112👍1🎉1
Я видел футболку "Превращаем кофе в код".
Хорошо бы теперь тим- и тех-лидам научиться превращать митинги в работающий программный продукт.
😁20💯2
Высокоуровневые навыки проектирования и абстрагирования будут становиться всё более и более важными по мере того, как AI будет брать на себя функции программиста. Мы сможем (до некоего порога, пока плохо прогнозируемого) автоматизировать и масштабировать обычное программирование с одной стороны, и составление ТЗ на основе словесного описания с другой стороны, но вряд ли сможем в обозримом будущем автоматизировать понимание предметной области с целью её формального моделирования, с качественным system design и software design.

Сколько я не просил ChatGPT пооптимизировать дизайн небольшого проекта на 20 классов, он лишь переименовывал классы, выдавая это за software design, и иногда хвастался, что переделал (по форме) DI, хотя семантика никак не изменилась.
👍116😁5🤔2
Шесть программистов
Пытались всё понять.
Один из них всё понял,
И их осталось пять.
❤‍🔥26👍3🤔1🫡1
Это прямо вечная проблема, когда ребята самого разного уровня -- от джунов до сеньоров, годами учатся и учатся с околонулевым финансовым результатом. И потом спрашивают у меня, что им делать.

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

Я сейчас выстраиваю качественно новую схему продвижения по карьере, хочу добиться результата "с нуля за год на 100,000 рублей" (msk/spb, или 50-70 если иное). Многие онлайн-школы это обещают, даже "гарантируют трудоустройство на 150k" -- но когда вы там позанимаетесь, окажется, что вам надо разослать 100500 откликов на вакансии, сходить на 128 собеседований, или ещё какие-нибудь невыполнимые требования, которые могут тянуться бесконечно. Я же хочу сделать этот процесс действительно гарантированным, ну или максимально приближенным к 100%, чтобы он был таким же, как и у миддла: конверсия из откликов в приглашения на собесы, и с собесов в офферы, ну хотя бы 20%.

Вы можете, конечно, получить такой результат с любым другим хорошим ментором, если получится его найти. Единственная разница между мной и менторами в том, что я всё же делаю основной акцент на достаточно фундаментальном обучении программированию, схожим с университетским, и оплата у меня только и именно за курсы, а по карьере я помогаю параллельно просто от души ("за дофамин").
🔥26👍64🫡2❤‍🔥1
Вообще, формула правильной зарплаты программиста на первые пять лет должна быть такая:

N лет * 100,000

1-й год: вкатился на 100т
3-й год: миддл 300k
5-й год: сеньор 500k.

Тут интересно, что "вкатуны" мотивированы обычно хорошо, а вот кто уже "неплохо" зарабатывает (300k неплохо? хаха), не очень рвутся повышать зарплату и дальше развиваться, а очень зря. 19-летние сеньоры сегодня получают 450 (потому что дико учатся) и скоро выживут из ИТ всех лентяев :)
🏆15🫡7🔥5😁21
Нету ни одной такой другой профессии и близко, с такими зарплатами, с таким социальным лифтом, и абсолютной честностью и прозрачностью: либо ты умеешь писать код, либо нет.

Всего у 7% (!) наших сограждан зарплата превышает 100,000 рублей! Причём подниматься до 100k по карьере можно всю жизнь, а в ИТ вы можете получать хорошие деньги достаточно быстро, ещё студентом.

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


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

(Впрочем, за 100-200-300т/месяц можно и потерпеть всю жизнь, считаю. Вспоминайте про остальные 99% бедолаг с более низкими зарплатами и мутными перспективами в свете грядущего AI)

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

Но в целом, конечно, я за пожизненную работу программистом (и крайне рекомендую поскорее уходить на удалёнку), по мне, это просто кайф, я наслаждаюсь этим уже 45 лет, и до конца жизни буду заниматься этим самым счастливым занятием,
и самые лёгкие деньги, какие только могут быть, потому что, ну за 15-20 то лет можно прокачаться хотя бы x10, и делать ежедневную работу за 1 час а остальные 7 часов работать на 7 других работах. Плюс куча потенциальных возможностей с коммерческими проектами, стартапами, AI и т.п.

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

Даже скромные полмиллиона в месяц за ненапряжное проектирование и архитекторство, вам мало? Дорогие, ну это 0,5% национальной элиты
(ну и, да, зарплата джуниора в США).

Вот например устроился наш курсант тимлидом )))

1) начали проминать по обязанностям - созвоны после рабочего времени за 30 минут до конца рабочего дня - почему бы и нет(18 часов рабочий день заканчивается, поэтому с 18:30 до 19:30 ставим созвон). Руководитель разработки - пиши код, ибо у нас рук не хватает_
2) за 2 неделю моей работы уже 3 разраб сказал досвидания, я больше не хочу тут работать)
3) спринты-задачи не описаны - задачи из воздуха в моменте появляются) на требование мое как руководителя разработки, что задачи должны быть описаны и тд до разработки - мне ответили, что я 2 недели работаю и не имею права что-то требовать
...На собеседовании спрашивал: рабочее время и свободное время - все ли окей? Мне сказали да, это нормальное адекватное решение, мы не мучаем в не рабочее время) А когда ты показываешь видеозапись созвона(я пишу все собесы, хотя и они тоже пишут, что их немного обижает))) говорят что ну мы не совсем это хотели сказать))
🔥27🤯4👍2
Хорошая новость для программистов :)

"We found Google AlphaCode 2 (competitive programming model)... sits at the 85th percentile on average – i.e. it performs better than 85% of entrants, ranking just between the ‘Expert’ and ‘Candidate Master’ categories on Codeforces"


Обсуждение тут.

Ну, да, весьма сложные алгоритмические задачки с чёткой формальной (а может даже, и неформальной) постановкой AI решает уверенно. Но реальное программирование совсем другое. Вот тебе проект на 500,000 строк говнокода, и чтоб завтра начал фигачить тикеты.

Как тебе такое, AlphaCode 2 ?
😁20🫡3
У меня дома 5 больших мониторов (и даже думал про 43"), но я по-прежнему пишу код и тексты со старенького ноутбука...
🤔155🫡5🤯21