Консультации по изучению новых языков программирования

После окончания колледжа я начал работать PHP-разработчиком в Coolblue. Спустя полгода я работал над iOS-приложением на полную ставку. Примерно через 7 месяцев я начал работать над приложением для Android, которое полностью написано на Kotlin и использует RxJava / RxKotlin. Множество новых технологий и идей, которым нужно научиться. Мне нравится верить, что я кое-что знаю об освоении новых языков программирования.

Это будет основано на моем опыте изучения двух языков с нуля до повышения уровня владения языком примерно через год. Имейте в виду, что, хотя это работает для меня, это может не сработать для вас.

Есть побочный проект

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

Я счел действительно полезным создать действительно «простое» приложение с использованием API. Изучая iOS и Android, я написал одно и то же приложение. Это очень помогло, так как, когда я писал его в первый раз, мне все еще приходилось разбираться в API и идее, и когда я делал это во второй раз, в этом больше не было необходимости. Сосредоточение внимания на изучении языка и новых концепций, а не на самой проблеме, в данном случае, действительно очень помогло.

Найдите наставника

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

В то время, когда я изучал Swift, я, вероятно, 80% своего времени проводил в паре с кем-то, кто уже программировал на Swift на постоянной основе. Много времени было потрачено на то, чтобы поговорить о коде, который мы вместе написали, и о том, почему. Мы также просили друг друга сделать код как можно более лаконичным. Это действительно помогло глубже изучить Swift.

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

Прочтите и, возможно, внесите свой вклад в проекты с открытым исходным кодом

Обучение у других, которые уже прошли через тот же процесс, еще больше повысит ваше обучение. Отличный способ сделать это - прочитать библиотеки с открытым исходным кодом, написанные на языке, который вы хотите выучить. GitHub позволяет легко найти все репозитории с открытым исходным кодом, которые используют определенный язык в качестве основного.
Пример: Репозитории с открытым исходным кодом, использующие Swift в качестве основного языка

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

Присоединяйтесь к сообществу Slack

Одна вещь, которая мне очень помогла, - это присоединиться к каналу Slack. По Android я присоединился к Android United. На этом канале было полно людей, вроде меня, изучающих Android и выясняющих, почему определенные вещи работают именно так. В конце концов, вы перейдете от множества вопросов к ответам на пару вопросов. Вы, наверное, слышали знаменитую цитату:

Если вы не можете объяснить это просто, значит, вы недостаточно хорошо это понимаете.

Сохраняйте мотивацию

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

Другой вариант - найти людей в сообществах Slack или в Twitter, которые учатся тому же, что и вы. Каждую неделю вы можете сообщать обновленную информацию о том, чего вы достигли, и сравнивать это с ними. В конце концов, это станет похоже на игру, в которой вы хотите продвинуться вперед.

Сообщите в комментариях, какой язык вы собираетесь учить, и помогли ли мои советы!