Прекрасное, про рынок труда в Узбекистане:
- все банки и ритейл говорят, что нехватка КАЧЕСТВЕННОГО персонала более 60 процентов и это очень замедляет развитие
- при этом на каждую позицию тысячи откликов, но люди не проходят собеседование: крайне низкая квалификация и неумение быстро учиться
- очень низкая лояльность к любой компании: люди уходят в один день, если где-то аооьещаои зарплату на 100 долларов больше. Вопросы интересности проектов и своей репутации не останавливают от перехода
- экспатов все меньше и они все дороже.
Очень надеюсь, что и в русской айтишке скоро будет так же.
Хочите лояльности? Платите в джва раза больше. За деньги -- да.
Будь как узбеки!
- все банки и ритейл говорят, что нехватка КАЧЕСТВЕННОГО персонала более 60 процентов и это очень замедляет развитие
- при этом на каждую позицию тысячи откликов, но люди не проходят собеседование: крайне низкая квалификация и неумение быстро учиться
- очень низкая лояльность к любой компании: люди уходят в один день, если где-то аооьещаои зарплату на 100 долларов больше. Вопросы интересности проектов и своей репутации не останавливают от перехода
- экспатов все меньше и они все дороже.
Очень надеюсь, что и в русской айтишке скоро будет так же.
Хочите лояльности? Платите в джва раза больше. За деньги -- да.
Будь как узбеки!
🤝60😁22❤10👍6🤔4
Из очередных отчётов курсантов:
"Даже на фулл-тайме умудрился себе устроить полное погружение в курс
Сегодня ночью приснилось, что Сергей Игоревич называет мой код попыткой его троллить. а так же просит переделать код с использованием технологий, названных неизвестными аббревиатурами
Во сне прямо панику почувствовал"
(после занятия по vim :)
не-не, ну я с большим пониманием и доброжелательностью отношусь к начинающим :)
Кстати, если снятся неизвестные аббревиатуры, постарайтесь их запомнить, а потом погуглите: вас могут ждать интересные открытия :)
- Я осознанно вывела цифры с 0. Вывод проверила. Как я увидела, что нужно выводить с 0 до 10 объяснить не могу.
-- Самое тяжёлое задание за всё время обучения в школе. Я всё ещё не доволен тем, что получилось и при этом не понимаю, как я мог бы сделать его лучше.
-- Первый случай, который я вспомнил не просто краевой, а откровенно идиотский. Не так давно мне подчиненный программист приносит код и бэкенда портала, где по таблице пользователей в цикле проходят и что-то с чем то сверяют. Я сначала глазам не поверил, ну неужели мы вытаскиваем всех пользователей и что то проверяем в цикле?
да, черт возьми; программист тоже принес мне это посмотреть, потому что засомневался в своем здравомыслии и зрении.
Короче говоря, оказалось что это было "by design", ибо, почти цитирую - "мы так когда то сделали, потому что у нас портал один, а на одну и ту же почту должно быть возможно иметь аккаунты принадлежащие к разным организациям".Как решили? Ну, отлепили руки от лица через пару часов удивления, выполнили небольшую денормализацию в базе, и все таки сделали уникальный индекс по почте, так как это и должно было быть изначально.
-- Example 4 - документ может быть загружен с 3-мя разными состояниями, Pending, Error, Success.
Здесь нарушаем принцип LSP, поскольку приводим конкретную реализацию к заранее известному типу.
Верное решение - сделать метод обработки конкретного запроса на документ, в конкретном типе И использовать реализацию интерфейса, а не наследование.
Итого
1) Пойду перечитывать типы наследования из курсов по ООАП :)
-- Теперь понимаю,почему вы так за паттерн ... - когда даже на микроуровне убираются так элегантно ифы за счет ad hoc полиморфизма,хочется плакать от счастья… Очень классный материал!!
-- Третья неделя идёт, коллеги отмечают мой затравленный и озлобленный взгляд, а мне просто не нравится, что поток задач ворует у меня темпы развития в выбранном направлении.
"Даже на фулл-тайме умудрился себе устроить полное погружение в курс
Сегодня ночью приснилось, что Сергей Игоревич называет мой код попыткой его троллить. а так же просит переделать код с использованием технологий, названных неизвестными аббревиатурами
Во сне прямо панику почувствовал"
(после занятия по vim :)
не-не, ну я с большим пониманием и доброжелательностью отношусь к начинающим :)
Кстати, если снятся неизвестные аббревиатуры, постарайтесь их запомнить, а потом погуглите: вас могут ждать интересные открытия :)
- Я осознанно вывела цифры с 0. Вывод проверила. Как я увидела, что нужно выводить с 0 до 10 объяснить не могу.
-- Самое тяжёлое задание за всё время обучения в школе. Я всё ещё не доволен тем, что получилось и при этом не понимаю, как я мог бы сделать его лучше.
-- Первый случай, который я вспомнил не просто краевой, а откровенно идиотский. Не так давно мне подчиненный программист приносит код и бэкенда портала, где по таблице пользователей в цикле проходят и что-то с чем то сверяют. Я сначала глазам не поверил, ну неужели мы вытаскиваем всех пользователей и что то проверяем в цикле?
да, черт возьми; программист тоже принес мне это посмотреть, потому что засомневался в своем здравомыслии и зрении.
Короче говоря, оказалось что это было "by design", ибо, почти цитирую - "мы так когда то сделали, потому что у нас портал один, а на одну и ту же почту должно быть возможно иметь аккаунты принадлежащие к разным организациям".Как решили? Ну, отлепили руки от лица через пару часов удивления, выполнили небольшую денормализацию в базе, и все таки сделали уникальный индекс по почте, так как это и должно было быть изначально.
-- Example 4 - документ может быть загружен с 3-мя разными состояниями, Pending, Error, Success.
Здесь нарушаем принцип LSP, поскольку приводим конкретную реализацию к заранее известному типу.
Верное решение - сделать метод обработки конкретного запроса на документ, в конкретном типе И использовать реализацию интерфейса, а не наследование.
Итого
1) Пойду перечитывать типы наследования из курсов по ООАП :)
-- Теперь понимаю,почему вы так за паттерн ... - когда даже на микроуровне убираются так элегантно ифы за счет ad hoc полиморфизма,хочется плакать от счастья… Очень классный материал!!
-- Третья неделя идёт, коллеги отмечают мой затравленный и озлобленный взгляд, а мне просто не нравится, что поток задач ворует у меня темпы развития в выбранном направлении.
❤41👍16😁9🔥4🤔2
Не волнуйтесь, вы не одиноки :) Также в своё время лоханулись и GitLab, и Zinga, и Adobe, и Snap, и Pinterest, и многие многие другие.
К счастью, теперь доступны только российские облака, с ними в случае такого разбираться куда легче. Хоть бы вообще весь западный софт поскорее ушёл, и технически ничего особого в нём нету более чем полностью, а про ноухау вообще говорить смешно. Вопрос исключительно в грамотной организации процесса разработки(+ побольше денежек :) .
Вдобавок, сегодня много классных продуктов доступны как опенсорс, просто форкайте и плюйте на лицензии. copyleft 🦾
Рассказывал например, на каких прекрасных общедоступных решениях сегодня можно строить тяжёлые и стратегически верные облачные инфраструктурные сервисы в России.
К счастью, теперь доступны только российские облака, с ними в случае такого разбираться куда легче. Хоть бы вообще весь западный софт поскорее ушёл, и технически ничего особого в нём нету более чем полностью, а про ноухау вообще говорить смешно. Вопрос исключительно в грамотной организации процесса разработки
Вдобавок, сегодня много классных продуктов доступны как опенсорс, просто форкайте и плюйте на лицензии. copyleft 🦾
Рассказывал например, на каких прекрасных общедоступных решениях сегодня можно строить тяжёлые и стратегически верные облачные инфраструктурные сервисы в России.
✍44👍26😎3❤1🤔1
Документация по коду никому не нужна. Они хотят знать достаточно, чтобы быстро и безопасно изменять код, чтобы получить новые результаты, которые им нужны, и при этом ничего случайно не сломать. Документация -- особенно хрупкий и дорогой путь к этой цели.
-- Кент Бек* июнь 24
* мнение автора может не совпадать с мнением редакции
-- Кент Бек* июнь 24
* мнение автора может не совпадать с мнением редакции
✍49🤔15❤2💯2🤓2
Пацан испугался и потёр пост; пока он на веб-архиве ещё хранится, но 💯 рептилоиды со временем и архив целиком прикроют.
"How a single ChatGPT mistake cost us $10,000+"
We copy pasted the code it generated, saw everything worked fine, tried it in production, saw it also worked, and went on our merry way...
This problem became really well hidden because of our backend setup. We had eight ECS tasks on AWS, all running five instances of our backend (overkill, yes we know, but to be fair we had AWS credits). This meant any single user had a pool of potentially 40 unique IDs they could land upon...
Ознакомьтесь пока доступно, очень поучительно.
Но на самом деле это происходит из-за использования моделей программирования без их понимания. Разве сделали бы такое мои курсанты, занимающиеся на hard work например?
В этом десятилетии обучение software design пока ещё остаётся ключевым фактором...
"How a single ChatGPT mistake cost us $10,000+"
We copy pasted the code it generated, saw everything worked fine, tried it in production, saw it also worked, and went on our merry way...
This problem became really well hidden because of our backend setup. We had eight ECS tasks on AWS, all running five instances of our backend (overkill, yes we know, but to be fair we had AWS credits). This meant any single user had a pool of potentially 40 unique IDs they could land upon...
Ознакомьтесь пока доступно, очень поучительно.
Но на самом деле это происходит из-за использования моделей программирования без их понимания. Разве сделали бы такое мои курсанты, занимающиеся на hard work например?
В этом десятилетии обучение software design пока ещё остаётся ключевым фактором...
👍39⚡13❤8🤔6😁5
Динамическая типизация, кстати, здесь не при чём.
Скажете, в Java сделано "по-взрослому", значение захватывается как и положено в момент определения лямбда-выражения? Более того, компилятор сам напомнит:
"local variables referenced from a lambda expression must be final or effectively final".
Ну вот например пример на Java с final. Что выведет? :)
(пауза)
что-то такое: 1 9 8 7 3 0 4 6 5 2
Только теперь для понимания этого требуется пройти трек уже по параллельным вычислительным моделям :)
Спрашивали "а как этому всему правильно следовать на практике, чтобы таких косяков не допускать?"
Готовлю несколько новых курсов по software design, в течение лета.
Скажете, в Java сделано "по-взрослому", значение захватывается как и положено в момент определения лямбда-выражения? Более того, компилятор сам напомнит:
"local variables referenced from a lambda expression must be final or effectively final".
Ну вот например пример на Java с final. Что выведет? :)
(пауза)
Только теперь для понимания этого требуется пройти трек уже по параллельным вычислительным моделям :)
Спрашивали "а как этому всему правильно следовать на практике, чтобы таких косяков не допускать?"
Готовлю несколько новых курсов по software design, в течение лета.
🔥51🤔9👍6❤3🐳3
Товарищи фронтендеры, как вы обычно проверяете на неопределённость?
Anonymous Poll
63%
if (foe === undefined) { ...
8%
if (foe === void 0) { ...
29%
if (typeof foe === "undefined") { ...
🤔47🫡10🤯5❤1
Мне кажется, что качество программного обеспечения можно значительно повысить, просто платя программистам гораздо меньше, чем им платят сегодня. Это автоматически отсеет всех несносных хипстеров и самозванцев, что, как ни парадоксально, может привести к положительному результату.
Жаль, что спрос на программистов (пока) слишком высок.
Жаль, что спрос на программистов (пока) слишком высок.
😁41🫡19🤯16👍10🐳5
"Каждый десятый выпускник вуза получил ИТ-специальность", и это замечательно. Однако количество выпускников университетов по информатике, которые даже не знают, как создать приложение на Django или Spring, просто поражает.
👍59💯9❤7🫡5🔥1
обожаю командные строки:
The lazier way to manage everything docker
A simple terminal UI for both docker and docker-compose, written in Go with the gocui library (написана тем же автором 10 лет назад, и работает норм :)
The lazier way to manage everything docker
A simple terminal UI for both docker and docker-compose, written in Go with the gocui library (написана тем же автором 10 лет назад, и работает норм :)
👍55❤8😎6🤔1
Как есть программисты +x10 , так есть и -x10, причём один и тот же чел может регулярно плавать биполярочкой в этом диапазоне от одного края к другому. И чаще всего их локальная +x10 приводит к -x20 в целом. Такие "супер-программисты" практически всегда создают узкие места в проекте. Они концентрируют информацию только в своей голове, куда никто другой не может получить доступ, и пишут на основании такой "секретной" информации код, который никто не понимает. Причём проигрывают в итоге и они сами.
На курсе карьеры я специально делал материал "Почему плохо быть критически важным в проекте".
На курсе карьеры я специально делал материал "Почему плохо быть критически важным в проекте".
✍50👍11❤8😁5🤔2
Большинство 10-кратных программистов просто производят мусор в 10 раз быстрее. А с помощью AI -- в 100 раз быстрее. Какой в этом смысл?
Кроме того, немало и 1-кратных программистов, которые словно специально превращают относительно простые вещи в сложные задачи для всех остальных. Особенно это характерно для самоучек.
Но в то же время, конечно, есть и бесконечные программисты: они способны решать за короткое время сложные задачи, которые многие (98%) программистов не смогли бы решить и за всю жизнь.
Кроме того, немало и 1-кратных программистов, которые словно специально превращают относительно простые вещи в сложные задачи для всех остальных. Особенно это характерно для самоучек.
Но в то же время, конечно, есть и бесконечные программисты: они способны решать за короткое время сложные задачи, которые многие (98%) программистов не смогли бы решить и за всю жизнь.
👍58🤔13❤3👌3🫡2
Вышел очередной "супер-кодер" DeepSeek Coder V2 (236B), можно поиграться онлайн тут, даже впн не нужен. Особо ничем не впечатлил, примерно как и GPT-4o.
Просил обоих написать совсем элементарное, для начинающих с нуля: "наивный" (без эвристик) алгоритм Бойера-Мура -- так и не смогли, как ни умолял их. То КМП выдадут, то вообще за O(N*M). Ну наверное, если потратить кучу времени, можно добиться правильного ответа, но зачем тогда мне вообще такой джун-"помощник"?
Идите пока нафиг со своим AI-кодером.
Просил обоих написать совсем элементарное, для начинающих с нуля: "наивный" (без эвристик) алгоритм Бойера-Мура -- так и не смогли, как ни умолял их. То КМП выдадут, то вообще за O(N*M). Ну наверное, если потратить кучу времени, можно добиться правильного ответа, но зачем тогда мне вообще такой джун-"помощник"?
Идите пока нафиг со своим AI-кодером.
❤47👍20😁13❤🔥1🫡1
В курс карьеры добавлен 87-й материал "Универсальность или специализация - 2".
Вот вопрос, который мне регулярно задают: "Как мне понять, стоит ли больше/глубже изучать текущий стек на работе, или следует добавить новые навыки в других областях? Следует ли мне идти вширь или вглубь?"
Итак, куда лучше инвестировать своё время (ваш самый ценный актив)?
В СильныеИдеи добавлен материал "93) Почему любые дефлотные параметры -- зло".
Разбираемся, как в разных языках (Python, Java, C#, F#, TypeScript) поддерживаются дефолтные параметры, какие они несут скрытые проблемы, и как их правильно готовить.
Обновлён курс "SQL для начинающих" (добавлено 14 задач с разбором по игре Dwarf Fortress). Кто его проходил, рекомендую допройти.
Однако напомню наш стратегический принцип:
Впечатляющим должен быть не ваш код, а ваши результаты.
Вот вопрос, который мне регулярно задают: "Как мне понять, стоит ли больше/глубже изучать текущий стек на работе, или следует добавить новые навыки в других областях? Следует ли мне идти вширь или вглубь?"
Итак, куда лучше инвестировать своё время (ваш самый ценный актив)?
В СильныеИдеи добавлен материал "93) Почему любые дефлотные параметры -- зло".
Разбираемся, как в разных языках (Python, Java, C#, F#, TypeScript) поддерживаются дефолтные параметры, какие они несут скрытые проблемы, и как их правильно готовить.
Обновлён курс "SQL для начинающих" (добавлено 14 задач с разбором по игре Dwarf Fortress). Кто его проходил, рекомендую допройти.
Однако напомню наш стратегический принцип:
Впечатляющим должен быть не ваш код, а ваши результаты.
👍59❤🔥7😎4❤2🔥1
Если бы инженеры аэрокосмической отрасли реагировали на дедлайны и давление менеджеров так же, как программисты, самолеты делали бы из фольги, чтобы "снизить затраты и ускорить производство".
Напоминаю, граждане тимлиды ит-начальники ит-менеджеры, будете ускорять проекты в ущерб их качеству, ваша бэд карма будет вас регулярно ставить в ситуации, как с Фредериком Фрисоном.
Напоминаю, граждане тимлиды ит-начальники ит-менеджеры, будете ускорять проекты в ущерб их качеству, ваша бэд карма будет вас регулярно ставить в ситуации, как с Фредериком Фрисоном.
✍42😁15❤9💯8👍5
Ну, с трудовым понедельником! 💪🏻
Приступаем к GOVNO.works
Приступаем к GOVNO.works
govno.works
A Better Way to Manage Projects
😁72👍4❤3✍3⚡1