Что-нибудь из этого кажется вам знакомым?
Вы постоянно волнуетесь, что недостаточно хороши.
Посмотрите на окружающих вас разработчиков. Кажется, что у них есть все. Их код чище, чем ваш. Они исправляют ошибки значительно быстрее, чем это делаете вы. Стоит им кинуть беглый взгляд на документацию, и они уже знают все, что им нужно. Они уверенны. Они наслаждаются написанием кода.
А вы? вы беспокоитесь. Вы тревожитесь, что недостаточно знаете о фреймворке и языке, которым пользуетесь. Вы волнуетесь, столкнувшись с багом. Вы беспокоитесь о том, как поспеть за новейшими технологиями. Вы боитесь, что недостаточно талантливы. Вам ничто не дается просто. Про себя вы думаете: «Наверное, я не гожусь в разработчики».
Если какая-то из этих полных сомнений мыслей звучит знакомо, вы не одиноки. Попробуйте загуглить «сомневающиеся в себе разработчики», и найдете 2 млн результатов меньше чем за секунду.
Я был таким же
Было время, когда я тоже сильно сомневался в себе и задавался вопросом, смогу ли когда-нибудь это побороть. Это было в колледже, когда я практиковался и готовился к собеседованиям. Те задачи на алгоритмы ежедневно заставляли меня чувствовать себя совершенным неудачником. Я пребывал в напряжении и переживаниях, наверное, как и вы сейчас.
В конце концов я получил расчет на практике и множество предложений работы от престижных технических компаний. Из этого я вынес для себя два полезных урока, которые изменили мой взгляд на программирование и развеяли мои сомнения в себе. Сейчас я с вами поделюсь ими. Надеюсь, вам поможет.
Урок 1: изучение программирования подобно наращиванию мускулатуры
Чтобы научиться играть в футбол, нужно идти на поле и играть. Чтобы накачать сильные мышцы, надо идти в спортзал и упражняться. Чтобы научиться программированию, надо сесть и писать код.
После подъема тяжестей на следующий день у вас будет боль и усталость. Что касается программистских дел, ваш мозг будет (буквально) болеть и вы будете чувствовать разочарование.
Но вы же не бросите упражняться в спортзале только потому что чувствуете боль в мышцах. Вы знаете, что это часть процесса. Но когда вы застрянете на месте, решая какую-то проблему в программировании, вы можете начать сомневаться в себе, задумываться, достаточно ли вы талантливы. Потому что:
- Вы думаете, что заминка — ваша вина;
- Другие, кажется, делают это без усилий.
1. Заминки — часть процесса
Может, вам никто этого еще не говорил, но застрять на чем-то в программировании — совершенно нормально. Это случается и с разработчиками-сеньорами. Значительная часть программирования – попытки понять, почему что-то получилось не так, как вы ожидали. Если вы согласны, что ребенок никак не может пойти сразу, как только впервые станет на ноги, то почему ожидаете, что первый черновик вашего кода прекрасно запустится без всяких багов?
Я помню время, когда я застрял так надолго, что хотел биться головой о стенку. Я знаю, что это тяжело (особенно когда дело касается среды разработки). Но не отступайте. Копайтесь в проблеме. Ищите в Google. Спрашивайте у друзей. Сходите пройдитесь. В конечном итоге вы решите эту проблему и пойдете дальше. А по мере накопления опыта подобные заминки будут случаться реже.
В следующий раз, когда вы застрянете, не ополчайтесь на себя. Напомните себе, что это не ваша вина. Это нормально. Это часть процесса.
P.S. Настройка среды разработки может быть самой сложной частью программирования.
Застопориться на настройке среды разработки и провести целые дни за этим занятием – дело распространенное. Это те моменты, которые могут довести до сумасшествия. Вы пытаетесь следовать инструкциям шаг за шагом. Но на каждом шагу выскакивают произвольные ошибки. Если верить инструкциям, все должно быть просто, но это не так. Вы не виноваты в том, что застряли. Точно так же застопорились 99,99% людей, читавших те руководства. Упомянутым 0,01% повезло иметь те же настройки операционной системы, что были у инструктора.
Очень неудачно, что первый шаг в изучении программирования также является самой разочаровывающей и душераздирающей его частью. Когда видите ошибки, которые не понимаете, скопируйте сообщение как есть и поищите в Google (можно взять текст в кавычки или искать только по первой части сообщения). Пробуйте разные решения, пока не найдете то, что сработает. И идите дальше.
Простите, я повторюсь: заминка на этой стадии – не ваша вина. Мы ВСЕ через это прошли. И я обещаю, что программирование станет гораздо интереснее, когда вы преодолеете данный этап.
2. Мы путаем понятия «сообразительный от природы» и «поумневший вследствие посвящения кучи времени данным темам»
Во время последнего семестра в колледже мои друзья были поражены моими успехами в классе по продвинутым структурам данных и алгоритмам. Им казалось, что мне это дается без усилий, в то время как им приходится продираться сквозь дебри.
Они не знали, что до прохождения этих тем в колледже я посвятил месяцы подготовке к собеседованиям и провел бессчетные часы, практикуясь в задачах как раз на эти темы: динамическое программирование, поиск в глубину, поиск в ширину и т. д. Впечатление легкости было обусловлено тем, что я уже прошел трудный этап.
Когда я впервые столкнулся с этими понятиями, я провел часы, глядя на проблему и не понимая ее. Когда я сдавался и искал решение в интернете, я пытался понять его. Когда мне наконец удавалось, я чувствовал себя даже еще более огорченным, потому что сомневался, буду ли когда-нибудь достаточно умным, чтобы выдавать такие решения самостоятельно.
Иногда даже если проблема попадалась повторно, у меня все равно не было ни одной зацепки, как к ней подойти. Я был в таком напряжении, что мне приходилось подолгу принимать горячий душ чтобы успокоиться.
Так что поверьте, я знаю, каково это – сомневаться в себе и переживать, что не справишься. Я был на вашем месте. И могу вас уверить, что вы не одиноки. Многие отличные разработчики тоже через это прошли.
В следующий раз, когда вам будет трудно, в то время как окружающим — легко, не думайте, что это из-за недостатка способностей у вас. Скорее всего, у них просто больше представления об этом предмете или о похожих вещах. После того, как вы преодолеете трудности этого момента, вы также будете казаться умным и способным справляться с задачей без усилий.
Все зависит от количества повторений и подходов
Вы накачиваете мускулы упражняя их. Чем больше усилий вы прилагаете, чем дольше тренируетесь, тем сильнее будете. Изучение программирования – точно такой же процесс. Чем больше времени вы проводите за написанием кода, тем более искусным вы будете. Что посеешь, то и пожнешь.
Урок 2: фокусируйтесь не на себе, а на своем деле
Прекратите думать о том, насколько вы хороший или плохой программист. Если вы в нижних 5% вашей команды, вы хотите стать лучше. Если вы в верхних 5%, вы все равно хотите стать лучше. Без разницы, насколько вы хороши или плохи, всегда есть люди впереди вас и люди позади вас. Так зачем тратить время, обдумывая это?
Вместо этого сосредоточьтесь на своем деле. Перестаньте спрашивать, насколько вы хороши. Спрашивайте, насколько хорош ваш код. Как вы можете его улучшить, ускорить, сделать легче читаемым? Окружите себя инженерами, которыми восхищаетесь. Читайте их код. Насколько он отличается от вашего? Какие решения они применяют?
Если вы уже работаете инженером программного обеспечения, кто-то вам платит за то, что вы пишете код. Вам стоит остановиться и поразмыслить над этим: кто-то посторонний верит в ваши способности к программированию или видит ваш потенциал. Единственный способ реализовать этот потенциал – сосредоточиться на своей работе и неуклонно ее улучшать.
Призыв к действию: начните отслеживать маленькие победы
Когда вы в последний раз застревали и не были уверены, что сможете решить проблему? Как вы в итоге ее решили?
Откройте Google Doc и запишите это.
В следующий раз, когда будете сомневаться в себе, посмотрите на эти записи и напомните себе: если вы смогли решить ту проблему, вы и эту тоже решите.
Используйте Google Doc для отслеживания сложных задач, которые вы решили, и пометок о том, что вы выучили в процессе. Всегда, всегда празднуйте эти маленькие победы!
Оставьте комментарий и поделитесь последним случаем, когда у вас возникли затруднения, чтобы напомнить всем, что они не одиноки.
***
Подписывайтесь на наш канал в Telegram!
[customscript]techrocks_custom_after_post_html[/customscript]
[customscript]techrocks_custom_script[/customscript]