Чтобы войти в мир IT-технологий, нужно обладать фундаментальными знаниями, владеть конкретной технологией, по которой планируете работать, а также уметь применять на практике вспомогательные технологии. Это базовые вещи. Но есть и другие, без которых добиться успеха в IT-профессии будет сложно. Чтобы ими овладеть, вузовского образования недостаточно. IT-специалисту многое предстоит изучить самостоятельно, а также познать в процессе работы. Но обо всем по порядку.
1. Знание и умение работать по какой-то конкретной технологии
Если не умеете программировать и применять какую-то технологию, путь в разработку вам закрыт. Это спрашивают на собеседованиях в первую очередь. Независимо от сферы, в которой работаете (frontend, backend, etc), hard skills в конкретной технологии необходимы и неоспоримы.
Где получить и как развить?
В вузах, кружках, на курсах, в процессе работы или самостоятельного изучения, желательно по первоисточникам.
Университет дает фундаментальные знания (линейная алгебра, булева алгебра, динамическое программирование, дискретная математика и другие), которые, безусловно, нужны в профессии. Знание конкретной технологии, основ языка и прочее, они также могут дать. Но для работы в компании их необходимо актуализировать: самостоятельно, на специализированных курсах, кружках, open-source проектах и непосредственно на практике при разработке IT-решений.
2. Умение непрерывно учиться
Этот навык востребован в любой сфере, IT – не исключение. Если раньше выходил какой-то стандарт языка, он мог существовать 10-15 лет. Обрастал технологиями, библиотеками, но сам не менялся.
Сейчас в мире бэкенда по прошествии одного-двух лет (во фронтенде и вовсе через полгода) код, который считался каноничным, к таковым уже не относится. Его приходится изучать заново, анализировать и переписывать, даже если разработчик выбрал язык C++, который, казалось бы, не так быстро развивается. Сегодня и в этой технологии скорость изменений увеличилась и сравнялась с JavaScript-фреймворком.
Если вовремя не следить за обновлениями и, тем более, оперативно не внедрять их в работу, это в результате может сказаться на качестве программного решения и перспективе дальнейшего роста, как бы не печально это ни было
Где получить и как развить?
Здесь можно говорить не только про самостоятельное изучение. В IT-сфере не стоит пренебрегать и курсами. Существуют технологии, в которых очень высокий порог входа. Самостоятельно изучить, понять все фишки не получится, просто потому что о них нигде не написано. Рассказать об этих ключевых особенностях может только сторонний человек, ментор, преподаватель, который знает о технологии в теории, и использует ее на практике.
3. Soft skills для успешной работы в команде проекта
В начале новичку кажется, что от него требуется только решить задачу. Потом, что сделать это нужно правильно. Но позже оказывается, что в программировании важны еще и soft skills, особенно умение коммуницировать и взаимодействовать с коллегами, а также планирование, тайм-менеджмент и другие навыки для слаженной работы в команде. Это помогает достигать результатов по проекту и расти в IT-сфере.
Программирование сегодня – это, по сути, работа с бизнес-процессами заказчика, а решение задачи – написание хорошего кода и прочее – идет уже на следующих этапах. Для отладки процессов иногда бывает достаточно административных методов.
Где получить и как развить?
Самостоятельно и на курсах – все очень индивидуально, каждый выбирает свое.
4. Умение обмениваться опытом и учить других
Чтобы стать настоящим ниндзя в какой-либо технологии, важно научиться обмениваться опытом, передавать кому-то свои знания. Можно даже просто рассказывать собеседнику о том, что вы делаете. Это дает не только определенный смысл вашим действиям, но и развитие.
Более того, такой навык – важная часть работы. Есть даже антипаттерн «незаменимый сотрудник». Такой специалист рискует застрять в конкретном проекте до тех пор, пока он актуален, с крайне малой возможностью даже немного передохнуть. Если человек уходит в отпуск или из проекта, работа не должна останавливаться. В его отсутствие все продолжает функционировать, как часы, и все знают, как выполнять задачи.
Умение передавать опыт – очень важный навык, который однозначно поможет специалисту вырасти.
Где получить и как развить?
В процессе практической и преподавательской деятельности.
5. Владение английским языком
Не всем IT-специалистам нужно владеть разговорным английским, но для разработчика уровень свободного чтения и написания, знание грамматики языка и прочих моментов – must have.
Чтобы быть в курсе последних новинок, нужно читать в первоисточниках, в блогах, на форумах, в новостях, и все это, безусловно, будет на английском. Поэтому с определенного этапа и должности в IT-проектах, в международных однозначно, владение языком становится очень важным.
В IT-среде есть даже такая шутка: «Если в программировании вышла какая-то книга, это означает, что технология устарела. А если она вышла на русском – технология очень давно устарела».
Где получить и как развить?
Только на курсах и в процессе общения с носителями языка.
6. Умение находить и понимать основной принцип конкретной технологии
Отсутствие этой способности особенно заметно у новичков, которые нашли какой-то код, решающий поставленную задачу, но не осознали его сути.
Чтобы познакомиться с новой технологией и понять, как она работает, нужно выявить ее основной принцип, понять, чем руководствовались создатели. Важно смотреть на технологию и видеть задачи, вокруг которых она построена. Сейчас это особенно актуально. Технологий очень много, и применяются они иногда совсем не к месту.
Где получить и как развить?
В общении с членами профессионального сообщества, на конференциях и митапах, а также на специализированных курсах.
7. Практика чтения чужого кода
Это утомительная, но очень необходимая практика. Читать чужой код нужно много. Это помогает разобраться в стилях и потом работать в больших проектах.
Где получить и как развить?
Брать его можно или в рабочих проектах, или в open-source, или в преподавательской деятельности, проверяя задания студентов. У старших разработчиков обычно с этим проблем не возникает. Получить такую практику они могут в процессе code review, относясь к нему как к коду, у которого можно поучиться, а не просто вычитать и исправить.
8. Внутренняя готовность принять новое, и внедрить его в работу
Программирование – очень быстро развивающийся мир, особенно в области фронтенда. Если боитесь нового, рискуете остаться за бортом.
Иногда наступает такой момент, когда вроде бы применяете новые технологии, но внутренне не принимаете их: они для вас кажутся чужеродными, хипстерскими и не подходящими. Но пройдет время, и они станут зрелыми. А если вы их отвергали до этого момента, считайте и не программировали на них.
Необязательно cразу писать на них. Можно посмотреть, изучить основные принципы, преимущества и недостатки, а уже потом пробовать «подружиться» с этими новыми технологиями.
Где получить и как развить?
Экспериментировать в обычной жизни, чтобы убрать страх и неприятие, постепенно переводя эту практику и на работу.
9. Владение вспомогательными технологиями
Речь обо всем, что не касается языка программирования напрямую: средства командной работы (таск-трекеры и т. д.), системы контроля версий (Git и т. п.), базы знаний (confluence и пр.), знание горячих клавиш (хоткеев) вашей среды разработки, слепая печать на клавиатуре и многое другое. Все эти вспомогательные технологии просто необходимы.
Где получить и как развить?
Протестировать вспомогательные технологии можно самостоятельно и на курсах, но по-настоящему освоить получится только в рамках проектной работы. А вот знание хоткеев и навык слепого метода печати зависит от вас.
10. Навык работать хорошо
Если поставлена какая-то задача, ее нужно сделать хорошо и в срок. При этом еще и получать простое удовольствие от правильно выполненной задачи. Тогда и работа будет складываться.
Где получить и как развить?
Этот навык отрабатывается самостоятельно, в повседневной жизни и в практической деятельности.
Сегодня IT-компаниям приходится конкурировать за кадры не только между собой, но и с целым рядом отраслей, где бизнес активно комплектует команды разработчиков. Поэтому я уверен, что хороший IT-специалист, обладающий вышеперечисленными навыками, сможет рассчитывать на высокий уровень оплаты труда и всегда найдет достойное применение в профессии.
Читайте также:
Судя по вашей реплике, Вы не программист и не знаете языки программирования.
"Патологический программист" пытается перевести задачу с "человеческого" языка на язык программы. Так вот на языке, например Си, программа начинается с объявления переменных и их инициализации, примерно так:
Int main () {
int Буратино = ? ;
/* объявляется переменная вероятно целого типа
с неизвестным начальным значением */
/* Если это не задать, то переменная будет иметь произвольное значение */
int ? Мальвина = ?;
/* не известно какой тип у переменной Мальвина и какое у нее начальное значение */
/* не зная тип переменной невозможно проводить операции с ней*/
/* ниже продолжение…*/
}
Эти три вопроса требуется заменить на элементы нотации языка, предварительно уточнив у заказчика что тот имеет в виду.
Этот шутливый пример раскрывает серьезную проблему взаимодействия программистов с заказчиками. Заказчик, исходя из своего понимания, своего проф. сленга и своих "значений по умолчанию" пишет требования, а программист их трактует по-своему, исходя из своего понимания задачи. Очень часто возникают из-за этого проблемы, которые трудно разрешаются.
Спасибо, Евгений, Вы чертовски проницательны! Я тоже в шутливой манере.
Да, я чуть-чуть занимаюсь менеджментом, и для меня программирование является подфункцией планирования (наряду с содкоированием и прогнозированием), которое состоит в постановке конкретных заданий организации и ее структурных подразделений на различные периоды времени для успешного достижения целей управления. Вместе с задачами определяется совокупность ресурсов (трудовых, материальных, финансовых, информационных), необходимых для их решения. Эта подфункция является завершающей, и в результате ее выполнения формируются планы выше указанных видов.
Поэтому программист в организации не может трактовать что-либо "по-своему, исходя из своего понимания задачи". Другое дело - грамотно поставить задачу, а не: "Я не знаю как, но сделайте мне красиво". В этом мое видение отличие ИКТ от ИТ (в курилке мои коллеги айтишники со мной согласны, но когда дело доходит до ТЗ, тогда и возникает выделенная Вами полужирным проблема) .
Мне, конечно все равно как меня называют, но имя Евгений мне не нравится. Неприятные детские ассоциации.
Давайте для общения подберем что-нибудь в таком духе:
Валерий Диего Хосе Франциско де Паула Хуан Непомукено Криспин Криспиано де ла Сантисима Тринидад Руиз Овсий.
И выглядит хорошо и звучит нормально!!
А если ещё потом и "железо" начнёт трактовать написанный программистом код по-своему, то весело будет всем...
Великодушно прошу извинить - жара, сэр!
А позабористее будет, чем у Бендера - сразу видны латинские корни - не чета какому-то турецкоподданому!
Еще раз примите мои извинения!
Да больше похоже на испанские корни, жил и работал в России такой вот деятель:
Августи́н де Бетанкур-и-Молина, полное имя
Августин Хосе Педро дель Кармен Доминго де Канделария де Бетанкур-и-Молина...
И огромное ему спасибо - очень много полезного он успел сделать!
Вот так статья об ИТ позволяет общаться на разные темы - причём в рамках ИТ!
Эвфемизм понятен: Вместо "Век живи, век учись" (далее по выбору "умению жить" или "и дураком помрешь") подразумевается "учителем закончишь".
В случае с Маяковским ситуация несколько иная. Руководителем команды разработчиков концепции hard & soft skills - преподавателей американских военных колледжей в 1968-1972 гг. был Пауль Витмор, автор многих методик подготовки новобранцев. Он начинал военную карьеру в Детройте как раз в то время, когда там выступал Маяковский. Кстати стихи "Что такое хорошо..." написаны в мае 1925 г., а Маяковский "гастролировал" в США 3 месяца осенью этого же года, а с 1927 г. его активно начали издавать в Америке как футуриста, поэтому это произведение без коммкнистической идеологии влючалось в сборники переводов. (Интересно сравнить американский перевод с оригиналом - там явно прослеживается военный стиль). А если проанализировать, какие качества призывает развивать герой стихотворения (трудолюбие, аккуратность, дисциплина, ответственность), то они ничем не отличаются от программ обучения новобранцев практически в любой армии.
Любопытно!
С моим комментарием все было гораздо проще - он касался одного из качеств из списка автора статьи:
и учить других
Отличное и справедливое замечание.
Для этого нужны системные или бизнес-аналитики - люди, которые все эти вопросы уточнят перед постановкой задачи или в процессе работы.
В том, что мы в повседневной жизни предполагаем очевидным противоположной стороне (~~у Буратино же не было яблок, иначе зачем бы Мальвина давала ему ещё три?) и возникает масса спорных ситуаций.
Другая область, где такая проблема очень остро стоит - проекты, там тоже необходимо всё тщательно определять.
И тут физики (программисты) побеждают лириков. ;)
Спасибо, "понял, не дурак - дурак бы не понял." (Это я о себе).
(Ремарка Любопытно!). Точнее, "любознательно". Сейчас исследую эту тему, в частности, почему любознательность не входит в перечень навыков и ключевых компетенций. Пока ищу истоки "любопытство сгубило кошку" и "у кошки восемь жизней". Может, поможете?