Програмирање
Историја
Еден систем вграден во овие уреди е употребата на клинови и камери поставени во дрвен тапан во одредени локации, кои секвенцијално ќе предизвика лост, претворен во ударен инструмент. Излезот на овој уред е мал тапанар кој свири различни ритми и миксови. Jacquard разбојот, која Џозеф Мари Жакард го развила во 1801 година, користејќи серија од картон картички со дупки во нив. Шемата на дупката претставува моделот дека разбојот мора да го следи во ткаење ткаенина. На разбојот би можел да произведе сосема различни ткаенини со користење на различни групи на карти. Чарлс Бабејџ усвоиl употребата на ударни картички околу 1830 да го контролира својот аналитички мотор. Првата компјутерска програма напишана за Аналитичка мотор била напишана од математичарката Ада Лавлејс и била за да пресмета низа на Бернули броеви. синтеза на бројчена пресметки, предодредена операција и излез, заедно со еден начин да се организираат и влезни инструкции на начин релативно лесен за луѓето да горазберат и произведат, доведува до модерен развој на компјутерското програмирање. Развој на компјутерско програмирање се забрзува преку индустриската револуција. Во 1880-тите, Херман Холерит измислиле снимање на податоци на медиум кој потоа може да се чита од машина. Пред употреба на машински читлив медиуми, погоре, била листи на инструкции (не податоци) да се стартува програмирани машини како Жакард разбоите и механизирани музички инструменти. "По некои првични испитувања со хартииена лента, се поставиле на ударни картички ..." За обработка на овие удирани со ударни картички, првиот познат како "Hollerith картички" тој го измислил keypunch, сортирач и табулатор единица рекорд машини. Овие пронајдоци се темелат на податоци преработувачката индустрија. Во 1896 година го основал Сумирање Машинска компанијата (кој подоцна стана јадрото на IBM). Додавање на контролниот панел (plugboard) на неговиот 1906 Тип и табулатор дозволен тој да направи различни работни места, без да биде физички изградена. До крајот на 1940 година, имаше неколку единица рекорд калкулатори, како што се IBM 602 и IBM 604,на чиј контролни панели има наведена низа (листа) на работењето и на тој начин се програмабилни машини. Пронаоѓањето на фон Нојман архитектура дозволува компјутерските програми да бидат зачувани во компјутерската меморија. Раните програми мораше да биде внимателно направена со користење на инструкции (основно работење) на одредена машина, често во бинарна нотација. Секој модел на компјутер, најверојатно, ќе користат различни инструкции (машински јазик) да ја изврши истата задача. Подоцна, собранието јазици се развиени кои му дозволуваат на програмерот наведените инструкции во текст формат, влегуваат кратенки за секоја операција наместо кодот. Во 1954 година на бројот и специфицирање адреси во симболична форма (на пример, да додадете X, ВКУПНО). Внесување на Програмата во асемблерски јазик е обично полесно, побрзо, и помалку склон кон човечка грешка од користење на машински јазик, но бидејќи е асемблерскиот јазик е малку повеќе од една поинаква нотација за машина јазик, било кои две машини со различни инструкции исто така имаат различни собрани јазици. Во 1954 година, FORTRAN бил измислен, тоа било првиот високо ниво на програмски јазик да има функционална имплементација, наспроти само дизајн на хартија (Високо ниво на јазик во многу општи термини, било секој програмски јазик кој им овозможува на програмерот да пишуваат програми во смисла дека се повеќе апстрактно од асемблерски јазикчни инструкции, односно на ниво на "повисоко" од она на асемблер јазикот.) Тоа е дозволено на програмерите да наведете пресметки со внесување на формулата директно (на пример, Y = X * 2 + 5 * x + 9). Програмскиот текст, или извор, се претвора во машински инструкција со користење на посебна програма наречена компајлер, што значи на програмата FORTRAN во машински јазик. Всушност, името FORTRAN значи "Формула  за превод". Многу други јазици се развиени, вклучувајќи и некои за комерцијално програмирање, како што COBOL. Програми уште најчесто се прават со влезно користење на ударни  картички или лента од хартија. (Види компјутерско програмирање во перфокарта ера). До крајот на 1960-тите години, складирање на податоци во уред и компјутерски терминали станале евтини доволно така што програмита може да биде создадена со пишување директно во компјутери. Текст едитори се развиени така што е дозволено промени и исправки да се направат многу полесно отколку со картички. (Обично грешка во картичка значеше дека на картичката мораше да биде отфрлена и да биде заменета со друга картичка.) Како што времето напредуваше, компјутери направиле гигантски скокови во областа на моќ на обработка. Ова доведе до нови програмски јазици кои се повеќе апстрахирани од основните хардверски. Популарни програмски јазици на модерната ера вклучуваат C + +,C, Objective-C, Visual Basic, SQL, HTML со PHP, ActionScript, perl, Java, JavaScript, Ruby, Python, Хаскел и многу други. Иако овие јазици на високо ниво обично прават поголеми трошоци, зголемување на брзината на современите компјутери ја направи употребата на овие јазици многу повеќе попрактична  отколку во минатото. Овие се повеќе апстрахирани јазици обично се полесни да се научат и да се овозможи на програмерот да развиваат апликации многу поефикасно и со помалку код. Сепак, на јазиците на високо ниво сè уште се непрактични за неколку програми, како што се оние каде ниско ниво хардвер контрола е потребна или каде што максималната брзина на обработка е од витално значење. Компјутерско програмирање стана популарна кариера во развиениот свет, особено во САД, Европа, Скандинавија и Јапонија. Поради високата цена на трудот на програмерите во овие земји, некои форми на програмирање се повеќе предмет на надворешно изведување (увезена програмска опрема и услуги од други земји, обично по пониска плата), што ја прави програмирачките кариерни  одлуки во развиените земји повеќе комплицирани, додека зголемување на економски можности за програмерите во помалку развиените области, особено Кина и Индија.