Чтобы войти в мир 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-специалист, обладающий вышеперечисленными навыками, сможет рассчитывать на высокий уровень оплаты труда и всегда найдет достойное применение в профессии.
Читайте также:
А ещё были эксперимены с "пневматической" логикой, и там не было микросхем и программного кода...
А вот, например, однонаправленный (радио, телевидение) обмен данными - это сфера ИТ?
По теме ИТ: к моему сожалению, мы будем плестись "в хвосте" до тех пор, пока не восстановим своё производство "железа, кремния, арсенид галлия и сопутствующих компонентов", поскольку зарубержые производители и разработчики оставляют при поставках без полной информационной поддержки, не документируя многие заложенные возможности...
Но это тема уже другого материала!
Ну код там был.. А еще есть возможность сделать "веревочную логику" и прочую экзотику.. Но перспективы за квантовым компьютером и кубитами..
Я думаю, что скорее нужно развивать производство квантовых компонент, в "классической" электронике мы слишком отстали.. И наш рынок - это доли процента от общего, а бороться на уже сложившемся рынке - имхо - безперспективно.. Лучше выходить на новый рынок.
Много лишнего - есть масса отличных специалистов, зарабатывающих побольше иных директоров.. к которым минимум половина перечисленного не относится. Я даже думаю, что это справедливо для большинства действующих специалистов.
Рассуждения неспециалистов о том кто же настоящий профессионал - это уровень бабульки у подъезда. Хотя .. почитайте требования к соискателям.. подавайте мне "все слова какие я слышал". Статья в тренде )
Термин появился в 1958г. .
https://hbr.org/1958/11/management-in-the-1980s
Можно найти много формулировок, но не уверен, что с ними все будут согласны. Возможно, автор предложит свою версию.
Меня устраивает такая:
Information Technology, or IT, is the study or use of computers and telecommunications to store, retrieve, transmit, or send data.
Хорошая табличка уровня знаний для разработчика-программиста:
Я считаю, на основании личного, более 25 летнего, опыта работы в IT, что есть как бы два направления развития и достижения успеха в IT в зависимости от виды (области) деятельности.
Я лично прошел через эти виды деятельности. Начинал как разработчик программ, но достаточно быстро перешел в менеджмент разработки и "дорос" до управления компанией специализирующуюся на разработке и продвижении на рынок программных систем.
Должен сказать, что принципы работы и соответственно люди сильно различаются по психотипам, менталитету, т.н. картине мира в зависимости от видов деятельности.
Поэтому считаю, что рассматривать успех следует отдельно в каждом направлении.
Написано на личном опыте
Валерий, Вы же понимаете что появление такого специалиста высокого уровня маловероятно. Такого можно только вырастить целевым образом. А случайно такие не должны появляться.
Конечно понимаю!
Но... Автор вроде кого-то и чему-то учит...
А вот каков результат не ясно.
Статья соответствует призыву Винни Пуха:
"Нужно делать так как нужно. А как не нужно - делать не нужно" (Винни Пух)
А появившийся в 1980-е гг. термин "информационные и коммуникационные ткхнологии" не примиряет "физиков" и "лириков" в менеджменте (о чем упоминает Валерий Овсий)?