Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 

README.md

Три пути в ИТ

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

Специалист высокого класса

  • способен логично, алгоритмически мыслить
  • пишет человекочитаемый код
  • знает и применяет принципы хорошей архитектуры кода
  • хорошо знает существующие технологии и инструменты (во всех сферах разработки)
  • помимо того как ими правильно пользоваться знает как они устроены внутри
  • способен сам разрабатывать такие инструменты
  • знает различные методологии (ООП/ФП), вероятно должен изучить несколько концептуально разных языков, например: Python, Haskell, Lisp, Prolog, SQL.
  • знает принципы работы баз данных, как реляционных так и других
  • владеет терминологией отрасли
  • знает и применяет хорошие практики для решения типовых задач
  • знает методики масштабирования ПО (CAP!)
  • знает стандартные алгоритмы и структуры данных, умеет вычислять сложность алгоритмов
  • знает когда и как нужно оптимизировать ПО
  • владеет технологиями инсталляции ПО (пакеты, системы управления конфигурациями)
  • знает принципы и способен разрабатывать системное ПО (компиляторы, ядра ОС)
  • способен проектировать человеческие интерфейсы
  • знает принципы работы аппаратного обеспечения, операционных систем и сетей
  • машинное обучение (нейронные сети и др.)
  • умеет использовать инструменты для формальных спецификаций

Примеры типовых задач: БД, интеграция, агрегация таблиц, кеширование, журналирование, конфигурирование, профилирование, сериализация, генерация уникальных id, симметричное шифрование, очередь, сервер задач, регексы, хеширование (подпись), генерация паролей, паралелизм, локализация/интернационализация, API, валидация, веб-сессии.

можно ещё погуглить по запросу: Programmer Competency Matrix, например http://www.starling-software.com/employment/programmer-competency-matrix.html

Руководитель/архитектор

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

Учёный

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

у буржуев есть Computer science, можно подглядеть что ещё

Знание трендов

  • Нейронные сети
  • Квантовые компьютеры
  • Многоядерность (+ФП)
  • Биоинформатика

Внешний контроль и реальные задачи

Только свободный софт в образовании.

Лабы/курсовые/дипломные начиная со второго курса только в виде доработок к свободному софту:

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

Проекты можно рекомендовать, но рассматривать предложения от студентов, но выбирать известные, зрелые проекты, один их критериев актуальности - наличие пакета в Debian.

Примеры проектов:

  • GIMP, Krita, Inkscape, Blender, Darktable, CAD
  • Firefox (Servo?), Thunderbird, Tox, Ethereum

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

About

Что должен знать ИТ специалист с высшим образованием

Resources

Releases

No releases published

Packages

No packages published
You can’t perform that action at this time.