Высшая школа программирования Сергея Бобровского 2.0 @lambda_brain Channel on Telegram

Высшая школа программирования Сергея Бобровского 2.0

@lambda_brain


Высшая школа программирования Сергея Бобровского 2.0

Высшая школа программирования Сергея Бобровского 2.0 (Russian)

Высшая школа программирования Сергея Бобровского 2.0 - это уникальный канал в Telegram, который предлагает обучение программированию под руководством опытного специалиста - Сергея Бобровского. Здесь вы найдете самые актуальные знания и навыки в области разработки программного обеспечения. Сергей Бобровский - профессионал в своем деле с многолетним опытом работы в IT-сфере. Он создал этот канал с целью поделиться своими знаниями и опытом с теми, кто стремится стать успешным программистом. На канале "Высшая школа программирования Сергея Бобровского 2.0" вы найдете обучающие материалы, видеоуроки, задачи для самостоятельного решения, а также возможность задать вопросы преподавателю и обсудить их с другими участниками. Будучи частью этого канала, вы получите не только теоретические знания, но и практические навыки, необходимые для успешной карьеры в программировании. Присоединяйтесь к нам сегодня и откройте для себя мир возможностей, который открывает перед вами "Высшая школа программирования Сергея Бобровского 2.0"!

Высшая школа программирования Сергея Бобровского 2.0

23 Nov, 07:50


Из отчёта курсанта:

Почти 2 недели не возвращатся к проекту по ETL процессам, т.к. были срочные рабочие задачи. Всегда сложно после перерыва вникать обратно в проект, даже если бОльшую его часть написал ты сам. Это больше моя психологическая проблема. Решение наверное уделять проекту постоянно хотя бы 15 минут в день, чтобы контекст не пропадал.

Да, у многих так; вы придерживаетесь рекомендаций по скоростному ведению заметок с трека "Элитный программист"? Я там третий материал добавил недавно в подборку "Технологии поддержки мгновенной перефокусировки".

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

Высшая школа программирования Сергея Бобровского 2.0

22 Nov, 07:13


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

5% адекватных просто говорят: "X лучше потому, что Y". Это реальный аргумент, с которым можно работать и, соответственно, найти лучшее решение для данного проекта.

В частности, правила SOLID (или методики ОО-проектирования, и т.д. и т.п.) безусловно хороши, однако строгое следование им редко приводит к хорошему коду. Потому что на практике вы разбираетесь прежде всего с тем, как что-то делать с учётом соответствующих рекомендаций, на что уходит 80% возни. И лишь 20% вашего времени уходит на то, что именно вы хотите с их помощью делать. В результате ваше понимание только усложняется , а не упрощается.

Мастерство -- это когда данная пропорция становится 20/80.

/eureka Такую физику мы одобряем: расчёт траекторий движения котиков.

Высшая школа программирования Сергея Бобровского 2.0

20 Nov, 08:13


Из свежих отчётов курсантов (с формата hard work)

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

...Изучил материал, грустно конечно. В смысле, материал великолепен, просто грустно что никто это не изучает и не понимает. С другой стороны откуда им это вообще изучать, если в РУ Сегменте вы один, а в EU... Ну это надо быть явно заинтересованным чтобы святых (computer science) читать.
(это по заданию "создать функциональный интерфейс с помощью F-ограниченного полиморфизма":)

...Несколько лет назад увидел в одной статье такую фразу: "Циклы в вашей программе - это баги". Тогда я её не понял, но предложенная там же идея заменять циклы на функциональные конструкции типа map-reduce мне понравилась.

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

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

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

/win в js появился новый оператор безопасного присваивания
?=
срочно забираем. (впн)

Высшая школа программирования Сергея Бобровского 2.0

19 Nov, 08:22


Первое правило геймдева: как можно быстрее сделать самый первый уровень.

Иначе вы быстро запутаетесь в куче технических нюансов и потеряете мотивацию.

Разбираю структуру игры "7 billion humans" (рассказывал тут , насколько она полезна для программистов). И нашёл в ней баг (или фичу , которая всё же на 51% баг).

Первое задание - надо сделать простую программу из трёх команд.
И тут сразу появляется нетривиальное: как отследить успешное прохождение уровня? Просто проверять конечную позицию тупо на совпадение с шаблоном неверно по многим причинам, и "7 billion" такого конечно не допускает. Однако , похоже , игра прозаически смотрит длину программы. Вот пример , когда я сделал достаточно длинную программу , которая приводит к нужному результату - но долгим путём. И "7 billion" её уже не засчитывает!
Или даже , не исключено , выполняется просто сравнение "кода" решения с эталонным.

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

/dev мощно обновились mini apps 2.0 для тележки.

Высшая школа программирования Сергея Бобровского 2.0

18 Nov, 08:23


Как на самом деле работает индустрия ИТ для 95% разработчиков: кто-то намного умнее вас решил действительно сложную проблему, и теперь вы клеите свои приляпки поверх его решения -- как лего, и думаете, что вы гений из тех самых 5%.

Вот сермяга (отсюда):
"Из тысячи доступных архитектурных практик ты, скорее всего, используешь три: микросервисы, REST и вечные попытки убедить команду обновить версии библиотек."

/defer swift всё? как его в эппле убивают в погоне за прибылью.

Высшая школа программирования Сергея Бобровского 2.0

17 Nov, 11:47


98% сеньоров-питонистов срезаются на этом вопросе на собесе!!1

В чём разница между [0]*3 и [0,0,0] ?

/rtfm разница между мутабельными и иммутабельными объектами

Высшая школа программирования Сергея Бобровского 2.0

16 Nov, 08:24


"I am raising $100M at $2B pre money valuation for a startup that will get people together to sit down and talk to each other in person."
Bojan Tunguz (Machine Learning ex Nvidia. Kaggle Quadruple Grandmaster.)

Высшая школа программирования Сергея Бобровского 2.0

15 Nov, 07:31


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

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

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

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

/update третью скалу устанавливал вчера 4 часа.

Высшая школа программирования Сергея Бобровского 2.0

14 Nov, 07:57


Документация -- это глупость. В ней точно указано, что нужно делать.

Высшая школа программирования Сергея Бобровского 2.0

13 Nov, 08:21


Если честно, я тоже сейчас реально/серьёзно думаю в этом направлении...
Может быть даже, сделаю что-то типа реалити-шоу.

Как ни крути, но сейчас мой доход на 90% зависит от моей загруженности. Обучение, консультации, и всё фактически в почасовом режиме. А если месяц сделаю паузу, то и заработаю ноль. Мне это всё невероятно нравится но...

Буду следовать своим же рекомендациям по созданию микро-стартапов: к 1 декабря сделаю (или не сделаю:) рабочий прототип игры для программистов.

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

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

Я же хочу сделать игровой акцент прежде всего на функциональном программировании, на лямбда-исчислении, на формальных подходах прежде всего, на проектировании, на сильных системах типов, на параллелизме, на software design. Сегодня это особенно важно, с учётом использования AI, которому как раз надо давать очень точные и однозначные словесные рекомендации, держа в своей голове архитектуру проекта (AI про неё говорить не надо, только запутается и всё испортит).

Хотя конечно нередко бывает и такое: "Leaving Rust gamedev after 3 years"

"На момент написания этой статьи я программирую уже около 20 лет, начав с C++ и перейдя через всевозможные языки, PHP, Java, Ruby, JavaScript, Haskell, Python, Go, C#, и выпустив игру в Steam на Unity , Unreal Engine 4 и Godot."

Наверное, самый знаменитый фейл на сегодня -- Concord. Точнее, фейл для заказчика, программисты как раз очень успешны ))) Пацаны из Firewalk за 8 лет освоили 200 млн. долл. на создание "геройского шутера", а как он вышел этим летом, купили всего 25 тыс. копий (стим + плейстейшен), в онлайне редко когда несколько сотен игроков сидели. Ну её и прикрыли через две недели.

То есть, идя в геймдев за деньгами, продуктивнее всего иметь богатенького покровителя (например, государство), которому можно годами вешать лапшу.

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

btw Когда теперь в следующий раз буду снова набирать учеников не знаю наверное ближе к весне (а может быть и никогда).

Высшая школа программирования Сергея Бобровского 2.0

12 Nov, 12:09


...Однако пока всё же ллм-ки очень сильно проигрывают схеме "искать на гитхабе" :)

Вот например прекрасное: A curses based, UCI compatible, chess gui.
Полностью написан белковым на сишечке.

Вчера слил 5,000 рублей на жпт-o, клод 3.5 и т.п. Сперва работа идёт норм, а потом все начинают тупить (и дело не в контекстном окне). Даю подробное ТЗ, всего-то сделать несложное клиентское веб-приложение, и начинается засада с UI. Сделать логику перетаска элементов одного списка в другой -- не могут! Начинаются мелкие баги, которые они не могут исправить, быстро сами запутываются, фигачат по новой огромные файлы тысячами токенов, а баги лезут и лезут.

Я уже стал их ругать ("почему одни и те же ошибки бесконечно??"), и гемини даже заныл: "ну, я же только учусь" :)
Ага, а за что я плачу тогда?

Думал, попробовать жпт-о1, но у неё вообще цены конские, я бы быстро слил и 50 тысяч :) Главное, без результата. Лучше бы на фрилансе заказал у белковых, за 5 тыр сделали бы быстро и качественно.

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

Ощущение, словно на ставках или донатных играх-доилках: давай ещё одну попытку, ну сейчас точно сделает норм без багов :) Ага, жди.

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

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

fypm пытался на bluestacks запустить в винде pvz3, а ихняя хвалёная виртуалка её не потянула (хотя у меня 16гб озу), и вдобавок сожрала на c: пустошь 5 гб, где я едва ютился.

Высшая школа программирования Сергея Бобровского 2.0

11 Nov, 09:25


АСД нужны вам только для собесов, говорили они...

От курсанта-джуниора:

Мне скинули последовательности, которые реально проверяются тестами (1-5 млн чисел, по числу в строке)
Так вот, для улучшения работы программы мне как раз прямо сейчас пригодились ранее пройденные threading, а также queue ( использую встроенные либу queue)
Спасибо за Ваши уроки, они максимально пригождаются сразу после изучения!


Подобных отзывов у меня многие десятки.

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

То, что "никогда в жизни тема АСД мне не встречалась на работе", ну значит вы работали всю жизнь на дерьмовых работах, чем гордиться-то. Получали за это хорошую зп? Ну, раз "нравится" ковыряться в big ball of mud ради денег, себя не уважая, продолжайте ковыряться дальше.

gtg вместо изучения АСД лучше поиграйте в доту2 новым персом -- боевым петухом.

Высшая школа программирования Сергея Бобровского 2.0

10 Nov, 10:42


Фреймворк Django 5.x синхронный или асинхронный? ↑↑↑

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

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

=

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

В старой джанге до 3й версии, по-моему, использовался WSGI, в новой при совместимости с ним также ASGI поддерживается, появились асинхронные вьюшки и асинхронные роуты.

Однако идеологически Django -- всё же синхронный веб-фреймворк, и ORM в нём синхронна более чем полностью и на асинхронных представлениях может падать (как минимум, пул потоков надо организовывать). Хотя в пятёрке можно действительно довольно гладко объединять в одном проекте синхронщину и асинхронщину (например, для общения с внешними API или сервисами вроде Redis, Mongo, Cassandra, Elasticsearch...). Таким образом вы всегда можете направить обсуждение в нужное вам русло.

smh купил за 49 руб. отключение рекламы в рутубе; более навязчивой никогда в жизни не встречал (разве что на кинопоиске).

Высшая школа программирования Сергея Бобровского 2.0

09 Nov, 07:29


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

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

Оказывается, что Болт опенсорсный! (не знаю правда, насколько он автономный и не завязан на что-то внешнее, кроме API к разным AI)

Сильная идея для стартапа: форкаем себе bolt.new как "трофейное ПО", и делаем русскую версию. Даже 50 долларов/месяц вполне себе норм цена за такой уровень -- если за рублики, чтобы не возиться с виртуальными валютными картами. Я первый подпишусь по такой цене.

btw, Anthropic через црушный Palantir предоставляет особо прокаченный Claude военным и разведывательным службам США.

Высшая школа программирования Сергея Бобровского 2.0

08 Nov, 08:30


Как же долго я мучился с жпт-о, а потом попробовал сонного клода 3.5 , ну прям явно лучше кодит, "понимает" контекстные правки и т.п. Полностью на него перешёл (только окно надо сразу ставить 32k, и он подороже).
Хотя Болт ещё круче, но и стоит 50 бакинских в месяц. Впрочем, для рабочих задач я бы заплатил.

Лет 10 назад с такими llm-ками я бы делал проэкты раз в 10..100 быстрее (хотя бы просто за счёт набора текста :) вчера за 1 час нафигачил 500 строк js работающий прототип), и кучу незаконченных бы доделал. Ну какие наши годы.

/cp За джангу ↑↑↑ скоро поясню как правильно отвечать.

/srs Вкуснейшей рыбы (белугу и форель гор.копч.) мне сегодня привёз ковбой Джон Кодер курьер Кодерджан.

Высшая школа программирования Сергея Бобровского 2.0

06 Nov, 09:15


"Intelligent Machines and Idiotic Humans: A Startup Story"
(идеи для AI-стартапов)

Серия 14. "Sam Altman is saying that AI is going to lead to a 1-person $1 billion business" - 3

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

Например история (нереклама):
"Отказался от AWS и заработал 10 миллионов долларов", как чел сделал сервис для банков (просто технический пайп) по подписке 88 евро, и его отлично покупают.

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

Дорогие, всем и так на вас пофиг, а вы ещё и боитесь и стесняетесь.

Высшая школа программирования Сергея Бобровского 2.0

05 Nov, 09:34


Когда финиширование проекта в срок казалось таким близким...