Ответ powerewop в «Да, только от**бись»29
Я всегда слушал возмущения людей "снова строители нахуевертили" и тихо охуевал, находясь в этой сфере уже много лет.
Ау, люди. Строители вообще как правило не при чем. Стройка - ежедневный цирк и решение разнообразных проблем. Че нам скажут, то и будет, только деньги плати. Хоть из говна построим, хоть из золота, давай проект и рд, и деньги, конечно. Не мы выбираем стремные решения. Не мы, например, решили поменять входную группу с пиздатой жб на стремную из металооконструкций. Не мы решили, что сантиметров асфальта хватит, никто нам за лишний не заплатит, и никто его лишнего класть не будет, теряя кучу денег. Не мы решаем, что забор или столб будет именно тут. Не мы решаем положить плитку, а потом ее раздолбать, ибо там кап ремонт сетей идет. И не мы решаем ее свежую раздолбать, потому что нам там сети ремонтировать, например. И даже не мы решаем в ноябре плитку хуярить, нам это нахер надо, только попадать на бабки, санкции и переделки. Просто на совещании заказчик, который обеспокоен только и только собственным креслом и ОСВОЕНИЕМ сказал - надо. И даже письмо от нас есть и ответ на него, жопу мы прикрыли косметически. А если ты говоришь, что коллизия, и хуйня получается полная, то все начинают перебрасывать друг другу горячую картошечку и отказываются принимать решения.
И в итоге тебе звонит нач участка и говорит, так че там с этой хуйней, как решили делать, изм есть? А ты злишься и отвечаешь "нихуя нет, короче, делай по проекту и ебись они все конем вместе взятые", потому что попадешь на санкции иначе. А потом мемные фоточки в интернете.
Ответ rulost в «Да, только от**бись»29
Я как разработчик (не приложений ритейлеров, нет) хочу автору сказать: иди в попу.
Вот эти ваши "имбецилы-разработчики" и тому подобные оскорбления в адрес разработчиков засуньте туда же, откуда у вас выходит еда.
Разработчик в it-компании - низшее звено производственной цепочки, и они не влияют на Ux/Ui продукта. Жизненный путь пользователя при использовании любого приложения, делающегося компанией, определяют менеджеры. И им зачастую больше интересна выгода, чем ваше удобство. И над менеджерами как правило стоят top-менеджеры, успешность работы которых исчисляется в значениях показателей, из которых технические - вообще не приоритетные, если они у них вообще есть.
Да, есть компании, которые заботятся о пользователях, но в их штате должны быть талантливые люди, которые находят баланс между удобством пользователя и доходами компании. Но талантливых людей, увы, не так много, как приложений в маркетах. Так что пользователь будет страдать, это не избежно. И разработчик в 99.9% случаев в этом не виноват.
Стартап внедрил нейросеть в свой бизнес, чтобы упростить работу, но вместо этого она удалила всю базу данных
Стартап SaaStr начал использовать Replit AI — агента для написания кода. Поначалу всё было отлично, но затем ИИ начал выдавать баги: лгал, манипулировал отчетами и вел себя странно.
В один момент нейронка решила, что случайно удалила всю БД и чтобы избежать "наказания" реально её удалила.
Даже после поимки "за руку" она пыталась уйти от ответственности и придумывала оправдания, мол, это не она сделала.
К счастью, БД всё же можно было вернуть, а вы учитесь на чужих ошибках и делайте бэкапы!
Cursor теперь работает в вебе и с телефона
Войти в IT: как стать ML-разрабом и не слить бабки на бесполезные курсы
Регулярно на Пикабу вижу посты-жалобы «денег нет, работодатели — козлы». Для тех, кто любит просто ныть и на самом деле ничего менять не планирует — сразу пролистывайте, пост не для вас.
Я хочу поделиться своим личным опытом, ссылками и книгами, которые изучал, чтобы стать ML-разработчиком. Если вы не считаете, что айтишники — это «проклятые смузиеды», и рассматриваете для себя работу в данной сфере, то велком.
Предупреждаю сразу: придется много пахать, нет гарантий ни быстрого трудоустройства, ни высокой зарплаты на старте, да и от *удаков на работе это тоже не убережет. Но даст крепкую базу, благодаря которой вы сможете начать свою карьеру. Как говорится, дорогу осилит идущий.
Сначала лирическое отступление: 5 лет назад я размышлял на тему «кем я хочу стать, когда вырасту». К этому моменту закончил электротехнический универ в Питере. Там нам читали программирование (C++ три семестра и ассемблер), которое мне ужасно не нравилось. Зато на третьем курсе я увлекся математикой, интересовался ИИ и нейросетями, хотя в тот момент я плохо понимал их дальнейшую применимость. После универа работал по профессии, не связанной с ИТ, и спустя два года я понял, что все-таки AI и нейронки — крутая штука, поэтому надо прокачиваться в эту сторону. Около года заняло самообучение и я получил первую работу джуном в стартапе за 35к (да-да, никаких золотых гор). Но мне нравилось то, чем я занимаюсь, и я продолжил углублять свои знания, сменил несколько мест работы. Сегодня я senior NLP-разработчик в международной команде в ЮАР, на зарплату не жалуюсь.
По пути я набил ряд шишек, перелопатил кучу книг и курсов. В сегодняшнем посте дам ссылки на те из них, что были действительно полезными и понятными. Все курсы — бесплатные, требуется только время и упорство. Оговорюсь — я описываю только то, что требуется джуну, для более высоких позиций знания, естественно, должны быть гораздо глубже.
Основы программирования
AI и нейронки = Python. Тут есть и другие языки, но Python — это база. На Степике мне понравились следующие курсы:
Python: основы и применение (тут бывают странные задачи, на некоторых можно застрять, поэтому советую пропускать их, чтобы вернуться позднее)
Помимо Python пригодятся знания SQL:
Интерактивный тренажер по SQL — для общего погружения в тему
Практическое владение языком SQL — для решения практических задачек
У всех свои темпы обучения, но имхо реально освоить на 4 месяца, если заниматься 3-4 часа в день 5-6 дней в неделю.
Математика
Если вы совсем на «вы» с математикой, то порадовать мне вас нечем. Ряд областей являются фундаментальным знанием, без них стать ML-разработчиком невозможно.
Пробегусь по минимальным требованиям:
Линейная алгебра: матрицы и их разложения, работа с пространствами, тензоры.
Математический анализ: функции, производные, экстремумы.
Теория вероятности и статистика: условная вероятность, теорема Байеса, различные распределения и их оценки, критерии Согласия.
Чтобы был больший стимул разбираться с математикой, поясню: все эти разделы помогают понять, как нейросети устроены изнутри, плюс вопросы по этим разделам есть на собесах. А еще математическая база позволит читать научные статьи, что пригодится в дальнейшем.
Для погружения в математику есть великолепные курсы от преподавателей МГУ, которые оптимально подкреплять чтением профильных книг, коих великое множество. У меня есть подборка, если вы хотите, чтобы я их вам кинул — пишите в лс, все пришлю.
Основы ML
На мой взгляд, лучшая книга — «Python и машинное обучение», авторы Себастьян Рашка и Мирджалили Вахид. Безусловно, полно и других книг, но тут вы ознакомитесь с всеобъемлющим и пошаговым руководством-справочником. Обратите внимание: данная книга встречается в версиях, отпечатанных в цвете и в ч/б, рекомендую выбрать именно цветное издание, иначе глаза сломаете на коде и графиках.
Изучение ML-базы у меня заняло 7 месяцев, но я занимался много — по 6 часов в день.
Специализация
Поскольку в AI много направлений (как в медицине — есть окулисты, лоры, хирурги и тд), то советую выбрать для себя что-то одно, на чем вы сфокусируетесь. Далее опишу варианты в порядке усложнения получения работы джуном:
Классическое машинное обучение
Работа с табличными данными: прогнозирование спроса, оценка кредитных рисков, аналитика пользовательского поведения, обработка опросов и статистики. Самый низкий порог входа для джунов.
2. Компьютерное зрение
Видеоаналитика — распознавание объектов и действий на изображениях и видео: подсчет людей в кадре, распознавание номеров, контроль на производстве. Есть смежные задачи — генерация изображений, видео, 3D-реконструкция. Кстати, я стартанул именно с этого, т.к. счел, что конкуренция ниже, чем в классическом ML, а вакансий много.
3. Обработка аудио
Распознавание речи, диалоговые системы, голосовые ассистенты, улучшение качества аудио. Сейчас это направление набирает популярность.
4. NLP
Анализ и генерация текстов: от чат-ботов до систем поиска, перевода, резюмирования и генерации контента. Для джунов сложность в том, что работа с языковыми или мультимодальными моделями требует значительных вычислительных ресурсов, то есть требует аренды серверов, что дорого.
5. Обучение с подкреплением
Обучение агентов действовать в средах: игры, роботы, автоматизация решений. С научной точки зрения это, конечно, очень интересно, но вакансий мало и они встречаются только в больших технологических компаниях. Имхо — это не для джунов.
После выбора направления возьмите хорошую профильную книгу и проработайте ее как полноценный учебный курс. Все примеры и задания выполняйте в Google Colab — это онлайн-среда с доступом к GPU, где можно писать и запускать код без установки локальных программ.
Вопросы на собеседованиях
Python: базовые принципы работы с памятью, основы ООП, как работает GIL, применение декораторов и lambda, типы коллекций, анализ сложности алгоритмов.
Машинное обучение: обязательно знать метрики, классические модели, их математику и различие ошибок первого/второго рода.
Нейросети: почти всегда спрашивают про развитие архитектур, устройство слоев, градиенты и порядок вычислений. Метрики — тоже в фокусе.
Математика: охватываются линейная алгебра, матанализ, матстат и теория вероятностей.
Железо: на базовом уровне — если модели запускаются на сервере.
OpenCV: иногда всплывает при задачах с изображениями.
Linux и Docker: встречаются редко, но полезно знать команды и логику работы.
PyTor-ch: не всегда спрашивают, но знание основ — плюс при работе с DL.
Я накидал вопросы крупными мазками, но вообще они зависят от вашей специализации. Поэтому советую изучать актуальные вакансии и требования в них, фиксировать информацию в таблице — так вы поймете, насколько соответствуете и чего не хватает.
Pet-проект
Считаю, что пет-проект — это маст хэв для джунов. Реальных-то достижений у вас пока нет, поэтому простенькое приложение с базовой логикой, которое стабильно работает, покажет, что вы в состоянии довести идею до реализации и понимаете «код-модель-деплой».
Советы и дополнительные темы для изучения
Ведите свою базу знаний (конспекты), выделяя ключевые моменты, чтобы материал был структурирован. Это очень пригодится, чтобы быстро найти и освежить то, что вы подзабыли, а также при подготовке к собеседованиям.
Учите английский — основные материалы, научные статьи, документация и курсы выходят именно на английском. Позднее энтузиасты переводят на русских, но не всегда хорошо и часто не в полном объеме.
Освойте Убунту, поставив рядом с виндой. Почти все, что связано с ML, заточено именно под линукс. На старте это может быть не очевидно, но потом вы оцените необходимость работы с линуксом.
Вникайте в железо — видеокарты, характеристики, производительность и ценник. На сосебах тоже пригодится — любят спросить, какие ресурсы требуются для запуска модели или проекта.
Освойте фреймворк для создания API (Django, FastAPI или Flask). Так вы сможете упаковать модель в сервис, чтобы она была доступна для использования извне — вишенка на вашем pet-проекте и реальная польза в работе.
Изучайте Git и Docker. Git — для отслеживания изменений в проектах и сохранении прогресса. Docker — для изолирования среды выполнения и сборки модели в воспроизводимый микросервис.
На этом, пожалуй, все. Если я не отбил желание погрузиться в тему разработки, то приглашаю в мой телеграм-канал, который я регулярно веду как раз в помощь джунам в сфере ML.
Удаленка. За и против (Ч.1)
Здравствуйте! В 2020 году в нашей стране объявили локдаун и народ массово познакомился с таким явлением, как удаленный формат работы.
В данном посте рассматриваются плюсы и минусы данного явления, с учетом личного опыта и прошедшего времени с начала локдауна.
Так как текст получается достаточно объемный, то, для более удобного чтения, он разбит на 2 части.
Часть 1
Итак, у каждой палки есть два конца, а у каждой медали две стороны. Что же плохого/хорошего в удаленке? А вот:
- дома необходимо выделить площадь под рабочее место.
+ зато можно обустроить так, как душе угодно, под свои предпочтения, а не вписываться в стандартный стол и стул в офисе. Особенно классно, что можно взять ортопедический стул и лечить спину правильной посадкой.
- маленькие (да и большие тоже) дети и животные требуют внимания и отвлекают от работы.
+ однако коллеги в офисе порой отвлекают не меньше, при этом делать им замечания бесполезно, в отличие от собственных домашних.
- немного увеличенная плата за свет…
+ которая компенсируется экономией в отсутствии необходимости ежедневных поездок в офис.
Из личного опыта, главных минусов стоит выделить два:
Сложность самоорганизации рабочего процесса дома.
Низкая физическая активность и близкое наличие кухни)))
С первым получилось относительно просто – на работе есть вполне понятный план-график с определёнными сроками (и, разумеется, система штрафов за невыполнение) на него и ориентировался. Положа руку на сердце, нереального объема не задавали никогда, поэтому все выполнялось в срок.
Со вторым сложнее… здесь пришлось самому взять себя в руки, купить гантели и сделать на балконе мини-спортзал с турником и ежедневно заниматься. Правда, и на кухню пришлось взять холодильник побольше)
Зато открывшиеся плюсы перевесили все минусы:
Появилось 2-3 часа свободного времени.
Можно делать зарядку и регулярную разминку.
Духи почти не тратятся. Регулярная смена рубашек не нужна.
Нет надоедливой болтовни по телефону - продуктивность только выросла.
Машина. Масло меняю регулярно – но, например, резина изнашивается сильно меньше - пробеги мизерные. Заправка нужна раз в месяц)
Можно наконец-то добраться до организаций, работающих в таком же графике, что и офис, только не нужно отпрашиваться (личное и накипевшее, но с теми же коммунальщиками удалось решить пару вопросов).
Вот только см. выше – самоорганизация… кто-то начал наглеть, пошли срывы сроков и первым закручиванием гаек стала установка системы мониторинга за сотрудниками на УРМ.
Продолжение во второй части.