Профессия: программист. не всё однозначно

Машинное обучение и работа с данными

Почему это важно

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

Индустрия 4.0

Как работают искусственный интеллект, машинное и глубокое обучение

Где можно применить

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

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

Лекции и литература

Освоив метод Франклина, ищите информацию, которая бесплатно доступна в интернете в огромном количестве, особенно на английском языке. Вкратце план действий такой:

  1. Выучить английский язык (хотя можно найти немало курсов и на русском языке).
  2. Выбрать программу обучения. Определиться, какое направление программирования наиболее интересно.
  3. Найти учебные материалы по этому предмету.

Образовательные ресурсы с курсами и лекциями

  • MIT OpenCourseWare: обучающие курсы, видеозаписи лекций и семинаров Массачусетского технологического института.
  • KhanAcademy: бесплатные лекции, в том числе по математике и информатике.
  • Coursera: курсы от ведущих западных университетов.
  • Статьи по программированию от Skillbox.

Учебная литература

  • Список бесплатных книг по программированию (англ. яз.).
  • Сборник учебной литературы для программиста.
  • Бесплатные книги по программированию на русском и английском.
  • Подборка бесплатных книг.

Самоучители для начинающих

  • Занимательное программирование. Самоучитель. М. Мозговой.
  • C# для школьников. Учебное пособие. М. Драйер.
  • Программирование на Java для детей, родителей, дедушек и бабушек. Я. Файн.

Что почитать по теории языков?

Где читать: обсуждение на Reddit.

Зачем читать: чтобы найти книги по теории программирования для начинающих.

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

  • «Типы в языках программирования» Бенджамина Пирса: хорошее введение в теорию, которое советуют многие. В отличие от остальных книг, она переведена на русский язык. Правда, Пирс написал её в 2002 году, поэтому она не освещает ряд актуальных тем.
  • Practical Foundations for Programming Languages («Практические основы языков программирования») Роберта Харпера. Эту книгу советуют читать уже после Пирса: в ней разобраны более подробные детали и для новичка она может быть сложновата.
  • Concepts in Programming Languages («Концепты в языках программирования») Джона Митчелла — книга рассказывает о традиционных парадигмах программирования и больше сосредоточена на практике, а не на теории.
  • Programming Languages: Application and Interpretation — книга бесплатна и доступна онлайн.

Как выбрать, в чем лучше развиваться

Подведем итог:

  1. Начните с выбора направления, в котором вам хочется развиваться. Это серверная, веб-разработка, мобильная или десктопная?
  2. Оцените свои силы и навыки: хотите ли взяться для начала за что-то попроще, или сразу готовы попробовать изучить сложный язык?
  3. Определившись с языком, познакомьтесь с фреймворками и базами данных. Но не пытайтесь охватить сразу огромный массив информации — учитесь кодить на «чистом» языке, без библиотек и готовых решений. Когда разберетесь с принципами, освоить дополнительные инструменты будет проще.

Изучите карту языков программирования для новичков и выбирайте

Концепция курса

Все вы знаете, что у нас в отрасли есть существенные проблемы с фундаментальным инженерным образованием:

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

Построить курс на базе JavaScript — это конечно экспериментальная затея, но этот язык уж точно не будет лишним ни для кого в современном ИТ. У самих же JavaScript разработчиков очень часто наблюдается плохая базовая инженерная подготовка и нехватка фундаментальных знаний по структурам данных, алгоритмам, базовым абстракциям, паттернам, архитектуре, парадигмам и приемам программирования. Большинство кода, что пишется сейчас в индустрии, просто выбрасывается вскоре после создания, потом опять переписывается и опять выбрасывается. В общем, качество и знания редко требуются, разве что на собеседованиях. Выгоднее всего делать некачественный код и обслуживать его или выбрасывать код и продавать больше времени на его повторное написание. Кроме того, наша отрасль совершенно оторвалась от науки, в этом есть существенные заслуги маркетологов, потому что мы уже программируем не на языках программирования и не на абстракциях, а мы программируем на фреймворках и библиотеках, которые нам «втюхали» в красивой обертке. Мы собираем все из кубиков, часто без всякого научного осмысления и редко можем ответить на вопрос, почему мы делаем так а не иначе. Все по частям уже давным-давно написано, все можно найти в интернете, но оказалось, что одно с другим не лепится, то есть по частям оно есть, а вместе это не работает. Связывать разобщенные кусочки кода гораздо сложнее чем поодиночке их сделать. Происходит это именно из-за отсутствия системного подхода, терминологического раскола и понятийной рассинхронизации специалистов. Вместе будет работать только то, что идеологически совместимо, что базируется на общей теории и выведенных из этой теории общих стандартах

Я надеюсь, что этим курсом я сделаю хоть небольшой шаг к достижению такого важного для отрасли консенсуса

Все материалы курса в свободном доступе на github, а лекции открытые, их можно посещать бесплатно. Каждую неделю я записываю 4 лекции. Мы проводим еще семинары и практические занятия, но они не записываются.

Пишем первую программу на C++

По традиции программистов первая программа, написанная на изучаемом языке, должна выводить на экран надпись «Hello, World!».

Перевод: Ваши первые подкаст/видео/статья/рисунок/фото/игра будут ужасными. Но первый код будет идеален — он будет очень чистым, и в нём не будет багов. Это будет «Hello, World!».

В C++ такой код будет выглядеть так:

Попробуем его запустить, а потом разберём, как он работает.

Запускаем код в интернете

Самый простой вариант — зайти на сайт repl.it. На главной странице нажмите Start Coding, выберите C++ и нажмите Create Repl.

У вас откроется следующая страница:

Слева — менеджер файлов, в центре — текстовый редактор, где уже введён нужный нам код, а справа — консоль, в которой выводится результат. Чтобы запустить программу, нажмите Run.

Запускаем код на компьютере

Если же вы хотите компилировать код на своём компьютере, то установите компилятор. Я пользуюсь G++, его и вам рекомендую.

  • Установщик для Windows.
  • Название пакета для Linux: gcc.

После установки компилятора создайте отдельную папку для кода, а в ней — файл hello.cpp (это расширение для файлов с командами на C++). Желательно, чтобы путь к папке состоял из латинских символов и был написан без пробелов.

Откройте hello.cpp с помощью любого блокнота или редактора кода (например, Sublime text или VS Code) и вставьте в него код, указанный выше. Теперь откройте терминал с помощью инструкции ниже.

Windows Linux
1. Нажмите Win + R, введите cmd и нажмите Enter.
2. Введите команду cd . Например, cd projects\cpp1, если ваша папка находится по адресу c:\projects\cpp1. 2. Введите команду cd . Например: cd ~/projects/cpp1
3. Если папка находится не на системном диске, то команду нужно изменить: cd /D . Например: cd /D d:\projects\cpp1

Затем введите следующую команду:

Эта команда скажет компьютеру, что нужно скомпилировать код из файла hello.cpp и сохранить результат в файл hello (или hello.exe в Windows).

После этого запустите скомпилированную программу, и вы увидите, что всё работает:

Выберете направление

«программистом может стать каждый, надо лишь приложить достаточно усилий»

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

Особо популярна сегодня разработка мобильных приложений — на HeadHunter можно найти больше 4000 вакансий «разработчик под Android», но средняя зарплата примерно на 33 % ниже, чем у специалиста в области Data Science — 80 000 рублей против 120 000.

Основы веб-разработки

Почему это важно

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

Где можно применить

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

JavaScript

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

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

Но, несмотря на широкое применение, JavaScript не волшебная таблетка. У него есть свои ограничения, из-за которых он подходит не для всех задач.

Какие же у него плюсы и минусы?

Минусы

  • Ненадёжность. У JavaScript слабая типизация: это значит, что код легко писать, но программа потом менее надёжная. Есть инструменты, которые помогают решить эту проблему, например TypeScript и Flow, но с ними писать код сложнее. Из-за этой особенности на JavaScript не разрабатываются сложные программы с высокими требованиями к надёжности. Если у вас на сайте не работает кнопка, это неприятно, но не страшно, а вот если у вас ошибка в банковском или промышленном ПО (программном обеспечении), это уже хуже.
  • Мобильные приложения на JavaScript разрабатывать можно, но чаще для них выбирают другие языки, которые более проверены или даже созданы для этого, как, например, Java.

Зарплата специалистов и востребованность языка

По объединённым данным сайтов для поиска работы (HeadHunter, Superjob, Rabota.ru и другим), в Москве средняя зарплата JavaScript-разработчика составляет 104 тысячи рублей. Для новичков это примерно от 40 до 90 тысяч, а для профессионалов — от 126 тысяч и выше.

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

Синтаксис

Вот так может выглядеть код в JavaScript:

Этот код отвечает за авторизацию на сайте. Он читается не настолько легко, как в некоторых других языках, но если вы знаете английский, то можно догадаться, что здесь происходит. Например, в первой строке мы видим, что у нас есть кнопка (button), которая отвечает за вход в систему (login), и по ней можно кликнуть (click).

Стек технологий

1. Редактор кода или IDE:

  • Notepad++;
  • Sublime Text;
  • WebStorm.

2. Отладчик нужен для того, чтобы вы могли пройтись по коду вместе с компьютером, это упрощает поиск ошибок:

  • Chrome WebInspector (DevTools);
  • Firebug.

3. Среда исполнения для серверного ПОNodeJS.

4. Средства для разработки десктопных приложений:

  • Electron;
  • AppJS;
  • NwJS (Node-Webkit);
  • Windows8+.

5. Фреймворки для веб-разработки:

  • jQuery;
  • AngularJS;
  • ReactJS;
  • BackBone;
  • Ember;
  • Meteor.

6. JSON— самый популярный формат передачи структурированных данных.

7. MongoDB— документо-ориентированная база данных. Можно создавать JS-процедуры.

Python

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

Для начинающего — от 35 тысяч рублей. Средний уровень — от 80 тысяч. Специалист с опытом от трех лет — 90–210 тысяч рублей. Если понимать в математике и разбираться в нейросетях, доход будет выше.

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

Особенности:

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

Недостатки:

  • Две актуальные версии — вторая и третья. Проблема в том, что библиотеки от одной версии не подходят к другой. Можно столкнуться с несовместимостью кода.
  • Неявная типизация. Уже знакомая вам проблема.
  • Низкая производительность. Многие задачи язык выполняет медленно, много времени разработчик тратит на оптимизацию кода.

Стек:

  • IDE: Pycharm;
  • Cython-синтаксис: для написания компилируемого кода;
  • анализ данных: iPython / jupyter, Anaconda, Matplotlib, Numpy;
  • нейросети: Scikit-learn, Keras, Tensorflow;
  • веб-разработка: Django, Tornado, Flask;
  • менеджер зависимостей: pip, conda.

Обратите внимание: разработчики часто спорят, нужна ли для программирования математика. Разбираться в ней полезно

Но обязательна она только там, где вы разрабатываете что-то для математиков. Если вы создаете сайт, например, про собак, то формулы вам вряд ли пригодятся — скорее, лучше выучить JavaScript с PHP и узнать побольше о собаках.

Пример синтаксиса Python — программа предсказывает ваш факультет в Хогвартсе

Виды информационных технологий

Все информационные технологии можно поделить на базовые и прикладные.

Базовые ИТ

Это все созданные технологии, которые люди используют для тех или иных целей. К ним относят:

  1. Телекоммуникационные технологии: например, сотовая связь и компьютерная сеть.
  2. Технологии работы с текстом: например, такие, которые позволяют распознать речь и превратить её в текст.
  3. Технологии работы с графикой: с помощью которых мы работаем с изображениями.
  4. Мультимедиатехнологии: такие, которые позволяют работать со звуком, изображением, текстом и видео в одно и то же время.
  5. Технологии баз данных: позволяют проводить любые операции с данными для их хранения, изменения, передачи и т.д.
  6. Интернет-технологии: электронная почта, Всемирная паутина, чаты и т.д.
  7. Технологии Интранет: для обмена информацией внутри одной компании.
  8. Технологии программного обеспечения: используют для разработки программного обеспечения.
  9. Серверные технологии: имеют целью соединять клиентов с сервером.
  10. Технологии защиты информации: которые создают для предотвращения утечки информации.
  11. Технологии искусственного интеллекта: задача — научить машину мыслить.

Читайте подробнее про Искусственный интеллект.

Прикладные ИТ

Это такие технологии, которые используют в каких-либо отдельных сферах деятельности, например, образовании, экономике, энергетике и многих других.

ИТ в образовании

В образовании такие технологии могут использоваться для получения знаний (например, если обеспечить доступ в Интернет), для накопления знаний (в виде создания единой базы данных, которой могут пользоваться учащиеся и преподаватели).

ИТ могут применяться также для управления всем учебным процессом, для хранения информации (об оценках, списке учащихся и т.д.) и для обеспечения связи между учебным сообществом.

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

ИТ в экономике

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

  • технологии управления бизнес-процессами (технологии, которые анализируют финансовое состояние предприятия, определяют потребности, производят учёт и анализ товаров и др.);
  • технологии защиты, хранения и обработки данных (хранилища, технологии кодирования и др.);
  • экспертные системы (выдают логическое решение какой-либо проблемы на базе накопленных экспертных знаний);
  • справочно-правовые системы (например, Консультант Плюс, Гарант);
  • корпоративные системы управления предприятиями. Сюда относятся технологии, которые планируют ресурсы (окончательное планирование ресурсов — Finite Resource Planning), управляют поставками и продажами (управление цепочками поставок — Supply Chain Management и модуль автоматизации продаж — Sales Force Automation), контролируют данные (управление данными об изделии — Product Data Management), а также финансовая бухгалтерия, системы управления инвестициями и др.;
  • технологии поддержки стратегического корпоративного планирования (технологии для поиска управленческих решений в проектах).

ИТ в энергетике

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

Среди технологий, которые применяют энергетические компании:

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

Читайте подробнее про Всемирную паутину. Узнайте также про Свойства информации.

Советы

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

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

Где начать изучение программирования маркетологам и аналитикам

Уместен Python — один из самых распространенных языков для анализа данных. R лучше не брать новичкам, так как главная сфера его применения — научные исследования. Ну и musthave —  язык запросов к базам данных SQL. Этому всему можно научиться здесь:

Python для анализа данных — курс от Skillfactory, который практикует изучение программирования по базовым навыкам работы с Python и заостряет внимание на применении этого в аналитике. По окончании курса парсинг веб-страницы с последующим составлением интерактивного отчета не будет проблемой;

Python для работы с данными — онлайн-курс от Нетологии, который научит любого, даже далекого от IT человека, автоматизации работы с данными

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

SQL и получение данных — курс, который позволит аналитику стать независимым от разработчиков. Кроме практической работы с SQL предусмотрено изучение различных видов баз данных и системы контроля версий Git;

Основы баз данных – доступный курс по написанию запросов на SQL от Geekbrains.

Шаг 2. Выбор направления и языка программирования

В индустрии условно выделяется несколько направлений в программировании:

  • Веб-разработка – создание сайтов и веб-приложений – актуальными являются языки PHP, JavaScript, SQL, Python. По умолчанию к списку обязательно прибавляются знание CSS и HTML.
  • Пользовательские приложения – все C-подобные ЯП: C, C++, C#. Многие компании создают собственные модификации C для личных нужд, например, Nvidia.
  • Мобильные приложения – Java для Android и Swift для платформы iOS. В 2017 был презентован новый язык программирования – Kotlin, который стал вторым официальным для разработчиков под Android после Java.
  • Микроконтроллеры – низкоуровневое машинное программирование – для желающих подчинять машины человеку стоит заняться изучением низкоуровневого языка Assembler. Хотя большинство современных микроконтрроллеров и «дружат» с C, знание Ассемблера при работе с «железом» (робототехника, умные дома) обязательно.

Список актуальных в начале 2019 года языков программирования.

Рис. 3 – Перечень наиболее популярных языков программирования в мире в 2018 году

Сначала выбираете платформу – операционную систему, под которую собираетесь писать. В последние годы новички чаще всего выбирают Android, реже – Windows, а потом все остальные.

Опытные же разработчики переходят из этих сфер, веб-разработки и иных платформ в программирование под Linux.

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

Список популярных платформ на начало 2019 года. Всё больше компаний отдают предпочтение UNIX-подобным операционным системам, «отворачиваясь» от Windows (в первую очередь – последней её версии).

Программисты под Windows вместе с серверными версиями ОС занимают чуть более трети рынка. Среди мобильных платформ лидерство принадлежит Android.

Рис. 4 – Доля рынка разработчиков в операционных системах

А вот такие специалисты на рынке труда в 2018 году были в дефиците, естественно, опытные и со стажем работы.

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

Рис. 5 – Самые востребованные направления в области в 2018 году

Кроме разработчиков на новом Kotlin, нужны специалисты по Go – многопоточный мультиплатформенный язык программирования – и распространённым средам для написания программного кода.

Python – язык многоцелевого назначения, нередко изучаемый в ВУЗах в качестве первого ЯП. Универсал, владеющий Питоном, сможет работать почти в любой сфере, кроме программирования контроллеров и микроконтроллеров, а также тех отраслях промышленности, где нужны знания C-подобных языков.

Применяется:

  • для аналитики, анализа информации, создания отчётов и статистик;
  • в веб-разработке – создание современных динамических сайтов и веб-приложений практически любой сложности;
  • в образовательной сфере – из-за простоты применяется в ВУЗах, а многие их студенты заказывают практические работы у фрилансеров;
  • при создании трёхмерных игр;
  • для написания плагинов, библиотек и расширений для приложений.

Для Python существует огромная масса пакетов, библиотек и фреймворков, заточенных под определённые проекты: математические функции, анализ данных.

JavaScript – соперник Python, хотя более популярен для написания серверных и мобильных приложений. Также имеет множество фреймворков, адаптированных для различных случаев.

Go – имеет открытый код и создан для написания программного кода, оптимизированного под выполнение многоядерными процессорами.

C++ и C# — универсальные, но сложные в освоении новичками.

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

Какой бы язык и направление не выбрали, всегда начинайте из языка программирования высокого уровня – JavaScript, Python. Это скриптовые языки, где управление памятью осуществляется автоматически, а работа с указателями для новичка находится в недрах. После понимания каждой строчки кода, освоения работы с памятью и адресацией можно переходить на ЯП среднего уровня.

Что там есть

Многие думают, что айтишники — это такие бородатые мужики в свитерах с оленями, которые сутками пишут код. Но сфера IT намного шире, чем просто программирование. Например, это тоже IT:

  • мобильные технологии,
  • нейросети,
  • разработка новых электронных устройств,
  • робототехника,
  • сетевые технологии,
  • моделирование биологических и химических процессов,
  • изучение генома человека,
  • кибербезопасность,
  • и ещё 99 примеров.

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

5 крутых роботов с искусственным интеллектом внутри:

В 2013 году вышла игра Deus Ex, где у главного героя были механические руки. В 2019 году те же разработчики и ребята из Open Bionics повторили это в жизни:

Улыбающийся Путин и кривляющийся Джордж Буш-младший — результат работы нейросети и дипфейков:

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

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

Как правильно выбрать свой путь, свой курс?

Для человека, связанного с IT-технологиями только смартфоном в руке, все вышесказанное может казаться невероятно сложным.

У каждого из нас есть свой опыт, навыки, те или иные привычки.

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

1. Data Science сегодня — самый «научный» раздел IT-технологий. Именно здесь придется читать сухие труды в профессиональных журналах, много времени проводить за «голым кодом» и заниматься кропотливой отладкой без видимого результата.

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

Кому: тем, кто видит себя ученым, разрабатывать и проверять теории. Или очень любит работать с графиками.
️ Зачем: это очень интересно и востребовано. Математику придется освоить.

2. Fullstack Pyton-разработчик точно не останется без работы, будь то онлайн или оффлайн. Специалисты с такой подготовкой могут работать над отдельными частями проекта, так и реализовывать все в одиночку.

Перспективы роста этой профессии очень высоки, а порог входа достаточно низкий для старта с нуля.

Кому: именно тем, кто хочет стать программистом и не боится кода.
️ Зачем: за большими перспективами и стабильной работой. Придется постоянно развивать практические навыки.

3. Тестировщики ПО востребованы повсюду, и стать им не составляет большого труда. Когда не знаешь, с чего начать, именно QA станет лучшим выбором.

Хотя бы потому, что навыки тестирования востребованы во всех IT-специальностях. После трудоустройства можно поработать, осмотреться, и выучиться другой профессии.

Кому: пригодится всем, кто связан или хочет связать себя с программированием.
️ Зачем: лучший способ начать новую карьеру.

4. Этичным хакером под силу стать не всем, хотя курс SkillFactory позволит освоить «базу» всем, кто придет.

Впереди будет много рутины, бесконечное изучение литературы и англоязычные форумы по кибербезопасности. Красные глаза успешного пентестера скорее норма.

Кому: гикам, фанатам и поклонникам научной фантастики.
️ Зачем: за мечтами и перспективами. Будет трудно. Но когда это останавливало?

iPhones.ru

SkillFactory помогут стать востребованным специалистом с отличным доходом.