Я часто общался с людьми, которые в какой-то момент жизни приняли для себя четкое решение сменить сферу деятельности на IT по одной простой и понятной причине: деньги. Честно скажу, практически никто из этих людей не смог продвинуться далеко: большинство "отвалилось" еще на начальной стадии обучения, а самые стойкие все-равно бросили это дело на пол пути. В этой статье я попробую показать несколько причин, почему деньги, как единственная мотивация, в IT области не работает: что-то необычайно трудно изменить в себе даже за большую сумму.
!!! Я ни в коем случае не отговариваю Вас заниматься программированием! Просто предлагаю Вам более взвешенно подойти к этому решению. Если Вы все-таки строго для себя решили попробовать, эта статья поможет Вам с выбором первого языка программирования.
"Ну да, не интересно. Но ведь миллионы людей работают на нелюбимой работе годами, и ничего..."
Наверняка у вас есть друзья, которые относятся к работе довольно примитивно:
Отсиживаю/отрабатываю свое время на работе, а в конце месяца получаю зарплату. Напрягаться не нужно, все довольно просто и рутинно. А платят исправно и стабильно, и это главное
К сожалению (или к счастью), такое практически невозможно при работе в IT. Это отрасль, которая требует от вас огромного числа знаний, поэтому все время нужно развиваться и идти вперёд.
Вы можете даже попытаться устроиться на позицию, где требуется много рутины и больше ничего. Но и это не поможет - все-равно придется потратить время на изучение технологий и предметной области. Если же не хотите "напрягаться" на работе, то Вы "отвалитесь" уже на этом шаге - ну невозможно же заниматься тем, что не интересно и вызывает отвращение!
Хорошо, я потрачу усилия и время в начале, чтобы со всем быстренько разобраться, а потом смогу расслабиться.
И это тоже не сработает! IT-индустрия развивается очень-очень быстро. Знания, которые Вы получаете, очень быстро устаревают! Вам все время придется быть в роли "догоняющего" - пытаться угнаться за быстро развивающимися технологиями. Если такое не нравится - боюсь, IT не для Вас. Но я знаю много людей, которые с горящими глазами буквально бегут впереди IT-паровоза и ловят от этого неимоверный кайф.
Программирование - это просто
Это же просто: компьютер сам ничего не придумывает, просто выполняет твои команды по порядку. Значит, просто сидишь придумываешь алгоритмы и переводишь их в код!
Для меня это не было очевидным заблуждением, но, пообщавшись с несколькими знакомыми, я с удивлением обнаружил, что многие считают программирование жутко простым. Это не так.
Возможно, в школе или в универе Вам приходилось писать что-то простое: калькулятор, решатель квадратных упражнений, перемножение матриц и т.д. И действительно кажется, что после освоения синтаксиса это не сложно: больше похоже на упражнение на внимательность, где нужно постараться не забыть все "крайние" случаи.
Однако, Вы когда-нибудь возвращались к написанному Вами коду через какое-то время? Если да, то Вы наверняка заметили, что для того, чтобы заново разобраться в своем же коде, нужно довольно много усилий и времеи.
В реальной же работе программисту приходится работать с кодовой базой из десятков тысяч, сотен тысяч или даже миллионов строк, большинство из которых написано задолго до него и совершенно другими людьми - это совершенно другой масштаб проблемы! Для того, чтобы код был понятнее всем, программисты используют различные паттерны, вводят новые абстракции, подходы. Теперь, чтобы читать чужой код, нужно знать эти самые паттерны, понимать введенные абстракции, как они применены и что отражают. Это упрощает чтение кода, но заставляет думать более абстрактно и, можно сказать, выводит мышление на другой уровень - а это тоже непросто.
Также, к таким абстракциям высокого уровня можно отнести фреймворки и технологии: их тоже придумали для того, чтобы решать задачи было понятнее и проще. Но, как Вы понимаете, чтобы этим пользоваться, нужно эти технологии изучить, понять и начать применять!
А теперь представьте огромный проект на миллионы строк кода, над которым работает, возможно, добрая сотня человек. Если Вы хотите внести в него малейшее изменение, то есть риск одной строкой кода сломать вообще все или какую-то важную часть проекта! Чтобы этого не происходило, программист должен понимать, как работает система, какие абстракции чему соответствуют и за что отвечают, какие технологии используются и как они работают и многое другое.
Склад ума
Зачастую, если человек не умеет думать технически - у него просто может не получиться.
У меня был знакомый, который решил стать Android разработчиком. Он пол года занимался обучением, а его настойчивости и подходу к делу можно только позавидовать: он читал книги, изучал статьи, смотрел видео, гуглил, если что-то не получалось. Я видел приложения, написанные им - весьма неплохие для новичка.
Как-то он обратился ко мне с вопросом (это было уже после полугода занятий), я был поражен: он так много сделал, но абсолютно без какого-либо понимания! Он просто выучил огромную гору материала, но ничего не понял!
Более того, он и не осознавал, почему это плохо. Я искренне пытался ему помочь и посоветовал "откатиться" назад, к началу своему обучению и попробовать сосредоточиться на понимание материала, а не на его заучивании. Но следующим его шагом стало хождение по собеседованиям, где, как Вы понимаете, он не добился ничего.
Я не говорю, что люди с не-техническим складом ума чем-то хуже, конечно же это не так. Просто нужно сначала изменить подход, прежде чем пытаться стать программистом. И да, я знаю немало примеров, когда гуманитарии становились очень хорошими программистами. Правда, им действительно пришлось "ломать" свое мышление.
Тип личности
В народе есть стойкое убеждение, что все программисты - интроверты до мозга костей. Это - эдакие гении, которые в одиночку сидят в пещере и изобретают "космический корабль". Вообще, доля правды тут присутствиет, но в целом - это не совсем верное представление.
Правда в том, что если Вы не способны "уйти в себя", погрузиться в задачу, отстранившись от внешнего мира на какое-то время, то Вам будет тяжело.
Я встречал "сильных экстравертов". Это - замечательные люди. Только для того, чтобы решать проблемы, им в первую очередь нужно привлечь к своей проблеме других людей и наладить с ними общение. Но когда такие люди начинают заниматься программированием, как правило, при столкновении с проблемой - они начинают искать помощи у кого-то еще. Я видел, как такие люди доходили до ранних этапов карьеры. После этого, чаще всего, они или завязывали с программированием, или менялись сами, потому что так тоже не работает - Вы должны уметь решать проблемы сами.
С другой же стороны, если Вы жуткий интроверт и предпочитаете работать только в одиночку - Вам будет трудно работать в каком-либо коллективе. Над проектами в любой компании трудятся команды, и взаимодействие внутри команды очень важно.
Окружение и взгляды на жизнь
Допустим, все предыдущие пунты не про Вас. У вас математический склад ума, Вам в принципе интересно ковыряться в компьютере, узнавать что-то новое и преодолевать проблемы. Теперь задайте себе вопрос: как Вы и ваше окружение относитесь к программистам?
До сих пор во многих кругах я чувствую пренебрежительное отношение к представителям нашей профессии. И это понятно: люди, условно работающие на заводе, живут совершенно другой жизнью и делают абсолютно другие вещи. Каждый день они своими руками производят что-то реальное и осязаемое, и Вам может быть не понятно, что это там программисты сидят, уставившись в экран целыми днями, не принося ничего нового в этот мир, но при этом считают себя безумно важными.
Возможно, Вы из другого культурного слоя: Вам не интересно то, о чем они говорят, Вы не разделяете их ценности и вообще не считаете важным то, что они делают. Опять же, я не осуждаю за такое отношение: каждый имеет право на собственное мнение. Просто если Вы собираетесь работать с таким людьми - у Вас вряд ли что-то получится дельное. Вам придется взаимодействовать с этими людьми постоянно и разбираться в вещах, которые Вам кажутся абсолютно не важными. Если это не ваше - никакие деньги не заставят Вас заниматься этим.
Тем не менее, если Вы чувствуете, что готовы изменить себя, свои интересы, свое отношения к людям и вообще к происходящему в мире - конечно же стоит попробовать.
Заключение
Человек - существо многогранное, да и редко что в мире получается делить на "чёрное" и "белое". Не существует идеальной работы. Критериев выбора - множество, и деньги - безусловно важный критерий, но всего лишь один из множества. "Ломать" себя и идти в программирование - может обернуться для Вас большим стрессом и потерей времени. ,А в конечном итоге, скорее всего, вы все-равно уйдете из этой профессии. Подходите к выбору профессии очень взвешенно и тщательно, главное - чтобы Вам нравилось и Вы получали удовольствие от того, что делаете.
Если Вам понравилась статья, ставьте лайки и подписывайтесь на канал. В комментариях поделитесь вашими мыслями о том, как Вы представляете себе работу программистов и работу с ними.