В эпоху подрывных технологий и засилья фреймворков.

Обучение, развитие навыков и умение держать руку на пульсе новейших технологий и трендов — хлеб и масло любого программиста. Это не бонусные факторы, а жизненно важные способности, без которых вам не достичь карьерных целей. Однако, при обучении разработчики допускают ряд распространенных ошибок — независимо от того, на каком этапе карьеры находятся. Давайте сегодня обсудим эти ошибки. Надеюсь, вам пригодятся два-три совета отсюда, и вы мгновенно начнете учиться гораздо эффективнее.

Переведено в Alconost

Не иметь учебного плана



Снимок rawpixel сайт Unsplash

Говорят, что если вы проваливаете планирование — значит, планируете провалиться. Это касается и обучения. Иногда разработчику не терпится, он сразу ударяется в активное обучение, совершенно не подготовившись. Допустим, вы хотите изучить фреймворк React для языка Javascript и начинаете читать руководства по React, даже не представляя, на каких областях сосредоточиться, как достичь цели, то есть, научиться писать приложения на React. В данном случае лучше учиться так: смотрим официальную документацию, шаг за шагом изучаем концепции, от базовых до продвинутых, знакомимся со справкой по API, пишем пилотное приложение на React, знакомимся с другими имеющимися примерами и ставим SMART-цели на каждом этапе обучения. Цели S.M.A.R.T. хороши потому, что конкретны (specific), измеримы (measurable), достижимы (achievable), реалистичны (realistic) и ограничены по срокам (time-bound).

Не иметь четкой конечной цели



Снимок Patrick Fore с сайта Unsplash

В индустрии разработки ПО существует масса новых технологий и новых подходов. Поймите меня правильно: я считаю, что непрерывное обучение — это хорошо. Если вы готовы учиться, то только расширите набор навыков и наработаете новые знания. Однако, бывает, что разработчик чересчур подвержен СУВ (Синдром Упущенных Возможностей) и пытается изучить все новинки, о которых только слышал. Тогда у него не останется времени на продуктивный труд и на применение знаний и умений для дела. Прежде чем чему-то учиться, рекомендую вам задуматься, зачем вы это учите, где и как собираетесь применять новоприобретенные знания или умения. Например, если вы занимаетесь разработкой под базы данных, но при этом изучаете Javascript — это значит, что вы собираетесь перейти к полностековой разработке. Либо, если занимаетесь DevOps и учите AWS, то, возможно, прокачиваетесь в расчете устроиться на новую работу в компанию, которая использует AWS.

Выбор слишком широкой темы



Снимок Юрия Ковалева, сайт Unsplash

Все слышали выражение «воз и маленькая тележка»? Иногда разработчик слишком рьяно пытается досконально изучить выбранную тему, не умеет уточнить свои планы и при обучении ставит чрезмерно широкую цель. Вы спросите: «А когда же наступает «слишком»»? Я считаю, что тема слишком широка, если вам не удается в нескольких словах описать другому разработчику планируемые результаты вашего обучения. Планируемые результаты обучения позволяют судить, какие знания и у меня разработчик должен приобрести по итогам изучения конкретной темы. Естественно, любую тему можно изучать вечно, однако, должен быть предел, после которого вы скажете себе: «все, пока достаточно». Достаточно, чтобы уверенно чувствовать себя на пути к конечной цели. Вот, например, некоторые планируемые результаты обучения в случае с фреймворком React языка Javascript:

Планируемые результаты обучения
Справившись с учебной программой, я должен:
- Уметь написать с нуля новое приложение React, которое позволит:
-- Потреблять полезную нагрузку в формате JSON в REST API
-- Обновлять контент приложения каждые x минут
-- Организовать переходы между окнами
-- Запомнить, какое окно я уже посещал ранее (если таковое есть)
-- Проверить его методом модульного тестирования


Обратите внимание: приведенные здесь результаты описаны не слишком конкретно или подробно (например, мы не пишем «создать компонент в JSX синтаксисе»), поскольку вы пока не знаете всех нюансов фреймворка React. Они и не слишком широки: по каждому пункту описан конкретный результат, а не пространный и общий, такой как «Создать React-приложение».

Читать и смотреть слишком много книг, руководств, видео



Снимок chuttersnap с сайта Unsplash

Усталость от мануалов?—?это реальность. Если вы думаете, что действительно что-то учите, штудируя бесконечные книги, видео и руководства, то просто тратите ваше время. Выберите несколько источников (книги, видео, любой другой формат) — и работайте с ними. Вполне вероятно, что информация, которую вы узнаете из видеоролика, будет сильно пересекаться с материалом какого-то другого руководства по той же теме. Другой пример: беглый поиск по Amazon на тему фреймворка React Javascript выдает около 700 книг, некоторые — с почти одинаковыми названиями, вроде «Изучая React». Справиться со всеми этими книгами нереально, и, даже если бы вам это удалось — еще не факт, что вы стали бы экспертом по React или не зря потратили ваше время.

Не отслеживать прогресс



Снимок Lindsay Henwood с сайта Unsplash

Хорошо, если у вас четкий план и конкретные цели, но от них мало толку, если не отслеживать собственный прогресс и темпы движения. Контролируйте ваши достижения каждые две недели, в крайнем случае — каждый месяц, проверяйте, в верном ли направлении движетесь. Рекомендую поставить в календаре напоминалку, чтобы регулярно оценивать достигнутый прогресс с самого начала учебного процесса. Если вы запаздываете с достижением целей, то, вполне вероятно, сами понимаете, где именно забуксовали — и скорректируете ваши планы. С другой стороны, если цели достигаются — это стоит отпраздновать и идти дальше, чтобы мотивация сохранялась.

Учитесь эффективно



Снимок Thought Catalog на сайте Unsplash

В наши дни умение эффективно учиться — это бонус и ключ к профессиональному успеху. Я твердо убежден, что можно поднатореть в чем угодно, если уделить время, чтобы понять суть процесса, и самому хотеть совершенствоваться. Это касается и обучения. Обучение — это навык, который нарабатывается на практике. Знать, чего не делать, порой не менее важно, чем знать, что делать, приступая к обучению. Не зря китайский социальный философ Конфуций однажды сказал:
«Обучение без размышления — напрасный труд, мышление без обучения опасно».
— Конфуций

О переводчике

Перевод статьи выполнен в Alconost.

Alconost занимается локализацией игр, приложений и сайтов на 68 языков. Переводчики-носители языка, лингвистическое тестирование, облачная платформа с API, непрерывная локализация, менеджеры проектов 24/7, любые форматы строковых ресурсов.

Мы также делаем рекламные и обучающие видеоролики — для сайтов, продающие, имиджевые, рекламные, обучающие, тизеры, эксплейнеры, трейлеры для Google Play и App Store.

Подробнее

Комментарии (6)


  1. VanquisherWinbringer
    01.08.2018 09:41
    +3

    Теория без практики мертва — практика без теории глупа. Просто пишите код. Как можно больше законченных приложений.


    1. JustDont
      01.08.2018 13:50
      +1

      «Просто писать код» — это как раз и есть практика без теории. Не надо его «просто» писать. И даже «законченное приложение» тут не сильно поможет, потому что критерии «законченности» опять же все вами придуманные.

      Закрепление практикой — это хороший элемент обучения, но никогда не стоит забывать, что весь закрепляющий код, который вы напишете — он с крайне высокой вероятностью будет плохой (а скорее всего не просто плохой, но еще и бесполезный, за пределами текущей сессии обучения). И не следует на нём особо зацикливаться — он нужен только лишь для «фиксации» теории и для поиска проблем, про которые в доках не пишут.


      1. VanquisherWinbringer
        01.08.2018 17:44

        У меня обычно так:
        1) Хочу что — то сделать.
        2) Ищу подходящую технологию для этого и читаю про нее.
        3) Начинаю делать то что хотел.
        4) Сталкиваюсь с проблемой.
        5) Читаю про то как эту проблему решить.
        6) Решаю проблемму и продолжаю делать дальше.
        Вот это я имел ввиду когда говорил про теорию и практику. Да и вообще — надо начинать с того что именно вы хотите сделать и под это уже изучать технологию.


  1. Neikist
    01.08.2018 12:15

    Вполне вероятно, что информация, которую вы узнаете из видеоролика, будет сильно пересекаться с материалом какого-то другого руководства по той же теме.

    С этим пунктом я бы не совсем согласился. Лично мне помогает разная подача одного материала в разных формах. Задействуются разные органы чуств + повторение + можно новые нюансы узнать. Другое дело что и перебарщивать не надо конечно.
    У меня в основном беда в том что хочется знать очень много, и трудно определиться куда двигаться, то андроид хочется, то бэкенд, то анализ данных… В итоге временами прокрастинация, в остальное время интенсивное изучение чего ни попадя.


  1. muhaa
    01.08.2018 12:26

    Как можно запланировать изучение области, о которой еще ничего не знаешь? Как можно поставить себе четкую цель, если еще не знаешь местности по которой придется идти (а она еще и меняется каждый год). Получается по принципу «я слышал, что Вася зарабатывает n клобаксов, программируя на X, и я тоже хочу так».
    Для меня сработала следующая стратегия:
    1. Просматривать все новые статьи Хабра ежедневно. Если непонятно о чем речь — кратко гуглим. Есть непонятное слово — тоже гуглим. Так можно примерно за 1-2 года получить общее представление о передовом крае мира IT и поддерживать это представление в дальнейшем.
    2. Если есть вероятность, что какая-то технология понадобиться на работе (или просто кажется, что это точно нужно знать) — нужно в выходные взять книгу типа O’Reilly со зверями на обложках, где все обстоятельно разъясняется «от и до» и прочитать.
    3. Хвататься за любую задачу, которая позволяет применить новые знания, расширить или углубить существующие. Легче всего изучить то, за что тебе платят.


  1. hdfan2
    01.08.2018 13:07

    По поводу КДПВ: интересно, хоть один русскоязычный человек хоть раз говорил «О, нет!»? По-моему, никто и никогда. Тут куда больше подходит «Блин!» или более обсценный аналог.