Хорошие разработчики никогда не перестают учиться.
Технологии развиваются — и вы развивайтесь.
Для разработчиков программного обеспечения крайне важным навыком является поддержка актуальности своих знаний. Технологии меняются — те знания, которые вы получили в университете, завтра могут стать уже не актуальными, соответственно, не владея навыком самообучения, вы потеряете свою конкурентоспособность на рынке труда. Также, частенько бывает так, что мы жертвуем своим обучением и развитием ради проектов с дедлайнами. Такое недальновидное мышление обязательно приведет к проблемам в будущем.
Действительно, идти в ногу с невероятно быстро развивающимся миром практически нереально, но , все же, следует выбрать одно-два направления, в области которых лежат ваши интересы — это может быть то, чем вы сейчас занимаетесь на работе либо же вещи, которыми хотите заниматься в будущем. Выбрав направление, которое вам по нраву — начинайте повышать свой скилл.
❶ — Искусство Чтения
Книги.
Читайте много. Соберите обширную библиотеку. Что касается меня, я не покупаю техническую литературу, так как она имеет свойство очень быстро устаревать. Вместо тех.литературы я предпочитаю:
- концептуальные книги — книги, в которых описываются новые(или старые) концепции и парадигмы: обьектно-ориентированые шаблоны, моделирование и тд и тп;
- поведенческие книги:проектный менеджмент, жизненный цикл ПО, soft skills, лидерство и тому подобное;
- книги, которые оказали значительное влияние на общественность, ибо упоминание о них часто можно услышать при технических дискурсах. Вот вам несколько рекомендаций: «Мифический человеко-месяц», «Чистый код», «Шаблоны проектирования»: шаблоны многоразового объектно-ориентированного программного обеспечения, «Предметно-ориентированное проектирование», «Прагматичный программист».
Моя платная подписка на O’Reilly стоит каждого потраченного цента, поскольку она предоставляет доступ ко множеству технических книг (и других источников информации, таких как видео, конференции, учебные пособия и т. д.). Хотя я предпочитаю бумажные книги, возможность быстрого просмотра книги действительно удобна.
Блоги.
Чтение блогов — один из моих любимых способов поддержки своих знаний в тонусе: я очень уважаю разработчиков, которые тратят свое время на то, чтобы поделиться опытом, знаниями, историями успеха и неудач с сообществом. Существует очень много невероятно интересных и полезных статей, которые написаны любителями.
Я использую приложения для закладок (такие, как Pocket и OneNote), чтобы сохранять их в своем личном стеке, а затем читаю, когда выпадает возможность.
Основная ценность блога есть подлинность и доверие (с) Джейсон Калаканис.
Блоги — мощный инструмент для поддержки знаний, но не следует слепо верить всему, что там написано. Не забывайте про критическое мышление.
Medium — потрясающий склад статей о технических ноу-хау, и моя любимая статья, которую и вам рекомендую — «Наука о данных» (cc: TDS Team).
Twitter.
Подписка на авторитетных людей IT индустрии в социальных сетях — еще один популярный способ оставаться на плаву. Коммуникация с этими людьми, комментарии, вопросы — все эти вещи также помогают нам улучшаться. Одна из причин, по которой такие люди сохраняют статус «лидера в отрасли», заключается в том, что они щедро делятся ресурсами и опытом, а также с радостью приветствуют новичков, которые хотят учиться.
Кто сегодня является лидером отрасли? Пожалуй, я воздержусь от каких-либо рекомендаций на этот счет, потому как они будут субъективными. Есть множество влиятельных людей — выбирайте сами.
❷ — От алчного читателя до алчного писателя
На протяжении последних 9 месяцев я веду свой блог. Изначально это было достаточно пугающе. Я всегда думал, что блоги должны вести лишь эксперты с оригинальными идеями(да, возможно у меня синдром самозванца:)) Вскоре я осознал, что блог ведут в первую очередь для себя — чтобы закрепить и записать свои приобретенные знания и опыт.
Научиться — значит изучать дважды (с) Жозеф Жубер
Также следует отметить важность фидбека, которые могут дать ваши читатели.
А вы знали топ три лучших способа запоминания информации?
- Обучение других
- Практическое применение изученного материала
- Групповые дискуссии
❸ — Слушайте!
Подкасты — один из моих главных лайфхаков: они хороши при многозадачности (их можно слушать во время приготовления обеда, глажки одежды, выполнения поручений и т.д.). А их формат идеально подходит для моей повседневной жизни. Вот вам список подкастов, которые охватывают выбранные мною направления (.Net), а также про IT в целом: Herding Code, .NET Rocks!, Hanselminutes, Software Engineering Radio, Coding Blocks, This Week in Tech, Developer Tea, Software Engineering Daily.
❹ — Онлайн курсы
Не поймите меня неправильно, но я лучше всего учусь лишь тогда, когда делаю что-то своими руками. Да, самое эффективное обучение для меня — это практика! Но отныне я обзавелся семьей и моё время значительно урезалось. Теперь, чтобы влиться в какую-то технологию, я смотрю видеоуроки или прохожу онлайн-курсы– это идеальный баланс между теорией и практикой. Я нахожу их очень эффективными, так как я визуал и мне легче воспринимать информацию визуально. Видео-уроки я смотрю в ускоренном режиме для экономии времени.
Существует несносное множество различных онлайн-курсов и видеоуроков, но вот вам подборка тех, которыми я пользуюсь чаще всего: PluralSight, Coursera, Khan Academy, edX.
❺ — Практика поставит все на свои места!
Проверка концепции(с англ. Proof of Concepts (POC))
Будучи архитектором ПО, мне приходиться обосновывать проектные решения и поэтому я частенько прибегаю к методу проверки концепции(с англ. Proof of Concepts (POC)). Данный метод помогает мне лучше понять проблемы или преимущества рассматриваемой технологии, а также дать ей более объективную оценку. Я стараюсь сосредоточиться на одном элементе за раз (например, data science, ReactJs, big data и т.д), создавая прототип в данной, конкретной области. В среднем я делаю около 6–8 POCs ежегодно. Не так уж и плохо, согласитесь!
Pet Projects (тестовый проект)
Pet проекты позволяют экспериментировать и учиться в безопасной среде и потом воплощать приобретенные нами навыки в реальных проектах. Фактически Pet проекты ничем не отличаются от обычных, кроме как отсутствием стресса: никаких дедлайнов, никаких указаний по поводу технологии и проектирования, никакого контроля и требований. В Pet проекте главный ты и собственно правила устанавливаешь тоже ты.
Open Source
Вклад в open source проекты(проекты с открытым исходным кодом) также есть хорошей практикой для улучшения навыков и умений. Все, что для этого нужно — найти интересующий open source проект -скачать его исходный код-просмотреть код и добавить что-то свое-удостовериться, что все работает правильно, а дальше отладка и все — готово. Несмотря на то, что я не особо много делаю вкладов в open source проекты, все же они ужасно полезны для меня. Главным преимуществом такого подхода я считаю возможность видеть код, который пишут одни из лучших программистов мира. Это действительно фантастический опыт!
Посмотреть трендовые open source проекты можно нажав сюда!
HINT: Вы можете делать свои Pet проекты с открытым исходным кодом и таким образом преимущества, описанные выше, удваиваются!
Онлайн комьюнити
Активное участие в жизни онлайн комьюнити путем вопросов и ответов на сайтах таких ,как Stack Overflow, также дает невероятную возможность не только учиться, но и помогать учиться остальным. А также помощь другим принесет вам чувство выполненного долга:)
Katas
Kata — это простое упражнение по написанию кода. Kata — это задание, суть которого можно понять за минуту, но реализация занимает гораздо больше времени — этот термин был придуман Дейвом Томасом, соавтором книги «Прагматичный программист», которая охватывает японскую концепцию Kata в боевых искусствах. Я тестировал данный подход единожды, но очень быстро потерял к этому интерес. Мне больше нравится решать проблемы реального мира и видеть картину в целом, нежели собирать программу из маленьких кусочков задач, похожих на пазл. Я думаю, что этот метод подходит больше новичкам, чем продвинутым программистам.
Тем не менее вот вам ресурс с Katas: kata.softwarecraftsmanship.org.
Если вам понравится, попробуйте также и эти платформы: Codechef, Coder Byte и Hacker Rank
Хакатоны
Хакатоны — это своего рода марафоны для IT специалистов. Хакатоны позволяют скооперироваться команде программистов и создать рабочий прототип приложения. Преимущества хакатонов перечислены на сайте Quora и вы сами можете их прочитать. По правде говоря, я еще не участвовал ни в одном из хакатонов, но данное действие стоит на первом месте в моем списке вещей, которые следует попробовать.
❻ — Общайтесь со своими коллегами
Хотя обучение по учебникам и онлайн-ресурсам имеет множество преимуществ, мало что может превзойти повседневное общение с коллегами. Мне дико повезло работать с одними из лучших C# разработчиков. Они — это источник моего вдохновения и моё учебное пособие.
Я недавно пришел к выводу, что нет такого понятия, как «глупый вопрос». Мы все знаем это, но не воспринимаем как должное. Вопросы в действительности являются основой обучения, поскольку они зачастую становятся отправными точками для разговора. Есть несколько веских причин, почему парное программирование значительно улучшает обучение, но наилучшее преимущество, которое я заметил, заключается в том, что мы структурируем свои мысли, заставляя себя же в полной мере понимать собственные идеи.
Ну и конечно же, когда наш партнер тут же дает фидбек, то это ускоряет наше понимание каких-либо вещей. Но не забывайте, что ваш партнер это не ваш хейтер. Задача партнера заключается в адекватной критике и оценке ваших идей.
HINT: если вы знакомы с кем-то, кто гораздо превосходит вас в программировании, то попросите его о менторстве.
❼ — Социализируйтесь
Посещайте мероприятия по специализации
Посещение мероприятий либо презентаций — это отличный шанс узнать о том, в каком направлении движется индустрия, чем занимаются компании, какие есть новые технологии и.т.д.
Коммуникация с другими разработчиками это также большой бенефит для вас — обмен идеями с коллегами это отличная возможность углубить свои познания, а также расширить свой профессиональный круг общения.
Подобные мероприятия могут быть дорогостоящими, поэтому лучше, если ваша компания проспонсирует вас. В любом случае вы можете просмотреть запись этих мероприятий в Интернете. Вот несколько каналов YouTube: GOTO Conferences, O’Reilly, Thought Works.
LinkedIn
Сообщества в LinkedIn — отличный способ найти единомышленников, а также получить информацию в области разработки ПО.
Присоединяйтесь к различным сообществам
Профессиональные организации (такие, как Британское компьютерное сообщество) периодически проводят учебные мероприятия и предоставляют доступ к отраслевым новостям, опросам, информации о карьере, рабочих местах.
Помните только, что то, что мы отдаем, то и получаем. Соответственно для того, чтобы извлекать выгоду из сообществ в полной мере, вам следует быть активным участником этих сообществ.
Вступите в локальную тусовку
Программист это закрытый в себе, некоммуникабельный и странный гик — уже стереотип. Влейтесь в какую то свою локальную тусовку программистов. Это отличный способ взаимодействия и улучшения своих навыков. Разный уровень знаний и опыта — вот, что делает этот подход таким привлекательным. Хотя все же у вас есть одна общая черта: вы все увлечены программированием!
Вот вам несколько прикладных идей для социализации:
1.создать локальную тусовку программистов
2.выступить с презентацией либо докладом
3.участие в круглых столах либо дискуссиях
Идти в ногу со временем как персональный навык!
Мы часто забываем, что наша карьера это не конечный продукт нашего образования, а его продолжение! Сохраняя привычку постоянно обучаться мы подливаем и улучшаем свою конкурентоспособность. Наша главная отговорка — отсутствие времени. Мы все имеем достаточно времени! Думаю для вас не окажется тайной, что все мы имеем одинаковое количество времени. Разница лишь в том, на что мы его тратим. В этой статье я перечислил несколько вещей, которые должны помочь вам в улучшении профессиональных навыков и умений. Надеюсь статья была для вас полезной.
Спасибо!