Будь у меня возможность отправиться в прошлое, я бы обязательно воспользовался ею чтобы дать молодому себе несколько профессиональных советов. К сожалению, сделать это не представляется возможным, поэтому я дам пару советов людям, которые только задумываются о профессии программиста или совсем недавно начали свою карьеру.
Ошибка на старте
В последнее время из-за растущей популярности профессии программиста все большее число людей желают вкатиться в программирование. И так как никакого представления о профессии у них нет, первым же делом эти люди бросаются выбирать себе язык программирования. Вот тут то и начинается веселье, потому как выбирают они его по совершенно безумным критериям. Кто-то выбирает PHP, потому что слышали, что он легкий в освоении, кто-то - C, потому что в интернете сказали, что настоящий программист обязан знать C. Некоторые, в погоне за чем-нибудь модным и молодежным, выбирают хипстерский Go (или Ruby), ну а самые ленивые просто берут тот язык, который учили в ВУЗе. Самые умные зайдут на какой-нибудь ХэдХантер, чтобы сравнить зарплаты, но все равно выберут тот язык, чей логотип покажется красивее.
Проблема заключается в том, что каждый язык программированиях походит для решения каких-то своих конкретных задач, а значит область его применения ограничена. Новички, вместо того чтобы хвататься за первый попавшейся язык, должны сначала определиться с направлением своей деятельности, будь то игры, веб-разработка, серверный-бекенд или кровавый энтерпрайз и уже после этого выбрать подходящий язык программирования.
Не ищите легких путей.
После того как новичок определится с языком, он обычно покупает какой-нибудь увесистый талмуд типа “Философия Java” или “Библия C++” и с энтузиазмом начинает его штудировать. К сожалению, этого энтузиазма надолго не хватает, потому что сухая теория с редкими вкраплениями задачек не особенно хорошо мотивирует на дальнейшее изучение. Поэтому очень часто, прочитав от силы треть книги, и так и не осилив все хитросплетения синтаксиса, учебник отправляют пылиться на верхнюю полку.
Однако на этом все не заканчивается. Хоть энтузиазм и поугас, желание, во что бы то ни стало стать программистом, никуда не делось, поэтому наш уже не столь мотивированный юнец начинает искать другие пути просвещения. Именно в это время добрая часть начинающих разработчиков совершают одну и ту же катастрофическую ошибку - идут на курсы. И неважно веб-курсы посещает человек или же занятия проводятся в реале, важно то, что в голове у него появляется очень вредная установка: “там меня научат”. Вы спросите, почему она является вредной? Дело в том, что программистам требуется очень много времени посвящать самообразованию, что требует значительной самодисциплины, особенно если сравнивать с другими профессиями. Поэтому начинающим программистам необходимо как можно раньше начать вырабатывать навык самостоятельного обучения. Это значит, что вы должны всегда стараться искать информацию самостоятельно. Если что-то не получается, нужно упорно пытаться разобраться в проблеме и только в крайнем случае просить помощи у других людей. Помните, что чем более широкий спектр проблем программист может решить самостоятельно, тем выше его квалификация.
Как-то однажды я потратил 3 дня на то, чтобы правильно настроить тестовое окружение для нового Angular’а. Под конец я уже был полон отчаяния, но все равно пытался понять, где же я ошибся. В конце концов, все получилось и я еще раз убедился, что в разработке все проблемы решаемы, дело лишь в затраченном времени. Поэтому столкнувшись с трудностями, не падайте духом, вы обязательно либо найдете решение, либо поймете, что его не может быть.
Воистину, из-за быстрого технологического прогресса в сфере IT профессия программиста предъявляет к людям особые требования. Человек должен обладать специфическим набором навыков и способность самообучаться лишь один из них. Но навыки на то и навыки, что их можно развить. Поэтому только от вас зависит, какого успеха вы достигните в карьере программиста.
Как говорится, программисту нужны две вещи: голова и *опа.