Как заниматься самообразованием в IT: советы матёрого программиста
Как самостоятельно освоить технологию, язык программирования или стек? Senior Software Engineer Михаил Подольский делится своим опытом.
Кадр: фильм «Одарённая»
Михаил Подольский
об эксперте
В Twitter известен как «самый ворчливый тостер к востоку от Миссисипи» — Senior Software Engineer в SIT Alemira. Любит музыку, программирование, видеоигры и разговоры на кухне.
Дисклеймер: я не знаю тайных техник или книг, которые быстро сделают из вас профессионала. Если бы знал — обязательно бы поделился. Я лишь дам несколько советов, основанных на личном опыте самообразования.
Статья написана на основе треда Михаила в коллективном аккаунте @itunderhood в Twitter.
Как эффективно учиться по книгам
Вот основные принципы, которые помогли мне самостоятельно освоить новые технологии по книгам:
- Периодичность важнее длительности. Лучше учиться каждый день по полчаса, чем раз в неделю по несколько часов. Во-первых, переваривать информацию проще малыми объёмами. Во-вторых, чётко выстроенный распорядок поможет вам не сбиться с пути.
- Учитесь перед сном. Наш мозг усваивает информацию во время сна, поэтому идеально учиться вечером или ближе к ночи. Но не стоит читать, лёжа в кровати. Как минимум потому, что можно сломать себе нос, ведь книги по программированию зачастую довольно увесистые :)
А ещё в кровати легко отвлечься: вроде бы читаешь, листаешь страницы, а смысл ускользает и прочитанное не откладывается в голове. Если хотите быстрее уснуть, лучше почитайте художественную литературу. - Повторяйте примеры. Если в книге есть примеры кода и расчётов, воспроизведите их — не ленитесь. Вы ничему не научитесь, если будете просто читать код вместо того, чтобы его писать.
- Не учитесь по одной книге. Читайте параллельно хотя бы две книги: одну с теорией и минимумом практики, а вторую — с заданиями и примерами. У вас не всегда под рукой будет компьютер — в такие моменты вы сможете изучать теорию, а писать код — нет.
- Не поняли — обратитесь к другим источникам. Если вы прочитали главу и абсолютно ничего не поняли — поищите информацию на эту тему в других источниках или спросите у тех, кто шарит в теме. Можно, например, задать вопросы в тематических чатах или на форумах. Но прочитать и ничего не понять — это пустая трата времени.
- Всё равно не поняли — отложите изучение до завтра. Если картина не стала ясной даже после нескольких источников, всё равно не стоит бросать. Лучше отложите изучение темы, «переспите» с новой информацией и вернитесь к ней в другой день. Если и со второго захода ничего не получается, возможно, следует найти другие источники.
- Учитесь оценивать качество источников информации. Не все книги одинаково полезны. Поэтому один из самых полезных навыков сегодня — уметь оценивать качество источника информации, прежде чем потратить на него время. Лучше час поискать действительно подходящую книгу, чем взять первую попавшуюся и через пару часов (или дней) чтения понять, что ошиблись.
Тут вам в первую очередь помогут оглавление и отзывы о книге. Зачастую подвох кроется в деталях. Например, книга может называться «Графовые базы данных» и наполовину состоять из описания Neo4j — в таком случае она не о базах данных, а о Neo4j. - Не жертвуйте сном. Если стоит выбор: выучить что-нибудь или выспаться — зачастую полезнее выспаться. Сон — это фундамент для ваших знаний, поэтому не стоит им жертвовать.
Как начать программировать
Самый простой способ начать писать на языке программирования — начать на нём писать :) Можно освоить синтаксис с помощью LeetCode, а затем перейти к живым примерам и сделать простенькое, но полноценное приложение.
На мой взгляд, идеальный рецепт такой: сначала попытайтесь написать хоть что-то с помощью гугла и интуиции. Потом прочитайте небольшую книгу по основам синтаксиса и пробуйте собрать полноценное приложение с помощью фреймворка. И только затем читайте книгу о конкретном фреймворке.
Конечно, всё это можно делать параллельно, но я советую начать практиковаться до знакомства с теорией. Сначала соберите все костыли и напишите неоптимальный, но работающий код. Потом хорошая книга подарит вам озарение и вы поймёте, как создать эффективную программу.
Полезно комбинировать типы источников. Например, если изучаете фреймворк, то кроме книги можно посмотреть обучающее видео или доклад с конференции про основные фичи. Иногда полезную информацию можно выудить из подкастов — тут кому что больше нравится.
Сомневаетесь, что хорошо усвоили материал? Прочитайте позже ещё одну книгу на ту же тему. Но тут есть проблема: не всегда получается найти две хорошие книги по одной теме. Если знаете английский, прочитайте вторую книгу на английском — и тему повторите, и язык.
Круто, если вы можете с кем-нибудь поделиться прочитанным и изученным. Во-первых, у вас будет больше мотивации учиться. Во-вторых, знания лучше усваиваются, когда мы пытаемся их кому-нибудь передать.
Если вы поставили цель и вам интересно то, что изучаете, не бросайте на полпути. Хотя бы полчаса в день помогут вам оставаться в тонусе и подтянуть знания в любой области до нужного уровня. Если же цели нет, то и не стоит себя напрасно мучить.