Какие есть разновидности программирования?

Рейтинг: 1Ответов: 3Опубликовано: 28.02.2011

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

Ответы

▲ 5

Всё cy6erGn0m сказал правильно, но, думаю, стоит некоторые пояснить.

  • Сайты. Ну это понятно. Информационные сайты, для мобильных, приложения - типа зохо и прочих офисов.
  • Обычные приложения. Для разных ОС - Windows, Мак, юниксы различные и более редкие типы.
  • Серверные приложения. Это приложения типа игровых серверов, банковских, различных IM-сообщений, баз данных и много чего другого. Когда есть специализированная программа-клиент.
  • Мобильные приложения. Java-приложения, игры, нокии, симбианы, айфоны, андроиды, екниги и что-то там ещё. То есть на мобильных телефонах, смартфонах и подобных приборах.
  • Встраиваемые системы. О, это весьма интересная отрасль. Плееры, телефоны, навигаторы, роботы, брелоки цифровые, термометры, управлялки разные. То есть тесно связанные с электроникой и часто работающие в одной микросхеме. Микроконтроллеры 8, 16, 32 бит (ARM, Atmel, Microchip, STM, Freescale, Motorola и иные), цифровые сигнальные процессоры, ПЛИС (программируемые логические интегральные схемы) или просто логические схемы (хотя мало кто этим занимается в обычной жизни). Цифровая электроника.
  • Научные разработки. Это программирование на спец. языках математических (как пример MATLAB), в средах моделирования (ANSYS) и просто написание программ, решающих научные и инженерные задачи. И САПР.

Не указанные направления:

  • Системное программирование. То есть написание драйверов для оборудования, написание ядра ОС. Низкоуровневое программирование. Компиляторы и интерпретаторы, думаю, относятся к этому же.
  • Игры. Странно, что их не указали. Но это гигантская отрасль индустрии =) Разработка 2D и 3D игр... DirectX и OpenGL. Шейдеры. И для консолей игровых.
  • Параллельное программирование, в том числе и на GPU. CUDA и OpenCL, OpenMP, MPI. Расчёты на графическом модуле.
  • Разработка библиотек общего назначения для каких-либо функций. Например, рендеринг шрифта. Или аудио- и видеокодеки.
  • Написание плагинов и скриптов к существующим системам. Для фотошопа, например.
  • Олимпиадное программирование и решение задач. Сюда можно отнести и программирование на различных "непрактичных" языках.
  • Программирование для бухгалтерских, финансовых и прочих деловых продуктов. Типа 1С: Предприятия.
  • Программирование экспертных систем. Думаю, оно стоит быть вынесенным отдельно.
  • Программирование баз данных. Серьёзных, которые куда как больше, чем две-три таблички=) Недаром для них создан язык специальный.

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

▲ 2
  • Web-разработка сайтов
  • Разработка веб-приложений (может пересекаться с первым)
  • Разработка "обычных" приложений, толстых клиентов
  • Разработка серверных приложений
  • Разработка мобильных приложений (j2me, android, iphone, etc)
  • Разработка средств автоматизированного тестирования
  • Разработка автоматических тестов
  • Разработка приложений для встраиваемых систем (embedded systems)
  • Всякая Science-разработка
▲ 1

Тема очень обширная и почти всё, что я знаю, уже сказали. Добавлю только немного про "встраиваемые системы". Правильное их название - "Системы реального времени". Область очень актуальная и связана не только с программированием различных прошивок под плееры, телефоны и тп. В сферу её употребления входят всевозможные роботы, автоматизированные системы (типа управления светофорами в развитых странах), космические спутники, медицинское оборудование и ещё много чего. Используемое ПО (кроме простых прошивок) - ОС типа Qnx. Языки программирования - структурный С, Smalltalk, различные функциональные и рекурсивно-логические языки типа Lisp, Erlang, Prolog.