В те давние времена, когда истории про солитера у отца Виндоуса были уже старыми, а Paradox DB был еще вполне в ходу, из разных школ город Энска и рядом расположенного города Эрска выпустились три будущих программиста – товарищи под псевдонимами S, G и V. Вряд ли кто-то из них знал, что будет именно программистом – никто из них не поступил на известный своей отдаленностью от цивилизации «программисткий» факультет университета города Энска.
TL/DR – чего учили 5-10-15 лет назад, и чего из этого пригодилось где-то около 2015 года при трудоустройстве в не самые мелкие кампании, в РФ и не в РФ.
Как работает трудоустройство и карьерный рост на трех примерах из жизни.
Ничего нового, даже список книжек старый. Серебряной пули не будет.
Товарищ S учился понемногу, чему нибудь и как нибудь, и начинал, как и многие, с B3QQ4. Закончил в итоге Высшее Учебное Заведение, с дипломом.
Товарищ G учился близко к теме — изготовление и программирование микроконтроллеров, специальность называется «вычислительные машины, комплексы, системы и сети». Мнение товарища: фишка в том, что название специальности откровенная ложь, она была жёстко заточена на микросхемы, и программирование изучали достаточно поверхностно. Была еще специальность «программное обеспечение», на которой как раз это учили, но она была очень илитне, я мог на неё поступить, но хотел с железом работать.
Самым образованным внезапно оказался товарищ V – он закончил университет в областном центре города Энска по специальности АСУ ТП, с них и начинал.
Начну с товарища G.
Особые приметы: при звуках группы Слот теряет волю.
Бородат.
Начинал программировать на basic под БК, потом спектрум, паскаль, дельфи. Потом – всякое разное. На первой работе почти сразу перешли на С#, когда он (С#) только вышел. На предпоследнем месте работы был занят программированием под IOS, с которого не менее внезапно перешел на Java под Android.
После чего, не менее внезапно (как внезапно – откликался на вакансии, см. ниже), был приглашен на 33 разных собеседований. Прошел собеседование со второго раза, сдал (после длительной учебы – упражнения, грамматика) IELTS на много баллов (кажется, 8.5), собрал носки и уехал в Голландию, где и пребывает по сей день, программируя для одной достаточно известной организации.
Чего учил и чего пригодилось:
Я специально не учился, у меня было много непрерывного стажа по специальности и, в силу специфики профессии, я осваивал несколько разных направлений программирования, которые случайно оказались правильными. Вот как можно добиться успеха? С моей точки зрения очень просто, надо сначала много и тяжело работать на опыт и репутацию, а потом осознать, что ты хочешь чего-то конкретного достичь — и начать этого достигать
Что учить, мне кажется, всё равно. Тут уместна цитата из гоблина: настоящий джигит плывёт не по течению и не против течения, а туда, куда ему надо. Иначе говоря, если тебе чего-то конкретного надо достичь, то, вероятно, надо учить то, что требуется для этого.
Например, когда я собеседовался на текущую работу, на телефонном интервью меня унизили полностью, но потом сказали — мы перезвоним через месяц, давай посмотрим чего ты выучишь. Я сделал выводы и выучил всё то, что они хотели.
Теоретический минимум безусловно помогает, но необходим баланс.
Про что надо знать — скажем что такое треды, что такое объекты, как выделяется память на объекты. Это в большинстве языков есть
Например, уровни сложности (алгоритма) — это одна из вещей, которые меня спрашивали на интервью и которые я не знал.
Но, по большому счёту, ты должен знать две вещи: первое что нужно чтобы сдать проект заказчику, и второе что нужно чтобы пройти интервью. Это две разные вещи, и я, до этой работы, знал только первую. К сожалению, значительное количество людей знает только вторую.
Про кадры и молодежь:
Я постоянно изучал новые технологии в зависимости от того что заказчик хотел.
но это было не так что типа надо развиваться!11 новые технологии! — как вот эти все юные и перспективные любят, а именно что у нас есть проект, надо сделать.
Отсев:
10% на первом интервью остаётся и 10% из этого количества на втором, согласно тому, что HR говорит. И всё равно *** кругом. Мистика
Оценка рынка РФ:
Рынок как рынок, но необходимо ехать в Москву, иначе работа будет по остаточному принципу. Для студентов впрочем нормально, я считаю. Как раз студенты все сразу недолго думая прут в Москву и очень глубоко удивляются что их там никому не надо.
У меня лично не было желания туда ехать, и я перерос возможности контор доступных в Энске.
На текущее и предпоследнее место работы попал через:
на linkedin и careers.google.com откликался и вот попал.
Кстати, неплохой способ — написать в контору, в которую ты хочешь, и попытаться туда устроиться. Если даже ты вообще не подойдёшь, ты будешь знать, чего тебе надо учить.
Товарищ V.
Не бородат.
Начинал, внезапно, почти по специальности – завод, программирование микроконтроллеров, испытательные стенды. Потом не менее успешно сбежал в зону тогда еще закрытой торговли, где освоил C#, C++, ASP и ASP.Net + MSSQL. Плюсом пришли Subversion, NUnut, SVN. Из дальних стран спустя пятилетку вернулся в родной Энск, где перешел на чистый С, немного Java, и все такое.
Сменил работу и полез глубоко-глубоко в Web — css3, doT, ajax, javascript, jquery и так далее.
После еще пятилетки сидения на печи почему-то решил, что в нем таки есть немного еврейских корней и поехал попрактиковаться в Израиль. Однако оказалось, что таки нет (Мнение: Во-первых, стресс, а во-вторых, тестов мало в Энске писал, а у них на все автотесты), поэтому собрал силы и переехал работать снова на Кипр, где и занимается redux, rxjs, typescript и все такое. Очень ругает Angular.
Чего учил и чего пригодилось:
После детской книжки Вирта (Н.Вирт «Алгоритмы и структуры данных) научился более-менее писать простые алгоритмы, заодно узнал про поиск, сортировку, хеши.
Всякое по функциональному программированию — сейчас оно много где используется. Неглубоко, но основы знать стоит. Классика про ООП типа банды четырех —
- Приёмы объектно-ориентированного проектирования. Паттерны проектирования (англ. Design Patterns: Elements of Reusable Object-Oriented Software).
- Александреску А. Современное проектирование на С++: Обобщенное программирование и прикладные шаблоны проектирования = Modern C++ Design: Generic Programming and Design Patterns Applied
- Гради Буч. Объектно-ориентированный анализ
- Джеффри Рихтер. Программирование на платформе Microsoft.NET Framework 4.5 на языке C#»
- Джеффри Рихтер. Windows для профессионалов. Создание эффективных Win32-пpилoжeний с учетом специфики 64-разрядной версии Windows
- Мозговой М.В. Классика программирования — алгоритмы, языки, автоматы, компиляторы.
Оценка рынка РФ: работа есть, всякая. Есть и галеры, в смысле большие опен-спейсы, набитые программистами.
На текущее и предпоследнее место работы попал через:
Мой круг.
Мнение про текущие кадры:
6 из 10 не могут замену подстроки написать в онлайне. В редакторе и во время собеседования. Отсев — остается примерно 1 из 15-ти, найденных кадровиками. Кто-то отваливается после первого интервью, кто-то после тестового задания. Сделали простой онлайн-тест по js, чтоб лишний час на первое собеседование не терять.
Массовая проблема: непонимание нужности типизации в вебе — проверка типов с автовыводом типов, как в ts, flow, scala
Интересно, что хотя культура кода" везде более-менее и есть, требований нормальных почти нигде нет. Того, что называется управления требованиями и спецификации поведения.
Про недавний опросник на хабре: Собеседование для фронтенд-разработчика на JavaScript: самые лучшие вопросы
Хороший вопросник, но у нас по нему никто бы не прошёл. До вопросов средней сложности дошёл бы один из 15, а их прошёл бы один из 30-ти, может быть.
Товарищ S.
Не бородат.
После непродолжительной, но крайне интересной карьеры в фирме у одного общего знакомого, точнее во время этой карьеры, взял и выучил основы С, тогда даже без ++ и #, после чего устроился в одну более другую фирму на поддержку ПО, джуниором. Через пары-тройку лет учебы и работы переехал в Москву, там сменил пару работ, в итоге оказался в одном нефгазмяссервисе, в одном из многочисленных его подразделений, после чего перебрался в тот же нефгазмяс, но уже международный. Думает о релокации, и, похоже, вскоре переедет.
До сих пор пишет на всяком С, и заодно заведует всяким разным SQL.
Чего учил и чего пригодилось:
Сначала С, потом C++ / #. Весной сдал очередной экзамен по треку MS SQL.
Оценка рынка РФ: Работа есть, всякая.
На текущее и предпоследнее место работы попал через: hh.ru и кадровое агентство.
Мнение:
Нет универсального рецепта. Учить английский. Лет 15 назад все на рынке кричали что будущее за Oracle и надо учить в ту сторону, лет 7 начали топить за SAP, сейчас уже даже сложно что то одно выделить. Раньше рынок был более статичным — можно было научиться кодить под 1С и лет 15 пожинать плоды. В целом согласен в товарищем G. — сначала нарабатываешь опыт, потом понимаешь что тебе интересно и начинаешь усилено копать в эту сторону.
Ну и непрерывное самообразование
Что читать:
Энциклопедия профессора Фортрана.
Фигурнов В. Э. IBM PC для пользователя
Д. Кнут — Искусство программирования (1-й, 2-й том)
Автор: Иван Хрюнович Моржов