Први покушаји стварања уређаја за рачунарствоповезане са механичким (искључиво хардверским) јединицама. Касније су сличне идеје спроведене у виду система са такозваном „тврдом логиком“, тј. такође имао чисто хардверску имплементацију. Такви уређаји имали су један значајан недостатак - могли су да реше проблеме само једног типа и нису могли да се модификују током рада.
Стога је логичан наставак развојарачунарски системи су били стварање таквих уређаја који су се могли флексибилно прилагодити како би се решио произвољан проблем. А то је могуће само уз употребу софтвера и уређаја који раде под контролом ових програма.
Стварање софтвера постало је друговелики пробој на пољу рачунарске технологије. То је обавезан додатак хардверу. Током деценија развоја програма створене су различите врсте софтвера. То укључује програме система, апликација и алата.
Системски програми су дизајнирани да пружеоперативност самог система, интеракција хардвера и програма, интеракција рачунара и корисника. То укључује оперативне системе, управљачке програме, услужне програме, сервисне програме и друге врсте софтвера. Тренутно су најраспрострањенији оперативни системи породице Виндовс и Уник.
Разне врсте софтвера,повезане са апликацијом, омогућавају кориснику да решава широк спектар задатака - од куцања до сложене метаморфозе са специјализованим подацима. Апликативни програми укључују: уређиваче текста и графике, табеле, игре, преводиоце итд. Кориснички програм сам дефинише скуп апликативних програма, у зависности од сопствених потреба.
Никада нема пуно софтвера,али све би требало да буде у разумним границама. С једне стране, што је више програма инсталирано на рачунару, то је он свестранији. С друге стране, ови програми захтевају више ресурса и могу значајно смањити перформансе система.
Пре неколико година био је веома популаранрачунарски курсеви за почетнике или за кориснике одређених софтверских производа. Иако је за напредне кориснике доступна било која врста софтвера за савладавање помоћу система помоћи.
Софтвер алата јетакве програме помоћу којих можете да креирате друге програме. Ови програми се називају програмским језицима и састоје се од уређивача програмског кода, преводиоца и повезивача. За разлику од прва два типа, за коришћење алата потребне су одређене професионалне вештине. Примери алата су Делпхи, Пасцал, Ц ++ и други.
Дакле, различите врсте софтвера имају различите намене и различит степен сложености.