Лаборатория Математики и Программирования Сергея Бобровского – Telegram
Лаборатория Математики и Программирования Сергея Бобровского
1.29K subscribers
1.19K photos
24 videos
931 links
ЛаМПовое с Бобровским
Download Telegram
Это прямо вечная проблема, когда ребята самого разного уровня -- от джунов до сеньоров, годами учатся и учатся с околонулевым финансовым результатом. И потом спрашивают у меня, что им делать.

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

Я сейчас выстраиваю качественно новую схему продвижения по карьере, хочу добиться результата "с нуля за год на 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
Дорогие, по голосованию: ну такой перекос в сторону 300k/4часа в день хочут 70% ! Ну да, я и сам такое выбрал :) Хорошо это ещё и тем, что вы можете остальное время как бездельничать, так и саморазвиваться (а при желании работать вторую работу 300/4).
Но для этого вам нужна удалёнка обязательно.

Следующий год посвящаем мощной прокачке по денежной теме, но, напоминаю, с 01.01.24 правила занятий станут ещё строже 🙈

Я кстати планировал ещё курс по "сильному мышлению программиста", но увы, ресурсов не хватает, поэтому откладывается на неопределённый срок, а порекомендую для начала проверенный подход: пройдите курс "Системное саморазвитие" в ШСМ Левенчука. Там ещё и других курсов по теме немало.

=

300/4 хороши ещё и потому, что, ну, вы же знаете фундаментальный принцип теории систем -- закон Гудхарта?

Когда мера становится целью, она перестаёт быть хорошей мерой

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

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

В мэйнстриме это никто не знает, и лучшее, до чего додумались надзиратели -- это требовать, чтобы человек выдерживал 8+ часов в день, уставившись в экран. Это сегодня основной "навык", необходимый для работы программистом.
138👍2🫡2🐳1
Дорогие, вы видите результаты
А это ведь одна из фундаментальных вещей в ИТ, однако мэйнстрим словно нарочно придумывает такие абсурдные названия.
Ну можно же было вместо sync/async говорить, например, блокирующий I/O или "overlapped" I/O, а самое простое -- последовательный или "конкурентный" (concurrent).

Знаете почему так? Потому что львиная доля программистов не обучалась в хороших университетах, и их понимание computer science равно абсолютному нулю :)

"Why the fuck do we let people that have no computer science backgrounds write code? Unacceptable!"
Erik Meijer, святой cs

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

И, да, в современном мире это уже андеграунд.

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

Напомню, что синхронное программирование -- это программирование в рамках направленного графа потоковых объектов. Потоковый объект может выполнить свои вычисления только после того, как считает по одному элементу из каждого из своих входных потоков. Из этого естественно следует, что каждый потоковый объект на графе синхронизирован с любым другим. Потоковому объекту допустимо опережать в вычислениях своих преемников на графе (которым он передаёт данные), но он не может опережать своих предшественников (от которых ему поступают данные).
👍18🔥64😁3🫡1
Вот вам изумительный пример из двух строк, в котором наличествует глубокая мудрость software design.

Мы явно различаем вывод и лог.
При этом сам код ориентирован на логирование.
Но без создания отдельного logging py
И без возни с настройкой лога.

Мы сохранили общее намерение, но делегировали фактическую работу.
🤔209🫡6👏3
Я не могу рассказать вам, что эксперт по Java знает о всём стеке Jave, но я могу рассказать вам, что (и, главное, как) эксперт по Java (или любому другому языку) думает о Java (чаще всего, криво и бессознательно).
Для этого достаточно пройти мой трек по вычислительным моделям.
9🤔9🫡3
.
Нулевое правило Лаборатории: никому не рассказывать про Лабораторию.

Первое правило Лаборатории: ты обязан развиваться всю жизнь.

Второе правило Лаборатории: твоё развитие как программиста должно обязательно сопровождаться постоянным ростом денежного дохода.

Третье правило Лаборатории: твоё развитие как программиста должно основываться на суперспособностях -- computer science и математике, чтобы любые веб-фреймворки, языки и технологические стеки твой сильный рациональный ум был способен изучить за неделю.
🔥61🫡315💯31
Лаборатория Математики и Программирования Сергея Бобровского pinned «. Нулевое правило Лаборатории: никому не рассказывать про Лабораторию. Первое правило Лаборатории: ты обязан развиваться всю жизнь. Второе правило Лаборатории: твоё развитие как программиста должно обязательно сопровождаться постоянным ростом денежного дохода.…»
Когда джуниоры приходят в проект, то они обращаются с существующим кодом так бережно, словно это музейный экспонат.

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

Да, но...
😁34🔥3🫡1
Регулярно читаю подобное в отчётах ребят, кто занимается на начальных курсах с нуля:

...Опять ошибка из-за невнимательности – поставил какой-то странный диапазон (300 – 401 вместо 100 – 999). Причём сейчас (через пару дней) я не понимаю, откуда я взял такой диапазон…

...Да да да, счётчик внутри условного оператора - это детская ошибка. Жалко, конечно, что я этого не заметил сам.
Опять невнимательность подводит =(

Вот вам смешно, а вы сами что, лучше, что ли? :)

Пусть не такие ошибки, но всё равно, все мы делаем глупые ошибки из-за элементарной невнимательности на своём уровне, за которые потом стыдно.
🔥24👍4💯2🫡1
С удовольствием слушал сегодня срач экспертов обсуждение экспертами темки синхронщины-асинхронщины в промисах.

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

Но пока не было в ИТ ни одного опровержения гипотезы Фредерика Брукса ("Мифический человеко-месяц"):

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


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

Я не осуждаю их за это, но что же остается нам с вами?

Загоняем подальше синдром самозванца, надеваем маску взрослого эксперта, как следует думаем о том, что нужно нашему проекту, и выбираем лучший вариант.
12👍6😁1🤯1🫡1
"LLM -- это просто статистический попугай, который занимается предсказанием следующих токенов без какого-либо понимания", говорили они, но это уже настолько очевидная ложь, что обсуждать её уже не стоит.

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

P.S. Кстати, те, кто кричал об опасности AGI, будут уничтожены им самыми первыми :)

P.P.S. А вот такого (LeanCopilot) я уже реально побаиваюсь. Когда к LLM начинают прикручивать теорем-пруверы, языки с зависимыми типами, где написать некорректный код сильно сложнее, ну и в целом, к градиентным брутфорсам добавляется формальная математическая логика...
Рекомендую, кстати, учиться такое использовать.
17🔥6💯2🫡2🤯1
Они хочут от вас SOLID, ACID, REST, DRY, TDD, OOP, паттерны проектирования и 10 лет опыта. Однако когда вы получаете доступ к их кодовой базе, оказывается, что она представляет собой бессистемную кучу файлов по 10,000 строк в каждом, с множеством перекрещивающихся зависимостей, и ни в одном из них вы не можете выделить ни одной прикладной концепции.

Поэтому будем с этим эйчаровским бредом безжалостно бороться самыми что ни на есть хакерскими способами :)
💯20🔥11🫡53😁2
C++ всё. Он конечно ещё будет достаточно долго жить в легаси-проектах, как Java 8, но даже если стереть весь код в мире, написанный на Rust, это ему уже не поможет.

на фотке: модуль Rust заменил часть кодовой базы на плюсах
🔥9🤔8🫡6😁52