Как самостоятельно выучиться на дата-саентиста — адаптированная подборка
Меня зовут Айра, я веду блог про математику, продукты и ML, делаю проекты в DS/ML, а также курсы по созданию ML-проектов. От своей аудитории блога и знакомых часто получаю вопросы в духе «Cтоит ли тратить деньги на тот или иной дорогой курс с codename «Стань DS за два месяца» или все же выучиться на дата-саентиста самостоятельно и бесплатно, и в таком случае, с чего начать?»
Недавно собрала ответ на этот вопрос достаточно развернуто, на мой взгляд, чтобы поделиться им с широкой аудиторией. Не все платные курсы плохие (хотя большинство — да — из-за механизмов отбора, продаж и слабой программы), но о них напишу отдельно. Мне кажется, нужно учитывать больше персонализированных параметров для того, чтобы грамотно выбирать хороший курс за деньги.
Во-первых, в список вошли бесплатные онлайн-курсы и ресурсы для самостоятельного обучения, которые проходила сама или советует профессиональное сообщество аналитиков и дата-саентистов (часто упоминающиеся в ODS.ai), где не нужно проходить какой-то отбор или быть ограниченным офлайн-посещением.
Во-вторых, конечно, это далеко не полный список онлайн-курсов, который вы можете встретить, зато в него попали лучшие курсы от сильных математических и Computer Science-школ мир и другие распространенные ресурсы среди профи из того, что я смогла отфильтровать на свой вкус.
В-третьих, начну с короткого списка, с которого, как мне кажется, стоит начинать обучение предмету, и он идет сразу же следующим абзацем.
С чего советую начать, чтобы тратить время эффективно?
Предполагая, что начинающий дата-саентист уже прошел подготовительные курсы а-ля гарвардский CS50 по основам программирования, pythontutor.ru или курс на Stepik от Института Биоинформатики, посоветую несколько шагов, которые должны стать твердой базой. Далее ссылки все полные, чтобы было легче копировать:
Зарегистрироваться в самом популярном в СНГ профессиональном slack-сообществе Open Data Science ODS.ai, вступить в как можно больше чатов, в том числе про менторство, обучение и карьеру и общаться с местными, чтобы расширить свой кругозор относительно работодателей, требований к прохождению интервью, к позиции и их различиях в разных компаниях и др, найти хороших наставников, тк. такие в сообществе есть!
Пройти вводный курс «Математика и Python для анализа данных» на Coursera — платный, недорогой и хороший. www.coursera.org/learn/mathematics-and-python
По программированию — пройти в leetcode.com все релевантные упражнения: это бесплатные или недорогие в премиальной версии в соотношении цена/качество тренажеры (в нем есть в том числе упражнения на интервью в FAANG).
Пройти mlcourse.ai — это открытый курс машинного обучения от ODS. Авторы смогли разработать курс машинного обучения с балансом между теорией и практикой, когда в лекции вы разбираете достаточно подробно математику, а затем упражняетесь сначала в блокноте, затем на Kaggle.
Для обучения решению разнообразных задач и оптимизации кода — участвовать в соревнованиях по анализу данных и машинному обучению на платформе kaggle.com.
Математика для DS/ML
Приятный курс Стэнфорда по DS «Introduction to Statistics» www.coursera.org/learn/stanford-statistics
Коротенький интерактивный курс по теории вероятностей и математической статистике «Seeing Theory» seeing-theory.brown.edu/
Хороший вводный курс по математике для анализа данных, более объёмный «Специализация Математика для анализа данных:. Можно послушать только интересную тему: дискретная математика / линейная алгебра / математический анализ / теория вероятностей. www.coursera.org/specializations/maths-for-data-analysis
Довольно подробная и читаемая книга по теорверу и матстату «Dekking, A Modern Introduction to Probability and Statistics» cis.temple.edu/
Python&SQL для DS/ML
Упомянутый выше бесплатный тренажер по Python с нуля: pythontutor.ru/
Отличный курс по инструментам по DS от IBM «Специализация Data Science Fundamentals with Python and SQL» www.coursera.org/specializations/data-science-fundamentals-python-sql
Упомянутый выше русский курс по питону и математике (платный, недорогой и хороший) «Математика и Python для анализа данных (Coursera)» www.coursera.org/learn/mathematics-and-python
Упомянутый выше https://leetcode.com/: пройти все релевантные упражнения, это бесплатные или недорогие в премиальной версии в соотношении цена/качество тренажеры (в нем есть в том числе упражнения на интервью в FAANG).
Начальные курсы по ML
Как бы этот курс не ругали из-за устаревшего языка программирования Octave (на котором пишут на Matlab), на мой вкус — это пока что самый простой и понятный курс по ML. Машинное обучение (Coursera) https://www.coursera.org/learn/machine-learning — стэнфордский курс по машинному обучению от Andrew Ng
mlcourse.ai — это открытый курс машинного обучения от ODS. Авторы смогли разработать курс машинного обучения с балансом между теорией и практикой, когда в лекции вы разбираете достаточно подробно математику, а затем упражняетесь сначала в блокноте, затем на Kaggle.
Более продвинутые курсы по ML
Если хочется погрузиться в математические доказательства методов машинного обучения, то есть прекрасные ШАДовские лекции К.В. Воронцова: плейлист «Курс «Машинное обучение» 2019” на YouTube-канале “Компьютерные науки», www.youtube.com/watc? v=SZkrxWhI5qM&list=PLJOzdkh8T5krxc4HsHbB8g8f0hu7973fK&index=2
Также хорош ежегодный гарвардский курс «Advanced Topics in Data Science CS109B». harvard-iacs.github.io/2020-CS109B/
Или курс по углубленным алгоритмам Advanced ML от ВШЭ: «Специализация Продвинутое машинное обучение» www.coursera.org/specializations/aml
Deep learning
(Мне кажется, можно пройти один курс из списка, а остальные смотреть на предмет дополнений)
Рекомендованный Стэнфордовский курс по DL «CS231n: Convolutional Neural Networks for Visual Recognition» cs231n.github.io/
Хороший курс от Университета Карнеги—Меллон «11-785 Introduction to Deep Learning» deeplearning.cs.cmu.edu/F21/index.html
Курс от MIT: «Practical Deep Learning for Coders» https://course.fast.ai/
ШАДовский курс по глубокому обучению доступен в github: «Practical_DL» github.com/yandexdataschool/Practical_DL
Бесплатные классные курсы от МФТИ: dlschool.org/
Также есть курс по DL у ODS.ai, который тоже советуют проходить в самом сообществе: «Deep Learning на пальцах» dlcourse.ai/
А еще есть курс у Samsung AI Research Center на Stepik.org stepik.org/course/50352/info
Natural Language Processing
Стэнфордовский «CS224n: Natural Language Processing with Deep Learning » web.stanford.edu/class/cs224n/
Второй курс у Samsung AI Research Center на Stepik.org https://stepik.org/course/54098/promo
Reinforcement Learning & Self-driving cars
От Deepmind «RL Course by David Silver» www.youtube.com/watc? v=2pWv7GOvuf0
Австралийский курс StarAi «Deep Reinforcement Learning Course » www.starai.io/course/
Data Engineering & MLOps
Бесплатный курс по DE от Дмитрия Аношина, дата-инженера из Microsoft, ex-Amazon: Getting start with Data Engineering and Analytics https://datalearn.ru/ (курс готовится in progress)
Соревнования
Ну, и для обучения решению разнообразных задач и оптимизации кода — участвуйте в Kaggle. https://kaggle.com/
Кроме Kaggle, есть еще несколько соревнований:
Изучение data science c нуля: этапы и вехи
В соответствии с концепцией спирального подхода к обучению, о которой писал ранее, привожу поэтапный план освоения data science. План составлен так, чтобы каждый этап делал учащегося в той или иной степени лучше подготовленным к выполнению реальных задач. Такой подход вдохновлен идеологией Agile в том смысле, что сколько бы времени вы ни уделили обучению и в какой бы момент ни остановились, у вас будет наиболее востребованный набор знаний из возможных к освоению за такое время.
Объяснить данную логику также можно от обратного: опасно сразу учить нейронные сети, т.к. не востребован человек знающих о них что-то, но не умеющий эффективно применять на практике. И, например, можно за 300 ч получить какой-то набор знаний, который не делает вас достаточно хорошим специалистом для решения каких-либо реальных задач, и не позволит найти даже начальную работу чтобы продолжить развивать эти навыки.
Позднее, в отдельной статье напишу хорошие курсы и книги, соответствующие каждому этапу (некоторые курсы и книги для первых этапов уже указал ранее в первой статье этой серии).
Этап 1. Базовые инструменты анализа данных: SQL, Excel
SQL, основы (20ч). Самостоятельное знание SQL может пригодится для выполнения кучи других задачи. И оно, в любом случае, необходимо для большой (большей?) части вакансий на позицию аналитика, дата сайентиста и, тем более, machine learning engineer.
Основы Excel (10ч): фильтры и сортировка данных, формулы, vlookup, pivot tables, базовая работа с графиками. Коллеги, партнеры или руководство будут присылать входящие данные в excel, и вам нужно будет уметь их быстро понять и изучить. Нередко и результаты анализа сделанного на Питоне удобнее подготовить и предоставить в Excel.
Базовый английский (20-200ч, зависит от предыдущего уровня), на уровне самостоятельного чтения технической документации и спец.литературы. Например, вам совершенно необходимо уметь читать официальную документацию pandas/scikit, и также многие хорошие материалы по Python доступны только на английском.
Этап 2. Основы Python и Pandas
Основы Python (80ч). Без знания Питона невозможно использовать львиную часть инструментов машинного обучения. Другие языки менее эффективны в этой сфере и непопулярны.
Также научиться основам работы с разными API и парсингом данных (requests, beatiful soup)
На этом этапе дополнительные знания Python позволяют вытаскивать данные из разных API, или путем веб-парсинга.
Возможно, на работе в позиции аналитика от вас не будут ожидать знаний Питона. Но вы можете сами найти где его применить, автоматизировать что-либо, и получить большой плюс в глазах работодателя (помимо ценного опыта для себя). Шансы на трудоустройство на этом этапе не вырастут, но может вырасти зарплата, если эффективно это будете применять.
Этап 3. Базовые понятия и классические алгоритмы машинного обучения
(Этот этап может занять 200-400 ч в зависимости от того, насколько хорошо изначально вы владеете математикой)
Базовые понятия машинного обучения:
Экстраполяции (понимание возможности в контексте разных алгоритмов)
Базовые алгоритмы, которые достаточно знать на уровне главных принципов:
Прогнозирование и классификация:
Работа с временными рядами: экспоненциальное сглаживание
Понижение размерности: PCA
Базовые приёмы подготовки данных: dummy переменные, one-hot encoding, tf-idf
умение считать вероятности: основы комбинаторики, вероятности независимых событий и условные вероятности (формула Байеса).
Понимать смысл фразы: «correlation does not imply causation», чтобы верно трактовать результаты моделей.
Мат.методы, необходимые для полного понимания, как работают ключевые модели машинного обучения: Градиентный спуск. Максимальное правдоподобие (max likelihood), понимание зачем на практике используются логарифмы (log-likelihood). Понимание как строиться целевая функция логистической регрессии (зачем log в log-odds), понимание сути логистической функции (часто называемой «сигмоид»). С одной стороны, нет жесткой необходимости всё это понять на данном этапе, т.к все алгоритмы можно использовать как черные ящики, зная только основные принципы. Но понимание математики поможет глубже понять разные модели и придать уверенности в их использовании. Позднее, для уровня senior, эти знания являются уже обязательным:
Без практических навыков знания данного этапа мало повышают ваши шансы на трудоустройство. Но значительно облегчают общение с другими дата-сайентистами и открывают путь для понимания многих дальнейших источников (книг/курсов) и позволяют начать практиковаться в их использовании.
Этап 4. Набор базовых навыков решения задач
По сути, это практика по теоретическим знания предыдущего этапа. Имеет смысл отвести на это 100-300ч. И важнее уметь хотя бы как-то применять все указанные выше методы, чем дотошно разобраться в одном из них.
Тут же следует инвестировать время в изучение разных приёмов и трюков feature engineering
По завершению данного этапа есть шанс устроиться на позицию junior data scientist. ЗП будет низкая. Но главное будет продолжать учиться. До достижения уровня senior возможность учиться у коллег ценнее, чем текущая зарплата.
Знакомство с основами нейронных сетей
На данном этапе может быть полезно знание основ нейронных сетей, CNN, RNN/LSTM слоев, vector embeddings. Но не обязательно уметь тренировать их самому, на данном этапе. Пока это важно для «общего развития» и чтобы вы не хотели применять нейронные сети там, где без можно обойтись, и, наоборот, понимали где они могут быть полезны и когда имеет смысл или обращаться к коллеге уже их знающему, или браться за глубокое изучение и практику.
Также данный этап должен позволить примерно оченить сколько ресурсов от вас это потребует, если вы решите в это нырнуть.
Рекомендую ограничить это объемом в 20-40ч, необходимым только для общего понимания концепций.
Этап 5. Дополнительные технические навыки, необходимые в работе
Данные этап может занять 60-200ч, в зависимости от степени перфекционизма. Оптимальным кажется изучить всё на столько, чтобы понимать ключевые принципы и команды, но не обязательно тренироваться на большом количестве учебных примерах, т.к. если удастся устроиться на работу, то получение практики и оттачивание навыков можно делать уже в процессе работы
Conda, понимание проблем зависимостей версий библиотек, и как conda это может решить
Python standard library, если не освоили ранее (необходимый минимум itertools, collections, contextlib), умение эффективно разбивать код на функции и модули, классы; умение применять context managers.
Основы git, также очень полезно умение работать с IDE: pycharm/vs code. Их использование облегчит работу с git, заменив графическим интерфейсом работу с командной строкой
Библиотеки визуализации (matplotlib+seaborn, plotnine, plotly), если не освоили их раньше.
С таким багажом знаний наверняка можно найти позицию джуниор дата сайентиста (может называться по-другому, но суть та же).
В принципе, на этом уровне знаний можно работать годами, практикуясь в применении разных из уже изученных моделей, библиотек и инструментов, осваивая вспомогательные методы (feature engineering), нюансы, и способы решения похожих же задач, с помощью разных библиотек (xgboost, cat-boost). Постепенно будет уровень рост ЗП. Но это не уровень Senior специалиста.
Изучаем по необходимости, этапы 2-5
Визуализация данных
В какой-то момент времени вам потребуется уметь визуализировать данные, с которыми вы работаете. Имеет смысл активно это изучать тогда, когда вы будуте готовы сразу примененять эти знаний на практике, потому что иначе они не запоминаются. В Питоне существует несколько библиотек (привожу рекомендуемый порядок изучения):
matplotlib – на нём базируется следующие два варианта, и потенциально он может всё. Но тяжел и неэффективен для прямого использования, кроме построения уродливых графиков, для себя и коллег-технарей. Можно специально не учиться его применять, а понять только самые основы, которые будут «проступать» из-за других библиотек.
До начала применения в реальной практике, на обучение можно себя ограничить в 10-20ч на одну библиотеку.
Средства работы с данными
Можно учить на разных этапах, в зависимости от задач, с которыми столкнётесь
Основы regular expressions, aka RegExp (10ч). Знания regexp необходимо для продвинутой фильтрации данных в разных инструментах для работы с данными.
Внутри Spark устроен сильно не так, как обычные базы данных, но с точки зрения использования он оказывается сильно похожим, т.к. поддерживает почти стандартный SQL синтаксис или, как альтернативу, API отдалённо похожий на pandas. Определенные концептуальные отличия присутствуют, но больших сложностей в освоении это не вызывает. В последнее время продвигают библиотеку Koalas, которая будет использовать команды совсем как у pandas для работы с spark-кластером, но пока не советую делать это основным подходом по работе с Spark.
Этап 6
Углубление и развитие технических навыков
Если предыдущие этапы давали вам навыки, без которых работать ну вообще нельзя, то навыки этого этапа призваны повысить вашу продуктивность или повысить качество решаемых задач, повысить самостоятельность при запуске разработанных моделей машинного обучения в продакшн.
Уверенное пользование bash, понимание основ linux
Полезно изучить основы docker
Все эти вещи можно было бы учить и раньше. Но, как правило, раньше их знать просто не нужно. Т.к. вы больше будете страдать от нехватки других навыков, приведенных в предыдущих этапах.
Другие области машинного обучения
В какой-то момент вам может потребоваться выйти из сферы подготовки прогнозных моделей или изучения и объяснения данных (кластеризация, EDA и визуализация). Это может быть связано как с вашими интересами, так и с проектами на работе. Например, это могут быть рекомендательные системы. Наверное, базовые рекомендательные алгоритмы можно изучать и одновременно с основами машинного обучения, т.к. знание одного не является обязательным для знания другого. Но логичнее переходить к ним, когда вы уже разобрались с основными алгоритмами обучения прогнозирования и кластеризации: скорее всего, этого от вас будут ожидать любые коллеги до тех пор, как вы включитесь в работу над рекомендательными системами.
Нейронные сети
Начиная с этого этапа имеет смысл изучать нейронные сети как следует с тем, чтобы применять их на пратике. Неэффективно изучать их раньше, т.к. многие задачи эффективно можно решить другими методами. И пока ваши данные и прогнозы изначально числовые, обычно «классическими» методами их решать эффективнее.
Подробнее в этапы изучениях нейронных сетей вдаваться не стану: эта тема требует отдельной статьи. И потратить на них можно от 50, чтобы решать самые простейшие задачи, до сотен часов, чтобы решать задачи связанные с обработкой неструктурированных данных или с обучением сложных моделей.
Другие статьи
Готов выступить ментором в самообучении
self.development.mentor в домене gmail.com, Олег
Заметки Дата Сайентиста: с чего начать и нужно ли оно?
TL;DR это пост для вопросов/ответов про Data Science и о том, как войти в профессию и развиваться в ней. В статьей я разберу основные принципы и FAQ и готов отвечать на ваши конкретные вопросы — пишите в комментариях (или в личке), я постараюсь на все ответить в течение нескольких дней.
С появлением цикла заметок «дата сатаниста» пришло немало сообщений и комментариев с вопросами о том, как начать и куда копать и сегодня мы разберем основные скиллы и вопросы возникшие после публикаций.
Все указанное тут не претендует ни какую истину в последней инстанции и является субъективным мнением автора. Мы разберем основные вещи, которые кажутся самыми важными в процессе.
Зачем именно это нужно
Для того, чтобы цель была достижима лучше, чтобы она хоть как-то конкретно выглядела — вы хотите стать DS или Research Scientist в Facebook/Apple/Amazon/Netflix/Google — смотрите требования, языки и необходимые навыки прям конкретно под какую позицию. Какой процесс найма? Как проходить обычный день в такой роли? Как выглядит усредненный профиль человека, который там работает?
Часто общая картина в том, что человек не очень понимает, что именно хочет и не совсем понятно, как к этому неясному образу готовиться — поэтому стоит иметь хотя бы примерный план того, что именно вы хотите.
Конкретизируйте текущее представление цели
Даже, если оно по ходу будет меняться, а это вообще нормально — менять планы по ходу пьесы — стоит иметь перед собой цель и на нее ориентироваться, периодически оценивая и переосмысливая.
Будет или это еще актуально
К тому моменту, как вы дорастете до позиции.
Представьте, что до вашей позиции вам нужно получить PhD, поработать 2-3 года в индустрии и вообще остричься, медитируя в монастыре — не будет ли с Data Science такой же ситуации как когда-то с экономистами и юристами? Не изменится ли все до неузнаваемости в той области, которой вы хотите заниматься.
Нет ли хорошего шанса, что все сейчас именно туда и ломанутся и мы увидим картину, когда есть широкий пласт людей, которые пытаются войти в профессию — а позиций для старта будет просто мизер.
Возможно стоит учесть текущие тенденции при выборе пути, не только текущее состояние рынка труда, но и ваше представление о том, как он меняется и в какой точке находится.
К примеру автор и не планировал идти в дата сатанисты, а во время PhD пилил сторонние проекты, которые сильно перекликались по скиллам с DS и по окончанию аспирантуры естественным образом перешел в среду, увидев хорошую позицию.
Если по ходу пьесы окажется, что нужно будет переходить куда-то еще — ибо там сейчас самая движуха и все самое интересное действо происходит, ну значит туда и будем переходить естественным образом.
Разбивка навыков
Это условные категории навыков, который мне кажутся ключевыми для полноценной и эффективной работы в DS. Отдельно выделю английский — учите, чем бы вы не занимались в CS. Далее будут ключевые категории.
Программирование/Скриптинг
С какими языками обязательно надо познакомиться? Python? Java? Shell scripting? Lua? Sql? C++?
Что именно нужно уметь и зачем в плане программирования — тут спектр позиций очень разнится.
Например, мне часто приходится реализовывать сложную логику, запросы, модели, аналитику и вообще разрабатывать именно интерпретируемые системы, но практически никогда нет требований по скорости работы кода, кроме самых общих и разумных.
Поэтому мой набор навыков сильно отличается от тех, кто пишет библиотеку Tensorflow и думает об оптимизации кода под эффективное использование l1 кеша и подобным вещам, поэтому смотрите, что именно нужно вам и оценивайте правильный путь к изучению.
Например, для питона люди уже даже составляют карту изучения языка.
Наверняка под ваши нужды уже имеются советы бывалых и есть хорошие источники — надо определиться со списком и начать им заниматься.
Понимание бизнес процессов
Без него никуда: вам нужно понимать зачем вы нужны в данном процессе, что вы делаете и зачем. Часто именно это может сэкономить вам кучу времени, максимизировать свою пользу и не тратить время и ресурсы на фигню.
Обычно, я задаюсь следующими вопросами:
Математика
Тут вы думаю и сами все понимаете — без знания базовой математики вы не более чем бебезьян с гранатой (простите с Random Forest) — поэтому нужно понимать хотя бы базовые вещи. Если бы я составлял прям самый минимальный список, то туда бы вошли:
Практический анализ и визуализация данных
Одна из самых принципиальных вещей — уметь не бояться испачкать руки в данных и провести всесторонний анализ датасета, проекта и накидать быструю визуализацию данных.
Exploratory data analysis должен стать просто чем-то естественным, как и все прочие трансформации данных и умение накидать простой пайплайн из unix тузлов (см. предыдущие статьи) или написать читаемый и понятный ноутбук.
Отдельно упомяну визуализацию: лучше один раз увидеть, чем сто раз услышать.
Показать менеджеру график в сто раз проще и понятнее, чем набор цифр, поэтому matplotlib, seaborn и ggplot2 ваши друзья.
Софт скиллы
Не менее важно уметь донести свои идеи, а также результаты и опасения (итд) до окружающих — убедитесь, что вы умеете четко изложить задачу как в технических, так и бизнес терминах.
Можете объяснить коллегам, менеджерам, начальству, клиентам и всем, кому требуется, что происходит, какими данными вы оперируете и что за результаты вы получили.
Ваши графики и документация должны читаться без вас. То есть, не нужно идти к вам, чтобы понять, что там написано.
Вы можете сделать понятную презентацию, чтобы донести суть происходящего и/или задокументировать проект/свою работу.
Вы можете аргументированно и безэмоционально донести свою позицию, сказать “да/нет” или поставить под сомнение/поддержать решение.
Обучение
Есть много разных мест, где можно все этому научиться. Я приведу краткий список — я пробовал из него все и, честно скажу, у каждого пункта есть свои плюсы и минусы. Пробуйте и решайте, что подходит вам, но крайне рекомендую попробовать несколько вариантов и не зацикливаться на одном.
А надо ли оно?
В заключение, пожалуй добавлю три персональных принципа, которым я стараюсь следовать сам.
Почему я специально упомянул еще внутреннее удовольствие? Мне кажется, это необходимо для дальнейшего развития и в принципе процесса обучения. Я действительно получаю удовольствие, когда мне удается довести до конца какую-то сложную фичу и построить модель или обсчитать важный параметр. Я получаю удовольствие, когда мой код эстетически красив и хорошо написан. Поэтому и изучать что-то новое всего интересно и не требует прямо какой-то существенной мотивации.
«Быть вашим» — это то самое ощущение, что вы примерно этим и хотели заниматься. У меня есть небольшая история. Я с самого детства увлекался рок-музыкой (и металлом — ЛОСОСЬ!) и как очень многие захотел научиться играть и вот это вот все. Выяснилось, что у меня нет слуха и голоса — меня это совершенно не смущало (а надо сказать многих исполнителей это и прямо на сцене не смущает), и вот еще школьником у меня появилась гитара… и стало понятно, что мне не очень нравится часами сидеть и играть на ней. Шло тяжко, мне все время казалось, что выходит какая-то фигня — я совершенно не получал от этого удовольствия и только чувствовал себя паршиво, глупо и совершенно неспособным. Я буквально из под палки себя заставлял садиться за занятия и в целом это было не в коня корм.
В то же самое время, я совершенно спокойно мог сидеть часами за разработкой какой-нибудь игрушки, с помощью скрипта анимировать что-то на флеше (или чем-то еще) и меня дико мотивировало доделывать элементы в игре или разбираться с механикой движения и/или подключением сторонних библиотек, плагинов и всего остального.
И в какой-то момент я понял, что игра на гитаре — это не мое и реально-то мне нравится слушать, а не играть. А глаза-то горели, когда я писал игры и код (слушая в этот момент всякие разновидности металла) и вот это-то мне тогда и нравилось, и этим мне стоило заниматься.
А еще есть вопросы?
Конечно же мы не смогли пройтись по всем темам и вопросам, так что пишите комменты и в личку — я всегда рад вопросам.




