Тест можешь ли ты стать программистом?

Введение

Квалифицированные программисты по-прежнему высоко ценятся в мире технологий: вакансии разработчиков, как правило, являются одними из самых трудных для заполнения, и спрос на таких специалистов, похоже, не замедляется.

Однако, по словам Дэна Вассалло, веб-разработчика Vydia, как начинающие программисты, так и «ветераны» этой отрасли сталкиваются с рядом трудностей в мире быстро меняющихся технологий, что делает все более трудным сохранение актуальности в этой области и продвижение по карьерной лестнице.

«Новички и долгосрочные программисты постоянно стремятся усовершенствовать новейшие технологии и добавить еще один навык в свои профили LinkedIn», — сказал он. «Иногда это хорошо, а иногда это может иметь отрицательный эффект.»

Давайте же перейдем к 10 главным советам для программистов!

Профессиональное развитие и карьерные перспективы

Написание кода — это профессия, в которой большую роль играет самообразование. Это постоянно прогрессирующая и совершенствующаяся область, и для того, чтобы оставаться грамотным специалистом, необходимо посвящать немалую часть времени знакомству с новыми разработками и технологиями.

В сущности, для устройства на ту или иную вакансию зачастую необязательно иметь диплом по специальности — на собеседовании потенциальный работодатель будет в первую очередь оценивать ваши профессиональные навыки, предложив для решения несколько тестовых задач.

Если вы будете работать в крупной компании, то вполне возможно, что она будет заинтересована в повышении вашей квалификации и будет оплачивать для вас профессиональные стажировки, конференции и курсы. Таким образом, вы сможете совмещать обучение и работу.

Если вы проявите себя как перспективный специалист, то рано или поздно у вас появится возможность работать в крупных зарубежных компаниях. Конечно, для того чтобы это стало возможным, необходимо хорошо знать иностранный язык. Однако, поскольку в этой профессии без отличного знания английского никак не обойтись, это, скорее всего, не будет проблемой.

6 | Вам лень или сложно думать

Если вам лень думать, и долгие мыслительные процессы о конкретных вещах кажутся вам изнурительными, вы точно никогда не станете успешным программистом.

Программирование заставляет нас думать. Люди, в принципе, легко справляются с этим, но на самом деле, хоть мы и думаем постоянно, иногда нам очень лень пошевелить мозгами. Очень сложно долгое время сохранять концентрацию при решении одной проблемы, если вы не привыкли это делать.

Симптомами могут быть: пустой взгляд на экран, ощущение, будто в вашей голове туман, прокрастинация, перещелкивание вкладок браузера и отчаянный поиск решения на StackOverflow. Всё это признаки того, что вы столкнулись с психологической преградой, которую нужно преодолеть.

Вы будете уставать во время программирования. Мыслительные процессы сжигают нашу энергию не хуже физических упражнений. Если вы не привыкли прилагать умственные усилия, когда это необходимо, то вам сложно будет сохранять свою концентрацию. Этот процесс схож с занятиями в спортзале: чем больше вы занимаетесь, тем сильнее становитесь.

Ваш мозг — мышца: Представьте, что ваш мозг — это мышца. Чем чаще вы им пользуетесь, тем лучше и эффективнее он думает. Когда вы поймете это и разработаете психологические правила работы, находить решения станет гораздо проще.

Базовые требования к профессионалу

  • Критическое мышление — умение выделять главное в требованиях, подходить к своему и чужому коду с точки зрения постоянной оптимизации и улучшения; навыки поиска лучших путей решения задач.
  • Ориентированность на работу с деталями — в программировании не бывает мелочей. Даже если вы не написали ни строчки кода, вы наверняка слышали шутки про то, как отступ или потерянная точка с запятой отнимают часы в поисках бага и причин ошибок при компиляции. Невнимательный программист — нонсенс.
  • Сосредоточенность, усилие, терпение — нередко приходится писать большие фрагменты кода, глубоко погружаться в поиск решения задачи. Любой отвлекающий момент растянет эти процессы надолго, поэтому программист должен иметь явно выраженный навык «свинцовой задницы», позволяющей дотошно разобраться в проблеме.
  • Склонность к переработкам — вас сейчас возмутит этот пункт, особенно если вы выпускник или студент. Как так, переработка?! Только платно, по ТК РФ и вообще! Но нет, поработав немного, особенно на удалёнке, вы заметите, что с радостью отдаёте работе гораздо больше часов жизни, чем ей положено. Кстати, не замечал, чтобы кто-то активно боролся с этим явлением. Например, я пишу эту статью, на моих часах 00:09, а впереди ещё много текста и размышлений + основная работа 😉
  • Навыки активного слушания и общения — вам придётся понимать, что вам хочет объяснить внешний или внутренний заказчик. Да, иногда их ТЗ звучат как описания товаров с Алиэкспресс, и вам придётся вытягивать детали в процессе тесного диалога и длительного обсуждения. 
  • Умение работать в команде — программист никогда не работает один и нужно уметь вписаться как в команду, так и в правила управления разработкой, методологии и code style вашей компании.
  • Потребность в самообучении — именно потребность. Вы должны непрерывно и осознанно изучать новые фреймворки, библиотеки, SDK, API, языки программирования и прочие инструкции и материалы. Остановитесь — через 6-12 месяцев отстанете от поезда.
  • Ответственность — программист всегда отвечает за качество кода, который он создал, за работу программы, за её стабильность и быстродействие. Если вы склонны валить вину на тестировщика, заказчика или коллегу-разработчика, вам лучше пойти в менеджеры проекта (очень злая шутка, простите). А если серьёзно, программист отвечает за программу не меньше, чем хирург за операцию или строитель за мост или здание. 

Как стать программистом?

Обучение программированию в вузе 

Самый очевидный способ стать программистом – поступить на соответствующий профиль в вуз. Жизнь большинства специалистов уже невозможна без it-технологий. Обращаться с кодом в какой-то мере учат и математиков, и химиков, и биологов. Но чтобы не мучиться на неинтересных для вас предметах и изучать только профильные дисциплины, выберите одно из следующих направлений: 

  • 02.03.01 Математика и компьютерные науки; 
  • 09.03.02 Информационные системы и технологии; 
  • 09.03.03 Прикладная информатика; 
  • 09.03.04 Программная инженерия; 
  • 10.03.01 Информационная безопасность; 
  • 38.03.05 Бизнес-информатика. 

Каждый вариант имеет свои особенности. С одной кафедры выпускаются учёные, с другой — управленцы, а с третьей — самые настоящие анти-хакеры! Чтобы подробнее в этом разобраться, посмотрите нашу инфографику. Будущим it-специалистам лучше выбирать технические университеты. Эти профили есть в МИРЭА, МИФИ и других. 

Обучение на программиста в колледже 

Необязательно ждать выпускного, чтобы посвятить себя любимому занятию. Обучение на программиста можно начать после 9 класса, надо только правильно выбрать колледж. Подходящих специальностей тут не так много:

  • 09.02.03 Программирование в компьютерных системах;  
  • 09.02.05 Прикладная информатика;  
  • 09.02.07 Информационные системы и программирование. 

Всего в стране 71 учреждение среднего профессионального образования с нужными нам направлениями подготовки. Эти профили вы найдете в Санкт-Петербургском колледже информационных технологий, Петровском колледже, Новосибирском колледже электроники и вычислительной техники, в Уральском технологическом колледже “МИФИ” и в многих других. 

Курсы дополнительного образования 

Учить программированию в России начали не так давно, потому найти качественный профессиональный курс — целое приключение. К тому же далеко не все варианты бесплатные

Чтобы не потратить деньги зря, обратите внимание на отзывы, на преподавателей, программу и перспективу трудоустройства. 

Онлайн-платформы 

Изучать приглянувшийся язык программирования можно самостоятельно в удобном темпе на одном из обучающих ресурсов. Например, на INTUIT легко подобрать курс по java-программированию. После успешного прохождения итогового тестирования система выдаст бесплатный сертификат. 

Онлайн-школы 

Если идея самостоятельного изучения вам не по душе, то приглядитесь к онлайн-школам. Существенный плюс — чаще всего тут курсы ведут практикующие программисты, которые не только поделятся общими знаниями, но и расскажут о реальных интересных кейсах. В конце обучения дают диплом и обещают помочь с трудоустройством. Обучение «официальное», даже налоговый вычет можно получить. Но и стоит довольно много. Годовой курс обойдется в 150 тысяч рублей. Здесь уже как посмотришь: это большой расход или умная инвестиция в себя. 

Очные курсы 

Для желающих видеть преподавателя не через экран монитора, а вживую, есть очные курсы. Например, MAXIMUM ведет занятия по изучению it-сферы для школьников Digital Skills. Программирование там тоже есть, а на ознакомительное занятие можно прийти бесплатно.     

Необходимые навыки

Для начала определите круг интересов, советует Dmytro Budym. Если хочется создавать то что у всех на виду, делать крутые интерфейсы, которыми будут пользоваться миллионы людей, готовьтесь пополнять ряды front-end разработчиков. Если же вдохновение вызывают высокопроизводительные отказоустойчивые сервера, обрабатывающие тысячи запросов в секунду — то вам дорога в back-end.

В зависимости от направления уже будет варьироваться выбор языка, фреймворков, инструментов. Отличный вариант обучения — курсы и школы внутри больших IT компаний, которые регулярно набирают студентов.

Как правило, лучшие выпускники могут сразу же получить позицию trainee внутри компании. Также можно воспользоваться услугами обучающих центров, главное при выборе ориентироваться на рейтинг и отзывы выпускников. Сложный вариант — самообучение. Подходит только людям с высоким уровнем дисциплины.

Выбираем направление, составляем список технологий для изучения, ставим дедлайн и работаем. Если есть знакомый разработчик, то попросите направить вас в нужную сторону. Если нет — смотрим вакансии Junior уровня, изучаем требования к кандидату и выводим средний стек технологий.

Базовые навыки:

  • понимать как работает веб-приложение, уметь работать с API
  • базовые знания языка программирования и сопутствующего фреймворка (например Java & Spring)
  • инструменты сборки (в случае Java — maven / gradle)
  • GIT — работа с ветками, решение конфликтов, понимание git flow
  • работа с базами данных, умение писать SQL запросы
  • базовые навыки работы с docker, уметь запустить приложение в контейнере
  • СI tools — Jenkins, TeamCity
  • понимать как работает, уметь настроить простую конфигурацию.

Не советую начинать обучение с книг, лучше с видео курсов на Udemy и сразу пробовать на практике то что изучаете. И не распыляйтесь, а учите что то одно, не стоит переключаться на полпути с Java на Python, а потом перепрыгивать на C#. Главное — постоянство и четкое следование плану.

Бонус: Вы думаете о бизнесе

Наблюдая со стороны, я заметил, что ученики, которые слишком думают о бизнесе, больше сконцентрированы не на процессе программирования, а на результате. Они хотят получить “рабочее приложение”, которое поможет им реализовать их бизнес-идею. Они хотят “первыми выйти на рынок”, и длительное обучение для них — это преграда, мешающая запустить бизнес.

Размышляя о студентах, которым я не смог помочь вырасти в действительно хороших программистов, я понял, что нетерпеливость замедляла процесс обучения. И это не позволяло им действительно разобраться в технологии. Для них технология — это средство достижения результата, а не область знаний, которую нужно исследовать и получать от этого удовольствие.

Как следствие, ученики, которые были более склонны к бизнесу, но имели проблемы с изучением программирования, часто искали работу в качестве фрилансеров. При этом они брались за заказы, с которыми не могли справиться самостоятельно! Они экстренно искали ресурсы и шаблоны, подходящие для клиента или же передавали заказ кому-то ещё. Они ничего не понимали в программировании, но очень легко находили людей, готовых платить им за разработку программ!

Я бы сказал, что люди, настроенный на создание бизнеса, отлично разбираются в продажах, установлении связей и развитии бизнеса. Но при этом им труднее изучать программирование. Их природная тяга к созданию финансовых перспектив для себя и предоставлению необходимых решений для клиентов не позволяет им терпеливо работать с утомительными деталями, важными в программировании.

Известные программисты

Бьёрн Страуструп – автор языка программирования C++, являющегося одним из самых широко используемых. Был первопроходцем в области использования объектно-ориентированного подхода в программировании.

Ричард Столлман – основатель движения свободного ПО, Фонда свободных программ и Лиги за свободу программирования, проекта GNU.

Дональд Кнут – учёный, заслуженный профессор Стэнфордского университета, преподаватель и идеолог программирования. Автор множества монографий и всемирно известной серии книг «Искусство программирования». Создатель издательских систем METAFONT и TEX для набора и вёрстки научно-технических книг.

Билл Гейтс – предприниматель, общественный деятель, филантроп. Основатель компании Microsoft и самый богатый человек на планете. Один из рекордсменов по передаче средств на благотворительность.

Линус Торвальдс – создатель ядра Linux, самой распространённой из свободных операционных систем.

Алексей Пажитнов – советский программист, автор знаменитого Тетриса. После переезда в США продолжает заниматься разработкой компьютерных игр.

Стив Возняк – соучредитель компании Apple, в одиночку спроектировал компьютеры Apple I и Apple II, определивших развитие отрасли и начавшие микрокомпьютерную революцию.

Евгений Касперский – российский программист, один из ведущих мировых экспертов в области информационной безопасности. Сооснователь, владелец и руководитель международной компании АО «Лаборатория Касперского».

Марк Цукерберг – американский программист и предприниматель, один из основателей и разработчиков крупнейшей международной социальной сети Facebook.

Павел Дуров – российский программист и предприниматель, один из создателей ведущей отечественной социальной сети Вконтакте. Один из создателей защищённого мессенджера Telegram.

Деннис Ритчи – компьютерный специалист, участвовавший в создании языков программирования BCPL, B, C и разработке операционных систем Multics и Unix.

Региональные особенности в распределении вакансий

Следует отметить, что есть региональные особенности в распределении вакансий в зависимости от языков программирования. В частности, в Москве проще всего будет найти работу программистам, которые пишут на SQL и Scala. Средний уровень зарплаты составляет 135 тысяч рублей и 205 тысяч рублей соответственно. Конечно, востребованными в столице являются и программисты 1С, и геймдизайнеры, но для представителей этих направлений средний уровень доходов составляет 80 тысяч рублей.

Интересно, что в Санкт-Петербурге также работу проще всего найти программистам, которые оперируют языком SQL, но уровень зарплаты составляет в среднем 108 тысяч рублей. Также востребованными являются программисты 1С. На высокий уровень зарплаты (свыше 200 тысяч рублей) могут рассчитывать те, кто работает с языком Solidity, но найти предложение работы будет гораздо сложнее.

Что касается других крупных городов, то и здесь SQL является лидером по числу вакансий. Например:

  • в Новосибирске такие специалисты зарабатывают в среднем 83 тысячи рублей,
  • в Нижнем Новгороде – около 71 тысячи рублей,
  • в Казани – около 70 тысяч рублей,
  • в Екатеринбурге – порядка 66 тысяч рублей в месяц,
  • в Красноярске – примерно 65-66 тысяч рублей,
  • в Челябинске – 64 тысячи рублей,
  • в Ростове-на-Дону – около 50 тысяч рублей,
  • в Уфе – всего около 48 тысяч рублей.

Также в Новосибирске могут найти работу те, кто пишут на Haskell – уровень доходов таких специалистов составляет 173 тысяч рублей ежемесячно. В Екатеринбурге есть вакансии для тех, кто работает с языком Golang (уровень зарплаты составляет 157 тысяч рублей, но вакансий не так уж много). В Красноярске есть предложения для программистов, пишущих на Kotlin – с зарплатой порядка 137 тысяч рублей. Правда, в этом городе проще всего найти работу программистам 1С. Уровень доходов в среднем невелик – 37 тысяч рублей, но зато эти специалисты востребованы.

Из других решений для бизнеса популярностью пользуется SAS, но специалистов в этой сфере не так много, поэтому уровень зарплаты достаточно велик. В столице, например, такой программист может получать до 500 тысяч рублей. В Ростове-на-Дону – около 400 тысяч рублей в месяц, но количество вакансий гораздо меньше.

В некоторых городах можно найти работу тем, кто владеет языком программирования Lua. Уровень зарплаты достаточно высок – например, в Нижнем Новгороде и Казани такие специалисты получают порядка 300 тысяч рублей.

Есть вакансии и для тех, кто пишет на языке Objective-C, правда, их тоже не так много. Например, в Омске такой специалист может получать 170 тысяч рублей, в Уфе – около 190 тысяч рублей, в Челябинске – 125 тысяч рублей.

Какие знания нужны, с чего начать?

Я бы посоветовал начать с изучения английского языка. Вам нужно будет читать документацию, книги, общаться с коллегами и работодателями. Без знания языка вы сильно ограничиваете себя, теряете ценность как специалиста. Как минимум вы должны уметь бегло читать технические тексты. Очень хорошо — уметь грамотно писать и воспринимать речь на слух. В идеале — свободно общаться на английском языке, в том числе на отвлеченные темы. Тогда для вас будут открыты все дороги!

Хорошо бы иметь общее представление об устройстве компьютера. Ранее без этого было вообще невозможно, но и сейчас очень желательно понимать физику процессов, как все работает. Это позволяет писать оптимальные программы. Кроме этого, для некоторых областей (игры, приложения реального времени, высоконагруженные системы) нужно очень хорошо разбираться в тонкостях процессов.

Что касается языка программирования, можно начинать с любого, где есть полноценная поддержка ООП (объектно-ориентированного программирования). Я бы порекомендовал язык «Питон» (Python). Это довольно взрослый язык, по нему есть масса информации, отличных книг, в том числе переведенных на русский язык.

Кроме языка программирования, вам нужно будет обязательно изучить основы реляционных баз данных и язык доступа к ним — SQL. Практически любая программа оперирует данными, находящимися в базе. В настоящее время набирают популярность так называемые NoSQL-базы данных, надо изучить и эту тему.

Очень полезно почитать о методиках разработки программного обеспечения — как построить процесс разработки таким образом, чтобы выполнить работу в срок и качественно. Методики тестирования программного обеспечения — также весьма и весьма полезное чтение. В настоящее время популярна парадигма «разработки через тестирование».

В заключении, я бы порекомендовал поискать литературу по алгоритмам и шаблонам корпоративных приложений.

Законы Мерфи для программистов

  1. Ничто не работает так, как планировалось запрограммировать. 
  2. Ничто не программируется так, как должно работать.
  3. Хороший программист характеризуется умением доказать почему задачу невозможно выполнить, когда ему просто лень ее выполнять.
  4. На решение проблемы уходит в три раза меньше времени, чем на обсуждение всех «за» и «против» ее решения.
  5. Обещанный срок сдачи — это аккуратно рассчитанная дата окончания проекта плюс шесть месяцев.
  6. Программисту всегда известна последовательность действий, которыми пользователь может повесить его программу, но он никогда не чинит эту проблему, надеясь на то, что никому никогда не придет в голову эту последовательность исполнять.
  7. Настоящие программисты любят Windows — все ошибки, сделанные по собственной тупости, можно свалить на Microsoft.
  8. Следствие: 99 % проблем, сваливаемых на Microsoft, — это следствие тупости самих программистов.
  9. В приступе злости все почему-то молотят по невинному монитору, вместо системного блока.
  10. В случае голодовки настоящий программист еще месяц сможет питаться едой, выковырянной из-под кнопок клавиатуры.
  11. Настоящий программист уже как минимум поменял три залитых пивом клавиатуры.
  12. Все, кто испытывает проблемы с настройкой кодировки, автоматически считаются неандертальцами.
  13. Дилетантские разговоры о компьютерах вызывают резкую тошноту вплоть до приступов рвоты. Вопрос о том, как поменять обои в Windows, вызывает желание перерезать горло вопрошающему.
  14. У большинства людей, нуждающихся в твоей помощи, причина ошибки в работе программы чисто генетическая.
  15. HTML, HTTP, FTP, SMTP, TCP/IP, RTFM и т. д. — это слова, а не аббревиатуры.
  16. Словосочетание «мышка-норушка» не несет никакого смысла.
  17. Самые мистические проблемы, широко раздуваемые и афишируемые, в конце концов оказываются твоими глупейшими ошибками.
  18. Следствие: если твоя программа выполняет мистические действия, значит, ты сделал что-то невероятно тупое.
  19. Самое плохое ощущение для программиста — когда вокруг тебя стоят десять человек, и все пытаются найти причину проблемы в твоей программе, а ты уже понял, в чем проблема, но боишься сказать, потому что это что-то вопиюще глупое…
  20. Решение всех жизненных проблем находится в Интернете. Надо только уметь хорошо искать.
  21. Конфликт логических указаний в жизни вызывает фатальную ошибку в работе мозга программиста — возможно повышение температуры и сильное головокружение вплоть до рвоты или потери сознания.
  22. Тех, кто презирает программистов, программисты презирают сильнее, чем те, кто презирает программистов, презирают программистов, которые презирают тех, кто их презирает.
  23. Если ты понял предыдущее — ты программист.

На этом свете 10 типов людей: те, кто понимает двоичную систему, и те, кто не понимает ее.

Обучение

С самого начала стоит отметить, что обучение программированию — дело непростое и небыстрое. Чтобы стать разработчиком, вам придется вложить много труда и времени. Но то, что учиться нелегко, не означает, что это не весело!

Если вы чувствуете, что хотите стать разработчиком, и вам нравится программирование, время, которое вы потратите на обучение, будет для вас очень интересным и приятным. Насколько быстро вы научитесь программировать, во многом зависит от вашей мотивации и приверженности, а также от выбранного вами метода обучения. Стать младшим разработчиком можно даже за 6 месяцев!

Мир технологий — с чего начать?

Выбор технологии обычно даже сложнее, чем выбор способа обучения. В основном потому, что новички понятия не имеют о разных языках программирования и основывают свой выбор только на описаниях и информации о различных возможностях. Ниже вы найдете описания трех самых популярных и относительно простых языков программирования, которые в настоящее время пользуются наибольшим спросом у работодателей.

Java

Многие опытные разработчики считают, что «Java — король языков». Это язык программирования, который не только пользуется большим спросом на рынке, но и очень удобен для начинающих. Кроме того, Java существует уже давно, поэтому доступно множество учебных ресурсов.

Python

Как и Java, Python очень востребован работодателями. Он имеет очень чистый и понятный синтаксис, поэтому он также удобен для людей, начинающих изучать программирование.

JavaScript

Не запутайтесь — JavaScript отличается от Java. Этот язык программирования чаще всего используется при создании веб-сайтов. Кроме того, как и Python, это также довольно простой язык, который не должен вызывать проблем у начинающего разработчика.

Технологию можно выбрать исходя из спроса и популярности, но можно пойти и другим путем. Особенно, если вы решили учиться самостоятельно. Вы можете начать со своей идеи — подумайте, что бы вы хотели создать.

Мобильное приложение, веб-приложение или, может быть, веб-сайт? Как только вы узнаете, в каком направлении вы хотите двигаться, начните искать технологии, которые используются для решения этого типа задач. Этот метод самообучения настоятельно рекомендуется опытными программистами

Важно выбрать идею, которая будет волновать вас и которую вы захотите развить. Благодаря этому у вас появится соответствующая мотивация самостоятельно изучать и развивать свой продукт

Хороший программист обладает не только техническими знаниями, но и так называемыми мягкими навыками

Работа в команде, хорошее общение, организация работы — все это так же важно, как и знание языков программирования

Чтобы устроиться на работу в IT, обязательно обратите внимание на следующие навыки

Чем отличаются уровни программиста

Формальная градация отличается в разных компаниях, но в сфере IT все же принято разделять программистов на следующие уровни:

  • Интерн — работа для начинающего программиста без опыта. Интерн отличается молодостью, огоньком в глазах, наличием свободного времени и огромным желанием учиться. Требуются базовые знания языка и умение доказать свои навыки в процессе собеседования.
  • Junior — младший программист, основное качества — стремление к выполнению задач. Junior тратит часы на написание элементарного для более опытных коллег кода, часто с ними консультируется и благодаря этому совершенствует свои знания. Задача Junior — продвижение вперед, к следующему уровню.
  • Middle — программист среднего уровня. Он может обходиться без какой-либо помощи и способен самостоятельно выполнять достаточно сложные технические задачи.
  • Senior — опытный разработчик, который выполняет сложные задачи быстро и эффективно. Его отличительная черта — поиск и реализация оптимального подхода. Он потратит меньше времени и напишет меньше строк кода, но создаст практически оптимальное решение, к тому же в процессе работы проконсультирует трех разных Junior по разным вопросам.
  • Team Lead — менеджер, управленец, координатор, начальник. Его задача — организация работы отдела программистов. Он распределяет задания между исполнителями, проводит ревью кода, заботится об обеспечении рабочей обстановки, проводит стендапы с командой, решает архитектурные вопросы.
  • Архитектор — высшая профессиональная градация. Его задача — детальный анализ бизнеса клиента, определение оптимальной стратегии удовлетворения его потребности. Работа архитектора в IT весьма схожа с деятельностью его коллеги в более широком понимании. Выражение «архитектор построил дом» весьма условное, так как непосредственным строительством занимаются дизайнеры, прорабы, штукатуры, маляры, разнорабочие, он же решает более глобальные вопросы.

Из чего состоит идеальный программист?

Не знаю, можно ли ко мне отнести термин «с нуля», с учётом того, что некогда я преподавала программирование и математическое моделирование, рассказывает Ольга Кучерова. Поскольку с тех пор данная специальность претерпела большие изменения, я вполне себе null в современном программировании. Однако, к этому занятию меня всё время тянет и обычно я поддаюсь искушению освоить азы заинтересовавшего меня инструмента, чтобы сделать какой-нибудь маленький проект.

Во-первых, это чрезвычайно увлекательно, к тому же такой опыт часто помогает мне в работе.

Например, заказываю разработку шаблона интерактивного письма в корпоративном стиле, элементарные знания позволяют самостоятельно адаптировать его для каждого сотрудника, изменить форматирование, перегруппировать блоки. Знакомство с понятиями и терминами способствует взаимопониманию как при постановке задач разработчикам, так и при приёмке и эксплуатации продукта.

Одним словом, учиться программированию полезно всем и никогда не поздно, не только с нуля, даже с минус единицы.

А с обучением есть проблемы. Многое изменилось, но гэп между образовательным контентом и потребностями бизнеса преодолеть не удаётся, об этом печальном факте свидетельствует острая потребность в квалифицированных кадрах для IT при изобилии выпускников профильных учреждений.

Система высшего образования слишком консервативна, чтобы уследить за популярностью того или иного стека технологий, да она, наверное, и не должна, хорошо, если предоставит академическую базу универсальных знаний. Постигать тонкости ремесла программиста скорее всего придётся посредством курсов и самообразования.

Хорошо, если удастся преодолеть HR парадокс: всем нужны опытные сотрудники, а где им набираться опыта? – Неизвестно.

Итак, из каких составляющих получается идеальный программист?

  • Фундаментальные знания, владение математическим аппаратом
  • Участие в решении конкретных, актуальных прикладных задач – чем раньше, тем лучше
  • Мотивация и умение учиться на специализированных курсах.

Это необходимые условия. Есть ещё несколько опций, которые создадут дополнительные преимущества:

  • Содействие опытного ментора
  • Вовлечённость в профессиональные сообщества
  • Челленджи, хакатоны, помощь другим начинающим программистам (да, это когда так хорошо объяснил другому, что сам понял!)

Тут по каждому пункту можно делать целое исследование, начиная от того, какие ВУЗы хорошо закладывают основы, необходимые для пункта 1, заканчивая списком ресурсов для выбора стажировок и соревнований программистов. Но тут всё стандартно: гуглим, советуемся с друзьями.

Что можно применить нетривиальное, полезное для newcomer, что поможет сфокусироваться на получении востребованных навыков?

  • Исследовать профили специалистов на Linkedin, там они указывают свои Skills с соответствующим подтверждением в виде сертификатов и пройденных тестов. Заодно можно задать им вопросы.
  • Изучить требования вакансий по интересующей должности, выписать группы наиболее часто встречающихся стеков технологий и фреймворков.
  • Отыскать skills matrix для целевой специализации.

Готовые матрицы навыков разрабатывают предприятия-флагманы отрасли, в немного расплывчатом и общем виде, годном чтобы составить первоначальное представление о профессии, навыки описаны в Профессиональных стандартах на сайте Минтруда. В акселераторах также имеет смысл поинтересоваться списком требований к разработчикам. Кроме того, на данной теме специализируется российский стартап Vectotly.team.

Сейчас наблюдается тренд на гармоничное развитие технарей, многие из них помимо hard skills стремятся прокачать soft skills: бизнес-подход, самопрезентацию, командную работу и тому подобные умения. Но это уже другая история.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector