Программист - Programmer

  (Перенаправлено от разработчика ПО )

Два программиста работают над IBM 704 в NACA , 1954 г.

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

Наиболее часто используемый программистом компьютерный язык (например, Assembly , COBOL , C , C ++ , C # , JavaScript , Lisp , Python ) может иметь префикс к термину программист . Некоторые, кто работает с языками веб- программирования, также добавляют в свои заголовки префикс web .

История

Многие считают Аду Лавлейс первым программистом.

Британский Графиня и математик Ада Лавлейс часто считается первым программистом, так как она была первой , чтобы опубликовать часть программы ( в частности , алгоритма ) , предназначенной для реализации на Чарльза Бэббиджа «s аналитической машины , в октябре 1842. Алгоритм был используется для вычисления чисел Бернулли . Поскольку машина Бэббиджа так и не была завершена как действующий стандарт во времена Лавлейса, у нее, к сожалению, не было возможности увидеть алгоритм в действии.

Первым человеком, выполнившим программу на работающем современном электронном компьютере, был известный ученый-компьютерщик Конрад Цузе в 1941 году.

Бетти Дженнингс и Фрэн Билас , часть первой команды программирования ENIAC

Команда программирования ENIAC , состоящая из Кей Макналти , Бетти Дженнингс , Бетти Снайдер , Марлин Вескоф , Фрэн Билас и Рут Лихтерман, была первыми регулярно работающими программистами. Международный день программиста отмечается ежегодно 7 января. В 2009 году правительство России объявило профессиональный ежегодный праздник, известный как День программиста, который следует отмечать 13 сентября (12 сентября в високосные годы). До этого во многих странах это уже был неофициальный праздник.

Программное обеспечение

Слово « программное обеспечение» использовалось еще в 1953 году, но не появлялось в печати регулярно до 1960-х годов. До этого времени компьютеры программировали либо заказчики, либо несколько производителей коммерческих компьютеров того времени, такие как UNIVAC и IBM . Первой компанией, основанной специально для предоставления программных продуктов и услуг, была Computer Usage Company в 1955 году.

Индустрия программного обеспечения расширилась в начале 1960-х годов, почти сразу после того, как компьютеры начали массово продаваться. Университеты, правительства и предприятия создали спрос на программное обеспечение. Многие из этих программ были написаны штатными программистами, работающими на полную ставку; некоторые из них бесплатно распределялись между пользователями определенной машины. А другие были разработаны на коммерческой основе. Другие фирмы, такие как Computer Sciences Corporation (основанная в 1959 г.), также начали расти. Вскоре производители компьютеров и оборудования начали объединять в свои машины операционные системы , системное программное обеспечение и среды программирования.

Отрасль значительно расширилась с появлением персональных компьютеров («ПК») в середине 1970-х годов, которые предоставили вычисления для среднего офисного работника. В последующие годы ПК также помог создать постоянно растущий рынок игр, приложений и служебных программ.

В первые годы 21 века возникла еще одна успешная бизнес-модель для размещенного программного обеспечения, которая получила название « программное обеспечение как услуга» или SaaS. С точки зрения производителей некоторых проприетарных программ , SaaS снижает опасения по поводу несанкционированного копирования , поскольку доступ к нему возможен только через Интернет, и по определению никакое клиентское программное обеспечение не загружается на ПК конечного пользователя. SaaS обычно работает из облака .

Характер работы

Часть этого раздела взята из « Справочника по перспективам занятости» , издание 2006–07 гг., Которое находится в общественном достоянии как работа правительства США .

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

Программисты работают во многих сферах, включая отделы корпоративных информационных технологий («ИТ»), крупные компании-разработчики программного обеспечения , небольшие сервисные фирмы и государственные учреждения любого размера. Многие профессиональные программисты также работают в консалтинговых компаниях на сайтах клиентов в качестве подрядчиков . Лицензирование обычно не требуется для работы программистом, хотя профессиональные сертификаты обычно имеют программисты. Программирование широко считается профессией (хотя некоторые органы власти не согласны с этим на том основании, что профессией считается только карьера, требующая юридического лицензирования).

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

Инженер-программист, пишущий на JavaScript

Программисты пишут программы в соответствии со спецификациями, определяемыми в первую очередь более старшими программистами и системными аналитиками . После завершения процесса проектирования работа программиста состоит в том, чтобы преобразовать этот проект в логическую серию инструкций, которым может следовать компьютер. Программист кодирует эти инструкции на одном из многих языков программирования. В зависимости от цели программы используются разные языки программирования. COBOL , например, обычно используется для бизнес-приложений, которые обычно работают на мэйнфреймах и компьютерах среднего уровня , тогда как Fortran используется в науке и технике. C ++ и Python широко используются как для научных, так и для бизнес-приложений. Java , C # , JS и PHP - популярные языки программирования для веб-приложений и бизнес-приложений. Программисты обычно знают более одного языка программирования, и, поскольку многие языки похожи, они часто могут относительно легко изучать новые языки. На практике, программист часто называют языком , они знают, например , как Java - программисты , или по типу функции , которую они выполняют , или среды , в которой они работают, например, базы данных программистов , мэйнфреймы программистов или веб - разработчики .

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

Тестирование и отладка

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

Приложение против системного программирования

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

Квалификация и навыки

Разработчик программного обеспечения должен иметь глубокие технические знания в определенных аспектах вычислений. Для некоторых должностей потребуется степень в соответствующей области, такой как информатика, информационные технологии, инженерия, программирование или любое другое последипломное образование, связанное с ИТ. Идеальный разработчик программного обеспечения - это целеустремленный профессионал, обладающий динамичным практическим опытом работы с ключевыми языками программирования, такими как C ++ , C # , PHP , Java , C , Javascript , Visual Basic , Python и Smalltalk .

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

Типы софта

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

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

Кроме того, с появлением Интернета веб-разработка стала огромной частью области программирования. В настоящее время все больше программных приложений представляют собой веб-приложения, которые может использовать любой, у кого есть веб-браузер . Примеры таких приложений включают службу поиска Google, службу электронной почты Outlook.com и службу обмена фотографиями Flickr .

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

Глобализация

Изменения рынка в Великобритании

По данным BBC News, 17% студентов, изучающих информатику, не смогли найти работу по специальности через 6 месяцев после выпуска в 2009 году, что является самым высоким показателем среди опрошенных университетов, в то время как 0% студентов-медиков не имели работы в том же опросе. Однако в британской системе категорий такие степени, как информационные технологии и игровой дизайн , классифицируются как «информатика» - отрасли, в которых найти работу может быть чрезвычайно трудно, что несколько завышает реальную цифру.

Изменения рынка в США

Компьютерное программирование, оффшорный аутсорсинг , и иностранный работник Визы стал спорной темой после того , как крах дот-комов оставил много программистов без работы или с более низкой заработной платой. Программирование даже упоминалось в дебатах президента США 2004 года по теме оффшорного аутсорсинга .

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

Набор для получения степени, связанной с компьютерами, в США упал в течение многих лет, особенно для женщин, из-за отсутствия общих интересов к естественным наукам и математике, а также из-за очевидного опасения, что программирование будет подвергаться тому же давлению, что и производственная и сельскохозяйственная карьера. Эта ситуация привела к путанице в экономике США входит ли в «пост- информационный век» и характер американских сравнительных преимуществ . В большинстве академических институтов есть институциональный исследовательский офис, который ведет статистику присвоенных степеней, которая показывает несколько падений и подъемов в степенях компьютерных наук за последние 30 лет. Общая тенденция показывает небольшое общее снижение темпов роста (особенно по сравнению с ростом других ученых степеней STEM) с некоторых пиков 1986 , 1992 , 2002 и 2008 годов, демонстрирующих периоды постоянного роста или даже снижения. Кроме того, Бюро труда США Статистика: профессиональные прогнозы на 2016–2026 годы. Ожидается, что программисты будут заниматься компьютерным программированием на 7 процентов и на 9 процентов в период с 2019 по 2029 год, поскольку компьютерное программирование можно выполнять из любой точки мира, поэтому компании иногда нанимают программистов в странах с более низкой заработной платой.

Сравнение стран

Россия и Китай - страны, которые занимают очень высокие места в рейтинге талантов в компьютерном программировании.

Смотрите также

Ссылки

.

дальнейшее чтение

  • Вайнберг, Джеральд М. , Психология компьютерного программирования , Нью-Йорк: Ван Ностранд Рейнхольд, 1971
  • Экспериментальное исследование природы программирования: Лукас, Роб. "Dreaming in Code" New Left Review 62, март – апрель 2010 г., стр. 125–132.
  • Томпсон, Клайв (2019). Кодеры: создание нового племени и переделка мира . Penguin Press. ISBN 978-0735220560.

внешние ссылки