В прошлом году сразу у двух моих коллег ученики прекратили занятия с необычной, но в целом похожей формулировкой. Мол, «мне не нужны профильная математика и физика – я сразу буду учиться на программиста».
А так как у меня есть некоторый опыт работы в этой области, хотел бы обсудить несколько важных вопросов со всеми такими планирующими уходить в IT школьниками.
1. Слепое следование моде.
Те, кто постарше помнят, что после распада Советского Союза почти все выпускники мечтали стать юристами и экономистами.
Тогда это было модно.
Считалось, что именно в этих профессиях больше всего платят.
Переход от общественной собственности к частной требовал учёта активов и юридического обоснования. Вот и был в России массовый запрос на такого рода специалистов.
Когда к концу 90-х куски пирога советского наследия были поделены, спрос на их услуги мгновенно схлынул. И те, кто обучался на эти специальности, оказались просто не нужны в таком количестве. Пена ушла, на плаву остались только профессионалы. Остальные или работали где-то помощниками секретаря младшего экономиста, или становились клининг-менеджерами с высшим образованием.
Сейчас мода на программирование. Люди массово бегут в эту сферу.
Поэтому с недавнего времени на начальных карьерных ступенях в программировании идёт битва не на жизнь, а насмерть.
И дальше количество адекватных вакансий будет только снижаться.
Выпускников вузов впереди ждёт жесточайшая конкуренция за работу из-за сокращения кормовой базы.
Последние 10 лет родители активно отдают своих отпрысков учиться на разработчиков. Поляну вытопчут именно эти старшеклассники и студенты.
Через 5-10 лет, когда вы выпуститесь из вуза, вы вероятнее всего будете рады программировать за миску риса. А может и доплачивать за то, что вообще где-то работаете.
2. Нет ума – нет горя.
Бывает так, что школьник занимает призовые места на олимпиадах по физике и математике, а потом вдруг начинает плотно интересоваться программированием.
Супер! Пусть попробует свои силы в этой сфере. Там всегда будут нужны умные люди.
Однако, многие из уходящих в IT школьников идут туда, потому что физика и математика – это для них «слишком сложна-а-а».
Но если у вас не получается освоить в 11 классе томик «Математика – абитуриенту» или хотя бы пару десятков страниц методичек ЗФТШ, то как вы будете изучать объёмные технические мануалы? Да ещё и на английском.
Мы даже не говорим про самостоятельное написание документации. Как там у вас с итоговым школьным сочинением? Вы хоть какие-то мысли можете cвязно и письменно формулировать?
3. Информатика – халява.
Школьная информатика даёт искажённое представление о будущей сфере деятельности.
Сдать ЕГЭ по информатике значительно проще, чем по физике или математике. И школьники думают, что взрослое программирование можно освоить так же легко.
Но программирование – это не стандартный набор задачек из сборников ФИПИ. Это очень тяжёлый труд с погружением в работу сложных систем. Простой теорией и типовыми ответами здесь не ограничиться. Придётся нырять сразу в очень своеобразную практику.
На работе списать у соседа не получится, на шару зачёт вам в зачётку никто ставить не будет.
Те, кто игнорирует реальный процесс получения знаний, те, кто получает образование для галочки или ради сдачи формального экзамена, в IT не задерживаются.
4. Лёгкие деньги.
Конечно, работа программиста всё же попроще, чем работа на шахте в забое. Но она не настолько легка, как это позиционируют различные курсы.
Помните, что задача курсов – продать эти самые курсы. Многие истории успеха о переходе в IT написаны продажниками и нанятыми копирайтерами.
Родители тоже подливают масло в огонь: «Дитятко, всё равно за компом сидишь, а вот программисты вон какие зарплаты за это получают. Посиди-ка ты за монитором с пользой».
Ну и, конечно, кодить для зарплаты или же для пет-проектов, для лаб и курсачей, для самостоятельного изучения – это разные умения.
5. Хочу делать игры.
Это нормальная первая мотивация, но нужно быть готовым к тому, что стоит за фасадом геймдева.
Важно не путать туризм и эмиграцию.
Ну и не использовать это как оправдание того, что вы просто много играете и особо не собираетесь учиться и работать.
6. Отношение к ошибкам.
Многие старшеклассники не умеют работать со своими ошибками. Боятся их, максимально избегают, не желают их искать в своих решениях и исправлять.
То, что где-то в математических в расчётах ошибка, не учтённый случай, неточность в арифметике, небрежно нарисованная картинка – это не повод опускать руки и отказываться от решения задачи. Наоборот, это повод включится в работу по поиску своей ошибки.
Не должно быть и откровенного безразличия к ним. Нужно просто научиться тщательно выверять своё же решение.
А работа программиста более чем на 90% состоит в поиске и исправлении ошибок. Как своих, так и чужих.
Разработка ПО – это не столько написание кода, сколько написание нужного кода в нужном месте. Нужно для себя принять факт, что на первых порах это не будет получаться сразу.
7. С какого языка начать изучение.
Уверен, что у каждого разработчика есть своё обоснованное мнение по поводу выбора первого языка программирования.
Однако, начинать нужно не с языка разработки.
А точнее, не только с него.
Параллельно вам сразу нужно будет выучить английский.
Не нужно стремиться доводить его до разговорного уровня. Достаточно будет чтения и понимания написанного. Ну и знания специфической технической лексики.
И для начала, кстати, следует выучить русский язык. Тоже с чтением и пониманием написанного.
А то часть школьников мечтают стать программистами, не умея понять условие простенькой текстовой задачи...
8. Системное мышление.
Часто пишут про важность системного мышления для разработчиков.
Даже иногда можно встретить книги, которые якобы учат этому самому системному мышлению. Обычно там пишут откровенные глупости.
Системной взгляд важен в любой деятельности. Но развивает его не чтение какой-то книги или прохождение какого-либо курса. Часто хватает глубокого увлечения любой естественно-научной дисциплиной. Именно это вырабатывает привычку за отдельными деревьями видеть целый лес.
В школьной математике хорошо развивает системный взгляд геометрия. Каждая содержательная задача – полноценная мини-система.
В отрасли давно знают непрофильные специальности, которые легко конвертируются в IT-специалистов как раз за счёт базы и системности. Это математики, физики, радиотехники и несколько иных направлений.
Новую технологию можно изучить за 1-6 месяцев, а вот системному мышлению приходится учиться 5-6 лет в университете. Быстрее не получится.
9. Проектный подход.
С недавнего времени в школах от учеников требуют выполнения каких-то странных проектов.
Возможно, когда-то зашёл разговор о важности проектного подхода, потому и решили слепить что-то на коленке и внедрить в старших классах.
Это не имеет ничего общего с реальным управлением проектом.
Не обязательно лезть сразу в PMI PMBOK.
Даже простейший эксперимент или серия экспериментов в школьной физике можно считать мини-проектом. Особенно, если вы работаете в команде и выполняете его добросовестно.
Можно найти больше активностей в допобразовании, которые связаны с проектной работой.
Это довольно мощная связка – крепкая школьная база и широкое поле для проектных экспериментов в дополнительном (необязательном!) образовании.
Есть хакатоны для молодых людей, в которых можно прокачать в том числе и софтскиллы.
10. Развитый навык обучения.
Знания в IT быстро устаревают.
То, что было актуально лет 5-7 назад, сейчас уже мало кого интересует. Постоянно появляются новые принципы, языки программирования, библиотеки, фреймворки, среды разработки.
Без постоянного самостоятельного обучения вы сразу выпадете из обоймы.
На место одного разработчика всегда будут претендовать прокачанные, владеющие актуальными технологиями молодые специалисты с гибким мышлением.
Будьте готовы, что технологии, которые вы только собираетесь изучать, устареют, когда вы в них разберётесь.
Вам нужно бежать очень быстро, чтобы оставаться на месте. И не только быстро, но и довольно долго.
Самообучение должно стать вашим вторым именем.
Вряд ли стоит идти в разработку тем, кто не может самостоятельно по книжке разобраться в условном HTML&CSS.
Кстати, ещё вопрос: а сможете ли вы учиться, когда учиться будет не интересно? Новое в профессии – это для вас демотивирующий лишний груз или сложное, не всегда полезное, но всё же приключение?
Потребуется высокоразвитый навык обучения, чтобы изучать то, что нужно для дела, а не то, что вам нравится.
Некоторые начинающие думают, что можно войти в эту область налегке. Мол, мне такие объёмы изучать не нужно, я возьму себе немного и этого хватит.
Но даже ход проектов с вашим участием – это информация, которую надо постоянно обновлять. И эти знания актуальны только в пределах текущего проекта, команды или компании.
Придётся изучать много, нереально много информации. И изучать её быстро.
Ощущение последней ночи перед сессией может быть чуть ли не ежедневным.
Кстати, не ждите, что вам на работе или стажировке дадут толкового наставника, который вам всегда поможет. Не всегда в компаниях есть какие-то программы развития новых сотрудников.
Но даже если на первых этапах вам кто-то будет помогать, с какого-то момента вам всё же придётся идти самому. А наставник будет лишь показывать дорогу. У него и без вас своей работы хватает.
На самом деле на любой стажировке задача наставника не в том, чтобы вам помогать. И не в том, чтобы оценить ваш уровень знаний.
Его задача – оценить, насколько быстро вы учитесь.
Если стажёр готов каждый день учиться и выкладывается по максимуму, его захотят пригласить к себе в команду.
11. Программирование – это сложно.
Сейчас вы решаете задачи уровня «вывести на экран сумму двух чисел», «покрасить кнопки в розовый цвет» или «отсортировать массив».
Но чтобы хоть как-то двигаться в профессии, вам нужно будет вникать в более сложные концепции и принципы.
Причём разобраться только по книгам вряд ли удастся.
Принципы SOLID не объяснить на пальцах, для понимания нужен определённый опыт и абстрактное мышление.
Даже классические идеи вроде инкапсуляции, полиморфизма, наследования, с которыми вы наверняка столкнётесь в вузе, потребует от вас серьёзных умственных усилий и практики.
И вроде бы непрерывное обучение сложным вещам – это настоящее благо для человека с мозгами. Но такое обучение часто выходит за границы рабочего или учебного дня.
Это тяжёлая работа после тяжелой работы.
12. Неидеальный код.
В какой-то момент вы столкнётесь со знаменитым дендрофекальным методом конструирования систем.
Это на курсах и при самостоятельном изучении программирования вы получается новый проект и в нём именно программируете, начиная с чистого листа.
На стажировках в компаниях вам тоже дают задачи из условной песочницы. Пока не закончатся самые простые задачи, не требующие глубокого погружения в контекст.
А дальше вас может ждать реальный проект и недели и месяцы без продвижения и без написания даже строчки кода. Потому что надо разобраться, куда и как написать.
И тут все мечты о понятной и чётко выверенной разработке сталкиваются с суровой реальностью.
Разбираться в чужом велосипедном коде — такое себе удовольствие. Особенно, когда нет никакой документации по проекту.
В итоге на обслуживание технического долга уходит невероятно много сил, времени и нервов.
Можно терять годы в попытке обуздать качество непрерывным процессом «поддерживающей» разработки.
Иногда случается совсем забавное. Вы можете ругать на чём свет стоит предыдущего разработчика, обвиняя его в том, что он не умеет писать код. А потом оказывается, что вы сами писали этот код полгода или год назад...
13. Обман ожиданий.
Планку притязаний в профессии нужно опустить как можно ниже. Желательно до нуля. То есть вообще избавиться от каких-либо ожиданий или благостных иллюзий.
Единственное ожидание от входа в ИТ, которое не будет обмануто: будет трудно.
Есть такой принцип – ошибка выжившего.
Мы часто судим о чём-то по людям, которые прошли какое испытание успешно. Условно говоря, выжили. И не принимаем во внимание тех, кто успеха не достиг. Случайная удача может в итоге интерпретироваться как частое явление.
Смотрите по сторонам и в том числе на тех, кто не вошёл в IT. Или ушёл из разработки после многих лет в профессии.
14. Стресс непонимания.
Мы не говорим про давление сроков, про негатив от недовольных клиентов или про требовательного, но ничего не понимающего в разработке начальника, про ночные созвоны и дичь в рабочих чатах.
Такого стресса хватает и в других профессиях.
Выше мы обсудили, что в программировании нужно всегда учиться и учиться очень многому.
Но проблема в том, что в любом случае вы всё равно будете чувствовать себя глупцом.
По аналогии с бегом Чёрной Королевы: вам нужно не просто бежать в два раза быстрее, вам нужно в процессе работы научиться видеть, куда вы хотите прибежать и зачем. А на начальных этапах это почти невозможно.
Можно накопипастить кусочки кода из разных мест, можно ознакомиться с модным фреймворком.
Но если вы не понимаете, как всё это реально работает «под капотом», ваша работа по изучению всего нового будет казаться сизифовым трудом. Вроде чему-то учитесь, но всё равно на этом пути над вами нависает постоянно меняющийся тёмный лес, которому нет конца и края.
Это часто становится причиной выгорания. Сложно работать, когда вы не понимаете истинного смысла выполняемых действий.
Конечно, с опытом приходит определённая глубина понимания процессов. Техническая гонка перестаёт быть гонкой. Вам всё легче переучиваться. Однако, до такого уровня нужно ещё дорасти...
15. Работа на результат.
В школе вы привыкаете, что можно просто ходить на занятия и спокойно делать домашние задания, и тогда вы точно будете если не отличником, то в целом успевающим учеником.
Дальше институт. Во многих вузах достаточно посещать лекции, примелькаться преподавателю и не совсем тупить на экзаменах.
Потом вы можете попасть на работу, где важен просто процесс. Особенно часто это встречается в госструктурах. Никакого полезного продукта производить не нужно, нет никаких критериев эффективности, просто надо высиживать с 9-00 до 18-00 (с обедом строго с 13-00 до 14-00) и получать за это зарплату.
Именно про это известный стишок-пирожок: «ищу приличную работу, но чтоб не связана с трудом».
В разработке дело обстоит иначе. Тут важен результат. Платят именно за него.
Вы можете работать по 14 часов в день, но если задача не выполнена, то количество затраченных усилий никому не интересно.
Это принципиально иной подход к работе, к которому часть людей оказывается не готова.
Ну, и напоследок несколько обобщающих слов.
Несмотря на всё вышеперечисленное, всем уходящим в IT школьникам я бы дал лишь одну рекомендацию: пробуйте!
Пока вы не попробуете, никто не сможет сказать, есть ли у вас способности именно к IT-разработке или нет.
Может вы найдёте себя в этой или смежной с IT области.
Или же всё-таки окажется, что вам лучше искать себя в профессии журналиста, архитектора, биохимика или зубного врача.
Обществу вряд ли нужен очередной плохой разработчик. Но обществу всегда будет нужен хороший физик-ядерщик или фармацевт.
У вас сейчас замечательное время – вы учитесь в школе или вузе.
Это тот самый период, в течение которого закладывается базис.
Вы в сравнительно безопасной среде без необходимости думать о еде, квартплате и ипотеке и прочих взрослых хлопотах.
Постарайтесь использовать это время по максимуму. В том числе и для того, чтобы попробовать себя в разных ролях и профессиях.
Уходящим в IT.
Понравилась статья? Подпишитесь на канал, чтобы быть в курсе самых интересных материалов
Подписаться
Свежие комментарии