7 дисциплин, которые стоит знать программисту

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

Изучить популярный язык или даже несколько недостаточно, чтобы стать программистом. Чтобы создавать сайты, приложения, ПО, игры, да и вообще хоть
что-то, необходимо разбираться в науках и языках. Их не так уж и много, но погружение занимает даже больше времени, чем изучение какого-нибудь PHP или еще чего-то попроще.

Английский язык

Если вы пишете на 1С, сразу переходите к следующему пункту. Ну а всем остальным знание английского языка пригодится, чтобы:

  • лучше понимать код;
  • читать мануалы;
  • взаимодействовать с иностранными заказчиками.

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

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

Полезная литература:

Нужно: всем.

Математика

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

<?

$hp = 500; //Оставшиеся очки здоровья

$hpMax = 1730; //Полное здоровье персонажа

$currHp = ($hp / $hpMax) * 100; //Сколько процентов осталось

echo "Здоровье: ".$hp." / ".$hpMax." (".$currHp." %)"; //Вывод оставшегося здоровья

?>

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

Полезная литература:

Нужно: всем.

Логика

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

$cost = $position['cost'];

$costMessage = "Цена: ".$cost;

if($position['type'] == $sale['type']) { //Проверяем, участвует ли этот тип товаров в акции

if($date <= $sale['last_date']) { //Проверяем, не прошел ли срок акции

             $cost *= 0.7; //Снижаем цену на 30%

             $costMessage = "Старая цена: ".$position['cost']." | Новая цена: ".$cost." (Выгода 30%)";

}

}

echo $costMessage;

В коде две логических операции: первая проверяет, распространяется ли акция на товар, а вторая — не прошел ли срок ее действия. В зависимости от результата меняется цена и выводимое сообщение. Это банальный пример; в реальных программах логики очень много, поэтому в ней нужно разбираться хотя бы на базовом уровне.

Полезная литература:

Нужно: всем.

Статистика

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

  • день недели и время публикации;
  • формат статьи;
  • объем;
  • затраты на рекламу;
  • тема;
  • автор;
  • язык;
  • количество ключей.

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

Полезная литература:

Нужно: аналитикам, ученым, разработчикам ИИ.

Информатика

В школах курс информатики состоит из примерно таких уроков:

  • как включить компьютер;
  • как выключить компьютер;
  • как открыть/создать/удалить папку;
  • как работать в MS Word;
  • как писать программы на Pascal и HTML в тетради.

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

Полезная литература:

  • Иванов Б.Н. «Дискретная математика. Алгоритмы и программы. Расширенный курс».
  • Есипов А. «Информация и информационные технологии».

Нужно: желающим.

Профильные науки

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

  • найти ближайший магазин;
  • решить домашку по математике;
  • рассчитать стоимость строительства;
  • отредактировать фотографию;
  • создать 3D-модель;
  • сохранить запись в базе данных;
  • проанализировать статистику;
  • перевести текст.

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

Нужно: всем.

Программирование

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

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

Я – Веб-разработчик PRO
С нуля до профессионального веб-разработчика. Вы научитесь верстать сайты и создавать интерфейсы, соберете 6 проектов в портфолио и получите востребованную профессию. Расходы за первые полгода курса берет на себя Skillbox. В это время вы посещаете все лекции и воркшопы, прокачиваете навыки, находите себе работу и начинаете получать деньги.
  • Живая обратная связь с преподавателями
  • Неограниченный доступ к материалам курса
  • Стажировка в компаниях-партнёрах
  • Дипломный проект от реального заказчика
  • Гарантия трудоустройства в компании-партнёры для выпускников, защитивших дипломные работы
Хочешь получать крутые статьи по программированию?
Подпишись на рассылку Skillbox