Те, кто ищут «точку входа» в IT, часто имеют неправильное представление об обучении и работе программистов и других технарей. Жизнь гиков, показанная в «Социальной сети», «Матрице» и «Теории большого взрыва», сильно отличается от реальности. Мы решили развеять самые распространенные мифы об обучении IT-специальностям, чтобы вы понимали, что вас ждет в новой профессии.
Неудивительно, что вы решили стать программистом: IT-направление стремительно развивается. Несмотря на то, что вузы каждый год сотнями выпускают новых специалистов, зарплаты в отрасли остаются привлекательными.
Наверняка у вас тоже есть знакомый программист, который устроен в жизни так, что завидно. Много зарабатывает, имеет всякие плюшки от компании. Да еще и работает в свободном графике и без привязки к рабочему месту — путешествуй хоть куда.
Айтишники оказались востребованными и во времена пандемии: именно они обеспечили перевод бизнеса в онлайн. Без сисадминов и программистов работа компаний в новых реалиях просто не состоялась бы.
Почему вы задумались о профессии программиста?
Убеждение, что программисты много зарабатывают и всегда востребованы, привлекает в профессию людей разных возрастов. Но каким бы ни был ваш путь, будет полезно идти по нему без иллюзий. Давайте их развеем.
Хорошая новость — чтобы стать программистом, заканчивать университет необязательно. Ни одна отрасль не развивается так быстро, как IT. Новые языки и фреймворки (программные платформы) появляются постоянно, академическая программа не успевает за ними. То, что преподают в вузе, морально устаревает к моменту изучения. Получается, что проведя в alma mater 5 лет, вы выйдете с дипломом, но без практических инструментов и опыта.
Конечно, адепты старой школы скажут, что без высшей математики никуда. Но дифференциальные уравнения и функциональный анализ нужны для узкого круга задач, а вот о владении последней версией языка программирования работодатель спросит.
Багаж знаний, сопоставимый по объему с университетской программой, можно получить гораздо быстрее. Существуют онлайн-курсы, книги, форумы, тематические сайты. При этом вы не будете тратить время на изучение непрофильных предметов, которые составляют до 25% вузовской программы (история, охрана труда, физкультура и прочие радости).
На курсах вы встретитесь в преподавателями-практиками, действующими разработчиками, сотрудниками известных компаний. Они точно знают, какие навыки востребованы, и составляют программу с учетом этого. Попутно преподаватели расскажут какие-то случаи из своего опыта, и вы начнете понимать, как устроены программистские компании. К тому же, если проявить себя способным студентом, есть шанс наладить личные контакты, найти стажировку и начать работать не через пять лет, как после университета, а гораздо раньше.
Если при этом вы хотите «добрать» теоретическую базу и получить фундаментальные знания, это можно сделать, занимаясь с преподавателями индивидуально.
Не возьмут на работу без диплома? Это пугалка из юности наших родителей, если не бабушек и дедушек. Программирование — сфера, в которой невозможно продвинуться иначе, чем за счет собственно ума и старания. Поэтому для работодателей в приоритете знания и опыт разработки. Кстати, Билл Гейтс проучился в Гарварде всего два года и его отчислили. Он был так занят созданием программ, что на учебу времени уже не оставалось. Через 30 с лишним лет администрация Гарварда забеспокоилась и вручила Гейтсу диплом вместе с докторской степенью. Не призываем бросать университеты тех, кто уже учится. Этот пример говорит лишь о том, что окончательно оценить риски и возможности можете только вы сами.
А если вы точно знаете, что в компании мечты требуют диплом, выберите другую стратегию. Поступите в вуз, а параллельно на курсах изучайте современные средства программирования.
«Обучение программированию с нуля за два месяца», «Программирование для чайников», «Напишите первый код через две недели», — увы, рекламные кампании манипулируют нашим желанием быстро достичь результата. Да, первый код можно написать примерно через час после начала обучения, но от него до настоящего программирования, как от Средневековья до полета Гагарина.
Некоторые смельчаки ныряют в программирование самостоятельно. Но после эйфории первого кода появляется много вопросов, а задать их некому. Конечно, есть форумы, но там ответа ждать долго, и не факт, что его даст профессионал.
Качество обучающих роликов бывает разным. По ту сторону YouTube может таиться человек, знающий еще меньше чем вы. Новичок не сможет самостоятельно понять, стоит ли тратить время на просмотр. Потом придется «забывать» неправильные рекомендации. Вам это нужно?
Кроме просмотра роликов и лекций, хорошо иметь наставника, ментора, который поможет разобраться со сложными разделами. Изучение языка под чьим-то руководством сэкономит ваше время. Самому сложно определить базовый объем знаний, который нужно получить, прежде, чем предлагать себя.
Желательно быть на связи с таким человеком, пока вы учитесь. Поэтому лучше выбирать курсы, на которых можно составить индивидуальную траекторию. Так вы сможете оценить время и стоимость обучения.
Это другая крайность. Конечно, нельзя стать экспертом за 24 часа или 21 день. И все же. Первую программу, которая решит какую-то простую задачу, можно написать за несколько дней. Для себя: на коммерческий продукт она не потянет.
Зарабатывать программированием получится через несколько месяцев (против 5 лет в университете). Конечно, тут многое зависит от личной мотивации и времени, которое вы сможете уделить учебе.
Не стоит слушать тех, кто твердит вам о 10 000 часах, необходимых, чтобы стать экспертом в чем-либо. Эту формулу успеха вывел канадский писатель Малкольм Гладуэлл в своей книге «Гении и аутсайдеры», но в ней говорится о том, как стать лучшим из лучших, а вовсе не о входе в профессию.
Для разработчика главное — практика. Начинайте писать программы с первых дней обучения. Ищите повторяющиеся паттерны в вашей повседневной жизни. Думайте, какие свои задачи вы можете упростить с помощью программирования.
Новички часто задают вопрос: «Как можно сравняться с людьми, которые программируют много лет?» Это не так сложно. Программирование — профессия, в которой нужно постоянно совершенствоваться. Новые языки появляются постоянно, а знания, полученные в предыдущие годы, теряют актуальность. Если человек выпал из профессии на несколько лет, ему фактически придется начинать с нуля.
Если вы освоили базовые навыки, вы конкурентоспособны. И можете претендовать на вакансии разработчиков. Отсутствие опыта можно сделать преимуществом. Пока мастодонты держатся за технологии, которыми они привыкли пользоваться, вы можете освоить новые программные платформы. Или попробовать себя в направлениях, которые пока вызывают скепсис у старой гвардии. Гибкость и незашоренность позволяют вам предлагать идеи, до которых не всегда додумается опытный программист. Поэтому иногда работодатели предпочитают новичков, чтобы обучить их «под себя» и влить «свежую кровь» в команду разработчиков. Так что не бойтесь пробовать, места под солнцем хватит всем.
Когда вы приходите в первый класс, никто не додумается начинать с интегралов, даже умножение вы изучите только во втором классе. Так же и с программированием: хотите сохранить мотивацию и быстрей получить результат — начинайте с простых языков, таких как Python. Этот язык универсален и подходит для многих задач и разных операционных систем, включая iOS и Android.
В зарубежных исследованиях, сравнивающих языки программирования с точки зрения удобства для обучения, Python неизменно стоит на первом месте. Любопытно, что у разработчиков есть философия «Дзен Питона», которая, среди прочих, включает утверждения «Простое лучше, чем сложное», «Сложное лучше, чем запутанное», «При этом практичность важнее безупречности». Идеально для начала, правда?
Проскочить начальный этап, понадеявшись на свои способности, не удастся. Усвояемость материала будет низкая, незнакомые понятия будут тормозить и мешать. В итоге потеряете время, и все равно придется вернуться к началу. Для тех, кто начинает с нуля, есть курсы для освоения базовых понятий, которые должен знать новичок перед тем, как приступить к изучению языков.
Как только вы освоите основы программирования, вы легко перейдете на более сложные технологии и языки программирования вроде C++ или Objective-C.
Но прежде чем выбирать языки, решите, в какой области программирования вы хотите развиваться. Например, для web-разработок понадобится в первую очередь HTML и CSS.
Нельзя быть слишком старым (или молодым), чтобы учиться программированию. И это можно сказать о любом обучении. Все зависит только от желания преуспеть. Кстати, забавно, что сетуют на возраст не только те, кому за 40. Жалуются даже те, кто только недавно окончил бакалавриат. Научиться программированию можно в любом возрасте. Так же, как, например, иностранным языкам или музыке. Важно только, чтобы вы были готовы начать с нуля, хотели учиться и применять знания на практике.
Ваш предыдущий жизненный опыт поможет общаться с заказчиками и коллегами. Коммуникация — важная часть командной работы, в одиночку серьезные системы не создают.
А может быть, у вас есть сомнения по поводу предыдущей профессии? Например, такое: если я гуманитарий, смогу ли я освоить программирование? Ведь для него нужен особый склад ума? Еще один миф. Как мы уже выяснили, высшая математика нужна не всякому программисту. Поэтому если у вас остались плохие воспоминания о школьной алгебре, это не повод отказываться от мечты. Хотя, возможно, гуманитарию придется учиться чуть дольше, чем выпускнику технического вуза, где проходят программирование хоть в каком-то объеме. Зато знания из вашей первой профессии и широкий кругозор вполне могут пригодиться, если вы займетесь, например, веб-разработкой.
Надеемся, что разбор мифов добавил вам мотивации и решимости. Подведем итоги.
Академическое образование не успевает за технологиями. Поэтому языки программирования, которые указаны в вакансиях, придется изучать самостоятельно. А если так, стоит ли учиться в университете пять лет, когда на курсах можно получить такой же результат за меньшее время?
Единственное, что нужно для обучения программированию — ваше желание. Возраст, предыдущая профессия и опыт значения не имеют.
Что стоит учесть?
На учебу понадобится несколько месяцев. Прежде чем начать, разработайте для себя программу. Если чувствуете, что «плаваете» и не справитесь, обратитесь за консультацией. На курсах вам посоветуют, какой язык учить первым.
Что дает обучение на курсах?
Вам приходится выполнять задание в срок, учиться соблюдать дедлайны. Это дает уверенность. Вы не только учитесь, но и обрастаете знакомствами в профессиональной среде. Не исключено, что это общение поможет найти работу. От преподавателей-практиков вы узнаете, какие навыки пригодятся в первую очередь.
Чем удобно самообразование?
Курсы, вебинары и книги позволяют строить более гибкий график, поэтому вы сможете работать и учиться одновременно. Будете обучаться в своем темпе, чтобы успевать «переварить» знания. И всю теорию тут же применять на практике.