Blinky
Owner
Програмистите не са ли просто компютърни гении?
Програмирането е креативен процес, извършван от програмисти, за да обучат даден компютър как да извършва определена задача. Холивуд помога за изграждането на образ на програмистите, представящ ги като вездесъщи специалисти, които могат да разбиват пароли за секунди или да подобряват представянето на машини с 500% без особени усилия. За съжаление, реалността не е толкова интересна!
Значи програмирането е скучно? Не!
Компютрите могат да бъдат програмирани да правят интересни неща. От няколко години във Великобритания се използва система, която чете регистрационните номера на автомобилите. Колата се вижда от камера, снима се и изображението се обработва веднага, а данните от регистрационната табела са извлечени, проверени в националната база данни на регистрационните номера и ако автомобилът е откраднат, сигнал за това се появява в рамките на четири секунди.
С подходящите приставки компютрите могат да бъдат програмирани да извършват стоматологични прегледи. Това би било много интересно, макар и леко страшно!
Два различни вида софтуер
По-старите компютри, които са с черно-бели екрани и без мишка, обикновено използват конзолни приложения. Все още има много такива компютри, които са доста популярни с бързото въвеждане на данни.
Другият вид приложения изискват мишка и се наричат GUI програми или управлявано от събития програмиране. Те се използват на компютри с Windows, Linux и Apple Mac. Програмирането на тези приложения е малко по-трудно, отколкото на конзолните, но по-новите програмни езици като тези значително го улесниха:
Visual Basic
Delphi
C#
Какво правят програмите?
По принцип програмите манипулират цифри и текст. Те са изграждащите елементи на всички програми. Програмните езици ви позволяват да ги използвате по различни начини, например да добавяте числа или да съхранявате информация на диска за повторно търсене.
Тези цифри и текст се наричат променливи и могат да се управляват поотделно или в структурирани групи. В C++ една променлива може да се използва за преброяване, а структурна променлива борави с данните за ведомост на всеки служител, като например:
* Име
* Заплата
* Идентификационен номер в компанията
* Общо платен данък
* Социално-осигурителен номер
Една база данни може да съдържа милиони подобни записи и да ги извиква много бързо.
Програмите трябва да бъдат написани за операционна система
Програмите не съществуват от самосебе си, а им е нужна операционна система, освен ако самите те не са операционната система!
Win 32
Linux
Mac
Преди Java, програмите трябваше да бъдат пренаписвани за всяка операционна система. Програма, която върви на Linux, не можеше да се използва с Windows или Mac. Но с Java е много по-лесно да напишеш програма веднъж, след което да я използваш с всички операционни системи, тъй като тя се състои от общ код, наречен байткод, който след това бива интерпретиран. Всяка операционна система има Java интерпретатор, наречен Java Virtual Machine (JVM), написан за нея, който знае как да интерпретира байткод. C# има нещо подобно.
Програмите използват код на операционните системи
Освен ако не продавате софтуер и искате да го използвате на всички различни операционни системи, най-вероятно ще трябва да го модифицирате за нови версии на същата операционна система. Програмите използват функции и характеристики на операционната система и, ако те се променят, програмата също трябва да бъде променена, защото в противен случай няма да работи.
Много приложения, написани за Windows 2000 или XP използват частта Local Machine на регистъра. Но това създава проблеми с Windows Vista и Microsoft съветва хората да пренапишат засегнатия код. Microsoft вече са го направили, за да стане Vista по-сигурна.
Компютрите могат да разговарят с други компютри
Когато са свързани в мрежа, компютрите могат дори да стартират програми един на друг и да си прехвърлят данни чрез портове. Програмите, които пишете, също правят това. Именно поради тази причина програмирането е малко по-трудно, тъй като трябва да се справите с някои ситуации, например:
Когато мрежовия кабел бъде издърпан.
Когато друг компютър в мрежата бъде изключен.
Някой модерни програмни езици позволяват писането на програми, чиито части се стартират на различни компютри. Това е възможно само, ако може да се използва паралелизъм. Някои проблеми не могат да бъдат разделени по този начин:
Девет жени не могат да родят едно дете заедно само за един месец!
Програмни периферии, свързани с вашия компютър
Ако имате някаква периферия, например видео камера, контролирана от компютър, тя ще има кабел, който я свързва с компютъра, както и софтуер, който я контролира. Периферията може да има още
* Приложно-програмен интерфейс (API)
* Комплект за разработване на софтуер (SDK)
които ви позволяват да напишете софтуер, за да я контролирате. Така можете да я програмирате да се включва и да записва, когато не сте в къщи. Ако компютърът ви може да разчита нива на звук от микрофона, можете да напишете код, който да стартира камерата, когато нивото на звука е над зададен от вас лимит. Много периферии могат да бъдат програмирани по този начин.
Игрите са просто програми
Компютърните игри използват специални библиотеки:
DirectX
XNA
SDL
Така те могат да се свързват много бързо с хардуера на дисплея. Екраните на игрите се ъпдейтват над 60 пъти за няколко секунди, а софтуерът на 3D игрите трябва да движи всичко в 3D пространство, да засича сблъсъци и други ефекти и да предава 3D изгледа към плоска повърхност (екрана) по 60 пъти в секинда. Това е много кратък период, но хардуерът на видео картата извършва голяма част от работата по предаването. GPU чиповете са оптимизирани за бързо предаване и могат да извършват тези операции до 10 пъти по-бързо от CPU, дори и с най-бързия софтуер.
Заключение
Много програмисти пишат софтуер като свой креативен израз. Мрежата е пълна с уебсайтове с отворен код, разработени от непрофесионални програмисти, които са щастливи да споделят своя код. Linux е създаден по същия начин, когато Линус Торвалдс споделя кога, който е написал.
Интелектуалното усилие за написването на средна по размер програма може да се сравни с написването на книга, като единствената разлика е, че при книгите не се налага отстраняването на грешки. Откриването на нови начини да направиш нещо или да решиш сериозен проблем носи радост. Ако уменията ви да програмирате са достатъчно добри, можете да си намерите работа на пълно работно време като програмист.
Програмирането е креативен процес, извършван от програмисти, за да обучат даден компютър как да извършва определена задача. Холивуд помога за изграждането на образ на програмистите, представящ ги като вездесъщи специалисти, които могат да разбиват пароли за секунди или да подобряват представянето на машини с 500% без особени усилия. За съжаление, реалността не е толкова интересна!
Значи програмирането е скучно? Не!
Компютрите могат да бъдат програмирани да правят интересни неща. От няколко години във Великобритания се използва система, която чете регистрационните номера на автомобилите. Колата се вижда от камера, снима се и изображението се обработва веднага, а данните от регистрационната табела са извлечени, проверени в националната база данни на регистрационните номера и ако автомобилът е откраднат, сигнал за това се появява в рамките на четири секунди.
С подходящите приставки компютрите могат да бъдат програмирани да извършват стоматологични прегледи. Това би било много интересно, макар и леко страшно!
Два различни вида софтуер
По-старите компютри, които са с черно-бели екрани и без мишка, обикновено използват конзолни приложения. Все още има много такива компютри, които са доста популярни с бързото въвеждане на данни.
Другият вид приложения изискват мишка и се наричат GUI програми или управлявано от събития програмиране. Те се използват на компютри с Windows, Linux и Apple Mac. Програмирането на тези приложения е малко по-трудно, отколкото на конзолните, но по-новите програмни езици като тези значително го улесниха:
Visual Basic
Delphi
C#
Какво правят програмите?
По принцип програмите манипулират цифри и текст. Те са изграждащите елементи на всички програми. Програмните езици ви позволяват да ги използвате по различни начини, например да добавяте числа или да съхранявате информация на диска за повторно търсене.
Тези цифри и текст се наричат променливи и могат да се управляват поотделно или в структурирани групи. В C++ една променлива може да се използва за преброяване, а структурна променлива борави с данните за ведомост на всеки служител, като например:
* Име
* Заплата
* Идентификационен номер в компанията
* Общо платен данък
* Социално-осигурителен номер
Една база данни може да съдържа милиони подобни записи и да ги извиква много бързо.
Програмите трябва да бъдат написани за операционна система
Програмите не съществуват от самосебе си, а им е нужна операционна система, освен ако самите те не са операционната система!
Win 32
Linux
Mac
Преди Java, програмите трябваше да бъдат пренаписвани за всяка операционна система. Програма, която върви на Linux, не можеше да се използва с Windows или Mac. Но с Java е много по-лесно да напишеш програма веднъж, след което да я използваш с всички операционни системи, тъй като тя се състои от общ код, наречен байткод, който след това бива интерпретиран. Всяка операционна система има Java интерпретатор, наречен Java Virtual Machine (JVM), написан за нея, който знае как да интерпретира байткод. C# има нещо подобно.
Програмите използват код на операционните системи
Освен ако не продавате софтуер и искате да го използвате на всички различни операционни системи, най-вероятно ще трябва да го модифицирате за нови версии на същата операционна система. Програмите използват функции и характеристики на операционната система и, ако те се променят, програмата също трябва да бъде променена, защото в противен случай няма да работи.
Много приложения, написани за Windows 2000 или XP използват частта Local Machine на регистъра. Но това създава проблеми с Windows Vista и Microsoft съветва хората да пренапишат засегнатия код. Microsoft вече са го направили, за да стане Vista по-сигурна.
Компютрите могат да разговарят с други компютри
Когато са свързани в мрежа, компютрите могат дори да стартират програми един на друг и да си прехвърлят данни чрез портове. Програмите, които пишете, също правят това. Именно поради тази причина програмирането е малко по-трудно, тъй като трябва да се справите с някои ситуации, например:
Когато мрежовия кабел бъде издърпан.
Когато друг компютър в мрежата бъде изключен.
Някой модерни програмни езици позволяват писането на програми, чиито части се стартират на различни компютри. Това е възможно само, ако може да се използва паралелизъм. Някои проблеми не могат да бъдат разделени по този начин:
Девет жени не могат да родят едно дете заедно само за един месец!
Програмни периферии, свързани с вашия компютър
Ако имате някаква периферия, например видео камера, контролирана от компютър, тя ще има кабел, който я свързва с компютъра, както и софтуер, който я контролира. Периферията може да има още
* Приложно-програмен интерфейс (API)
* Комплект за разработване на софтуер (SDK)
които ви позволяват да напишете софтуер, за да я контролирате. Така можете да я програмирате да се включва и да записва, когато не сте в къщи. Ако компютърът ви може да разчита нива на звук от микрофона, можете да напишете код, който да стартира камерата, когато нивото на звука е над зададен от вас лимит. Много периферии могат да бъдат програмирани по този начин.
Игрите са просто програми
Компютърните игри използват специални библиотеки:
DirectX
XNA
SDL
Така те могат да се свързват много бързо с хардуера на дисплея. Екраните на игрите се ъпдейтват над 60 пъти за няколко секунди, а софтуерът на 3D игрите трябва да движи всичко в 3D пространство, да засича сблъсъци и други ефекти и да предава 3D изгледа към плоска повърхност (екрана) по 60 пъти в секинда. Това е много кратък период, но хардуерът на видео картата извършва голяма част от работата по предаването. GPU чиповете са оптимизирани за бързо предаване и могат да извършват тези операции до 10 пъти по-бързо от CPU, дори и с най-бързия софтуер.
Заключение
Много програмисти пишат софтуер като свой креативен израз. Мрежата е пълна с уебсайтове с отворен код, разработени от непрофесионални програмисти, които са щастливи да споделят своя код. Linux е създаден по същия начин, когато Линус Торвалдс споделя кога, който е написал.
Интелектуалното усилие за написването на средна по размер програма може да се сравни с написването на книга, като единствената разлика е, че при книгите не се налага отстраняването на грешки. Откриването на нови начини да направиш нещо или да решиш сериозен проблем носи радост. Ако уменията ви да програмирате са достатъчно добри, можете да си намерите работа на пълно работно време като програмист.