Главная » Хабрахабр » [Перевод] Опускаются руки и хочется бросить задачу? Так выглядит эффективное обучение разработчика

[Перевод] Опускаются руки и хочется бросить задачу? Так выглядит эффективное обучение разработчика

Но постепенно у меня сформировался подход, который помог преодолеть внутренние блоки. Самые большие скачки в моем профессиональном развитии происходили, когда приходилось с трудом, упрямо, не сдаваясь разбираться в чем-то новом, — и это не всегда казалось мне чем-то хорошим.

Возможно, это поможет и вам.

Я заметил, что в подобных ситуациях мозг начинает выдумывать причины, почему лучше потратить время на что-то более знакомое, или жалуется, что задача мне не по зубам. Когда при разработке ПО сталкиваешься с трудностями, очень уж легко потерять веру в себя — иногда мне даже хочется бросить всё.

Знаю, у других это тоже бывает.

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

Очень важно проявлять упорство перед лицом таких трудностей — хотя это и непросто.

За прошедшие годы я научился нескольким ментальных «хитростям», которые помогали мне в сложные минуты, часы и дни.

Я расскажу о тех точках зрения, которые оказались особенно полезны.

Переведено в Alconost

1. Разработчик растет профессионально благодаря упорному труду и прилагаемым усилиям

Что главное в разработчике: талант или упорный труд?

Люди просто рождаются великими разработчиками — или им приходится прикладывать для этого усилия?

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

Такая точка зрения полезнее: она означает, что если что-то мне никак не дается — нужно хорошенько постараться, и я разберусь.

Кроме того, отсюда же следует, что моя работа не всегда будет легкой или радостной — придется и упорно потрудиться.

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

Я как разработчик часто расстраиваюсь, когда сталкиваюсь с чем-то, чего не понимаю, но, как мне кажется, должен понимать.

Было время, когда мне пришлось столкнуться с тем, что мои знания SQL оказались не так уж хороши. Как-то мне пришлось работать в компании, которая использовала git, и все вокруг меня были специалистами в этой VCS.

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

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

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

Получается как-то так…

Поэтому я и иду на эти курсы». «Я никогда раньше не программировал на Джаве — значит, я и не должен быть хорош в этом.

Поэтому я попрошу коллегу помочь». «Я никогда не использовал git-репозитории — я не обязан знать, как это делается.

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

3. Работа с кодом не всегда должна быть приятной: даже если задача неинтересная, ее всё равно можно сделать

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

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

Решение этих проблем не радует, и иногда я, честно говоря, с удовольствием занялся бы чем-нибудь другим — лишь бы не тратить время на попытки разобраться, что происходит.

Но я понимаю: программирование не всегда должно радовать — иногда приходится просто засучить рукава и взяться за неинтересную работу.

Но постепенно я понял, что в этом есть и польза: самые сложные задачи заставляют совершенствоваться эффективнее всего. Когда такое случается, бывает трудно.

4. Чем сложнее задача, тем большему вы научитесь, и неудача в таких случаях — это нормально

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

И в моей жизни этому есть множество примеров.

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

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

Однажды мне пришлось взяться-таки за SQL серьезно и по-настоящему его изучить — после этого я смог работать с отделом анализа данных нашей компании.

Я бился над этим, пока не изучил «озера данных», конвейеры ETL и распределенные вычислительные решения. Наконец, я взялся проектировать инфраструктуру обработки данных для нашей компании с использованием технологий веб-приложений.

И этот список можно долго продолжать.

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

Но благодаря этим трудностям я приобрел новые навыки и стал лучше как разработчик — без всей этой боли и безысходности я бы так ничего и не узнал.

Поэтому сегодня я предпочитаю считать, что стресс, трудности и некоторая нервозность — это хороший признак: если мне сложно, значит, я учусь.

В итоге я научился спокойно принимать ситуации, в которых приходится понервничать: они, конечно, неприятные, но я думаю, оно того сто́ит.

Мозг — мощный инструмент

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

Надеюсь, мои ментальные «хитрости» (или те, которые вы придумаете сами) помогут вам справиться с трудностями.

Будьте упрямы и не сдавайтесь.

Если вы чего-то не понимаете, продолжайте упорно трудиться и пытаться это понять: вы удивитесь, на что способны — только попробуйте.

О переводчике

Перевод статьи выполнен в Alconost.

Переводчики-носители языка, лингвистическое тестирование, облачная платформа с API, непрерывная локализация, менеджеры проектов 24/7, любые форматы строковых ресурсов. Alconost занимается локализацией игр, приложений и сайтов на 70 языков.

Мы также делаем рекламные и обучающие видеоролики — для сайтов, продающие, имиджевые, рекламные, обучающие, тизеры, эксплейнеры, трейлеры для Google Play и App Store.

Подробнее


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

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

*

x

Ещё Hi-Tech Интересное!

Расширяйте кругозор, Холмс! Или зачем физикам скрипка и кулинарные навыки

О современной литературе, философии и политике он, по-видимому, не знал почти ничего.… Однако мое изумление достигло апогея, когда я случайно обнаружил, что он не знаком с теорией Коперника и не представляет себе, как устроена Солнечная система.… «Но не знать о ...

Спам звонки. Можно ли с ними бороться?

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