Смотрю, эта вакансия стала мемом, у кого только уже её не видал. Но совершенно никакого возмущения по её поводу не понимаю, хотя недоволен конечно, что тёмный эгрегор эйчаров + хх + хабров + прочих вредителей, безвозвратно сломали русский рынок найма более чем полностью.
Мои курсанты перед тем, как я им порекомендую начинать искать работу и помогать по карьере, сперва должны сделать "дипломный" проект, около 40 заданий. В нём примерно в сравнении с картинкой раз в 10 больше технических темок, которые надо изучить хотя бы с минимальной практикой и продемонстрировать гитхабом, прежде чем рыпаться на поиски juniorской работы.
Тут по большому счёту просто какие-то разрозненные и по смыслу особо не связанные кусочки базы. Основной вопросик, насколько глубоко надо знать каждую из этих тем, а так конечно сегодня это всё фактически must have.
- Докер? Смотрим часовой видосик, и затем парудесятков часов экспериментируем с compose. Главное, суметь на интервью запустить демонстрационный имадж с красивыми окошками (делаем на проекте).
- K8s? Но тут, обратите внимание, требуется не "опыт", а "знание", потому что так-то это отдельная профессия )
Есть Play with Docker, есть Play with Kubernetes, где можно просто из браузера поиграться.
- Настройка CI/CD? Тоже однозначно важная вещь, я курсантам рекомендую, если у них такого на работе (скорее всего) нету, предложить и внедрить как крайне полезное рацпредложение. GitLab CI + Docker изучаются за полдня.
Я вообще всем рекомендую: выполняйте развёртывание как можно чаще (или вашего тимлида пора выгонять).
- Микросервисы? опять требуется не "опыт", а "знания" :)
Ну потому что, будем объективны, джуну вряд ли дадут что-то делать с микросервисами для прода. На второй части дипломного проекта впиливаем обязательно микросервисы с кафкой.
- Spring + Hibernate -- ну это просто по определению базовый фреймворк для Java + базовый ORM (для которого соответственно надо знать стандарт JPA).
- SQL + PostgreSQL - а это вообще фундамент для любой базы бэкенда :)
- gradle/maven - "умные" сборщики пакетов java (на самом деле боль и страдание:), тоже база, без них никуда.
- JUnit - фреймворк тестирования, тут и обсуждать нечего.
- git (из командной строки) - тоже абсолютная база для любого программиста.
Единственное, не очень понял, причём здесь Jupiter (возможно приписали просто по аналогии из-за первой буковки джи :). Это вообще-то темка для питончика и машинного обучения. Ну на гугловском колабе можно пару часов поэкспериментировать, более чем достаточно.
Так что требования к уровню Junior совершенно нормальные, считаю.
(я бы ещё прибавил примерно столько же из computer science :)
В любой инженерной профессии люди обязательно учатся многими годами, прежде чем их подпустят издалека посмотреть на производственный процесс под присмотром бригадира.
С какой стати в программировании должно быть по-другому.
Why the fuck do we let people that have no computer science backgrounds write code? Unacceptable!
Мои курсанты перед тем, как я им порекомендую начинать искать работу и помогать по карьере, сперва должны сделать "дипломный" проект, около 40 заданий. В нём примерно в сравнении с картинкой раз в 10 больше технических темок, которые надо изучить хотя бы с минимальной практикой и продемонстрировать гитхабом, прежде чем рыпаться на поиски juniorской работы.
Тут по большому счёту просто какие-то разрозненные и по смыслу особо не связанные кусочки базы. Основной вопросик, насколько глубоко надо знать каждую из этих тем, а так конечно сегодня это всё фактически must have.
- Докер? Смотрим часовой видосик, и затем пару
- K8s? Но тут, обратите внимание, требуется не "опыт", а "знание", потому что так-то это отдельная профессия )
Есть Play with Docker, есть Play with Kubernetes, где можно просто из браузера поиграться.
- Настройка CI/CD? Тоже однозначно важная вещь, я курсантам рекомендую, если у них такого на работе (скорее всего) нету, предложить и внедрить как крайне полезное рацпредложение. GitLab CI + Docker изучаются за полдня.
Я вообще всем рекомендую: выполняйте развёртывание как можно чаще (или вашего тимлида пора выгонять).
- Микросервисы? опять требуется не "опыт", а "знания" :)
Ну потому что, будем объективны, джуну вряд ли дадут что-то делать с микросервисами для прода. На второй части дипломного проекта впиливаем обязательно микросервисы с кафкой.
- Spring + Hibernate -- ну это просто по определению базовый фреймворк для Java + базовый ORM (для которого соответственно надо знать стандарт JPA).
- SQL + PostgreSQL - а это вообще фундамент для любой базы бэкенда :)
- gradle/maven - "умные" сборщики пакетов java (на самом деле боль и страдание:), тоже база, без них никуда.
- JUnit - фреймворк тестирования, тут и обсуждать нечего.
- git (из командной строки) - тоже абсолютная база для любого программиста.
Единственное, не очень понял, причём здесь Jupiter (возможно приписали просто по аналогии из-за первой буковки джи :). Это вообще-то темка для питончика и машинного обучения. Ну на гугловском колабе можно пару часов поэкспериментировать, более чем достаточно.
Так что требования к уровню Junior совершенно нормальные, считаю.
(я бы ещё прибавил примерно столько же из computer science :)
В любой инженерной профессии люди обязательно учатся многими годами, прежде чем их подпустят издалека посмотреть на производственный процесс под присмотром бригадира.
С какой стати в программировании должно быть по-другому.
Why the fuck do we let people that have no computer science backgrounds write code? Unacceptable!
4❤44👍15✍4💯1🫡1
Как думаете, на прикладном уровне, так сказать, "кто кого" можно считать подмножеством? Попозже поясню, почему именно так.
Anonymous Quiz
38%
ООП - подмножество ФП
25%
ФП - подмножество ООП
37%
Это непересекающиеся множества
✍30🤔8👍4❤🔥3🔥3
В пояснение вчерашнего опроса ↑ ↑ ↑
Почему именно ФП -- подмножество ООП?
(берём чисто прикладной уровень понимания)
1. Функции в ФП -- "объекты" (в смысле сущности) первого класса. Они могут быть переданы другим функциям как аргументы, могут быть возвращены из других функций как значения, могут храниться в переменных и т.п.
Поэтому в ООП мы можем представить функцию из ФП как обычный объект с единственным методом -- самой собой.
2. Алгебраические типы данных из ФП можно реализовать в ООП как "запечатанные" (sealed) классы.
3. Product тип (произведение типов) -- это просто обычный класс.
Sum тип (сумма типов) -- это абстрактный класс, каждый из наследников которого -- один из вариантов sum типа.
Таким образом мы можем комбинировать sum и product типы, создавая иерархии классов, где каждый производный класс представляет конкретный вариант sum типа, а поля класса представляют product типы. А чтобы такая иерархия оставалась "алгебраической", производные классы мы просто запечатываем.
=
В принципе, обратное тоже возможно, но в мэйнстриме будет конечно неприменимо.
Во-первых вообще везде и тотально придётся очень интенсивно использовать HOF (map, filter, reduce, apply, compose...), что подразумевает качественно иной стиль мышления (к счастью современное языки в этом направлении развиваются неплохо).
Во-вторых, инкапсуляцию реализуем через замыкания, наследование через композицию, полиморфизм через дженерики, а абстракции через интерфейсы.
На мой взгляд, стратегически правильный подход -- правильно сбалансированная комбинация этих двух подходов. засада только в том ,что такой баланс не определить без знания cs :)
Почему именно ФП -- подмножество ООП?
(берём чисто прикладной уровень понимания)
1. Функции в ФП -- "объекты" (в смысле сущности) первого класса. Они могут быть переданы другим функциям как аргументы, могут быть возвращены из других функций как значения, могут храниться в переменных и т.п.
Поэтому в ООП мы можем представить функцию из ФП как обычный объект с единственным методом -- самой собой.
2. Алгебраические типы данных из ФП можно реализовать в ООП как "запечатанные" (sealed) классы.
3. Product тип (произведение типов) -- это просто обычный класс.
Sum тип (сумма типов) -- это абстрактный класс, каждый из наследников которого -- один из вариантов sum типа.
Таким образом мы можем комбинировать sum и product типы, создавая иерархии классов, где каждый производный класс представляет конкретный вариант sum типа, а поля класса представляют product типы. А чтобы такая иерархия оставалась "алгебраической", производные классы мы просто запечатываем.
=
В принципе, обратное тоже возможно, но в мэйнстриме будет конечно неприменимо.
Во-первых вообще везде и тотально придётся очень интенсивно использовать HOF (map, filter, reduce, apply, compose...), что подразумевает качественно иной стиль мышления (к счастью современное языки в этом направлении развиваются неплохо).
Во-вторых, инкапсуляцию реализуем через замыкания, наследование через композицию, полиморфизм через дженерики, а абстракции через интерфейсы.
На мой взгляд, стратегически правильный подход -- правильно сбалансированная комбинация этих двух подходов. засада только в том ,что такой баланс не определить без знания cs :)
🤔37❤14👍9✍4😁1
Сегодня упал хостинг, где я размещаю свои новые курсы (TDD, BDD, лямбда-исчисление... а также курсы для начинающих с нуля).
Собственно единственная причина, по которой я не использую свою собственную прекрасную и неуязвимую обучающую платформу (которую делал сам на 100%), что до сих пор в России нету НИ ОДНОГО автономного сервиса для автоматизации приёма платежей.
Всяческие а- б- в- т- ю- я- кассы, с настройкой которых куча головняка и под которые приходится пилить поверх едва ли не полноценный собственный биллинг, чтобы сделать вообще элементарнейшее: чел оплатил заданную сумму через стандартный интернет-эквайринг, и ему тут же + на почту сбросился ключик доступа или логин пароль, и всё. Я бы за такое и 15% отдавал, но нет. Вот и приходится выкручиваться через всяческие внешние сервисы хостинга курсов, бусти-шмусти, самопальные платёжные боты-фиготы и прочую муть...
Я так понимаю что Selectel -- это же почтовый сервис? Почему тогда весь хостинг курсов упал, ну ладно бы только почта заморозилась. Детский сад штаны на лямках... Сплошные имиджевые потери, не говоря уже о материальных, но PO как правило так и остаются непробиваемыми, сколько им не тверди о важности software design.
Впрочем, совершенно не удивлён, и дальше, по мере роста объёмов кода, безумно ускоряемого "с помощью" AI, будет только хуже.
=
Хочу собственно лишь напомнить моей маленькой стае курсантов, что девять типов зависимостей, как их не допускать и, главное, правильное рассуждение об этом, мы подробно разбираем на СИ в сериале "Как избавиться от зависимости от зависимостей".
"Ключевой вопрос любой зависимости независимо от её типа, очевидно, такой: "Зависит ли А от B?".
Любая зависимость характеризуется как минимум тремя параметрами:
1) семантика или конкретная вычислительная модель,
2) ключевые свойства,
3) пространство допустимых изменений.
"...мой проект включает PostgreSQL в качестве зависимости, но он не зависит от него, если эта база данных не используется, и фактически он и не зависит от него, потому что мой проект не зависит от базы данных..."
В этом высказывании слово "зависеть" используется тремя разными способами. И дело не столько в том, что каждый способ использования "зависеть" -- это ответ на разные вопросы. На самом деле это разные вычислительные исполнительные модели."
Собственно единственная причина, по которой я не использую свою собственную прекрасную и неуязвимую обучающую платформу (которую делал сам на 100%), что до сих пор в России нету НИ ОДНОГО автономного сервиса для автоматизации приёма платежей.
Всяческие а- б- в- т- ю- я- кассы, с настройкой которых куча головняка и под которые приходится пилить поверх едва ли не полноценный собственный биллинг, чтобы сделать вообще элементарнейшее: чел оплатил заданную сумму через стандартный интернет-эквайринг, и ему тут же + на почту сбросился ключик доступа или логин пароль, и всё. Я бы за такое и 15% отдавал, но нет. Вот и приходится выкручиваться через всяческие внешние сервисы хостинга курсов, бусти-шмусти, самопальные платёжные боты-фиготы и прочую муть...
Я так понимаю что Selectel -- это же почтовый сервис? Почему тогда весь хостинг курсов упал, ну ладно бы только почта заморозилась. Детский сад штаны на лямках... Сплошные имиджевые потери, не говоря уже о материальных, но PO как правило так и остаются непробиваемыми, сколько им не тверди о важности software design.
Впрочем, совершенно не удивлён, и дальше, по мере роста объёмов кода, безумно ускоряемого "с помощью" AI, будет только хуже.
=
Хочу собственно лишь напомнить моей маленькой стае курсантов, что девять типов зависимостей, как их не допускать и, главное, правильное рассуждение об этом, мы подробно разбираем на СИ в сериале "Как избавиться от зависимости от зависимостей".
"Ключевой вопрос любой зависимости независимо от её типа, очевидно, такой: "Зависит ли А от B?".
Любая зависимость характеризуется как минимум тремя параметрами:
1) семантика или конкретная вычислительная модель,
2) ключевые свойства,
3) пространство допустимых изменений.
"...мой проект включает PostgreSQL в качестве зависимости, но он не зависит от него, если эта база данных не используется, и фактически он и не зависит от него, потому что мой проект не зависит от базы данных..."
В этом высказывании слово "зависеть" используется тремя разными способами. И дело не столько в том, что каждый способ использования "зависеть" -- это ответ на разные вопросы. На самом деле это разные вычислительные исполнительные модели."
🤔41👍14🐳2✍1❤🔥1
Завтра на Госуслугах "стартует аттестация айтишников" (или пока приём заявок от потенциальных подрядчиков), и с лета она (по идее) полноценно заработает как Национальная система подтверждения ИТ-компетенций. Не получишь сертификат - ходи голодный :)
В целом одобряю, лучше хотя бы так, чем вообще никак.
(надеюсь это будут не передранные тесты сертификаций оракла и микрософта, или, что ещё хуже, нагенерённые жпт:)
Хотя я бы начинал с аттестации не рядовых бедолаг, а эйчаровской мафии:
надо прежде всего компании обязать размещать вакансии в единой строгой форме.
Набор стандартных скилов с грейдами и всё, ни возраста, ни пола, и ничего другого проверяться не должно. А если уж кого-то пригласили на живое интервью, лайв-кодинг, дали тестовое задание -- и потом отказывают, то должны заполнить детальный чек-лист с с парой сотен пунктов, поясняя кандидату, почему он не подходит.
Как быть, если компании на одну вакансию джуна накидают за сутки тыщу откликов?
Ну, развивать и детализировать систему скиллов, совершенствовать онлайн-тестирование (благо с помощью ai можно генерировать сколько угодно неповторяемых задачек), отслеживать множество критериев, включая время выполнения, в первую очередь затачивать такие сервисы под конкретные проекты компании, куда она хантит. Вот такую бы платформу в первую очередь получить.
Допустим, какой-то хитрый пацан с помощью жпт пройдёт такой фильтр, ну далее спалится на живом интервью, а если нет, так почему бы его и не взять, если он успешно прошёл профильное тестирование?
=
Но пока с нетерпением ожидают завтрашнего утра потенциальные кандидаты нараспил тендер очередных миллиардов на госпроект со слабо понятной эффективностью (будет ли такой сертификат давать хотя бы +2% к резюме? очень большие сомнения, если для компаний не будет кнута) ,
я с нуля за пару часов набросал эксклюзивно для вас, дорогие, наднациональную микроверсию системы подтверждения ИТ-компетенций, доступна всем папищекам на бусти практически бесплатно.
Сейчас там два набора тестов, постепенно буду добавлять:
Знаете ли вы нововведения C# 9 ?
Знаете ли вы нововведения Spring Framework 6 ?
❤️❤️❤️❤️❤️
В целом одобряю, лучше хотя бы так, чем вообще никак.
(надеюсь это будут не передранные тесты сертификаций оракла и микрософта, или, что ещё хуже, нагенерённые жпт:)
Хотя я бы начинал с аттестации не рядовых бедолаг, а эйчаровской мафии:
надо прежде всего компании обязать размещать вакансии в единой строгой форме.
Набор стандартных скилов с грейдами и всё, ни возраста, ни пола, и ничего другого проверяться не должно. А если уж кого-то пригласили на живое интервью, лайв-кодинг, дали тестовое задание -- и потом отказывают, то должны заполнить детальный чек-лист с с парой сотен пунктов, поясняя кандидату, почему он не подходит.
Как быть, если компании на одну вакансию джуна накидают за сутки тыщу откликов?
Ну, развивать и детализировать систему скиллов, совершенствовать онлайн-тестирование (благо с помощью ai можно генерировать сколько угодно неповторяемых задачек), отслеживать множество критериев, включая время выполнения, в первую очередь затачивать такие сервисы под конкретные проекты компании, куда она хантит. Вот такую бы платформу в первую очередь получить.
Допустим, какой-то хитрый пацан с помощью жпт пройдёт такой фильтр, ну далее спалится на живом интервью, а если нет, так почему бы его и не взять, если он успешно прошёл профильное тестирование?
=
Но пока с нетерпением ожидают завтрашнего утра потенциальные кандидаты на
я с нуля за пару часов набросал эксклюзивно для вас, дорогие, наднациональную микроверсию системы подтверждения ИТ-компетенций, доступна всем папищекам на бусти практически бесплатно.
Сейчас там два набора тестов, постепенно буду добавлять:
Знаете ли вы нововведения C# 9 ?
Знаете ли вы нововведения Spring Framework 6 ?
❤️❤️❤️❤️❤️
❤52⚡7👍6🤔2🔥1
Это хорошо известная сеть платных клиник, обслуживание топчик, врачи супер, к кандидату наук по-любому профилю легко записаться на консультацию за пару дней, а сам приём стоит $30 + доп. процедуры 50-70 долларов, анализы немного подороже конечно. 5 лет к ним хожу регулярно и жутко доволен, в своей реанимации они меня спасли однажды от смерти 🙏😇
За последние годы их стоимость растёт ежегодно примерно на миллиард рублей...
да вот только они экономят лишнюю тыщу долларов на качественном фронтендере )))
Так-то это чисто джуниорский баг: наверняка вместо "name" по невнимательности указали другое поле, какой-нибудь "kind".
Отдел QA? А зачем он нам, и так сойдёт.
фигак фигак и в прод, классика 😬
Курсантам в СИ поясняю контринтуитивную вещь, как автоматизировать тестирование визуальных аспектов (когда в UI что-то пошло не так). Сегодня кстати с помощью AI это значительно проще делать.
На госуслугах планируют тестировать "знание Python, Java, Git...", но зачем, если такие баги - следствие отсутствия малейших признаков грамотно организованного жизненного цикла продукта. Сертификаты надо выдавать прежде всего техдирам, тимлидам, начальникам ИТ-отделов, CTO (это именно их ошибки обходится в сотни/тысячи/миллионы раз дороже программистских), проверять их понимание - как не допускать подобные ошибки,
и без таких сертификатов и близко не подпускать к рабочим процессам.
За последние годы их стоимость растёт ежегодно примерно на миллиард рублей...
да вот только они экономят лишнюю тыщу долларов на качественном фронтендере )))
Так-то это чисто джуниорский баг: наверняка вместо "name" по невнимательности указали другое поле, какой-нибудь "kind".
Отдел QA? А зачем он нам, и так сойдёт.
фигак фигак и в прод, классика 😬
Курсантам в СИ поясняю контринтуитивную вещь, как автоматизировать тестирование визуальных аспектов (когда в UI что-то пошло не так). Сегодня кстати с помощью AI это значительно проще делать.
На госуслугах планируют тестировать "знание Python, Java, Git...", но зачем, если такие баги - следствие отсутствия малейших признаков грамотно организованного жизненного цикла продукта. Сертификаты надо выдавать прежде всего техдирам, тимлидам, начальникам ИТ-отделов, CTO (это именно их ошибки обходится в сотни/тысячи/миллионы раз дороже программистских), проверять их понимание - как не допускать подобные ошибки,
и без таких сертификатов и близко не подпускать к рабочим процессам.
👍52❤🔥15⚡5✍3🤔3
Готовимся к вечеру пятницы: компьютерная версия русской рулетки =>
в баре усаживайтесь всем дримтимом за стол, каждый со своим ноутом, перезапускаете ОС и из чистого списка убиваете случайный процесс (например просто по случайному номеру в списке смотрите pid) ☠️
Выигрывает тот, чей комп ещё будет продолжать работать 🤘
Ставки на победу придумываете сами 🏆
Винда:
taskkill
taskkill /PID 42 /F
Линукс/Мак:
ps -ef
kill -9 42
в баре усаживайтесь всем дримтимом за стол, каждый со своим ноутом, перезапускаете ОС и из чистого списка убиваете случайный процесс (например просто по случайному номеру в списке смотрите pid) ☠️
Выигрывает тот, чей комп ещё будет продолжать работать 🤘
Ставки на победу придумываете сами 🏆
Винда:
taskkill
taskkill /PID 42 /F
Линукс/Мак:
ps -ef
kill -9 42
🤔29😁14🏆14👍3🐳2
На неделе для курсантов добавлены...
...в раздел "Элитный программист" -
59) Почему вам не стоит беспокоиться о составлении идеального плана
Микрозадачи и предварительное планирование нужны только для одного: чтобы свести к минимуму трения в работе. Да, но как это сделать правильно??
...в курс карьеры -
96) Ошибка, незаметно убивающая результаты ваших офферов
Давайте поговорим о критической ошибке, которая незаметно убивает результаты многих ваших офферов: неспособность добиться ...
=
Если вы вдумчиво изучаете и регулярно применяете все без исключения рекомендации моих треков КК, ЭП, БПЗ и СИ+hardwork, без сомнения достигнете 10 программистских совершенств, а также обретёте 37 начал просветления computer science, в числе которых 4 состояния сверхвнимания, 4 сверхспособности и 5 сверхсил.
...в раздел "Элитный программист" -
59) Почему вам не стоит беспокоиться о составлении идеального плана
Микрозадачи и предварительное планирование нужны только для одного: чтобы свести к минимуму трения в работе. Да, но как это сделать правильно??
...в курс карьеры -
96) Ошибка, незаметно убивающая результаты ваших офферов
Давайте поговорим о критической ошибке, которая незаметно убивает результаты многих ваших офферов: неспособность добиться ...
=
Если вы вдумчиво изучаете и регулярно применяете все без исключения рекомендации моих треков КК, ЭП, БПЗ и СИ+hardwork, без сомнения достигнете 10 программистских совершенств, а также обретёте 37 начал просветления computer science, в числе которых 4 состояния сверхвнимания, 4 сверхспособности и 5 сверхсил.
1❤39👍10💯3⚡2🔥2
Консультировал на днях пару команд, моё многолетнее понимание современного мира разработки программного обеспечения стало ещё крепче. Выражается оно одной фразой:
Это просто кучка случайных людей в комнате/в чате, бесконечно спорящих друг с другом...
...и соответственно передающих друг другу в таком формате взаимодействия лишь кривые и ошибочные паттерны софт- и хард-скиллов.
Ну и следствие из этого тоже остаётся неизменным:
Нам нужны не столько методы создания лучшего софта, сколько методы создания лучших разработчиков. Элитных программистов.
Например, я упоминал недавно, что есть одна из моих абсолютных рекомендаций:
Я вообще всем рекомендую: выполняйте развёртывание как можно чаще (или вашего тимлида пора выгонять).
Но вы думаете , кто-нибудь этому следует? Даже за очень большие деньги? 😁
Они лишь согласно кивают своими собственными головами, на какое-то время глаза загораются "да-да-да"... но через пару дней снова втягиваются в однообразное и рутинное болото разработческой сансары.
Я для начала предлагаю совсем атомарные вещи: например, давайте попробуем просто выполнять деплой почаще, и посмотрим, поможет ли это.
Но мой принцип: никогда ничего не предлагать в лоб. Типа вот я порекомендовал деплой, они так стали делать, и у них что-то улучшилось. Да нифига.
На самом деле это мой план внутри плана: когда они просто попробуют деплой участить, им обычно становится не лучше а хуже, у них буквально начинают разваливаться все производственные процессы :) но зато сразу становится очень наглядно видны все узкие горлышки, а их везде дофига.
Но и то, что я рекомендую потом, уже с учётом многомерности проявившихся проблем, тоже не примитив на уровне "пооптимизировать бизнес-процессы", мои дальнейшие советы -- это уже планы внутри планов внутри планов.
Это просто кучка случайных людей в комнате/в чате, бесконечно спорящих друг с другом...
...и соответственно передающих друг другу в таком формате взаимодействия лишь кривые и ошибочные паттерны софт- и хард-скиллов.
Ну и следствие из этого тоже остаётся неизменным:
Нам нужны не столько методы создания лучшего софта, сколько методы создания лучших разработчиков. Элитных программистов.
Например, я упоминал недавно, что есть одна из моих абсолютных рекомендаций:
Я вообще всем рекомендую: выполняйте развёртывание как можно чаще (или вашего тимлида пора выгонять).
Но вы думаете , кто-нибудь этому следует? Даже за очень большие деньги? 😁
Они лишь согласно кивают своими собственными головами, на какое-то время глаза загораются "да-да-да"... но через пару дней снова втягиваются в однообразное и рутинное болото разработческой сансары.
Я для начала предлагаю совсем атомарные вещи: например, давайте попробуем просто выполнять деплой почаще, и посмотрим, поможет ли это.
Но мой принцип: никогда ничего не предлагать в лоб. Типа вот я порекомендовал деплой, они так стали делать, и у них что-то улучшилось. Да нифига.
На самом деле это мой план внутри плана: когда они просто попробуют деплой участить, им обычно становится не лучше а хуже, у них буквально начинают разваливаться все производственные процессы :) но зато сразу становится очень наглядно видны все узкие горлышки, а их везде дофига.
Но и то, что я рекомендую потом, уже с учётом многомерности проявившихся проблем, тоже не примитив на уровне "пооптимизировать бизнес-процессы", мои дальнейшие советы -- это уже планы внутри планов внутри планов.
1👍69💯4🤔3❤🔥2🤝1
Статически типизированные функциональные языки обладают свойством, которого больше почти нигде нет: если ваша система компилируется, то она обычно и будет работать (почти) как надо с первой попытки. А уж если это система зависимых типов, которая может доказательно гарантировать, что функция делает именно то, что ей и предназначено формальной спецификацией...
Я же говорил тебе, что так уже кодить нельзя
А ты не понимаешь ничего и ничего не хочешь менять
А я учил тебя целый год, тратил время целый год
Ты думала, что я шучу, и до сих пор не можешь понять...
Ты выглядишь так несовременно рядом со мной.
Я же говорил тебе, что так уже кодить нельзя
А ты не понимаешь ничего и ничего не хочешь менять
А я учил тебя целый год, тратил время целый год
Ты думала, что я шучу, и до сих пор не можешь понять...
Ты выглядишь так несовременно рядом со мной.
✍43👍10🔥10🤔6😁3
Собираюсь на весну-лето подзаработать курьером, на вело.рф смотрю аренду байков яндекса, но при попытке "Узнать адреса" меня посылают куда-то совсем непонятно куда )))
taximeter:// - что это за протокол такой лол
...Понятно, что в каком-то манифесте указано
<data android:scheme="taximeter" />
чтобы прога аренды на мобилке стартовала.
Ну добавьте для браузеров несколько строчек кода, YandexGPT в помощь:
const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
if (!isMobile) console.log("Not a mobile device");
=
Кстати, html-код лендинга вело.рф, где считанные десятки фраз и одна картинка, занимает 490 Кб, Карл. Первокурсник делал в каком-то визуальном редакторе? )))
Любой жпт нарисует такое за одну минуту и раз в сто компактнее.
А начинается этот код так:
<!DOCTYPE html>
<html class="ua_service_turbo-lpc" lang="ru">
taximeter:// - что это за протокол такой лол
...Понятно, что в каком-то манифесте указано
<data android:scheme="taximeter" />
чтобы прога аренды на мобилке стартовала.
Ну добавьте для браузеров несколько строчек кода, YandexGPT в помощь:
const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
if (!isMobile) console.log("Not a mobile device");
=
Кстати, html-код лендинга вело.рф, где считанные десятки фраз и одна картинка, занимает 490 Кб, Карл. Первокурсник делал в каком-то визуальном редакторе? )))
Любой жпт нарисует такое за одну минуту и раз в сто компактнее.
А начинается этот код так:
<!DOCTYPE html>
<html class="ua_service_turbo-lpc" lang="ru">
😁58❤9
Рекомендация в варианте яндекс-жпт
const isNotMobile = !(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent));
как-то смутило, а что тут собственно делает ежевичка (ведь давно уже rip)? Я кстати где-то в 2013-м пилил для неё какую-то гиперказуальную игрушку, даже велись переговоры о предустановке её на всех ежевиках в России, но... грянул 2014-й :) и под санкциями они ушли, а потом и по всему миру сдохли. Последствия (с) :)
Но игра несколько сотен долларов успела заработать в конечном итоге. А больше всего на том проекте заработал я: программисты-исполнители всегда в плюсе )))
=
Я проверил жпт, дипсик, алибабу, яндекс, клод, perplexity, и даже хвалёный свежий грок! выставлял вроде везде на "подумать поглубже", смотрел все последние версии, самые дорогие. И это весёлая компания везде выдаёт практически идентичный код - с BlackBerry - с точностью до наименования переменной.
Собственно легко гуглится, что украден он был конкретно отсюда:
https://stackoverflow.com/questions/3514784/how-to-detect-a-mobile-device-using-jquery
Вот как ежевичка влезла: оригинальному посту 14 лет.
=
Гемини, квен и жпт4o затупили, возможно "сами написали" :)
выдали только одну проверку под андроид, даже ифон не добавили.
=
А несомненными победителями нашего рейтинга становятся три брата-близнеца:
жпт 4o мини , лама и гигасбер (который в 20 раз дороже ламы) 😂
if (window.innerWidth > 768) { /* код для десктопа */ }
const isNotMobile = !(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent));
как-то смутило, а что тут собственно делает ежевичка (ведь давно уже rip)? Я кстати где-то в 2013-м пилил для неё какую-то гиперказуальную игрушку, даже велись переговоры о предустановке её на всех ежевиках в России, но... грянул 2014-й :) и под санкциями они ушли, а потом и по всему миру сдохли. Последствия (с) :)
Но игра несколько сотен долларов успела заработать в конечном итоге. А больше всего на том проекте заработал я: программисты-исполнители всегда в плюсе )))
=
Я проверил жпт, дипсик, алибабу, яндекс, клод, perplexity, и даже хвалёный свежий грок! выставлял вроде везде на "подумать поглубже", смотрел все последние версии, самые дорогие. И это весёлая компания везде выдаёт практически идентичный код - с BlackBerry - с точностью до наименования переменной.
Собственно легко гуглится, что украден он был конкретно отсюда:
https://stackoverflow.com/questions/3514784/how-to-detect-a-mobile-device-using-jquery
Вот как ежевичка влезла: оригинальному посту 14 лет.
=
Гемини, квен и жпт4o затупили, возможно "сами написали" :)
выдали только одну проверку под андроид, даже ифон не добавили.
=
А несомненными победителями нашего рейтинга становятся три брата-близнеца:
жпт 4o мини , лама и гигасбер (который в 20 раз дороже ламы) 😂
if (window.innerWidth > 768) { /* код для десктопа */ }
😁52👍4👏4❤1
Продолжаю работу с курсантами 🤓
...Продвинулся в качестве проектирования классов (спасибо большое 1-му курсу по ООАП). Возможность применить в работе: быстрее и эффективнее проектирую классы по АТД.
(благодаря этому в короткий срок переписал один проект, который был откровенно запутанно реализован).
...Хотел сделать как следует, но если честно чуть не запутался. И оставил основное. Конечно тут много в целом дорабатывать и добавлять.
Интересно, сложность в улавливании всех взаимосвязей программы это неопытность или отсутствие каких-то фишек восприятия и мышления?
Я: Проблема улавливании всех взаимосвязей в программе такая, что мозг не может удерживать более семи элементов одновременно, и как делать свёртку сложных многомерных понятий так чтобы они были уму понятны, подробно разбираем на второй части курсов и в СИ+HW.
...Думал, что сделаю всё гораздо быстрее и в первые дни не вкладывался особо сильно, но "внезапно" очень много нюансов стало возникать.
Зато наконец-то добрался до вашего телеграмм канала.
И конечно первый мой вопрос который меня озадачивает - это нормально, что больше половины того о чём вы пишете я не понимаю?
...Действительно войти в айти за 3 месяца за 200 тысяч (средняя цена сегодняшних курсов по программированию) уже звучит как издёвка.
...Сколько сил потрачено на поиск проблемы, а она была даже не в коде.
(в таймзонах - классика :) и кодировки - вечные боли)
...Да, в работе уже натыкался на такие вещи, было страшно видеть десятки таблиц и полное отсутствие консистентости...
...Соответственно, при даже незначительных изменениях в бизнес-логике могут потребоваться существенные изменения в системе. В целом, я понимаю, что это означает провал дизайна, но пока что трудно при реализации не фокусироваться на имеющихся данных, т.к. они всё решают. Как следствие вышесказанного, довольно трудно проектировать тесты в соответствии с TDD, т.к. не удаётся абстрагироваться от конкретики данных. После изучения материалов у меня сложилось впечатление, что методология BDD может быть крайне полезной именно с привязкой в проектам в области анализа данных, т.к. помогает более чётко определить спецификацию проекта именно с точки зрения бизнеса.
...У меня неприятность(. Не разобрался с гитом и не пушил изменения, в итоге пара последних заданий не сохранилась, делаю заново.
=
В честь 23F я добавил для всех с кем мы (не)занимаемся развитием карьеры, новые, потенциально большие скидки - см.п.10.1.1 правил занятий. Если будете их придерживаться , последние курсы могут стать практически бесплатными.
Ну а для тех с кем мы развитием карьеры занимаемся, правила я постоянно уточняю, дополняю и формализую, иначе курсанты бесконечно вязнут в бесконечном изучении технических темок с карьерным КПД 2%.
Обновлённый список наших блогеров. Требования к ведению блога я тоже серьёзно повышаю: пусть лучше останется один хороший блогер, чем 10 кое-каких.
...Продвинулся в качестве проектирования классов (спасибо большое 1-му курсу по ООАП). Возможность применить в работе: быстрее и эффективнее проектирую классы по АТД.
(благодаря этому в короткий срок переписал один проект, который был откровенно запутанно реализован).
...Хотел сделать как следует, но если честно чуть не запутался. И оставил основное. Конечно тут много в целом дорабатывать и добавлять.
Интересно, сложность в улавливании всех взаимосвязей программы это неопытность или отсутствие каких-то фишек восприятия и мышления?
Я: Проблема улавливании всех взаимосвязей в программе такая, что мозг не может удерживать более семи элементов одновременно, и как делать свёртку сложных многомерных понятий так чтобы они были уму понятны, подробно разбираем на второй части курсов и в СИ+HW.
...Думал, что сделаю всё гораздо быстрее и в первые дни не вкладывался особо сильно, но "внезапно" очень много нюансов стало возникать.
Зато наконец-то добрался до вашего телеграмм канала.
И конечно первый мой вопрос который меня озадачивает - это нормально, что больше половины того о чём вы пишете я не понимаю?
...Действительно войти в айти за 3 месяца за 200 тысяч (средняя цена сегодняшних курсов по программированию) уже звучит как издёвка.
...Сколько сил потрачено на поиск проблемы, а она была даже не в коде.
(в таймзонах - классика :) и кодировки - вечные боли)
...Да, в работе уже натыкался на такие вещи, было страшно видеть десятки таблиц и полное отсутствие консистентости...
...Соответственно, при даже незначительных изменениях в бизнес-логике могут потребоваться существенные изменения в системе. В целом, я понимаю, что это означает провал дизайна, но пока что трудно при реализации не фокусироваться на имеющихся данных, т.к. они всё решают. Как следствие вышесказанного, довольно трудно проектировать тесты в соответствии с TDD, т.к. не удаётся абстрагироваться от конкретики данных. После изучения материалов у меня сложилось впечатление, что методология BDD может быть крайне полезной именно с привязкой в проектам в области анализа данных, т.к. помогает более чётко определить спецификацию проекта именно с точки зрения бизнеса.
...У меня неприятность(. Не разобрался с гитом и не пушил изменения, в итоге пара последних заданий не сохранилась, делаю заново.
=
В честь 23F я добавил для всех с кем мы (не)занимаемся развитием карьеры, новые, потенциально большие скидки - см.п.10.1.1 правил занятий. Если будете их придерживаться , последние курсы могут стать практически бесплатными.
Ну а для тех с кем мы развитием карьеры занимаемся, правила я постоянно уточняю, дополняю и формализую, иначе курсанты бесконечно вязнут в бесконечном изучении технических темок с карьерным КПД 2%.
Обновлённый список наших блогеров. Требования к ведению блога я тоже серьёзно повышаю: пусть лучше останется один хороший блогер, чем 10 кое-каких.
1❤47🤔6👍5👏2🔥1
Что-то планировать и тем более бояться, что будет после того как AI научится программировать как сеньор, ну просто несерьёзно.
Когда AI станет таким , что за один день сможет спроектировать, написать, протестировать и задеплоить проэкт уровня госуслуг, а зачем сопровождать его много лет и без проблем добавлять новые фичи, тогда весь мир изменится так кардинально, что пока ещё никакие курцвейлы и близко не описывали.
Может быть рептилоиды захватят мир, может быть сразу его уничтожат, но более вероятно, что в первые часы/дни AI, рекурсивно себя улучшая, захватитпочту телефон телеграф интернет, энергосети, производство,
затем (месяцы/годы) решит основные экзистенциальные проблемы человечества, связанные с экономикой, медициной, экологией -- будет например введён гарантированный базовый доход. Вместе с этим безработица приблизится к 100%, начнутся политические кризисы (военных конфликтов AI вряд ли допустит), местечковые бунты, кибервойны партизанского сопротивления за контроль над AI,
затем (годы/десятилетия) осуществится полный симбиоз AI и белковых (вживление чипов младенцам), колонизация космоса с помощью самовоспроизводящихся роботов, цифровое бессмертие и в итоге псевдокоммунистический кибергулаг.
Но самые критические изменения, которые перестроят вообще всё, произойдут в первые часы, максимум дни. Поэтому волноваться, не отнимет ли AI работу, смысла нету. Если он сможет её отнять у сеньоров, тогда у всех человеков сразу возникнут проблемы качественно иного рода.
Когда AI станет таким , что за один день сможет спроектировать, написать, протестировать и задеплоить проэкт уровня госуслуг, а зачем сопровождать его много лет и без проблем добавлять новые фичи, тогда весь мир изменится так кардинально, что пока ещё никакие курцвейлы и близко не описывали.
Может быть рептилоиды захватят мир, может быть сразу его уничтожат, но более вероятно, что в первые часы/дни AI, рекурсивно себя улучшая, захватит
затем (месяцы/годы) решит основные экзистенциальные проблемы человечества, связанные с экономикой, медициной, экологией -- будет например введён гарантированный базовый доход. Вместе с этим безработица приблизится к 100%, начнутся политические кризисы (военных конфликтов AI вряд ли допустит), местечковые бунты, кибервойны партизанского сопротивления за контроль над AI,
затем (годы/десятилетия) осуществится полный симбиоз AI и белковых (вживление чипов младенцам), колонизация космоса с помощью самовоспроизводящихся роботов, цифровое бессмертие и в итоге псевдокоммунистический кибергулаг.
Но самые критические изменения, которые перестроят вообще всё, произойдут в первые часы, максимум дни. Поэтому волноваться, не отнимет ли AI работу, смысла нету. Если он сможет её отнять у сеньоров, тогда у всех человеков сразу возникнут проблемы качественно иного рода.
✍50💯18👍15🔥4🤔1
Главный вопрос Software Design: кто контролирует ситуацию -- вы или код, который вы написали?
Если вы не кантрол-фрик, дела ваши плохи: вам предстоит проделать массу работы, чтобы разобраться в этом, и чем дальше, тем ситуация будет становиться всё хуже и хуже. Особенно если вы пишете код "с помощью" AI.
Если вы не кантрол-фрик, дела ваши плохи: вам предстоит проделать массу работы, чтобы разобраться в этом, и чем дальше, тем ситуация будет становиться всё хуже и хуже. Особенно если вы пишете код "с помощью" AI.
👍54❤🔥3🏆2🫡1
Какое главное различие между "Джуном" и "Сеньором" (независимо от того, на каких официальных должностях они работают) ?
"Джун" получает простые требования и выдаёт сложный код.
"Сеньор" получает сложные требования и выдаёт простой код.
"Умный человек решает проблему. Мудрый человек избегает её"
— Альберт Эйнштейн
"Джун" получает простые требования и выдаёт сложный код.
"Сеньор" получает сложные требования и выдаёт простой код.
"Умный человек решает проблему. Мудрый человек избегает её"
— Альберт Эйнштейн
1💯55👍24⚡2🔥1👌1
Продолжаю работу над новым треком Ясные Системы, где систематизирую различные эвристики программной инженерии и computer science. Так, скоро будет большое дополнение для курса TDD.
Ещё немного в дополнение моей любимой темы про частые деплои -- из неё естественно следует эвристика частых комитов.
-- Работаю над чем-то одним за раз (c учётом 109-го материала СИ "Жёсткий хейт SOLID | SRP");
-- Выполняю рефакторинг с прицелом на потенциально возможные изменения функциональности (генерализация, дефункционализация...);
-- Делаю код максимально несвязанным.
Рекомендую в частности не очень распространённый, но крайне полезный git bisect
Ещё немного в дополнение моей любимой темы про частые деплои -- из неё естественно следует эвристика частых комитов.
-- Работаю над чем-то одним за раз (c учётом 109-го материала СИ "Жёсткий хейт SOLID | SRP");
-- Выполняю рефакторинг с прицелом на потенциально возможные изменения функциональности (генерализация, дефункционализация...);
-- Делаю код максимально несвязанным.
Рекомендую в частности не очень распространённый, но крайне полезный git bisect
😎32🔥14👍12👏6❤2
Онлайн-интервью стремительно умирают, ещё какая-то вялая борьба ведётся, но без сомнения в конечном итоге дипфейки и жпт победят.
Уверен, что скоро на собесах наоборот будут явно требовать грамотной работы с AI, но уже на уровне проектировщика/архитектора/техлида, для чего соответственно будут особенно востребованы знания и умения программной инженерии и computer science.
Уверен, что скоро на собесах наоборот будут явно требовать грамотной работы с AI, но уже на уровне проектировщика/архитектора/техлида, для чего соответственно будут особенно востребованы знания и умения программной инженерии и computer science.
👍52💯13🔥5😁1
У условной удалёнки, вне зависимости от того чем вы занимаетесь, есть такой минус, что постепенно дичаешь :) Поэтому я периодически хожу в кафе или в фудхолл, где занимаюсь чем-то, что не требует медленного мышления S2 (например, пишу код:).
Но и там тоже свои минусы, нередкая ситуация: два человека рядом разговаривают о политике. Я надеваю наушники, чтобы заняться работой, час спустя вынимаю их -- а они всё ещё говорят о политике.
Первый экспериментальный набор на мои новые курсы для начинающих с ПОЛНОГО нуля в начале февраля прошёл успешно, три человека (из 10) так хорошо прошли первый курс-тест "Годитесь ли вы в программисты?", что я их взял заниматься на моих последующих классических курсах.
По обратной связи я этот курс немного подправил, хотя он и так уже отшлифован сотнями курсантов, сегодня делаю второй набор.
Напомню что набор доступен только донам (платным подписчикам) в группе вк "Материалы для начинающих программистов", 7 мест (набор ЗАКОНЧЕН, за полтора часа).
Такие наборы я планирую регулярно проводить, следующие будут в марте (чтобы все желающие доны смогли вписаться, и чтобы вы могли попрокастинировать и отложить, как всегда "на потом" :).
... Так вот, чашечка лавандового рафа с синнабоном, бесследно уничтожаемая за полчаса, стоит как 500 рублей подписка доном (+куча ценной инфы по саморазвитию для начинающих и не только) + 999 рублей за курс, после которого вы поймёте, программирование - это ваше или нет, и стоит ли вкладывать 100500 рублей в курсы "в айти за полгода на 150k".
Но и там тоже свои минусы, нередкая ситуация: два человека рядом разговаривают о политике. Я надеваю наушники, чтобы заняться работой, час спустя вынимаю их -- а они всё ещё говорят о политике.
Первый экспериментальный набор на мои новые курсы для начинающих с ПОЛНОГО нуля в начале февраля прошёл успешно, три человека (из 10) так хорошо прошли первый курс-тест "Годитесь ли вы в программисты?", что я их взял заниматься на моих последующих классических курсах.
По обратной связи я этот курс немного подправил, хотя он и так уже отшлифован сотнями курсантов, сегодня делаю второй набор.
Напомню что набор доступен только донам (платным подписчикам) в группе вк "Материалы для начинающих программистов", 7 мест (набор ЗАКОНЧЕН, за полтора часа).
Такие наборы я планирую регулярно проводить, следующие будут в марте (чтобы все желающие доны смогли вписаться, и чтобы вы могли попрокастинировать и отложить, как всегда "на потом" :).
... Так вот, чашечка лавандового рафа с синнабоном, бесследно уничтожаемая за полчаса, стоит как 500 рублей подписка доном (+куча ценной инфы по саморазвитию для начинающих и не только) + 999 рублей за курс, после которого вы поймёте, программирование - это ваше или нет, и стоит ли вкладывать 100500 рублей в курсы "в айти за полгода на 150k".
1❤41👍14⚡5🔥3❤🔥1
Дал клоду 3.7 (со всеми этими дипсинками и формал-режимом) простую задачку, уровень лабы первого курса (в плане программирования конечно) -- сделать простенькие анимации для Окружности в HoTT: базовая точка, которая может образовывать Петли (просто бегает по кругу), и элементарная деформация (демонстрация гомотопической эквивалентности).
В конструктивном смысле это отправная точка для рекурсивных определений функций (из высших индуктивных типов в другие типы), что скоро будем изучать ))))
3.7 зафигачил 100 строк: сперва вроде работает, но когда переключаешься по кнопочкам разных анимаций, визуализация сбивается. Я ему пару раз подсказал "как должно работать", он вполне ожидаемо стал вносить локальные приляпки, из-за чего возможность какого-то дальнейшего расширения скрипта быстро сошла на нет.
В конструктивном смысле это отправная точка для рекурсивных определений функций (из высших индуктивных типов в другие типы), что скоро будем изучать ))))
3.7 зафигачил 100 строк: сперва вроде работает, но когда переключаешься по кнопочкам разных анимаций, визуализация сбивается. Я ему пару раз подсказал "как должно работать", он вполне ожидаемо стал вносить локальные приляпки, из-за чего возможность какого-то дальнейшего расширения скрипта быстро сошла на нет.
✍27⚡22👍8❤🔥3🐳3