Програміст
Програміст — фахівець, що займається програмуванням, виконує розробку програмного забезпечення (в простіших випадках — окремих програм) для програмованих пристроїв, які, як правило містять один процесор чи більше. Прикладами таких пристроїв є: персональні комп'ютери, мобільні телефони, смартфони, комунікатори, ігрові приставки, сервери, суперкомп'ютери, мікроконтролери та промислові комп'ютери.
Помилково програмістом деколи називають системного адміністратора та інших спеціалістів ІТ, які займаються налагодженням та підтримкою роботи комп'ютерної техніки з використанням уже готового програмного забезпечення.
В середовищі програмістів крім офіційної наукової термінології можна почути багатий комп'ютерний сленг. Переважно це перекручені на власний манер англомовні терміни, транслітерали або своєрідний їхній переклад. Також зустрічаються спрощення складних наукових термінів.
Ада Лавлейс вважається першою програмісткою, бо вона опублікувала алгоритм розрахунку чисел Бернуллі за допомогою аналітичної машини Чарльза Беббіджа у жовтні 1842 р.[1] Оскільки машина Беббіджа ніколи не була збудована, Ада ніколи не бачила, як цей алгоритм запускається.
Першим хто запустив програму на функціонуючому комп'ютері, був інформатик Конрад Цузе, в 1941 році.
Першими програмістами які займались програмуванням як основним видом діяльності були програмістки ENIAC: Мерлін Мельцер, Кетлін Макнальті, Бетті Дженнінгс, Бетті Снайдер, Франсіс Білас та Рут Ліхтерман.[2]
Міжнародний день програміста відзначають у 256-й день року (у високосний рік це 12 вересня, а у невисокосний — 13 вересня).
Першою компанією, заснованою для створення програмних продуктів і послуг, була Computer Usage Company 1955 року. До цього часу комп’ютери програмували або замовники, або кілька комерційних виробників комп’ютерів того часу, наприклад Sperry Rand і IBM[3]. Індустрія програмного забезпечення розширилася на початку 1960-х років, майже відразу після того, як комп’ютери почали з'являтися в масовому продажу. Університети, уряди та підприємства купували комп'ютери, що створювало попит на програмне забезпечення. Багато з цих програм було написано власними штатними програмістами; деякі були розподілені між користувачами певної машини безкоштовно, а інші продавалися на комерційній основі[4].
Інші фірми, такі як Computer Sciences Corporation (заснована 1959 року), також почали швидко розвиватися. Незабаром виробники комп’ютерів почали об’єднувати операційні системи, системне програмне забезпечення та середовища програмування зі своїми машинами; IBM 1620 поставлявся з системою символічного програмування 1620 і Fortran[5]. Ця галузь значно розширилася з появою персонального комп’ютера (ПК) у середині 1970-х років. У наступні роки ПК також допоміг створити ринок ігор, додатків та допоміжного програмного забезпечення, який постійно зростає. Це призвело до збільшення попиту на розробників програмного забезпечення на той період часу.
Програмісти пишуть, тестують, налагоджують і підтримують комп'ютерні програми. Програмісти продукують, розробляють та тестують логічні структури для вирішення завдань на комп'ютерах. Багато технічних нововведень у програмуванні — сучасні обчислювальні технології та складні нові мови та інструменти програмування — переосмислили роль програміста та підвищили більшу частину сьогоднішньої програми програмування. Назва роботи та описи можуть відрізнятися залежно від організації.
Програмісти працюють у багатьох налаштуваннях, включаючи відділи корпоративних інформаційних технології («ІТ»), великі програмні компанії, невеликі сервісні фірми та державні структури будь-яких розмірів. Багато професійних програмістів також працюють як підрядники для консалтингових компаній на сайтах клієнтів. Ліцензування, як правило, не вимагається, щоб працювати як програміст, хоча професійні сертифікації зазвичай проводяться програмістами.
Робота програмістів сильно різниться залежно від типу бізнесу, для якого вони пишуть програми. Наприклад, інструкції, пов'язані з оновленням фінансових записів, сильно відрізняються від інструкцій, необхідних для дублювання умов літака для підготовки пілотів у льотному тренажері. Прості програми можуть бути складені за кілька годин, більш складні програми можуть вимагати більше року роботи, тоді як інші ніколи не вважаються «завершеними», а скоріше постійно вдосконалюються до тих пір, поки вони залишаються у користуванні. У більшості випадків кілька програмістів працюють разом як команда під наглядом старшого програміста.
Програмісти пишуть програми відповідно до специфікацій, визначених в першу чергу більш старшими програмістами та системними аналітиками. Після того, як процес оформлення завершено, робота програміста полягає в перетворенні цього дизайну в логічну серію інструкцій, як комп'ютер може виконати. Програміст кодує ці інструкції на одній з багатьох мов програмування. В залежності від мети програми використовуються різні мови програмування. Наприклад, COBOL звичайно використовується для бізнес-додатків, які зазвичай працюють на комп'ютерах на мейнфреймах та середніх частотах, тоді як Fortran використовується в науці та техніці. C++, Python широко використовується як для наукових, так і для ділових програм. Java, C#, VB та PHP — це популярні мови програмування для веб та бізнес-програм. Програмісти, як правило, знають більше, ніж одну мову програмування, і оскільки багато мов схожі, вони часто можуть вивчати нові мови порівняно легко. На практиці програмісти часто називаються мовою, яку вони знають, наприклад як програмісти Java, тип виконуваної ними функції або середовище, в якому вони працюють: наприклад, програмісти баз даних, мейнфрейм програмісти або веброзробники.
При внесенні змін до вихідного коду, з якого складаються програми, програмісти повинні інформувати інших програмістів про завдання, яке повинно виконувати програма. Вони роблять це шляхом вставки коментарів у вихідний код, щоб інші могли легше зрозуміти програму та документувати свій код. Щоб зберегти роботу, програмісти часто використовують бібліотеки базового коду, які можуть бути модифіковані або налаштовані для конкретної програми. Цей підхід дає більш надійні та послідовні програми та підвищує продуктивність програмістів шляхом усунення деяких рутинних кроків.
Програмісти тестують програму, запускаючи її та шукають помилки (errors). Коли вони ідентифікуються, програмісти, як правило, роблять відповідні виправлення, а потім повторно перевіряють програму, поки залишається прийнятно низький рівень і ступінь виявлено помилок. Цей процес називається тестуванням та налагодженням. Це важливі частини кожної роботи програміста. Програмісти можуть продовжувати вирішувати ці проблеми протягом усього життя програми. Оновлення, відновлення, модифікація та розширення існуючих програм іноді називають програмами технічного обслуговування. Програмісти можуть внести свій внесок у посібники користувача та онлайн-довідку, або вони можуть співпрацювати з технічними письменниками для виконання такої роботи.
Програмісти часто згруповані у два широких типи: прикладні програмісти та системні програмісти. Програмісти пишуть програми для обробки конкретної роботи, наприклад, відстеження товарних запасів в організації. Вони також можуть переглянути існуюче пакетне програмне забезпечення або налаштувати загальні програми, які часто купуються у незалежних постачальників програмного забезпечення. Системні програмісти, навпаки, пишуть програми для підтримки та управління програмним забезпеченням комп'ютерних систем, таких як операційні системи та системи управління базами даних. Ці працівники вносять зміни в інструкції, які визначають, мережу, робочі станції та процесор системи обробляють різні завдання, які вони отримали, і як вони взаємодіють з периферійним обладнанням, таким як принтери та дискові накопичувачі.
Компанії, що займаються розробкою програмного забезпечення, можуть працювати безпосередньо з експертами з різних галузей для створення програмного забезпечення — будь-яких програм, призначених для конкретних клієнтів або упакованих програм для загального користування, від відеоігор до навчального програмного забезпечення до програм для настільних публікацій та фінансового планування. Програмування пакетного програмного забезпечення є одним з найбільш швидко зростаючих сегментів у галузі комп'ютерних послуг. Деякі компанії або організації, створюють власну ІТ-команду для забезпечення та розробки власного програмного забезпечення, що відповідає дуже специфічним потребам для своїх користувачів, особливо якщо існуюче програмне забезпечення не підходить або занадто дорого.
Особливо у деяких невеликих організаціях, працівники, які широко відомі як програмісти-аналітики, несуть відповідальність за системний аналіз та фактичне програмування. Зростаючі досвідчені користувачі беруть на себе багато завдань, які раніше виконували програмісти. Наприклад, зростаюче використання пакетного програмного забезпечення, такого як електронна таблиця та програмні пакети для керування базами даних, дозволяє користувачам створювати прості програми для доступу до даних та виконання розрахунків.
Редактори програмування, також відомі як редактори вихідного коду, — це текстові редактори, спеціально розроблені для програмістів або розробників для написання вихідного коду програми або програми. Більшість цих редакторів мають у собі функції, корисні для програмістів, наприклад, підсвічування кольорового синтаксису, автоматичний відступ, автоматичне завершення, виділення дужок, перевірку синтаксису та дозволи для плагінів. Ці функції допомагають користувачам під час кодування, налагодження та тестування[6].
- 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 — набір програм, необхідних для розробки драйверів.
- Компілятор — транслює вихідний код, зрозумілий програмістові, в машинну мову, зрозумілу процесорові. Якщо програма призначена для виконання програм у певній віртуальній машині(наприклад, віртуальна машина Java) то компілятор виступає в ролі транслятора тексту програми у специфічний код даної віртуальної машини. Для виконання такого коду у SDK зазвичай включається відповідний інтерпретатор коду.
- Налагоджувач (англ. debugger) — утиліта, що дозволяє спостерігати за процесом виконання програми, шляхом зупинення програми в певній точці та покрокового виконання інструкцій. При цьому можна контролювати зміну значень змінних, масивів, тощо. Таким чином відбувається виявлення та усунення багатьох вад програм.
- Волтер Айзексон. Інноватори: Як група хакерів, геніїв та ґіків здійснила цифрову революцію = The Innovators. — Київ : Наш Формат, 2017. — 488 с. — ISBN 978-617-7279-81-4.
- Coders at work[en]
- ↑ Айзексон, 2017, с. 34.
- ↑ Айзексон, 2017, с. 93.
- ↑ Kubie, E.C. (1994). Recollections of the first software company. IEEE Annals of the History of Computing. Т. 16, № 2. с. 65—71. doi:10.1109/85.279238. ISSN 1934-1547. Процитовано 21 квітня 2022.
- ↑ What’s the Difference Between a Software Engineer, Programmer, Coder, and Developer? (амер.). 10 лютого 2022. Процитовано 21 квітня 2022.
- ↑ IBM Archives: 1620 Data Processing System. www.ibm.com (амер.). 23 січня 2003. Процитовано 21 квітня 2022.
- ↑ IDE - Programming software and the IDE - GCSE Computer Science Revision. BBC Bitesize (брит.). Процитовано 21 квітня 2022.