Представляем вам перевод статьи JS dev Ray, опубликованной на сайте medium.com. Автор рассказывает о важных вещах, которые он понял за свою карьеру разработчика приложений. По его мнению, эта информация может очень пригодиться начинающим специалистам.
Автор фото: NeONBRAND. Взято с ресурса Unsplash
Мой опыт разработки приложений не сводится к одним лишь победам. Куда чаще случались провалы, причем серьезные. Но только ошибаясь, человек получает необходимые знания, поэтому теперь своим ошибкам я даже рад.
Мне посчастливилось работать с настоящими профессионалами, в разных компаниях — больших и маленьких. Если б не эти люди, я никогда не стал бы специалистом, которым являюсь сейчас.
Сегодня я расскажу о семи главных уроках, усвоенных мной за десять лет в разработке приложений. Откиньтесь на спинку кресла, расслабьтесь и наслаждайтесь чтением — надеюсь, хотя бы часть информации будет для вас полезной.
1. На пути к успеху нужно пережить тысячу неудач
Я хорошо помню свои 14 лет. Один мой друг в это время создавал собственный сайт, а меня очень вдохновляло его умение писать код и крутые веб-страницы, которые получались в итоге. И вот однажды я спросил у него — как ты это делаешь? Ответ мне мало помог, скорее разочаровал. Ведь друг сказал: просто открываю блокнот и пишу.
Перенесемся в более позднее время — мой первый год в качестве разработчика. Тот ответ друга замотивировал меня экспериментировать с HTML и CSS. Естественно, я совершал много глупых ошибок, например таких:
- строил сайты только с помощью
frame
илиiframe
; - для разметки страницы применял
table
; - почти для всего подряд использовал
position: absolute
.
Список можно продолжать бесконечно. В свое оправдание скажу, что, совершая ошибки, я учился отличать правильное от неправильного. А еще, став разработчиком приложений, я все-таки справился с этими проблемами, ведь коллеги регулярно давали мне фидбэк.
Ключ к успеху в работе — практика. Прежде чем добьешься чего-то, придется совершить огромное количество ошибок. Но неудачи не так страшны! Это просто часть процесса: ты работаешь над своими промахами, чтобы в следующий раз получить более качественный результат.
2. Научиться кодить может любой!
Первые два года я сомневался, что смогу стать хорошим специалистом. Работать приходилось с HTML, CSS и совсем чуть-чуть с jQuery. JavaScript казался мне чересчур сложным!
Точнее, я считал, что для изучения JavaScript мне просто не хватит сообразительности. Но спустя годы стало понятно: не нужно быть слишком умным, достаточно выучить несколько базовых приемов и практиковать их как можно чаще — днями, неделями. Только благодаря такой практике я понял, почему все работает так, как работает, из-за чего происходят ошибки, что я делаю неправильно.
В общем, вы ошибаетесь, если думаете, что разработчиком может стать исключительно гений.
Это звучит особенно логично, если сравнивать программирование со спортом. Прежде чем попасть на Олимпийские игры, спортсмены тренируются на протяжении многих лет. Запаситесь терпением и практикуйтесь почаще!
3. Разработчики-сеньоры тоже сомневаются
Мне всегда казалось, что эти умные, опытные специалисты уверены в своих навыках. Однако они испытывают те же сомнения, что и джуниоры.
Множество сеньоров страдают от синдрома самозванца, кто-то чаще, кто-то реже. Со мной время от времени такое тоже случается. Но я думаю, что стыдиться не надо. Все мы люди, и у нас в голове нет жесткого диска, чтобы взять и загрузить туда гигабайты знаний. Да это и ни к чему!
Я многое осознал, когда один из моих ведущих разработчиков не смог решить какую-то проблему, хотя сидел над ней целыми часами. В тот момент мне подумалось: нет ничего страшного в том, чтобы признать, что пока чего-то не знаешь.
Сеньоры становятся сеньорами, потому что за свою карьеру они ошиблись много раз. Но если начинающий разработчик обратится с вопросом, на который у нас нет ответа, мы тоже имеем право сказать: «прости, я не знаю».
4. Самый важный навык — коммуникация
Если вам кажется, что самое важное в программировании — это умение писать код, подумайте еще раз!
Я много лет трудился в больших и маленьких командах, где работа над проектами шла в формате SCRUM. И на каждой ретроспективе кто-нибудь обязательно говорил: да, нам надо совершенствовать коммуникацию, ведь там-то и там-то все пошло не так. Если бы мы взаимодействовали друг с другом лучше, проблему удалось бы предотвратить.
Если вы работаете сами по себе, это, конечно, не ваш случай. Но в коллективе коммуникация становится чрезвычайно важной вещью.
Зачастую успех проекта зависит от коммуникации не меньше, чем от навыков программирования. Если вы работаете в команде крутых разработчиков, в которой плохо с коммуникацией, у вас большие проблемы.
5. Ошибки? Значит, в следующий раз тестите больше
Мы — разработчики и тестить не очень любим. Само собой, можно немного потестить одно, другое, но углубленное тестирование сценариев — это не про нас, верно?
Если в вашем коде часто попадаются ошибки или баги, уделяйте больше внимания тестированию. Некоторые занимаются им вручную, но я рекомендую потратить время на автоматизированное тестирование (создание модульных и интеграционных тестов, тестов на проникновение и т. д.). Этим вы убережете себя от проблем в будущем.
Да, создавать тесты не так увлекательно, как работать над новым функционалом. Зато они сэкономят вам время для крутых фич!
6. Помогайте другим!
Кое-что о моем характере: я люблю помогать людям. Однако мне попадались разработчики-сеньоры, которые были резки с джуниорами. Ненавижу, когда так делают!
Я до сих пор помню, как мне помогал коллега — действительно крутой специалист. Его поддержка способствовала моему профессиональному росту и позволила мне стать хорошим JavaScript-разработчиком. Этот человек подсаживался ко мне каждый раз, когда я бился над каким-то прототипом и не мог разобраться, как он работает. И в конце концов я все понимал!
Когда станете великим сеньором, постарайтесь не забывать, с чего начинали. Вспоминайте, кто помогал вам на вашем пути и что вы чувствовали при этом. Потому что добро возвращается. А если вы резки к людям, ожидайте от них того же!
7. Пишите статьи, чтобы стимулировать процесс своего обучения
Я плохо учился в школе, оценки у меня были не очень высокие. Но, став разработчиком, я наконец-то нашел способ обучения, который мне подходит. (И ура!)
Думаю, многие читали мои посты о JavaScript на medium.com или на моем веб-сайте. Так вот, все эти посты — результат моего обучения.
Пытаясь уложить в голове сложный прототип, я берусь писать статью о нем — так, будто объясняю принцип действия этого прототипа кому-то другому. Начинаю всегда с кода: пытаюсь заставить его работать, затем снова ломаю. Мне нужно в полной мере понять, почему все именно так, а не иначе, а также что я могу сделать, если код по каким-то причинам не работает.
В моем случае это помогает. Я регулярно перечитываю свои посты, чтобы вспомнить, как действует тот или иной прототип.
Благодарности
Спасибо, что прочитали. Я старался как можно подробнее рассказать о важнейших уроках, которые усвоил за десять лет разработки приложений. Надеюсь, вы возьмете эту информацию на вооружение, и она пригодится для вашей карьеры.
Мне также интересно, какие полезные уроки вы извлекли из собственного опыта. Неважно, кто вы — студент, джуниор, сеньор. Давайте учиться друг у друга!
Автор: Plarium