Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

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

ОбразованиеТехнологии+1
Дмитрий Смирнов
  ·   · 1,1 K
Программист: системный, юникс, си, ява, питон...  · 12 июл 2018

Ох, очень серьезный вопрос.

Раньше, еще лет 30-40 назад, удел программистов были большие ЭВМ, на которых обычно считалась статистика, проводилась эмуляция физических процессов, обрабатывались большие объемы данных или длинные цепочки уравнений. Тогда задачами программиста было ввести в ЭВМ данные, по заданному алгоритму их обработать и получить готовый результат. Тогда программирование было уделом единиц.

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

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

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

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

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

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

Как-то так...

PS. Ну, смотрите. Это сам в чем участвовал в той или оной степени:

  • Антивирус - наверное один из первых для систем PDP :-)
  • Автомобили - automotive, тут и бортовые компьютеры и развлекалки всякие типа магнитол, в основном в рамках драйверов и сборки систем.
  • Графическая система XWindows и его перенос на разные системы c с ворохом программ и утилит.
  • Автоматизация - разные компьютеры и контроллеры для буровых, производственных линий, станков и паровозов, SCADA.
  • Сети и связь - контроллеры и роутеры для передачи инфомации по сетям, от HDSL и до WiFi.
  • CCTV - видеонаблюдение, начиная от внутренностей IP-камеры и захвата картинки, и заканчивая определением номеров авто из потока.
  • Разные тренажеры, типа кабины пилота.
  • Системы трекинга для авиадиспетчеров, обеспечение безопасности воздушного движения.
  • Системы биллинга - это то, что у операторов связи деньги с абонентов отсчитывает.
  • Информационные порталы для издательств.
  • Тут же - базы данных, SQL и NoSQL
  • Веб-порталы, да-да сайты, типа.
  • Трансляторы и компиляторы для ... (censored)
  • Несколько проектов то, о чем не говорят, для нашей отчизны... (censored)
  • Системы для трансляции рекламы.
  • Кучка драйверов для разных систем и устройств, от RS-232 и до Ethernet.
    А вот сейчас пишу интернет-магазин (e-commerce).

Как видите, нет игр, их не писал ;-)

Вот я и хотел бы узнать о разных направлениях, чтобы было из чего выбирать.