Фух, я только что поучаствовал в хакатоне "Хакатон труда"(https://хакатонтруда.рф/). А теперь немного мотивации для тех, кто только хочет изучать data science: со мной в команде был парень, который только что перешёл в девятый класс. Он создал неплохую модель, которая позволяет извлекать информацию из описаний вакансий. Лучше всего модель работает для IT-сектора. Если получилось у него, то при должном усердии получится и у вас.
Итак, мой небольшой отчет о прошедшем хакатоне "Хакатон труда"(https://хакатонтруда.рф/).
Наша команда:
* я (Денис Обрезков, впервые открыл книгу по data science месяц назад)
* Максим Герасимов (перешел в 9ый класс, уже год изучает data science)
* Екатерина Разумова (рисует тут: https://vk.com/katereenart).
На хакатоне можно было участвовать в трех номинациях: предложить решение на коде, предложить концепцию, предложить решение на nocode (набросать решение в каком-нибудь шаблонизаторе типа figma).
Таким образом, хакатон - это не всегда про программирование.
Итак, на хакатоне мы захотели попробовать решить задачу по извлечению навыков работника из описания его резюме. Тут мы сделали первую ошибку: мы стали делать каждый своё решение. Команда наша новая, поэтому так получилось.
Если коротко, то моё решение строилось на том, что если человек устроился в какую-то фирму, значит его резюме подходило под скиллы, запрошенные работодателем. Моя модель обучалась находить закономерности в резюме, которые соответствуют определенным key_skills. К примеру, если в вакансиях прописан скилл "активность", и таким вакансиям часто соответствуют резюме с сочетанием слов "готов помочь", то если уже обученная модель при обработке нового резюме увидит сочетание "готов помочь", то она присвоит больший вес этой вакансии в сторону класса "активность".
Решение Максима, к сожалению, я до конца понять не смог. Если коротко, то он исходил из того, что описание вакансии и key_skills сильно связаны.
В итоге, мы сделали пятиминутную видеопрезентацию:
https://www.youtube.com/watch?v=lIvPvsF6DG0
Презентация была нашей второй недоработкой. Звук получился плохим, презентация показалась самому мне довольно скучной, я не добавил слайда со сложными вау-эффект визуализациями, вдобавок я забыл четко прописать, чего же мы достигли, и как это может быть полезно.
Тем не менее, наша команда вышла в финал (12 команд из 50). Ну, а сам финал (моё видео, транслируемое организаторами, и мои ответы на вопросы, часть которых я не услышал) вы можете наблюдать в прикрепленном видео с 22:57 (https://youtu.be/I2RdZ5zlA1I?t=1377). Код моей модели вы можете увидеть в ноутбуке гугла: https://colab.research.google.com/drive/1MZ9lKrQiLZqbHh5Kft4QQoWUDaWt5YfU?usp=sharing

Итог. Пусть мы и не выиграли конкурс (в номинации code выиграли poddalsya, ТруДно и парамс), но я получил очень приятный опыт. Я понял, что организаторы хакатона по data science могут не иметь о data science практически никакого представления - значит, им нужно всё доступно разжевывать; что умелое лидерство зачастую важнее навыков команды. Но при всем этом я рекомендую участие в хакатоне всем тем, кто хочет поднять уровень своих навыков (если они уже есть на каком-то уровне).
P. S. Конструктивная критика приветствуется.
Одна из важнейших областей знаний программиста - алгоритмы. Знание теории алгоритмов позволяет понять, как измерить скорость выполнения функции в общем случае, как измерить вычислительную сложность последовательности действий, какие структуры стоит использовать для решения тех или иных задач.
Одна из лучших книжек по алгоритмам, которые встречались мне:
Кормен Томас Х., Лейзерсон Чарльз И., Ривест Рональд Л., Штайн Клиффорд - "Алгоритмы. Построение и анализ".
https://www.ozon.ru/context/detail/id/33769775/

Книгу можно скачать на рутрекере или по поиску в Документах вконтакте. Книга может показаться сложной.

Альтернатива книге - курс на степике: https://stepik.org/course/1547/promo
Продолжу про базовое образование программиста и книжки. На первых курсах программных специальностей изучаются математический анализ, алгебра и геометрия, комплексный анализ. Большая часть людей (включая меня) просто не в силах после школы адаптироваться к строгому языку изложения.
Итак, одна из самых доступных книг по этим дисциплинам:
Письменный Д.Т. Конспект лекций по высшей математике.
(https://www.ozon.ru/context/detail/id/138200551/)

Книга довольно популярна, доступна на рутрекере и даже на сайте одного университета:
http://kvm.gubkin.ru/pub/vnz/Pismennyi.pdf
Погружение в глубокое обучение: бесплатная интерактивная книга с кодом, математикой и обсуждениями http://d2l.ai
Пожалуй, поделюсь ещё одной очень известной в узких кругах книжкой. Она подойдет для начального ознакомления с Искусственным Интеллектом. Читается довольно легко, не изобилует математическими сложностями, но содержит кучу информации и кучу заданий.
Итак, знакомьтесь: Рассел С., Норвиг П. "Искусственный интеллект. Современный подход" (AIMA).
Книга доступна рутрекере на русском языке (2-е издание 2006го года), на английском языке (3-е издание 2010 года "Artificial Intelligence: A modern approach"), и недавно вышло четвертое англоязычное издание, доступное на амазоне для покупки (https://www.amazon.de/Stuart-Russell/dp/1292153962).

Дополнительно к этому выложены упражнения (https://aimacode.github.io/aima-exercises/) и реализации алгоритмов из книги на разных языках программирования (https://aimacode.github.io/aima-exercises/).

Сайт книги: http://aima.cs.berkeley.edu/
Лето заканчивается, поэтому группа потихоньку постарается вернуться к былой активности. Я думаю, что мы опробуем новые форматы (стримы), посмотрим на игровые движки, посмотрим на веб-фреймворки, может вместе посмотрим на какие-нибудь материалы по data science.
Буду рад услышать ваши предложения, чего вам не хватает, что хочется узнать, что вас лишает мотивации.
Начинаем нашу небольшую подборку курсов от openedu. openedu.ru -
это образовательная платформа, на которой российские вузы выкладывают свои обучающие материалы. Сами материалы бесплатны, однако, для получения сертификата, который можно будет зачесть в своём вузе, необходимо оплатить около 2 т.р. и сдать итоговый экзамен.

Итак, курсы по python:

https://openedu.ru/course/urfu/PYAP/ "Прикладное программирование на языке Python" - базовый курс по python.

https://openedu.ru/course/hse/PYTHON/ "Python для извлечения и обработки данных" - несмотря на название, курс тоже является базовым.
Спасибо всем, кто проголосовал в опросе. За следующие три-четыре месяца я постараюсь написать одну главу для учебника по питону. Тема: функции.
Несмотря на то, что победил вариант "Лямбды", крайне целесообразным видится осветить более базовую вещь - функции. Группа у нас для начинающих, проголосовавших за "Функции" очень много, поэтому и рассказать доступно я попытаюсь про более базовый материал. К тому же я не уверен, что все, кто проголосовал за лямбды, понимают до конца, что такое функции.
Думаю, что эти курсы достойны упоминания: https://edufree.geekbrains.ru/?courses=programming

Наш традиционный дисклеймер: пожалуйста, критически относитесь ко всей информации, поступающей на таких мероприятиях. Позиция администрации группы: "В открытом и бесплатном доступе есть весь необходимый материал. Чтобы стать профессионалом, нужна лишь сила воли."
У нас радостное событие - в нашей группе стало больше трех тысяч человек. А это значит, что повысилась вероятность того, что кому-то материалы нашей группы реально помогут - ура!.🎉🎉🎉
Как я и обещал, в группе появятся новые активности и новые материалы, а это повод для нового опроса.
https://vk.com/learnpythonforfun?w=wall-193480984_662
В следующее воскресенье 13 сентября в 19.00 по Москве я постараюсь провести вебинар на тему "Основные понятия Python". На этом вебинаре я хочу повторить основные понятия программирования - переменные, ветвления, циклы, функции, основные структуры данных. Если надо осветить какие-то конкретные вопросы, пишите в комментариях.
Сегодня 256 день в году, а значит - день программиста! Все причастных - с праздником!
https://xkcd.ru/i/353_v1.png
Мы вам тут насоветовали курсов по статистике, теории вероятности, machine learning и т.д. Я сам их начал проходить.
Моему негодованию нет предела - кажется, что и учебники, и курсы составляются как сборники формул и задач. Заинтересованности в том, чтобы учащийся понял предмет очень часто нет практически совсем!
В общем, надеюсь, что мы сможем найти материалы получше.

А пока...вот пост моего негодования: https://pikabu.ru/story/pochemu_v_rossii_tak_plokho_prepodayotsya_vyisshaya_matematika_7709945