Программист — специалист, занимающийся программированием, выполняет разработку программного обеспечения (в более простых случаях — отдельных программ) для программируемых устройств, которые, как правило содержат один процесор или более. Примерами таких устройств являются: персональные компьютеры, мобильные телефоны, смартфоны, коммуникаторы, игровые приставки, серверы, суперкомпьютеры, микроконтроллеры и промышленные компьютеры.
Работа программиста преимущественно высокооплачиваемая, однако плата очень зависит от организации и от страны. Но самыми главными критериями являются знание и практический опыт программиста.
Ошибочно программистом порой называют системного администратора и других специалистов ИТ, которые занимаются налаживанием и поддержкой работы компьютерной техники с использованием уже готового программного обеспечения.
Сленг
В среде программистов кроме официальной научной терминологии можно услышать богатый компьютерный сленг. Преимущественно это искаженные на собственной манере англоязычные термины, своеобразный их перевод. Также встречаются упрощение сложных научных терминов.
История
Ада Лавлейс считается первой программисткой
Ада Лавлейс считается первой программисткой, потому что она опубликовала алгоритм расчета чисел Бернулли с помощью аналитической машины Чарльза Бэббиджа в октябре 1842 г. Поскольку машина Бэббиджа никогда не была построена, Ада никогда не видела, как этот алгоритм запускается.
Первым, кто запустил программу на функционирующем компьютере, был информатик Конрад Цузе в 1941 году.
Первыми программистами которые занимались программированием как основным видом деятельности были программисты ENIAC: Мэрлин Мельцер, Бетти Дженнингс, Бетти Снайдер, Франсис Билас.
Международный день программиста отмечается ежегодно 7 января.
Характер работы
Программисты пишут, тестируют, настраивают и поддерживают подробные инструкции, называемые компьютерными программами, компьютеры должны выполнять, выполняя свои функции. Программисты также производят, разрабатывают и тестируют логические структуры для решения задач на компьютере. Много технических новшеств в программировании — современные вычислительные технологии и сложные новые языки и инструменты программирования — переосмыслили роль программиста и повысили большую часть сегодняшней программы программирования. Название работы и описания могут отличаться в зависимости от организации.
Программисты работают во многих настройках, включая отделы корпоративных информационных технологии («ИТ»), крупные софтверные компании, небольшие сервисные фирмы и государственные структуры любых размеров. Много профессиональных программистов также работают как подрядчики для консалтинговых компаний на сайтах клиентов. Лицензирование, как правило, не требуется, чтобы работать как программист, хотя профессиональные сертификации обычно проводятся программистами.
Работа программистов сильно различается в зависимости от типа бизнеса, для которого они пишут программы. Например, инструкции, связанные с обновлением финансовых записей, сильно отличаются от инструкций, необходимых для дублирования условий самолета для подготовки пилотов в летном тренажере. Простые программы могут быть составлены за несколько часов, более сложные программы могут требовать больше года работы, тогда как другие никогда не считаются "завершенными", а скорее постоянно совершенствуются до тех пор, пока они остаются в пользовании. В большинстве случаев несколько программистов работают вместе как команда под присмотром старшего программиста.
Программисты пишут программы в соответствии со спецификациями, определенными в первую очередь более старшими программистами и системными аналитиками. После того, как процесс оформления завершена, работа программиста заключается в превращении этого дизайна в логичную серию инструкций, как компьютер может выполнить. Программист кодирует эти инструкции на одном из многих языков программирования. В зависимости от цели программы используются разные языки программирования. Например, COBOL обычно используется для бизнес-приложений, которые обычно работают на компьютерах на мейнфреймах и средних частотах, тогда как Fortran используется в науке и технике. C++, Python широко используется как для научных, так и для деловых программ. Java, C#, VB и PHP — это популярные языки программирования для веб-и бизнес-приложений. Программисты, как правило, знают больше, чем один язык программирования, и поскольку многие языки похожи, они часто могут изучать новые языки сравнительно легко. На практике программисты часто называются на языке, который они знают, например, как программисты Java, тип выполняемой ими функции или среду, в которой они работают: например, программисты баз данных, мейнфрейм программисты или веб-разработчики.
При внесении изменений в исходный код, из которого составляются программы, программисты должны информировать других программистов о задании, которое должно выполнять программа. Они делают это путем вставки комментариев в исходный код, чтобы другие могли легче понять программу и документировать свой код. Чтобы сохранить работу, программисты часто используют библиотеки базового кода, которые могут быть изменены или настроены для конкретной программы. Этот подход дает более надежные и последовательные программы и повышает производительность программистов путем устранения некоторых рутинных шагов.
Тестирование и отладка
Программисты тестируют программу, запуская ее и ищут ошибки (errors). Когда они идентифицируются, программисты, как правило, делают соответствующие исправления, а затем повторно проверяют программу, пока остается приемлемо низкий уровень и степень обнаружено ошибок. Этот процесс называется тестированием и отладкой. Это важные части каждой работы программиста. Программисты могут продолжать решать эти проблемы на протяжении всей жизни программы. Обновление, восстановление, модификация и расширение существующих программ иногда называют программами технического обслуживания. Программисты могут внести свой вклад в руководства пользователя и онлайн-справку, или они могут сотрудничать с техническими писателями для выполнения такой работы.
Прикладное и системное программирование
Программисты часто сгруппированы в два широких типа: прикладные программисты и системные программисты. Программисты пишут программы для обработки конкретной работы, например, отслеживание товарных запасов в организации. Они также могут пересмотреть существующее пакетное программное обеспечение или настроить общие программы, которые часто приобретаются у независимых поставщиков программного обеспечения. Системные программисты, наоборот, пишут программы для поддержки и управления программным обеспечением компьютерных систем, таких как операционные системы и системы управления базами данных. Эти работники вносят изменения в инструкции, которые определяют, сеть, рабочие станции и процессор системы обрабатывают различные задания, которые они получили, и как они взаимодействуют с периферийным оборудованием, таким как принтеры и дисковые накопители.
Типы программного обеспечения
Компании, занимающиеся разработкой программного обеспечения, могут работать непосредственно с экспертами из разных отраслей для создания программного обеспечения — любых программ, предназначенных для конкретных клиентов или упакованных программ для общего пользования, от видеоигр до учебного программного обеспечения программ для настольных публикаций и финансового планирования. Программирование пакетного программного обеспечения является одним из наиболее быстро растущих сегментов в отрасли компьютерных услуг. Некоторые компании или организации, создают собственную ИТ-команду для обеспечения и разработки собственного программного обеспечения, что соответствует очень специфическим потребностям для своих пользователей, особенно если существующее программное обеспечение не подходит или слишком дорого.
Особенно в некоторых небольших организациях, работники, которые широко известны как программисты-аналитики несут ответственность за системный анализ и фактическое программирование. Растущие опытные пользователи берут на себя много задач, которые раньше выполняли программисты. Например, растущее использование пакетного программного обеспечения, такого как электронная таблица и программные пакеты для управления базами данных, позволяет пользователям создавать простые приложения для доступа к данным и выполнения расчетов.
Редакторы программирования, также известные как редакторы исходного кода, — это текстовые редакторы, специально разработанные для программистов или разработчиков для написания исходного кода программы или программы. Большинство этих редакторов имеют в себе функции, полезные для программистов, например, подсветка цветного синтаксиса, автоматический отступ, автоматическое завершение, выделение скобок, проверку синтаксиса и разрешения для плагинов. Эти функции помогают пользователям во время кодирования, отладки и тестирования.
Инструменты программиста
- IDE — интегрированная среда разработки, примерами которого являются Microsoft Visual Studio (Visual Basic .NET, C++ и др.) и Embarcadero Delphi. В Linux/Unix-системах известны, прежде всего, свободные и открытые инструментальные системы KDevelop и Eclipse (обе поддерживают несколько языков программирования: Java, C++, Python и др.), которые позволяют разрабатывать приложения как для Windows так и для Linux.
- SDK — Software Development Kit — набор программ, необходимых для разработки ПО на определенном языке программирования.
- DDK — Driver Development Kit — набор программ, необходимых для разработки драйверов.
Программы, которые обычно входят в SDK:
- Компилятор — транслирует исходный код, понятный программисту, в машинный язык, понятный процессу. Если программа предназначена для выполнения программ в определенной виртуальной машине(например, виртуальная машина Java) то компилятор выступает в роли транслятора текста программы в специфический код данной виртуальной машины. Для выполнения такого кода в SDK обычно включается соответствующий интерпретатор кода.
- Отладчик (англ. debugger) — утилита, которая позволяет наблюдать за процессом выполнения программы, путем остановки программы в определенной точке и пошагового выполнения инструкций. При этом можно контролировать изменение значений переменных, массивов, и тому подобное. Таким образом происходит выявление и устранение многих недостатков программ.