Как подготовить крутого IT специалиста

22/01/2019


С друзьями последнее время интенсивно обсуждаем тему подготовки IT специалистов в нашей стране. Реально видна их нехватка в организациях с одной стороны, с другой стороны не совсем понятно как будет происходить оплата выоскоклассных ITшников, которые на мировом рынке стоят тысячи и тысячи долларов в месяц. При средних зарплатах в отрасли по Узбекистану в 200-500 долларов США в месяц, загадачно, какая мотивация должна будет удерживать высоковалифицированных специалистов от того, чтобы уехать за рубеж или по фрилансу работать на Западные компании. Не будем в этой статье копать в этом направлении, а рассмотрим реальные вещи, которые необходимо знать и уметь IT спецу в наступающем 2019 году.

Специальностей и направление в области Информационных Технологий такое множество и с каждым годом появляются новые специализации. С одной стороны кажется, что они абсолютно невзаимосвязаны. Самое сильное разделение можно проследить между программистами и админами, между поклонниками операционных систем на базе Linux, и тех кто предпочитает Windows. И подобных разделений в IT множество. Для многих обывателей, однако, все ITшники это компьютерщики, которые только тем и занимаются, что собирают и чинят компьютеры.

Что я вкладываю в смысл, в словосочетание крутого IT специалиста? Это эксперт в области информационных технологий, который знает в целом о том, что происходит в глоабальном масштабе в IT, и способен решать самые сложнейшие задачи по своему направлению. При этом, по моему глубокому убеждению, настоящий эксперт в своем деле должен сам на практике уметь делать то, о чем говорит. Теория без реальной практики, в IT так же как и в других направлениях слепа. Многие ребята увлекаясь теоретическими знаниями, часто пренебрегают или избегают реальных задач. Это приводит в дальнейшем к ограниченным возможностям развития и неспособности оперативно решать практические задачи.

Предварительные требования

Перейдем к конкретным вещам. Какие базовые знания прежде всего важны для нас. Это:

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

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

3. Навыки печати в слепую. Чем больше Вы сможете напечатать текста, тем больше Вы сможете сделать. Тут все очень просто. Работая за компьютером, этот навык должен быть отточен до совершенства. Иначе, Вы банально, не сможете сделать то, что запланировали, потратив массу времени на печать и исправление ошибок.

Must Have ITшника

Несколько навыков, которые должны быть (must have) у любого нормального практикующего ITшника, это:

  1. Умение искать и находить нужную информацию в Интернет поисковиках. С помощью данного навыка, специалист сможет решить в разумные сроки больше половины проблем, которые возникают в его работе. Вспомнию смешные ситуации, когда я оказывал консультации «так называевым специалистам» из другой страны просто используя Google. И мне удавалось вот так, быв третьим звеном в решении проблемы, успешно их доводить до конца.
  2. RTFM или Read The Fine Manual, так же есть трактовка как Read The Fucking Manual. Чтение технической документации по продукту или программному коду в большинстве своем помогает понять суть происходящих процессов и конструктивно решать поставленные задачи. Нежелание читать документацию является одним из основных бичов начинающих, который тормозит их дальнейшее развитие.
  3. Умение писать документацию. Для многих из нас это одно из самых нелюбимых занятий. Но, к сожалению, без этого Вы не сможете эффективно взаимодействовать в команде, скорость решения проблем в IT системах сильно увеличится. К документации я отношу и создание эксплуатационной и проектной документации, и подготовку материалов по презентации решений, и написание комментариев в коде программы, и ведение wiki внутри компании.

Что изучаем

Дальше хотел бы перечислить конкретные навыки и знания, которые необходимо получить специалисту в IT сфере, чтобы можно было решать практические задачи самой высокой сложности:

  1. Знания основных современных операционных систем, а именно Microsoft Windows, Linux, Mac OS. В том или ином виде, сталкиваться с ними придется постоянно на протяжении всей жизни. Да это база и зачастую кажется, что можно прекрасно прожить изучив узкую область какого-то направления. Однако, технологии меняются быстро, и узкоспециализированные специалисты в IT могут в одночасье стать ненужными.
  2. Понимание того, как работает компьютерная техника. По моему глубокому убеждению, любой профессиональный ITшник должен уметь собрать и настроить компьютер таким образом, чтобы из него можно было выжать по максимуму. Сложно представить, что человек сможет конструировать высоконагруженные системы, а с собственным компьютером справиться не может.
  3. Знания и навыки в области сетевых технологий, как минимум, на уровне CCNA/CCNP. Да многие компании, выпускающие сетевое оборудование, предлагают различные курсы в области сетевых технологий. Но на протяжении уже десятелетий, Cisco дает самый глубокий фундамент по сетям, который можно использовать с совершенно разными решениям от разных вендоров.
  4. Знания систем виртуализации и построения облачных решений. Также одна из ключеных технологий в современном мире. Основной идеолог и производитель программного обеспечения в этой области — VMware. Так же, как и с Cisco в сетевых технологиях, знания продуктов виртуализации и построения облаков VMware, позволят специалисту легко разобраться со всеми другими аналогами.
  5. Программирование на языке Python. Само программирование — это ключевой навык для любого ITшника. Даже если Вы не занимаетесь целенаправлено программированием, Вам придется это делать в том или ином виде. Моя любимая сфера — информационная безопасность. И навыки программирования тут нужны постоянно. Для того, чтобы понимать как работает анализируемое приложение, писать свои собственные скрипты для проверки безопасности и т. д. Аналогично в любом направлении IT. Кто-то скажет, да ну — Python язык со слабой типизацией, зачем он нужен. Но мой ответ — на сегодняшний день, это тот язык, с помощью которого можно решать вопросы практически в любой сфере IT. От веб программирования до машинного обучения.
  6. Понимание HTML, CSS, умение создавать сайты на общедоступных CMS. С этими технологиями так или иначе придется сталкиваться каждому. Если Вы программист, то данные технологии будут постоянно Вами использоваться. Но даже, если Вы работаете администратором в организации, периодически придется разбираться с тем, что создали программисты, которые очень часто низкоквалифицированы. В своей практике приходилось создавать ряд решений на готовых CMS, которые решают практические задачи. При этом времени на привлечение выделенных программистов не было.
  7. Технологии DevOps — контейнеры, системы управления, такие как Ansible, система контроля версий Git и т.д. Многие эти технологии еще не пользуются массовой популярностью в Узбекистане, однако тем, кто их знает и использует дают огромное преимущество в работе. Чем больше система и сеть, над которой Вы работаете и развиваете, тем с больше вероятностью Вам пригодятся эти технологии в работе.
  8. Технологии машинного обучения. Самая прорывная технология последних лет в IT. Машинное обучение по сути уже сегодня кардинально меняет мир. Знание базовых алгоритмов, а также методов обучения моделей, позволит ITшнику не сплоховать в работе с большими данными.

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

Статья получилась неожиданно довольно большой. Посему на этом пока ставлю точку.

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

Ваш адрес email не будет опубликован.