Сколько курсов, учебников и статей ожидает вас в списке дел? Если вы похожи на меня, то ответ - десятки. Я страстный ученик, интересующийся широким кругом вопросов программирования. Но в последнее время я начал задумываться, какие курсы стоят моего времени, а какие просто отвлекают.
Ловушка в форме буквы Т
Если вы пытаетесь развивать свою карьеру, то наверняка сталкивались с идеей "Т-образных" людей. Они являются экспертами в одной области и обладают некоторыми знаниями в других областях. Например, вы можете быть опытным back-end разработчиком с некоторыми знаниями о DevOps, управлении продуктами и front-end.
Т-образные люди - бесценные сотрудники, поскольку их разносторонние знания облегчают общение и способствуют творчеству.
Широкий круг интересов может быть преимуществом. Я сторонник разносторонности и считаю, что это ключевая компетенция будущего. Но чтобы быть Т-образной личностью, нужно обладать достаточно глубокими знаниями по нескольким предметам.
Закончить пару курсов еще не означает, что вы разбираетесь в какой-то области. Что еще хуже, это может дать вам ложную уверенность в своих способностях. Изучение слишком большого количества предметов не поможет вам сделать карьеру. Это просто превратит вас в бездельника.
Так же как вы не станете опытным писателем, если напишете два поста в блоге, вы не станете компетентным программистом после месячного курса обучения.
Т-образный человек - это не тот, кто просто поцарапал поверхность в нескольких областях. Вы должны тщательно спланировать, как углубить свою основную область знаний и развить вторичные навыки.
Чтобы добиться успеха, вам необходимо определить основные компетенции и проблемы. Затем сфокусироваться на них, убрав все ненужные курсы. Я использую себя в качестве примера то, как вы можете подойти к этому.
Улучшайте свой главный навык
Я компетентный веб-разработчик с некоторыми знаниями в области back-end программирования на нескольких языках. Я создал несколько мобильных приложений с использованием React Native. Это более или менее полный набор моих навыков, с сильным уклоном в сторону front-end. Пора выбрать самое необходимое и отсечь лишнее.
Выберите основные области
Для меня имеет смысл сосредоточиться на фронтенд-разработке - как в вебе, так и на мобильных устройствах. Чтобы быть квалифицированным фронтенд-разработчиком, мне нужно быть экспертом в JavaScript. Поэтому все курсы по продвинутому JavaScript могут быть полезны, хотя я могу исключить из списка дел курс по креативному кодированию.
Вы можете создать любое приложение на обычном JavaScript, но это часто непрактично. Я работаю в основном с React, поэтому я сосредоточусь на нем и его экосистеме. Прощайте, Angular и Vue. Я буду скучать по тебе, Svelte.
Итак, мои основные навыки - это JavaScript и React. Другие языки и фреймворки можно использовать как второстепенные навыки, но мой фокус ясен.
Изучайте только те навыки, которые вы будете использовать
JavaScript и экосистема React - обширные темы, поэтому мне нужно еще больше сузить круг своих интересов. Лучший способ сделать это - выбрать курсы, которые вы сможете использовать на практике.
Я изучаю Redux уже в третий раз. Первые два раза я изучал его потому, что все в Интернете утверждали, что он необходим. Я не хотел оставаться позади, поэтому я закончил учебник и прочитал документацию. Но я не использовал его ни в одном проекте, поэтому быстро все забыл.
В конце концов, мне понадобилось использовать Redux профессионально. Я начал работать с ним сразу после окончания курса. Я столкнулся с несколькими проблемами, но с помощью документации мне удалось заставить его работать правильно. Теперь я могу использовать Redux в любое время.
Настоящее обучение происходит, когда вы работаете над проектом и интенсивно думаете. Никакие учебники не помогут вам, если вы не используете свои знания на практике. Изучение того, что вы не собираетесь использовать в профессиональных или личных проектах, - пустая трата времени.
Не обманывайте себя
Никогда не думайте, что вы понимаете предмет, если вы не можете объяснить его человеку с гораздо меньшим опытом. Всегда следите за пробелами в своем понимании и опасайтесь ложной уверенности.
Почти все в программировании сложно, если копнуть достаточно глубоко. Например, знаете ли вы, как можно управлять состоянием в React? Вы можете передавать props через компоненты или использовать Context API. В качестве альтернативы вы можете выбрать библиотеку (возможно, Redux или MobX). А Facebook только что выпустил новую библиотеку управления состоянием под названием Recoil.
Решений проблемы управления состояниями множество. Как вы думаете, почему? Потому что управление состояниями - это сложно. Вы можете считать, что поняли это после изучения нескольких учебников, но это не так. Только после того, как вы столкнетесь с реальными задачами, вы поймете, зачем существуют эти библиотеки, какие проблемы они решают и почему это сложно.
Помните, что вам нужно бросать вызов самому себе и не забывать об этом: Программирование - это сложно, и, возможно, вы понимаете не так хорошо,
Выберите дополнительные навыки
Чтобы стать настоящим Т-образным человеком, вам необходимо развить некоторые вторичные навыки. Я работаю над этим довольно интенсивно. За последние несколько месяцев я начал (и так и не закончил) курсы по самым разным предметам - от DevOps, языка Golang до машинного обучения. Было ли это весело? Определенно. Полезно ли это для моей карьеры? Не-а.
Основные принципы изучения второстепенных навыков довольно схожи с принципами изучения основной области интересов. Вам нужно выбрать навыки в соответствии с вашими приоритетами и шансами использовать их в реальной жизни. Одной теорией тут не обойтись. Поэтому безжалостно удаляйте неактуальные курсы.
Чтобы продвинуться по карьерной лестнице, мне нужно сосредоточиться на навыках, которые могут оказаться полезными в долгосрочной перспективе и достаточно близки к моей основной специальности, чтобы я мог извлечь пользу из частичного совпадения знаний.
У меня нет сильной математической подготовки, поэтому пришло время попрощаться с машинным обучением и искусственным интеллектом. Похоже, что я не стану специалистом по анализу данных.
Что касается некоторых популярных языков back-end, то в обозримом будущем я не смогу использовать их в своей компании, так что это пустая трата времени. DevOps - сложный вопрос. Я чувствую, что мне нужно его выучить, но не похоже, что у меня будет возможность в нем работать, поэтому я его пропущу.
Поскольку я много работаю с дизайнерами, было бы неплохо изучить основы дизайна. Мне очень нравится писать о программировании, поэтому книги на эту тему должны остаться в моем списке дел. Мои навыки управления проектами не так хороши, как хотелось бы, поэтому развитие этой области должно стать моим приоритетом.
Заключение
Я все еще чувствую искушение сделать закладки на многие курсы. Это чувство не проходит. Но я стараюсь выбирать только те, которые могут принести пользу моей карьере в долгосрочной перспективе.
За последние несколько недель я удалил кучу курсов из своего списка дел. А какие курсы можете удалить вы?