10 советов о том, как улучшить свои навыки программирования

Перевод статьи «How to Learn to Code».

Photo by Amin Hasani on Unsplash

Умение создавать программы это очень ценный по нынешним временам навык. Во-первых, программист может работать и дистанционно, а значит, может найти работу где угодно, не только по месту жительства. Во-вторых, хорошие программисты автоматически попадают в разряд высокооплачиваемых специалистов, их заработки могут составлять 100-200 тысяч долларов в год. Некоторые JavaScript-разработчики приближаются даже к 500 тыс. долларов в год. Но чтобы дорасти до таких зарплат, нужно сначала стать видным специалистом в своем деле.

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

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

Есть несколько секретных приемов, позволяющих невероятно ускорить учебу. Давайте их рассмотрим.

1. Написание кода

Лучший способ научиться писать код — это писать код. Если читаете книгу или статью, и вам встречается пример кода, — переписывайте его в редакторе и старайтесь заставить работать. Когда заработает, начинайте «играть» с ним. Измените что-нибудь. Подумайте, где еще можно применить такой код и как можно сделать то же самое иначе. Играйте с кодом.

Книжные премудрости помогут вам постольку-поскольку. По-настоящему вы научитесь чему-то только путем практики.

2. Драйв

Лучший способ стать хорошим специалистом в любом деле — заниматься этим делом. Много и часто. Чтобы учиться, вам нужна сильная мотивация. Один из способов мотивировать себя — дать себе время на достижение мастерства.

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

Аналогично, сев за компьютер, вы не создадите сразу же следующий Instagram, TikTok или Fortnite.

Но с каждым новым маленьким уроком к вам будет постепенно приходить понимание, что вы в принципе можете программировать, и со временем у вас будет получаться все лучше и лучше. А достижение небольших промежуточных целей будет мотивировать вас к дальнейшей учебе.

Продолжайте в том же духе.

Photo by Clay Banks on Unsplash

3. Концентрация

Мне часто приходилось замечать, как разработчики пытаются изучить все и сразу, но в результате получается пшик. Их прогресс замедляется до состояния медленного ползания (вместо спринтерского бега).

Если вы хотите научиться чему-либо быстро, вы не можете позволить себе разбрасываться. Выберите один язык (начните с JavaScript), один фреймворк (начните с React), одну книгу, один курс, одну тему и т. д. Что бы вы ни выбрали, — сфокусируйтесь на этом, пока не достигнете достаточного уровня мастерства, а уж затем переходите к чему-то еще.

Я постоянно повторяю людям, что следует полностью сконцентрироваться на одном языке хотя бы на год. Только после этого можно переходить к следующему.

Пару десятков лет назад разработчику, чтобы оставаться востребованным, было необходимо за время своей карьеры изучить несколько языков программирования. Это было довольно типично. Но теперь ситуация изменилась.

Да, изучив больше одного языка, вы сможете смотреть на многие вещи с разных точек зрения и даже лучше поймете свой основной язык. Но сегодня вам не обязательно знать много языков. Вы вполне можете обойтись одним JavaScript.

Совет от менеджера по найму. Навыки, на которых вы специализируетесь, являются самыми ценными для вас. Если вы посвятите свою жизнь тому, чтобы стать универсальным специалистом, переходящим от языка к языку, вы искусственно ограничите свое мастерство и свой потенциал по части заработка.

4. Чтение

Многие полезные вещи, касающиеся разработки программ, можно узнать именно из книг. На YouTube вы найдете многочисленные видео и онлайн-курсы, но книги это стандартные вместилища знаний и носители культуры разработки. В частности, я нахожу очень полезными следующие книги:

5. Повторение

Если вы хотите, чтобы какая-то концепция перешла у вас из разряда «что-то знакомое» в область долгосрочной памяти, вам поможет повторение этой темы. Большинство учащихся допускают одинаковую ошибку: они быстро проглатывают книгу или статью, а на следующий день забывают прочитанное.

Поэтому, если вы читаете что-то интересное — что-то, что вам нужно запомнить, — повторяйте это на следующий день. Проверьте, что запомнилось. А через день проверьте еще раз. А потом еще. Делайте так 4 дня подряд, и вы серьезно увеличите свои шансы запомнить изученное надолго.

6. Чередуйте виды учебной деятельности

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

Photo by James Harrison on Unsplash

7. Работайте над проектами

То, что вы изучите какую-то концепцию, еще не означает, что вы сумеете применить ее при создании настоящего приложения. Когда проведете несколько недель за упражнениями, можно переключиться и попытаться построить что-нибудь свое. (Примечание редакции Techrocks: идеи можно посмотреть, например, здесь).

8. Принципы разработки ценнее фреймворков и языков. Учитывайте это!

Фреймворки и API быстро меняются. А принципы проектирования программ практически вечны. Их можно изучить один раз, а затем применять с любым языком программирования.

Примеры принципов:

  • «Маленькое изменение в требованиях должно приводить только к маленькому изменению в реализации», — перефразированная цитата из книги «A Practical Handbook for Software Development».
  • Делай одно дело (Do One Thing, DOT). Упрощенный вариант формулировки Дугласа Макилроя «Делай что-то одно, но делай это хорошо» (Do One Thing and Do It Well (DOTADIW)). Этот принцип применяется при написании функций. Никакая функция не должна отвечать и за извлечение данных, и за их обработку, и за вывод на экран. (Самое время разбить ваши React-компоненты на более мелкие!)
  • «Программируй интерфейс, а не реализацию», — «Банда четырех», книга «Приёмы объектно-ориентированного проектирования. Паттерны проектирования».
  • «Отдавай предпочтение композиции, а не наследованию», — «Банда четырех», та же книга.
  • Избегай shared mutable state (глобального изменяемого состояния).
  • «Преждевременная оптимизация — корень всех зол», — Дональд Кнут.
  • «Тебе это не понадобится». Принцип YAGNI: не пиши ненужный код в расчете на то, что он понадобится в будущем.

9. Делитесь знаниями, документируйте, учите других

Научиться писать код это только половина дела. Когда вы начнете работать вместе с другими разработчиками, они будут просматривать ваш код и порой — оспаривать ваш выбор. И вы можете обнаружить, что недостаточно хорошо разбираетесь в предмете, чтобы обосновать свою точку зрения. Практикуйтесь в объяснении своей позиции. Документируйте сделанное. Учите коллег тому, что узнали сами.

10. Практика, практика и еще раз практика!

Все знают, что практика это ключ при выработке навыков. Но чтобы развиваться, недостаточно практиковаться в уже знакомых вам концепциях. Нужно усложнять себе задачу и выходить за рамки привычного. Если вы будете постоянно практиковаться в вещах, хоть немного выходящих за пределы имеющегося у вас объема знаний, вы станете отличным специалистом.

[customscript]techrocks_custom_after_post_html[/customscript]

[customscript]techrocks_custom_script[/customscript]

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх