Мои родители инженеры микроэлектронной техники, мой младший брат ML-разработчик уровня lead, друзья — системные и бизнес-аналитики. А я — гуманитарий. Мне не повезло. С характером, способностями, обстоятельствами, мало ли чем ещё. В какой-то момент я понял, что так больше не может продолжаться и решил в свои тогда ещё 34 года «залететь в ИТ». Выбрал курсы по Python на степике, потому что это самый популярный и довольно простой язык. Вдохновился историями «старокодящих», которые смогли. Почитал новости о диком дефиците программистов в России. И с головой ушёл в обучение.
Что могло пойти не так?
Начало
Мне было очень тяжело. Приходилось гуглить, спрашивать у ChatGPT значения каких-то терминов, искать формулы из математики за 5 класс. Но был энтузиазм и мотивация. Мои знания росли в геометрической прогрессии. Но когда ты стартуешь с нулевого уровня, это не так уж и сложно. Раньше всё это программирование было для меня тёмным лесом, и тут как будто светлячки полетели циклы, функции типа sum и методы типа sort. Я узнал, что такое сериализация, и как Python работает с памятью. Я обсуждал свой код простейшей викторины с братом. Ну, вы знаете, эти разговоры двух программистов. Так я прошёл первый курс — для начинающих. А потом узнал, что он рассчитан на учащихся 7-9 классов. «Старшеклассники могут работать в Яндексе?!» — подумал я.
Первые трудности
Так в мою душу попали семена сомнений. Попали, но пока не проросли. Я взялся за второй курс, для продвинутых. Он давался уже легче. Хотя матрицы я так особо и не понял. Зато на втором курсе в моей голове уложились вложенные циклы, которые я никак не мог понять. И в целом простейший код из заданий я писал уже довольно бегло. И уже строил планы, предвкушал собеседования в Сбере, Яндексе, Озоне. Как я удивлю всех своими знаниями, навыками и чувством юмора. Да, это и правда было бы удивительно для всех участников процесса.
Проблема курсов
Правда, меня смущало несколько моментов. Первое, несмотря на обилие практических задач, было совершенно непонятно, как именно всё это можно применить в работе. Я сравнивал это всё с фильмом «Парень-каратист» 1984 года, где неопрятного вида сенсей заставлял американского подростка красить свои забор, дом, машину определенными движениями. Потом оказалось, что это была отработка приемов и ударов. Тут то же самое, решил я.
Второй, это общение с сокурсниками. Нет, комьюнити было супер. Все всегда готовы были прийти на помощь, что-то подсказать, объяснить, поддержать. А один комментарий вообще помог не бросить учиться в момент, когда я уже был в отчаянии. Меня беспокоило другое: ни у кого не было четкого плана, что делать дальше. Там были и опытные программисты, которые уже работали и проходили курсы, чтобы освежить и систематизировать знания (их комментарии под сложными задачами вроде «в чем проблема, сделал в одну строчку за минуту» очень бесили). Но их опыт точно не релевантен моей ситуации.
Потеря мотивации
Зерно сомнений стало прорастать. Я перешёл на третий курс «для профессионалов». По сути это было повторение и углубление пройденного. Базовый синтаксис языка худо-бедно освоить удалось. Но оказалось, что этого, мягко говоря, недостаточно. Нужны Git и GitHub, нужны технологии, библиотеки и немножко базы данных. И вот тут я приуныл. В общем, классическое: «Чем больше я знаю, тем больше я понимаю, что ничего не знаю».
Плюс ко всему я нашёл вторую работу. И не бросил первую. Времени на учёбу стало меньше. А ещё я осознал, чтобы выйти на хороший уровень дохода, мне нужно ещё ооооочень много учиться, пройти ад с поиском первой работы, продолжить учиться, набраться опыта, перейти на другую работу и, может быть, на третьем-четвертом месте я смогу зарабатывать столько, сколько получаю сейчас. Моя мотивация испарилась.
Почему у меня не получилось?
Так в чём же была моя ошибка? Конечно, я неправильно оценил задачу: дистанция была стайерская, а я планировал спринт. Но и с этим можно было справиться. Главное — у меня не было реального интереса к ИТ. Одно дело писать про технологии, читать новости, смотреть обзоры. И совсем другое «залазить под капот» и делать что-то самому. Это уже не кажется таким магическим и увлекательным. Я хотел, чтобы слова схантить, удалёнка, ДМС, бонус вошли в мою жизнь. Но оказалось, что быть крутым программистом — это совсем другое.
Мне с самого начала твердили об этом: «Если нет реального интереса к программированию, быстро выгоришь. Высокая зарплата — слабая мотивация, тем более, что есть и другие способы увеличить доход». Но я не слушал.
Слёзы сожаления
А их нет. Я ни о чём не жалею и сделал бы всё точно так же. Потому что мне действительно понравилось учиться. А ощущение, когда попалась какая-то сложная задачка и твой код наконец заработал, — вообще одно из самых приятных в жизни. Серьёзно.
Так что, я надеюсь, ещё вернусь к программированию и всё-таки смогу стать программистов. В конце концов, Герман Греф сказал, что в России не хватает 1 миллиона ИТ-шников. Значит, брать на работу будут всех подряд.
А какой был ваш путь в ИТ? Расскажите в комментариях! Может, кого-то он вдохновит. Все-таки нужно как-то закрывать такой дефицит кадров.
Комментарии (48)
Lazhu
29.07.2024 10:36Выбрал курсы по Python на степике, потому что это самый популярный и довольно простой язык
Вот и разгадка потери мотивации. Надо было С /s
CrazyElf
29.07.2024 10:36Если уж так хочется C-образный язык новичку отрекламировать, то лучше уж JavaScript тогда. Для него как для Питона море библиотек на все случаи жизни, можно сразу что-то пощупать красивое без особых усилий.
SUNsung
29.07.2024 10:36Змеиный это один из худших языков для начинающих.
Он простой, но он не язык программирования, а сценарный язык (!!!)Его просто изучить когда ты же знаешь какой-то другой язык высокого уровня
И то все эти отступы и прочие "фишки" синтаксиса (и компилятора) не для всехС нуля же это как купить лего 100К мелких деталей и пытаться собрать звездный разрушитель без инструкции.
В теории реально, на практике все просто, но в реальности результат будет далек от ожиданияХотите вкатиться и при этом без коленных пулеметов как в си - Go, Lua и прочие языки с упрощенным синтаксисом. С которых специально убрали все лишнее.
Go в этом плане вообще идеален. Вы сразу будете знакомиться с типами, памятью и тд.
vovabush
29.07.2024 10:36+26Не хочу обидеть автора, но, думаю, камень преткновения был в этом:
Мои знания росли в геометрической прогрессии. Но когда ты стартуешь с нулевого уровня...
icya
29.07.2024 10:36+4Скорее поэтому:
Мои родители инженеры микроэлектронной техники, мой младший брат ML-разработчик уровня lead, друзья — системные и бизнес-аналитики. А я — гуманитарий. [...] В какой-то момент я понял, что так больше не может продолжаться и решил в свои тогда ещё 34 года «залететь в ИТ».
Все побежали
denmaloyreb
29.07.2024 10:36+1А почему бы на зайти в IT не через программирование? Я перешел из IT-копирайтинга в техписательство. Сейчас уже есть скилы DocOps , заканчиваю курс системного анализа, приобрел еще массу полезных смежных скиллов. В общем, неплохо прокачался за 3 года в техписательстве и чувствую себя уверенно (в т.ч. и по ЗП).
Правда за время работы IT-копирайтером я успел еще вторую вышку получить и стать инженером-программистом (с кем поведешься, от того и наберешься, как говорится). Так что не совсем с нуля заходил :)
Lord_Alzov
29.07.2024 10:36+15В конце концов, Герман Греф сказал, что в России не хватает 1 миллиона ИТ-шников. Значит, брать на работу будут всех подряд.
Всех подряд брать не будут. Сейчас на вакансию ДЖУНА до 10000 откликов. Реально хантят сеньеров и выше. Мидл крепкий тоже думаю найдет быстро.
Мои родители инженеры микроэлектронной техники, мой младший брат ML-разработчик уровня lead, друзья — системные и бизнес-аналитики. А я — гуманитарий.
Не существует гуманитариев и технарей, есть тупые и ленивые люди, которые оправдывают отсутствие базовых знаний из школьного курса, тем что они не такие. Любой человек может освоить что угодно. Изначально ты в туалет ходить не умел, научился же? Просто кто-то с детства увлекается одним, кто-то другим, но в целом учебой увлекается малое количество людей, обычно людей можно отнести не к технарь или гуманитарий, а к категории ''ИДИОТ'', человек который не разбирается и не хочет разбираться ни в чем. даже как розетку поменять или как собрать компьютер( навыки уровня школьника).
Мне с самого начала твердили об этом: «Если нет реального интереса к программированию, быстро выгоришь. Высокая зарплата — слабая мотивация, тем более, что есть и другие способы увеличить доход». Но я не слушал.
Других способов увеличить доход, если ты не Москвич и не собрался в криминал нет. На данный момент доходы крепкого ИТшника превышают доходы малого бизнеса. Плюс ответвтеснность ниже и нет страха что все развалится и в твой магазин одежду/обуви/или на твою страничку маркетплейса никто не придет. Развалилась компания? Ушел в другую. В том числе в других странах. Плюс большинство кодеров реально работают пару часов в день. Не потому, что ленивые, а потому что успевают сделать, то, что от них требуется.
Правда, меня смущало несколько моментов. Первое, несмотря на обилие практических задач, было совершенно непонятно, как именно всё это можно применить в работе.
Потому, что ты занимался какой-то ерундой, нужно не сортировки изучать и алгоритмы, а начинать как раз таки с практики. Если бы ты изучал Fast API или Django вместе с ORM хотя бы уже был бы толк, с первого дня ты бы знал, что это и как можно применить. Вместо этого ты начал заниматься алгоритмами и прочим бредом, чем отбил желание вообще что-то делать. Большинство программистов на питоне и других языках, вообще в своей работе не используют алгоритмы.
parmatosser
29.07.2024 10:36+4>искать формулы из математики за 5 класс
Какой-то буллщит, может другого работодателя поискать с реальными проектами? Ну там, данные обрабатывать, жсонами пиу-пиу делать? Мне за 10 лет ни разу не понадобилось ничего такого. Начинал тоже в 35. Большинство "программистов" сейчас крудошлёпят и учат фреймворки.
Ну и напоследок, питон это пакость, я б тоже ИТ невзлюбил, если б по 8 часов в день на нем прогал. Про C# / java выше правильно написали.
CrazyElf
29.07.2024 10:36Да что ж такое. Я вот люблю C# и Python, а Java ненавижу. И не думаю, что "гуманитарию" Java хорошо бы зашла.
MaxRyazan
29.07.2024 10:36https://habr.com/ru/articles/768926/
Зашел в 36. Главное, чтобы был интерес именно к этой сфере
spirit1984
29.07.2024 10:36Добрый день. В свое время специально накатал статью об этом с советами именно для такого случая - Вы, похоже, начали не с того конца.
morokk
29.07.2024 10:36+1Извините за вопрос не по теме, но как иметь две работы и еще успевать учиться?
Thomas_Hanniball
29.07.2024 10:36Никак. Что автор и доказал на своём примере.
Пока автор работает на двух работах, условный школьник Вася за 3 месяца летних каникул прокачается лучше и быстрее, чем автор за целый год, тратя время на две работы и уделяя обучению лишь редкие минуты свободного времени.
aleks-th
29.07.2024 10:36+2Скажем так, многие хотят, чаще потому что видят зарплаты в 5 раз выше чем у условного продавца супермаркета или рабочего на сборке заказов. Или хотят потому что это престижно. Это перспективно и модно наконец.
А фигли давиш клавиши в тепле получаеш больше чем рабочий на холоде.
А потом сталкиваются с тем что это не так просто как кажется, и именно период обучения часть не правильно оценивают.
Скажем если ничем иным не заниматся то нужно на обучение год - два по 4 часа в день минимум закладывать для приемлемого результата. И потом еще пару лет зарабатывать меньше чем ты зарабатываеш сейчас если ты не студент конечно с первой работой.
Запомнить и гуглить недостаточно, нужно на уровне автоматизма понимать, и давать результат.
Пока там мозг отрастит связи между нейронами пройдет много времени по моим оценкам год-два точно нужно.
И вот как раз эта пропасть по времени( а среднестатическому человеку в это время еще и на еду зарабатывать нужно) и служит водоразделом, тренировался бы этот навык за пару месяцев, сейчас бы труд ИТ-шника стоил как труд продавца в пятерке 50-60к и никаких перспекив.
ajijiadduh
29.07.2024 10:36+1Мне было очень тяжело.
Мои знания росли в геометрической прогрессии. Но когда ты стартуешь с нулевого уровня, это не так уж и сложно.
???
vedenin1980
29.07.2024 10:36Эффект низкой базы, же. Условно, если у Васи есть стадо на тысячу коров, а у Пети одна корова, то если Петя купит еще одну корову - его рост будет 100%, если еще 2 - 300%, еще 4 - 700% (та самая, геометрическая прогрессия).
А если Вася купит 50 коров, то его рост будет жалкие 5%. Хотя по итогу у Пети - 8 коров, а у Васи - 1050.
xSVPx
29.07.2024 10:36+5Чего ты как гуманитарий огорчаешься-то ?
Тыж как минимум на нескольких языках говоришь, можешь спокойно ямбом писать мемуары, хорошо танцуешь и рисуешь, играешь на музыкальных инструментах, можешь в живопись, скульптуру итд итп. Этож круто.
Это они пусть завидуют. Тому, что ты умеешь "как гуманитарий" даже на уровне "джуна" гораздо труднее, а подчас и невозможно научиться, чем "войти в айти".
lair
29.07.2024 10:36Тыж как минимум на нескольких языках говоришь, можешь спокойно ямбом писать мемуары, хорошо танцуешь и рисуешь, играешь на музыкальных инструментах, можешь в живопись, скульптуру итд итп. Этож круто.
Любопытно. Я вот - гуманитарий, но из этого могу только говорить на нескольких языках (да и то не очень).
Интересно, откуда у вас такие представления о гуманитариях?
data_analyst
29.07.2024 10:36+2мой младший брат ML-разработчик уровня lead
А не легче и не логичнее всего было бы брата попросить стать Вашим ментором?
А так, какие-то метания без чёткой цели и плана. Потому и результат такой. Закономерный чуть более, чем полностью.
Gadd
29.07.2024 10:36+2Кстати, наблюдение - несмотря на то, что основным языком ML-разработки считается Python, для ML-разработчиков, да и вообще датасайентистам глубокое знание Python как правило не требуется. Зачастую основной их инструмент - Jupyter Notebook/Lab, плюс pandas, pytorch, etc... Когда задача - не писать код, а ставить эксперименты с данными и прочее (простите, не моя стихия), то часто бывает, что поверхностных знаний Python вполне хватает, губокое знание предмета и нужных библиотек гораздо важнее.
CrazyElf
29.07.2024 10:36Подтверждаю. Я немного варился в этой среде. DS-ы зачастую используют какие-то устаревшие конструкции языка, массово накопипащенные откуда-то. Чистота кода и глубокое понимание его им и правда не нужно. Им главное свои ML модели понимать.
Advisers
29.07.2024 10:36+2Начинать надо с мат. подготовки, конечно, если за плечами тех. вуз и по складу мыслей не гуманитарий - легче.
" Хотя матрицы я так особо и не понял."
- чтоб "понять" матрицы нужно не заниматься программированием, а взять учебник и задачник по линейной алгебре и его порешать..., для начала...
а потом можно почитать Кнута..., например.
FilIvanov
29.07.2024 10:36+1Куда вы там все всё заходите? На одну вакансию по 200-1000 откликов. Зарплаты не растут, растут требования, вакансии работодатели не закрывают месяцами - ищут абстрактного гения в вакууме с компетенцией двоих-троих специалистов.
Количество вакансий и резюме (статистика с hh) чётко показывает дела в IT:
Gadd
29.07.2024 10:36+2Курсы, лекции, статьи и прочая теория - это, конечно, хорошо. Но вот лично мне кажется, что после того, как набирается какой-то минимальный багаж знаний - нужно найти, к чему эти знания применить. Нужно подумать о том, какую задачу можно решить с помощью программирования - задачу нужную и полезную, если не себе, то хотя бы соседу. Ну или pet-проект начать. Но pet-проект - эта такая штука, которую очень просто бросить, не всем подойдёт. Я вот, например, не могу сидеть над одной и той же задачей, которая делается для себя, "в стол", больше пары дней, а вот над рабочими задачами - без проблем.
Я к чему это все - после получения минимума теории нужно закреплять эту практикой, остальная теория наберётся в процессе решения возникающих проблем. На всё это нужно тратить очень и очень много времени. Вот с временем в 35, к сожалению, обычно большие проблемы.
К слову, сам я всегда всем рекомендовал читать Лутца, но, что характерно, так его и не дочитал, даже до классов не дошёл.
Boilerplate
29.07.2024 10:36Проблема в том, что сам по себе язык программирования, это хорошо, но в аббревиатуре IT нет ни слова "язык", ни слова "программирования". Питон это хорошо, но если нет, например, понимания, что такое http запрос, отправленный с помощью питона, то цена знанию языка ноль. Или если нет понимания, что такое БД и как туда записать что-то из питона (про проектирование и не говорю). Ну и так по всему областям, которые изучаются в старших классах школы / в техникуме / в универе.
Попробуйте для начала пойти в техникум или платное ВО по IT направлению, чисто чтобы базу пройти вот эту вот всю. Прямо не по какому-то направлению (веб, мл, мобилки и т.д.), а именно по площадям - основы устройства ВС, алгоритмы, ос, бд, ооп, асм, сети, автоматы, компиляторы, а также разный матан: диф. исчесление, линал, тервер - всё подряд.На хабре много говорят, что такие знания общего профиля не нужны, но на самом деле это не совсем правда. Выпадение одной или даже нескольких областей не очень критичны для разраба по какому-то профилю, если именно эта область не связана с его областью деятельность. Но если провал по всем областям, то это видно буквально с момента, как вы откроете рот. Вы просто путаете в таком случае Гегеля с Геделем, и о чём с вами тогда спать?
Gadd
29.07.2024 10:36что такое http запрос, отправленный с помощью питона, то цена знанию языка ноль. Или если нет понимания, что такое БД и как туда записать что-то из питона (про проектирование и не говорю). Ну и так по всему областям, которые изучаются в старших классах школы / в техникуме / в универе.
Всего этого вполне можно набраться, решая проблемы pet-проекта - мой опыт был таким. Но для этого нужен реальный интерес к кодингу, а не к деньгам, когда отрываешь голову от проекта, а вокруг - ночь и все спят, а у тебя ещё столько планов, которые ты хотел успеть перед сном.
А вообще, по этому поводу я люблю повторять, что ЯП - это всего лишь азбука, но кроме неё есть ещё и ядерная физика, органическая химия и астрономия.
lair
29.07.2024 10:36Мои родители инженеры микроэлектронной техники, мой младший брат ML-разработчик уровня lead, друзья — системные и бизнес-аналитики. А я — гуманитарий. Мне не повезло.
Вы считаете, что если вы - гуманитарий, то вам не повезло?
neurobuilder
29.07.2024 10:36Ну а какому гуманитарию платят также, как в ИТ? Для равенства зарплат нужно быть каким-то очень талантливым гуманитарием в хайповой сфере, не?
Sergey_Kh
29.07.2024 10:36+2Несколько первых задач сами себе придумайте, реализуйте и запустите в продакшн.
Народ сам к вам подтянется.
NatalyaRukol
29.07.2024 10:36+2Нужны прикладные задачи. Я сама провожу курсы, я считаю это полезным, НО это не панацея, это не "войти в отрасль", это "структурировать минимальные базовые знания". А изучение профессии должно быть не по уровням сложности курсов, а по сложности решаемых задач. Идёте на биржу фриланса и демпингуете. Решаете задачи за 50$, в процессе много гуглите, решаете новые для себя задачи. Здесь, в отличии от курсов, появляется ДРАЙВ! Мотивация, уверенность, вот это всё.
В общем, если хотите - то пробуйте, но с другой стороны. Найдите себе задачи, не планируйте заработать, а демпингуйте по полной. Главное - реальный опыт.
Batalmv
29.07.2024 10:36Не дай бог потом таких "вкатышей" брать в команду. Научились "hello world" и еще чуток посложнее, но реальный код бизнес задачи будет из серии "выбросить, долго пояснять или сразу выгнать"
Человек пытается изучать язык, не понмая основ. Что зачем и все остальное. И если надо вспоминать математику 5го класса или не заходят "матрицы" - ну о чем еще можно говорить?
olegl84
В IT много разных профессий кроме программиррования. Кроме этого я бы посоветовал бы попробовать другие языки. Я в индустрии более 20 лет, и 30 лет увлекаюсь программиованием, и из всех языков что знаю Python мне нравится меньше всего. Из современных мой любимый C#, но так как сейчас я работаю в web, то тут рулит PHP, особенно с учетом как стремительное развивается Ларавел и проекты вокруг этого фреймворка. Я лично считаю что первый язык программирования должен быть C. Он дает возможность говорить непосредственно с машиной и в этом заключается магия программирования. Вторая магия программирования это когда твой код хорошо структурирован, это как чистаю, убранная, фукнциональная комфортная комната. Python этого лишен из-за своей слишком динамической структуры, которая хорошо работает для людей которые не хотят погружаться в программирование, например ученые из других оюластей, но плохо работает на больших и очень больших проектах.
CrazyElf
Python
- универсальный язык. Библиотеки на любой вкус, позволяющие "на коленке" слепить работающий код почти для любой предметной области. Очень удобно что-то пробовать на нём, экспериментировать, благодаря тому, что есть интерактивный питон, и особенноJupyter Notebook
. У меня "профессиональный" язык тожеC#
, а наPython
я люблю экспериментировать, исследовать, делать прототипы. Очень удобный язык, если его правильно использовать.KirpaPuto
У человека нет интереса к программированию. Ну вот нет и всё.
CrazyElf
И вот чем можно пробудить этот интерес, если учить программировать на
C
? А вот наPython
можно по-быстрому нарисовать красивые графики. Написать телеграмм-бота. Предсказать погоду там я не знаю. Буквально в несколько строк кода.rpc1
Мне наоборот C очень нравился, можно было любые низкоуровневые штуки делать, работать напрямую с оборудованием, драйверами, библиотеками. Но С более user friendly чем тот же ассемблер.
CrazyElf
Ну, когда-то давно я тоже начинал с Asm и C. На Asm я вообще что-то графическое даже рисовал. Но тогда и не было ничего более высокоуровнего удобного. Сейчас нет смысла на это время тратить, Asm я забыл и не вспоминаю, он остался именно что нишево для работы с определённым оборудованием и т.п. Этим не всякого можно заинтересовать )
Sequoza
Ага. Классный совет (нет). Перед тем, как писать низкоуровневые вещи нужно разобраться что вообще происходит и как оно работает, что займет уйму времени и гарантировано убьет мотивацию. А она, как мне кажется, вообще самая важная вещь в учебе.
atues
Точно! А на географии рассказывать, что земля покоится на трех слонах, стоящих на черепахе. И на физике рассказывать, что Земля - центр мира, а Солнце, планеты и звезды вращаются вокруг нее.
Вряд ли C зайдет абсолютному новичку. Он просто не поймет ценности и значения этого языка. Для него - это набор заумных идей, которые невесть откуда взялись и не пойми как их использовать. Исключения случаются, наверное. Но для большинства - это путь в тупик
Octabun
Как-то не убеждает. Sdl. WebAssembly или Wt. Unreal Engine или Godot. NDK. Модули Python, в конце концов.
Какой же это тупик? Можно прекрасно и самому учиться и других учить. Я и сам могу придумать много возражений, но они сводятся к двум - С без С++ как-то не очень и у C/C++ отвратительный тулинг. Хороште курсы снимают обе проблемы, и неторопливость в обучении тоже снимает обе проблемы.
И как-то тяжело, тупо из общих соображений, поверить, что любой язык из тех, которые во всех топах, может не подходить и/или вести в тупик. Я понимаю, это совковое наследие - стремление быть умнее системы и ни в какие рейтинги не верить, и оно донимает...
Если бы у меня был прилив лихости, я бы тоже мог сказать
ибо какое-то время и эту позицию можно защищать, а от того что Julia ведёт в тупик - скорее всего и защитить.
Gadd
Если у человека есть интерес, тяга и способности к программированию со школьной скамьи, а так же план развития, как программиста - то однозначно да. Во многих остальных случаях это может быть неоправдано или даже сделать только хуже, отбив интерес к программированию напрочь.