Уставший кодер
231 subscribers
27 photos
4 videos
18 links
Душные советы. Рассказываю об IT и DS

Автор - @mdaniel42
Download Telegram
Channel photo updated
Прежде чем начинать писать какие-либо мысли в этот канал, считаю, что мне просто необходимо представиться и рассказать о себе и о своем пути самоучки в IT-индустрии. В 22 года я понял, что сильно ошибся с выбором своей профессии юриста. Я долго думал о своем прошлом и будущем и понял, что я всегда тяготел к компьютерам. Поэтому я решил кардинально поменять направление своей жизни и попробовать учиться программировать. Я начал с разных курсов по Python. В один прекрасный день я увидел рекламу Школы 21 (https://21-school.ru/) в инстаграме и решил пойти на отборочный этап (бассейн), длиною в месяц. Про Школу 21 можно почитать тут - https://habr.com/ru/company/sberbank/blog/506950/ . (Даю эти ссылки, потому, что искренне люблю эту школу, а не в рекламных целях)
Месяц я мучался с заданиями на бассейне, две недели тревожно ожидал результатов отбора и в конце концов мне пришло приглашение на мой первый учебный день.

Я пришел туда абсолютно зеленым новичком, а вышел парнем более менее умеющим программировать. Первые полгода я учил только язык Си и выполнял на нем множество проектов от самых простых (написание своей стандартной библиотеки функций с самописными memcpy, strlen, atoi и другие) до очень сложных (написание в команде из 4-х человек компилятора псевдоассемблера и виртуальной машины для игры придуманной в 1984 году олдскульными программистами - https://github.com/daniiomir/corewar). Потом я начал думать какое направление в IT выбрать. И конечно же я решил выбрать самое сложное - data science (с моим то забытом еще в школе матаном). В течение еще 6-8 месяцев я проходил различные курсы и пытался всячески самообразовываться.

План подготовки к работе в data science был прост:
1) Учить python (leetcode.com) и sql (sql-ex.ru , https://sql-academy.org/ru)
2) Пройти заново всю школьную математику (я ведь полный самоучка и матан в универе не учил) - https://practicum.yandex.ru/math-foundations/
3) Проходить курсы по линалу, матанализу, теорверу и матстату на stepik.org
4)Пройти довольно олдскульную, но очень хорошую специализацию от Яндекса и МФТИ “Машинное обучение и анализ данных” - https://www.coursera.org/specializations/machine-learning-data-analysis
5) Дополнительно пройти курсы mlcourse.ai и dlcourse.ai
Выполнил я этот план с грехом пополам попутно поделав различные соревнования на кагле и закодив с нуля несколько алгоритмов машинного обучения на python. Дальше шло много собеседований, провалов, небольших успехов, стажировка и наконец работа в качестве дата саентиста. Но об этом может быть уже в других постах.

В качестве заключения хотелось бы объяснить почему я решил вести этот канал. За все мое время обучения и работы я познакомился с огромным количеством человек, которые хотели попасть в IT, уже обучались/самообучались или работали. Так вот дело в том, что многие люди пытающиеся самостоятельно попасть в эту сферу наступают на целую дорогу из граблей, попутно отбивая себе всякое желание быть дата саентистами, фронтендерами, бекендерами и другими. Я тоже прошел эту дорогу из граблей и могу помочь своими советами людям, которые не хотят стоять на месте.
👍3🔥3
Отличный сборник теории по ML от ШАД
Хороший вариант, чтобы что-то повторить перед собеседованием 👨‍🏫🧑‍🎓
https://ml-handbook.ru/
This media is not supported in your browser
VIEW IN TELEGRAM
Вот он настоящий инженерный подход🤓
👍2
Наткнулся недавно на отличный бесплатный курс от Яндекс.Практикума
Поможет освежить знания по алгоритмам, чтобы не обделаться на очередном алгособесе🙂
Алгоритмы, структуры данных, оценка сложности алгоритма и советы для собеса и резюме - все хорошее и стандартное для успешного успеха в получении оффера присутствует🥸

https://practicum.yandex.ru/algorithms-interview/
Общие советы по залетанию в айти для чайников

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

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

📌Однако если вы не такой везунчик, сроки поджимают и нельзя учиться 4-6 года, то ваша подготовка должна строиться так:
1️⃣ Разбираемся какие есть сферы в айти (мобилки, бекенд, фронтенд, дата саенс и другие), смотрим познавательные видосы на ютубе, читаем хабр и другие источники. Рекомендую для общего понимания computer science посмотреть курс CS50 на русском (на ютубе).
2️⃣ Выбираем себе самую понравившуюся специальность, узнаем про нее как можно больше и начинаем смотреть вакансии по ней. Берем ключевые языки и технологии и учим их. С помощью курсов, практики и проектов. Если что практически на любую специализацию есть бесплатные курсы стоит лишь только покопать поглубже.
3️⃣ Как только вы начинаете считать, что уже что-то умеете - желательно зайти на вторую итерацию теории и практики, потому, что обычно на этот момент оказывается, что на самом деле вы знаете слишком мало. Делаем обязательно задачи на leetcode.com до уровня medium.
4️⃣ Делаем резюме и заполняем его своими проектами, которые вы должны были сделать на этапе практики.
5️⃣ Подаемся на стажировки по своему направлению и ждем приглашений.
6️⃣ Проходим собеседования и обязательно просим фидбека от работодателя. Важно понимать, что вас будут очень много бить палками за слишком малую глубину знаний в вашей специализации. Но не унываем и не расстраиваемся - обязательно ходим по собеседованиям и учим, то на что плохо ответили.
7️⃣ В один момент ваши знания превысят порог вхождения в профессию и вы получите оффер. Profit!📈
👍1
Рубрика «всратые вакансии»
Грустно, когда эйчары даже не могут понять, что java и javascript не одно и то же, и что это довольно далеко от скиллов R&D дата саентиста
🤬1
Совсем скоро (уже в эту субботу) начнется ежегодное мероприятие сообщества Open Data Science - Data Fest 2022.
Будет много интересных докладов по темам Reliable ML, NLP, RecSys, MLOps (про ds в медицине и Reliable ML - как по мне самые интересные).
Даже если вы совсем начинающий DS - вам все равно будет полезно послушать матерых синьоров-помидоров.

https://ods.ai/events/datafestonline2022
Вот и мое обучение в Школе 21 подошло к концу
За почти три года я успел научиться кодить на С и Python, сделал множество проектов, очень много собеседовался и нашел себе работу в любимой сфере
Безумно рад, что в 2019 году увидел ее рекламу, рванул проходить месячный бассейн, снял комнату в пяти минутах от здания школы и посвятил все свое время учебе
Я учился сам всему и наступил на множество граблей за все эти года, поэтому у меня появилось желание помогать людям с вхождением в IT
В самом начале было совсем не понятно чего ожидать, что и как учить
Сейчас у меня освободилось время и я готов помочь начинающим в DS с написанием резюме, общим планом подготовки к собеседованиям
Для тех, кто хочет проверить свои силы и уровень подготовки в боевом режиме - можем устроить мок собеседование на час и я дам вам развернутый фидбэк

Пишите в комментарии на каком уровне вы сейчас находитесь и хотите ли проверить себя в режиме собеседования
👍13🎉1
Хотел поучаствовать в подкасте Школы 21 "Дедлайн вчера" и рассказать свою историю в качестве дата саентиста самоучки, но к сожалению 2 сезон подкаста уже закончился и все подготовленные выпуски уже выпущены. Договорились записаться ближе к зиме.
Не унываю и надеюсь на вашу поддержку, когда подкаст все таки запишем 😄
А следующий пост будет о более подробном плане подготовки на стажера/джуна дата саентиста без платных курсов и прочей ненужной мишуры 🥸
🔥16👍21
Краткий план подготовки для начинающего дата саентиста

1. Узнать основы основ (~4-8 месяцев)
Первым делом нужно выучить и понять всю теорию. Если вы не будете понимать нужные предметные области, то никогда не пройдете собеседование хорошо.
Если вы совсем новичок, вам стоит посмотреть гарвардский курс CS50 по основам программирования на русском, чтобы лучше ориентироваться в мире Computer Science.

1.1 Python + SQL
Проходим курсы по базовым конструкциям языка. По Python - ТУТ, а по SQL - ТУТ или ТУТ.
Далее вам нужно пройти курс по теории алгоритмов и структур данных, чтобы пойти на leetcode и сделать весь easy уровень.

1.2 Математика
Если проблемы со школьной математикой - курс для вас по основам математики.
Проходим курс по математическому анализу, курс по линейной алгебре, курс по теории вероятностей, курс по математической статистике (часть 1, часть 2).

1.3 Machine Learning
Читаем теорию по классическому машинному обучению - ТУТ и ТУТ. Для желающих максимально разобраться в теории машоба - лекции Воронцова (сначала только пройдите все курсы до этого и усвойте оттуда максимальное количество информации, иначе рискуете получить небольшой шок от кол-ва тяжелого матана). Максимально разбираем все непонятное - формулировки, формулы, термины и методы построения алгоритмов.

2. Получить немного практического опыта (~1-2 месяца)
После того как вас полностью изнасиловала теория нужно переходить к практике. Начинаем с маленьких учебных соревнований на kaggle. Просто выбираем понравившееся учебное соревнование, скачиваем датасет и пытаемся получить максимально хорошие метрики качества. Каггл хорош тем, что люди там выкладывают свои решения и можно посмотреть и понять как правильно строить модели.

После парочки решенных соревнований можно начать делать свой пет-проект.
Идею должны выбрать вы сами.
Несколько примеров - тг бот фильтрующий негативные комментарии, детектор кошек на фото, имплементация любого классического алгоритма, предсказание цены на сырки Б.Ю. Александров и многое другое.

3. Написать резюме
После написания пет-проектов и ботания соревнований можно писать резюме. Не нужно брать ужасное резюме с hh. Пишем свое с нуля. Хороший пример написания резюме - ТУТ. Резюме должно состоять из одной страницы, быть максимально информативным, без шуток/сарказма и других неуместных вещей.

4. Проходить собеседования
Тут все просто. Проходим собеседования и доучиваем то, чего вам не хватило. Повторять до сходимости 🤓

P.S. Все указанные курсы бесплатны.
Пишите в комментариях, что думаете по поводу расписанного плана
👍19🔥14😱3
В прошлом посте я коротко описал план подготовки джуна дата саентиста, Стоит ли пройтись по каждому пункту подробнее?
Anonymous Poll
95%
Да
3%
Нет
3%
Свой ответ в комментариях
Про Python и SQL

Что это?
Python:
Высокоуровневый язык программирования с динамической типизацией и автоматическим управлением памяти. Известен своей огромной библиотекой пакетов PyPI. Можно найти пакет/библиотеку/фреймворк на любой случай жизни.
SQL:
Декларативный язык программирования, применяемый для создания, модификации и управления данными в реляционной базе данных.

Зачем нужны?
Python:
Благодаря лаконичности, простому синтаксису и богатому набору инструментов Python стал любимым языком дата саентистов среди которых большое количество выходцев из науки. Python очень терпим к плохому написанию кода и техническому долгу (это не значит, что нужно писать плохой код в jupyter notebook). Сейчас Python - это стандарт индустрии для дата саентистов. Нужно знать синтаксис, особенности языка и библиотеки, чтобы умело оперировать анализируемыми данными и обучаемыми моделями.
SQL:
Прежде чем делать любой анализ данных - сначала эти самые данные нужно откуда-то получить. В соревнованиях и хакатонах вам уже доступны заранее выгруженные и обезличенные данные, но в реальной работе приходится вытаскивать все нужные вам данные самостоятельно из распределенных и не очень баз данных с помощью SQL.

Что нужно знать?
Python:
* базовый синтаксис
* различия структур данных (списков, кортежей и словарей) и их асимптотическая сложность
* генераторы, итераторы
* объектно-ориентированное программирование (ООП)
* потоки и процессы
* что такое GIL
* фреймворки и библиотеки (numpy, pandas, matplotlib, seaborn/plotly, scikit-learn и другие)
SQL:
* построение простых запросов
* фильтрация данных (WHERE, ORDER BY, DISTINCT, LIMIT)
* агрегирующие функции (SUM, AVG, COUNT, MIN, MAX)
* группировка данных (GROUP BY, HAVING)
* объединения таблиц и их виды (LEFT JOIN, RIGHT JOIN, INNER JOIN, OUTER JOIN, CROSS JOIN)
* вложенные запросы
* оконные функции
👍8🔥2
Анонс для студентов Школы 21
В эту субботу в 16:00 на мероприятии «КОД НА ПРОД» буду рассказывать о своей работе в data science и отвечать на вопросы в Атриуме московского кампуса
Также будут другие спикеры из сфер frontend, backend, devops, gamedev
Приходите слушать, задавать вопросы и общаться в живую!)
🔥18👍1