Програмиране

Кой курс за професия бек-енд програмист да избера – със C или Java?

Този въпрос е много актуален сред кандидатите за курсовете на CODE ACADEMY. Двата ни курса за професия бек-енд програмист включват двумесечни модули по C или Java. По време на първата ни кампания за подбор много от кандидатите не бяха сигурни към кой от двата курса да се насочат.

На пръв поглед единствената разлика е профилиращият програмен език – дали да бъде C или Java. Съвсем разбираемо е, че изборът ви в кой от двата да инвестирате време и усилия, трябва да е информиран. Затова и ще ви дадем някои основни насоки, които да ви помогнат.

Независимо дали се сблъсквате с програмирането за първи път или имате опит с други програмни езици, ще ви бъде интересно да прочетете тази статия. Надяваме се също тя да ви бъде полезна при избора на курс в CODE ACADEMY.

C или Java да изберете в курс за професия бек-енд програмист? И двата са добра идея!

Можете да се създавате голямо разнообразие от софтуер

Практически всичко може да бъде написано с помощта на един от двата езика.

„Езикът за програмиране е просто едно изразно средство. От качествата и уменията на програмиста зависи как и за какво ще го използва“.

Това е казвал неведнъж Анастас Асенов, програмист с повече от 30 години опит и лектор в CODE ACADEMY. И нашите курсисти доказаха това на практика в своите първи проекти.

Отличен избор са за основен програмен език

Нито С, нито Java могат да бъдат описани като лесни за научаване. Най-вече за кандидат-програмисти, които нямат никаква основа и опит. И двата езика имат сравнително малко на брой ключови думи: С има 35, а Java-50. Запомнянето на синтаксиса им няма да ви затрудни. Но за да се научите да използвате тези ключови думи се изисква много учене и много писане на код.  

Това, което е сигурно – и двата езика ще ви дадат много добър поглед върху основни концепции в създаването на софтуер. Те са много добър избор, с който ще поставите солидни основи. В последствие ще ви бъде много по-лесно да продължите да учите нови програмни езици.

Програмистите в световен мащаб ги харесват и пишат на тях

C и Java са общоцелеви езици за програмиране.  Не са най-модерните, но все още са сред най-популярните, защото дават много възможности на програмистите, които пишат на тях. Освен това имат много библиотеки с готови кодове, които изключително улесняват разработчиците.   Според класацията на Jaxenter за месец май 2020 С е на първо място по популярност, а Java на второ.

Работодателите в ИТ сферата търсят програмисти, които могат да пишат на тези езици

Както вече споменахме, нито C, нито Java са сред най-новите програмни езици. Те са използвани в разработката на много известни софтуерни продукти, които са от дълги години на пазара. Да, технологиите се променят бързо, но работещите и качествени софтуери не остаряват и не се изхвърлят. Те постоянно се оптимизират, кодът се развива и се подобряват, за да отговарят на новите изисквания на бизнеса. 

Няма как обаче да бъдат пренаписани изцяло и модернизирани до степен, че да изчезне връзката с първоначалния вариант. Стабилните софтуерни компании търсят програмисти, които биха могли да разберат и този първоначален вариант на техния софтуерен продукт.  Затова и търсенето на добри програмисти с един от тези два езика е винаги актуално.

В нашите курсове обучаваме бъдещите програмисти да четат и оценяват кода на своите колеги. Защото всеки програмист, преди да напише 100 реда код, трябва да е прочел поне 10 000 реда код от проекта. Работим с курсистите върху оформянето на кода и неговата четливост, защото рано или късно кодът се чете от новопостъпващи програмисти. Ако той е сложен и объркващ, това води до големи загуби на време и ресурси.

В заключение ще ви повторим очевидното. И двата курса на CODE ACADEMY за професия бек-енд програмист са еднакво перспективни. Перспективни са за сериозните кандидати, готови да положат необходимите усилия да се учат. Да си програмист значи да си способен бързо да се адаптираш към промяната.

Както С, така и Java ще ви дадат солидна основа да се учите и адаптирате към всякакви предизвикателства, които професията ще постави пред вас. Не забравяйте, че успешно завършилите CODE ACADEMY курсисти получават шанс за професионално развитие. Разгледайте условията, при които можете да се включите в курсовете, които предлагаме.

Нашите курсове:

Курс по програмиране за професия Back-end Junior Developer със SQL, PL/SQL, Pro*C и C

Курс по програмиране за професия Back-end Junior Developer със SQL, PL/SQL, Embedded SQL и Java

Професията програмист – какво ще ви е нужно

Усвояването на професията програмист изисква отделяне на достатъчно време, внимание, много писане на код и постоянно самоусъвършенстване. Можете да опитате да се подготвите индивидуално, но за да постигнете най-добрите резултати, е по-добре да изберете подходяща програма за обучение с квалифицирани и опитни преподаватели. Те ще бъдат ваши ментори и ще можете да се обръщате към тях. Това е най-бързият начин да се научите.

Всеки, който реши да стане част от ИТ индустрията, се пита: колко време трябва да уча, за да практикувам професията програмист и какво ми е нужно?
Опитът ни до момента показва, че мотивирани хора с основни coding skills и развито в тази посока мислене, могат да започнат да пишат софтуер само след няколко месеца ускорено обучение по програмиране. За желаещите да учат програмиране, които нямат никаква предварителна подготовка, ще бъде много трудно да се справят с тази висока скорост на обучение. Те трябва да помислят за по-дълга програма (поне 1,5 години), с която да развият постепенно своето алгоритмично мислене и умения за писане на код.
Независимо дали започвате от 0 или вече имате опит с програмирането, пригответе се за ежедневно учене/писане на код (по 5-8 часа). Също така ви съветваме да изберете курс по програмиране за професия, а не само за един програмен език.

Курс за професията програмист

Имайте предвид, че изучаването само на един програмен език няма да е достатъчно, за да започнете работа като програмист. Ето какво казва Валентин Вълчев, лектор в CODE ACADEMY с повече от 20 години опит като Java програмист:

„Програмирането не е само писане на код. То е екипна работа. Включва много рисърч и постоянно учене, защото постоянно излизат нови технологии, за които не знаем, а се налага да използваме. Но това не трябва да ни спира.“

За да започнете да практикувате професията, ви е нужна комбинация от теоретични познания по три или повече технологии (езици за програмиране, библиотеки, среди за разработка). Необходима е и много практика (писане на код) в реална работна среда (проекти). Курсовете на CODE ACADEMY са замислени така, че да покриват тези изисквания и да ви осигурят професия. Тяхната цел е да станете младши бек-енд програмисти.

Двата ни курса включват:

Стимулираме нашите курсисти постоянно да упражняват наученото с практически задания. Горди сме, че те се справят все по-добре с предизвикателствата, пред които ги поставяме.

След успешно завършване, курсисти ни ще имат възможност да започнат работа в ит компания, разработваща комплексен финансов софтуер.  Там те ще продължат да трупат познания и ще стават все по-добри в разработката на софтуер. Курсовете на CODE ACADEMY дават стабилна основа за кариерна реализация. Но както вече споменахме, професията програмист изисква постоянно самоусъвършенстване, за да останете в крак с новите технологии. Горна граница няма. Само от вашата мотивация зависи колко можете да научите и какви висоти можете да достигнете.

Разгледайте по-подробно учебните планове на двата ни курса!

Нашите курсове:

Курс по програмиране за професия Back-end Junior Developer със SQL, PL/SQL, Pro*C и C

Курс по програмиране за професия Back-end Junior Developer със SQL, PL/SQL, Embedded SQL и Java

Сорс код – може ли да бъде разбираем?

Хубавият сорс код отговаря на две важни изисквания. Първо, той е правилно написан и изпълнява зададения по спецификация краен резултат. Второ, той е лесен за четене и дописване от други програмисти, освен автора си.
Разбираемият сорс код, който е добре изтестван, прави лесни рефакторирането, разрастването и модифицирането на системата. Такъв код формира солидна база, в която програмистите не се страхуват да правят промени и тези промени стават бързо.

Писането на код е социално занимание – правят го екипи от хора. Сорс кодът, написан от един програмист, не съществува сам за себе си в пространството. Той се чете и често се дописва от други програмисти. За да го модифицират, те трябва първо да го разберат.

Какво става, ако кодът не е добре написан?

Грешките в кода се откриват сравнително лесно. Но нечетимият и неразбираем код може да остане незабелязан много дълго време. Докато друг колега програмист, който се опитва да оправи бъг или да добави нова функционалност, не попадне на него и не се опита да разбере какво прави този сорс код преди да го допише. Ако не разбере правилно и недвусмислено, ще последват редица проблеми. Неразбираемият код може да бъде използван за нещо, за което не е бил предвиден, и някоя функционалност на програмата може да спре да работи.

Поставя се началото на модел, който води до все по-голямо влошаване на качеството на кода. Програмистът, който се опитва да дописва неразбираем код, губи много време в опити да разбере как работи кодът. Вместо да го направи по-ясен и лесен за четене, той прави съвсем малки промени (за да не счупи нещо) и резултатът е дори още по-неразбираем код. Следващият програмист губи още повече време да разбере какво прави кодът, изнервя се, преписва кода или го пренаписва изцяло. Така се появяват нови грешки или старите биват преписани. Работата на екипа се забавя, спира развитието.

Какво означава разбираем сорс код и как да го постигнете?

Вероятно всеки програмист има свой отговор на този въпрос. За Code Academy и CODIX това означава код, който е лесен за четене и ясен, който може лесно да се дописва и модифицира от други програмисти, освен от автора си. Можете да го постигнете и ние ще ви научим как.

Принципи, които ще ви помогнат да пишете разбираем сорс код

Те са безброй, тук ще се спрем само на най-основните:Единична отговорност. Всички градивни елементи на кода – класове, методи, променливи – следват принципа „един елемент прави едно единствено нещо“. По този начин за четящия е по-лесно да разбере какво именно е това нещо. Съответно е по-ясно, при евентуален проблем, коя част от кода трябва да се промени.

Добра структура

Кодът е лесен за четене, ако е логично структуриран и последователен – с функции, класове, модули.

Имената са красноречиви

Имената на класовете, функциите и променливите улесняват четенето и разбирането на сорс кода. Имайте предвид, че код с добри имена е плод на много усилия от страна на програмисти, отделили много време за постигането им.

Простота и конкретност

Софтуерът е достатъчно сложен. Кодът, на който е написан, трябва да е възможно най-прост и конкретен. Програмистите не използват много въображение, когато пишат, и гледат да избягват излишното усложняване на нещата. Функциите обикновено са кратки и лесни за четене. Класовете също не трябва да са прекалено големи.

Коментарите обясняват „защо“, а не „как“

Повечето код би трябвало да се разбира от самосебе си. А коментарите да запълват само евентуални празноти.

Рефакторинг (преработка на код)

Базите с код растат. Когато простият клас получи повече отговорности, той също пораства и става по-сложен. Разбираемите бази са такива заради постоянно рефакториране. Новият сложен клас може да бъде разделен на няколко части или променен така, че да остане лесен за четене.

Добре изтестван

Добре изтестваният код може да бъде променян лесно и без страх, че нещо в него може да спре да работи. Тестването с автоматизирани тестове помага на кода да остане разбираем. Без тестове, рефакторирането става много рисковано и програмистите може да спрат да го правят. С тестове няма причина да не бъдат правени дори и големи и рисковани рефакторирания, благодарение на които кодът да остава все така разбираем и лесен за разчитане.

Най-добрата проверка дали сорс кодът ви е лесно четим, е да го покажете на други програмисти за мнение. Помолете ги да споделят дали го намират за ясен. Нека могат да ви задават въпроси. Ако кодът е разбираем, ще има малко или никакви въпроси. Обърнете специално внимание, ако забележите, че някой изобщо не е разбрал какво сте написали и задава много въпроси. Всеки въпрос или нещо неясно ви отваря възможности да направите сорс кода си по-разбираем.

Ако и вие и други програмисти сте съгласни, че сорсът е разбираем, значи сте на прав път. Изброените по-горе принципи биха ви помогнали да направите кода още по-разбираем и ясен. Фокусирайте се върху това вашият код да е ясен за вас и за хората, с които работите.
Има много източници на информация по темата как да пишем разбираем код и начини да направим кода по-ясен. Препоръчваме ви тази статия

Нашите курсове:

Курс по програмиране за професия Back-end Junior Developer със SQL, PL/SQL, Pro*C и C

Курс по програмиране за професия Back-end Junior Developer със SQL, PL/SQL, Embedded SQL и Java

Езици за програмиране и какво прави всеки един от тях

Езици за програмиране са изкуствено създадени изразни средства, с които програмистите дават инструкции на машината как да изпълни първоначално зададената в спецификацията цел. Съществуват множество класификации на езиците, но най-общо според предназначението им можем да ги разделим на специализирани езици и езици с общо предназначение.

Накратко за специализираните езици

Те са вероятно хиляди, всеки създаден за някаква определена цел. Но има и такива специализирани езици за програмиране, които се използват по-масово и са по-известни. Това са, например, езиците, на които се пишат базите данни . 75% от пазара на системите за управление на бази данни (СУБД) се държи от Oracle DBMS, Microsoft SQL Server и MySQL, но има и други. SQL е специализиран език за връзка със СУБД. PL/SQL (въведен от Oracle в края на 80-те години) е процедурно разширение на декларативния език SQL.

Езиците за програмиране, на които се пишат бази данни, работят само в средата на базите данни и служат за процедурите, които се изпълняват в самата база данни. Тя представлява записи, разположени във файлове върху дискови масиви. Освен това има сървър, който пуска система за управление на бази данни (СУБД) – един или много процеси, пуснати на сървърите, които пишат и четат от тези записи по дисковите масиви. Сървърната част на базите данни представлява група процеси, които пишат и четат от дисковите масиви. В тези процеси може да се програмира процедурата, която се върти на сървъра с базите данни езика на PL SQL. Database програмирането се осъществява в средата на базата данни. Програмата работи там.

Друг интересен пример за език за програмиране с общо предназначение е JavaScript . Първоначално е създаден като език, с който да се автоматизират уеб страниците, но постепенно от специализиран, се превръща в език с общо предназначение. Ще поговорим повече за него и трансформацията му в следващите редове.

Езици за програмиране с общо предназначение

Наричат ги още общоцелеви езици, с общо приложение или интерактивни езици. С тези езици за програмиране се описва определен алгоритъм, който тръгва от едно състояние на данните и след определен брой стъпки докарва данните до друго състояние, а именно крайния резултат.

90% от програмистите в света работят на тях. Комерсиалният софтуер е написан на тези езици.

Java

Този език е подобен на С++. При създаването си е рекламиран като език, който ще бъде интернет базиран и съвременен. Програмите, написани на него, се обновяват (ъпдейтват) при стартирането си. Например, както се случва при стартиране на Android приложенията. Java e многоцелеви език, само че на него се пишат уеб базирани приложения, а не операционни системи. При трислойна архитектура Java работи на бизнес нивото – на второто ниво.

Има Garbage Collection. Това улеснява работата на програмиста, защото той не трябва да мисли какво да прави с паметта, която е заделил, но вече не му трябва. Това улеснение, обаче, се заплаща с по-ниска производителност – езикът е с голям размер и не винаги работи достатъчно бързо. Програмата работи по-бавно с няколко десетки процента, от колкото ако е написана на С. От 2009 г. е собственост на Oracle.

Софтуер, писан на Java: Android, вградени приложения за Android, игри и уеб-базирано съдържание.

Python

Много прост и подреден език, лесно се пише, лесно се запомня синтаксиса. Той е много изразителен език и също има Garbage Collection. Наравно с Java има един от най-големите библиотечни масиви. Но част от библиотеките му стоят на ниво студентски проект – не се поддържат, грешките не се чистят и програмистите недоволстват. Python в момента е на нивото на Java преди да я купи Oracle. Въпреки това можем да кажем, че пред този език има светло бъдеще и има какво още да видим от него. Среща голяма конкуренция в лицето на Java Script

Софтуер, писан на Python: софтуер, свързан с интернет на нещата и изкуствен интелект. Гигантите Google и Facebook широко го използват в свои разработки.

JavaScript

Това е езикът, на който в момента пишат най-много програмисти в света. На него се пише огромно количество софтуер. В началото е специализиран език, създаден за автоматизиране на уеб страници. С годините се развива и в момента е отделен език с общо приложение. Създадени са голям брой библиотеки за JavaScript. Всеки реализатор на Internet Explorer или Google Chrome има някакви екстеншъни на JavaScript и един JavaScript не може да работи еднакво добре на различни браузъри. В момента този език е нещо огромно.

През последните години вече JavaScript е стандартизиран, ето линк към стандарта  https://www.ecma-international.org/publications/standards/Ecma-262.htm

Софтуер, писан на JavaScript: това е скриптов език, на него не се пише отделен софтуер, а по-скоро части от него – например потребителски интерфейс на интернет базирани приложения.

C++

Стъпил е върху езика С. С годините се е получил един прекалено голям език за програмиране. Но той може да се използва за програмиране буквално на всичко. Много софтуер е написан и продължава да се пише на него.

C++ има всичките недостатъци на С и всички екстри на останалите езици. Например, можеш да му пуснеш и Garbage Collection. C++ има няколко стандарта, именувани на годините, в които са излезли –  1998, 2003, 2011 е огромна стъпка напред все едно е още един С++, 2014 и 2017 с още нови неща. Догодина излиза стандарт 2020 – още една много голяма стъпка напред. Все едно първият език се е умножил по 3 и в момента има три езика С++.

С годините С++ става много голям. Получава се така, защото в езика постоянно се включват техники и възможности за програмиране от други езици – поддръжка на тредове и нови начини за комуникация. Някои фирми се отказват да го ползват като цялостна концепция, а използват само части и стандарти от него. С++ нарушава аксиомата да се поддържа софтуерът прост.

Софтуер, писан на С++: може да се използва за писането на ВСИЧКО, което се сетите.

C

Езикът е измислен в лаборатории и в производството (в програмирането). С е най-простият език но и най-тежкият за писане на него, с най-малко неща за ползване в помощ на програмиста. С е най-старият от езиците с общо предназначение, обектноориентиран. Той е език за системно програмиране – програми, които осигуряват работата на периферни устройства (драйвери), операционни системи.

Програмите, писани на С, работят много близо до процесора и до паметта, много бързи системи, използват всичко в максимална степен. ЕЗИКЪТ Е ЛЕСЕН за научаване, но на него се пише трудно и бавно, трудно се откриват грешки и неопитният програмист може да направи големи бели с него. Съдържа само 32 ключови думи. Проблемът е, че самият език ти дава много степени на свобода, но за съжаление при тази голяма свобода повечето от нещата, които правиш, са срещу теб.

C e остър нож с който може да се “нараните”, ако не знаете как да го ползвате. С е по-бърз от C#, обаче на C# се пише по-бързо и лесно. Който го овладее, в последствие ще има основа за повечето програмни езици с общо предназначение, които произлизат от С.

Софтуер, писан на С: операционни системи, драйвери.

C#

Един от фамилията #(sharp)-езици: C#, F#, M#, Q# и други. Той е отговорът на Microsoft на Java. И той има Garbage Collection. Огромното предимство, може би ще минат Java с това, е че предлагат огромен фреймуърк с всичко, което се сетиш за този език. Готови компоненти за всичко, добре изтествани и лесно свързващи се една с друга. На този език се правят бързо средно големи програми. Езикът има добре развити системи за анализ, които ти помагат да си изчистиш бързо грешките.

Предлага повече възможности от Java. Много хора пишат на този език. Много хора от Java минаха на този език, защото е по-лесно, по-бързо и има много готови неща. Още като започват всичко при тях е изрядно. Имат една от най-добрите среди за разработка – Visual Studio  за С, С++ и С#.

Софтуер, писан на C#: програми за и части от самия Windows, PlayStation Suite, Xbox, Windows Phone, Kaspersky Internet Security

Искате ли да научите повече за програмирането и неговите изразни средства? Запишете се на нашите обучения и ние ви научим на всичко, което е необходимо, за да практикувате професията.

Нашите курсове:

Курс по програмиране за професия Back-end Junior Developer със SQL, PL/SQL, Pro*C и C

Курс по програмиране за професия Back-end Junior Developer със SQL, PL/SQL, Embedded SQL и Java

Как се създава компютърна програма – 4 част. Тестери, билдъри, деплоймънт екип, поддръжка и DevOps

В предишните три статии от поредицата разгледахме ролите на бизнес анализаторите, софтуерните архитекти и програмистите при създаването на софтуера. В последната част ще ти разкажем за останалите специалисти, наети в ИТ компанията.
Ето ги и тях:

Тестери

Сорс кодът е написан и идва ред той да бъде изтестван, за да се види дали работи и изпълнява задачите, които се искат от него по спецификация. Това е съществен етап от създаването на всяка една компютърна програма. Колегите, които се занимават с тази задача, се наричат тестери или Quality Assurance (QA). Тестерите проверяват функционалността за грешки и връщат разработката на автора й, ако грешките са прекалено много.

Всеки софтуер има грешки и работи с тях, но те трябва да са под определено ниво.

Тестерът проверява и връща кода за преработка и “фиксване на бъговете”. Това се повтаря, докато грешките не се сведат до минимум, програмата работи почти без проблеми и мениджърският екип не реши, че програмата вече работи в нормални рамки. Когато това се случи, кодът отива при билдърите.

Билдъри

Билдъри се нарича екипът, който сглобява всички парчета от кода и прави инсталационен пакет на програмата. Можем да си представим билд системата като един конвейер, на чийто вход се пускат всички парчета код, писани от програмистите, пускат се скриптове, които изпълняват определени задачи, минава през някакви етапи на компилиране и на изхода излиза изпълним файл (.ехе). Той се слага някъде, където клиентите могат да го свалят, инсталират и да използват новосъздадената компютърна програма. Версиите на пакетите могат да бъдат trial, beta, alpha, pre-release, release. Какъв да е типът на версията зависи от това колко бъгове има в програмата. Когато броят на бъговете е голям, версията е pre-release. Когато стигне до release грешките трябва да са на такова ниво, че програмата да е използваема и потребителят да може да изпълни всички use cases, описани в спецификацията на първа стъпка.

Деплоймънт екип

Това е екипът, който внедрява. Някои програми имат нужда от придружаващо внедряване в клиентския софтуер и това е работата на деплойърите. Обикновено те са много опитни програмисти, тъй като задачата по внедряването изисква комплексни познания. Този екип често работи на място при клиента и му помага да пусне своята компютърна програма в работен режим.

Екип по поддръжка

Има го във всяка произвежаща софтуер фирма. Обикновено това е екип от различни специалисти на няколко нива. Първо ниво поддържка са в пряк контакт с клиента и са в състояние да разрешат най-често повтарящите са запивания, свързани с нормалната експлоатация на програмата. Второ и трето ниво съпорт са специалисти, отстраняващи проблеми с различна трудност, възпрепятстващи нормалното използване на програмата. Понякога в следствие на клиентски запитвания или оплаквания се налага да се прави разработка на нова функционалност на продукта или промяна на съществуваща такава. Тогава се минава отново през целия цикъл на създаване на софтуерната програма.

DevOps

Целият процес по планиране на архитектура, създаване на софтуера, тестването и деплойването му след това е подкрепян от Development Operations софтуерни инженери (DevOps). Техните отговорности са многобройни, но най-грубо казано те отговарят за определяне на нуждите от хардуер за разработка, тестване и ползване на софтуера, отговарят за безпроблемното му деплойване (пускане в експлоатация), осигуряват средства за автоматизация и следят за сигурността на системата.

Когато човек работи съвсем сам, той трябва да може да се превъплъщава в различните роли, които изброихме – трябва да е бизнес анализатор, архитект, програмист, тестер, билдър и т.н. Но в общия случай хората се специализират в някой от етапите на изпълнение на проекта и работят само това.

Ако и ти искаш да се включиш в ИТ екипа на CODIX Bulgaria – един от световните лидери в разработката на финансов софтуер – запиши се на нашите обучения за професията Junior Back-end Developer.

Нашите курсове:

Курс по програмиране за професия Back-end Junior Developer със SQL, PL/SQL, Pro*C и C

Курс по програмиране за професия Back-end Junior Developer със SQL, PL/SQL, Embedded SQL и Java

Как се създава компютърна програма – 3 част. Програмистите

Най-сетне на сцената се появяват програмистите. В тази статия ще разкажем в какво се състои тяхната задача и какви са качествата, които ги правят успешни.

Когато софтуерният архитект е готов, в процеса се включва ръководителят на програмистите. Съвместно двамата разписват план как ще се изпълнява проектът, в зависимост от логиката на самия проект. Например няма как да направиш Front-end без да имаш база, от която да се взимат данните.

Когато строиш сграда, първо се полагат основите. И при софтуера има логична последователност на действията.

От ръководителя зависи да се направи план за изпълнение във времето и той се грижи планът да се изпълнява (доколкото това е възможно). Той решава колко екипа от по колко програмиста ще работят. Той определя през колко време и какво ще пишат. После прави диаграма кое след кое ще се случи. Задава примерни срокове за програмната разработка на всяка една стъпка. Тези примерни срокове за важни както за планиране на самата софтуерна разработка, така и за калкулирането на цената на програмата.

И накрая, но не на последно място, ръководителят на програмистите разделя голямата задача на много малки задачи, които разпределя на програмистите, като се съобразява с техния опит и ниво. Junior програмистите получават по-лесни задачи, а Senior, съответно, най-трудните. Той прави и периодични срещи с екипите, за да се информира за хода на изпълнението на задачите.

Програмистите

С тяхната работа започва писането на кода – производството. Програмистите трябва да преведат архитектурата на „езика на машината“, така че тя да изпълни първоначалната спецификация за клиента.

Когато до програмиста стигне неговата част, независимо дали е младши или опитен, всичко в нея трябва да е дефинирано предварително. Работата му не е да мисли как да решава проблемите (да избира начина, по който ще се изчисляват лихвите, например), а да създаде сорс код, с който еднозначно да каже на машината какво да прави.

Програмистът трябва да седне и да опише по възможно най-добрия начин даденото му решение, да напише добре подреден код с коментари и лесно разбираем за останалите. Ето защо, ако бъде открито нещо по архитектурата, което не може да се изпълни, тя трябва да се върне за преработка.

Успешният програмист разбира какво точно се иска от него и спазва основната аксиома в програмирането.

Тя е „keep it simple”.

Да пишеш такъв код, че когато друг човек седне да работи с него, да може да го дописва, да го развива и да поддържа софтуера. Ако сорс кодът е добре написан и е ясен за следващия колега, който седне да пише по него, той ще живее и ще се ползва дълги години.

Обогатяването му, редактирането му и използването му отново стават лесни и помагат на екипа да е ефективен.  Има програми, които живеят десетки години. Хубаво е винаги да се мисли, че софтуерът може да се ползва дълго и как той ще се поддържа. Затова и кодът се пише съобразно с това правило.

Методи на разработка

Има различни методи на разработка, но в общия случай на всеки програмист се дава да „коди“ някакво парченце от цялото, което той трябва да напише. После той проверява как работи то само по-себе си. Той трябва да има предвид, че парченцето трябва и да сработи в един момент с другите парченца, написани от другите програмисти.

Ето защо екипите се събират често, за да коментират кой докъде е стигнал и всички да са в течение как върви работата на останалите. Тези срещи са изключително важни за работата на всеки един и за създаването на добър краен програмен продукт.

Ако екипната работа не е на ниво, няма да се получи желаният резултат. Затова и много важни умения, които успешният програмист притежава, освен използването на език за програмиране, са:

  • умение да презентира работата си;
  • да обясни на екипа и на шефа си свършеното;
  • да разбере свършеното от останалите;
  • да се съобразява с тях и да спази сроковете, които има, за да не бави и обърква работата на своя екип.

В етапа на разработката способността за работа в екип е високо ценено и необходимо умение, което всеки програмист, независимо дали Junior или Senior, е задължително да притежава.

Junior програмистите

Обикновено от тях не се иска експертно познание. Младшите програмисти са хора, които имат малък или среден опит. Те трябва да се вслушват в съветите на програмистите и Senior програмистите.

За да растеш в йерархията, трябва да натрупаш опит поне 1-2 години. Трупането на опит неминуемо е свързано с правене на грешки и това е съвсем в реда на нещата.

За да стане програмист, младшият трябва да направи определен брой типови грешки, да се поучи от тях, да участва в 1-2 проекта, да види как се програмира, да му откриват бъгове и той да си ги оправя. Това е придобиване на опит в програмирането.

Професията на програмиста може да се огледа и като занаят – има степени, определящи се от опита и майсторството: чирак, калфа и майстор. Как чиракът разбира, че е станал калфа? Когато младшият програмист вече е качил нивото, започва да получава по-сложни задачи и, естествено, това има цифрово изражение във възнаграждението му.

Senior програмистите

Това са виртуози, които владеят коденето до съвършенство. Те могат да изпълнят и най-трудните задачи, високо платени са и много търсени. Senior се става след години опит и постоянно надграждане на познанията, много труд и много учене.

За да си наистина добър и търсен програмист, трябва непрекъснато да се стремиш към развитие и да учиш нови езици за програмиране, нови конструкции и по-оптимални начини да си вършиш работата по най-добрия възможен начин.

Ако искаш да станеш програмист и да растеш успешно в йерархията на фирмата, първо трябва да преминеш дълъг процес на обучение. Можеш да кандидатстваш за нашите курсове за професия Junior програмист, които ще те подготвят с необходимите познания за професията. Ако преминеш успешно входящите тестове, обучението ти ще е безплатно. И кариерата ти ще започне в CODIX – един от световните лидери в разработката на финансов софтуер.

Нашите курсове:

Курс по програмиране за професия Back-end Junior Developer със SQL, PL/SQL, Pro*C и C

Курс по програмиране за професия Back-end Junior Developer със SQL, PL/SQL, Embedded SQL и Java

Как се създава компютърна програма – 2 част. Софтуерните архитекти

С предишната статия започнахме поредица за етапите от създаването на софтуера и професиите в ИТ компанията, които се включват на всеки един от тях. В тази статия ще разкажем за втората стъпка от процеса, когато в проекта се включат софтуерните архитекти.

Софтуерните архитекти

Спецификацията бива предадена на софтуерните архитекти (обикновено 1 човек или цял екип). Това са хора с много богат опит в програмирането, запознати с възможностите на различните програмни езици и технологии, както и с възможностите, наличностите и познанията на екипа.

Докато разглеждат спецификацията, подготвена от бизнес анализаторите, те трябва да преценят какво ще е най-подходящо да се използва за изграждане на софтуера. Тяхната задача е да опишат максимално подробно всичко, за да е напълно ясна задачата на програмистите.

Архитектите описват модулите, от които се състои софтуерът. Може да направят диаграми на обекти и класове. Описват или рисуват потребителския интерфейс на програмата – това, с което клиентът ще работи реално, външният вид на програмата.

Например къде ще има бутони, къде ще извежда отчети, какви прозорци ще се отварят, къде ще се въвеждат данните. Може да напишат и някакъв съвсем груб прототип на системата на uml език.

UML e специализиран стандарт за описване на софтуер от архитектурна гледна точка.

Това също все още не е програмиране.

На този етап се решава и каква ще бъде базата данни и каква ще бъде нейната мета структура (таблиците). За по-сложните софтуери тя се прави отворена, тъй като се предполага, че с развиването на софтуера базата данни също ще се развива, ще се появяват нови таблици, ще се увеличава броят на колонките и връзките между таблиците може да се променят.

Софтуерните архитекти дават първата версия на програмата с възможност за развитие на софтуера на базата. Те могат да кажат:

“Нашият софтуер ще е трислоен. Ще има front-end офис, който ще е уеб базиран и достъпен през браузър. Ще има server middleware и от него ще има връзка с базата данни.”

За всеки от тези елементи архитектите казват как и къде да бъдат написани и изпълнени. Уеб частта ще се пише в Angular на Javascript. Middleware частта ще се пише на Embedded SQL, C и Pro*C. A back-end ще бъде в база данни с хора-процедури.

Софтуерните архитекти описват и обясняват спецификацията така, че програмистите да я разберат и да могат да напишат кода.

В следващата статия от поредицата ще опишем какво се случва след като софтуерните архитекти приключат със своята част от работата и предадат заданието на програмистите.

Как се създава компютърна програма – 1 част

Нашите курсове:

Курс по програмиране за професия Back-end Junior Developer със SQL, PL/SQL, Pro*C и C

Курс по програмиране за професия Back-end Junior Developer със SQL, PL/SQL, Embedded SQL и Java

Как се създава компютърна програма – 1 част. Бизнес анализаторите

Когато става въпрос за компютърна програма, всеки човек автоматично я свързва с професията на програмиста. Компютърните програми се пишат от програмисти, това е обяснението за крайния потребител. Всъщност в производството на един софтуер вземат участие различни екипи от софтуерни професионалисти, които решават определени проблеми и вършат своя дял от работата. Програмистите са само една част от цялата картинка и категорично не са единствените наети в ИТ компанията.

В поредица от статии ще ти разкажем какво прави всеки един от хората, „замесени“ в производството на програмата, и каква длъжност заема в софтуерната фирма.

Бизнес анализаторите

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

Тяхната задача е да оценят казуса на клиента и да решат дали за него може да се напише работещ софтуер. Те са специалистите, които осъществяват връзката между света на бизнеса и света на ИТ хората.

Клиентът има идея за крайния резултат, който иска да постигне. Примерно той иска да натисне копче и да види конкретни данни и графики. А анализаторите, които познават бизнес аспекта на дейността, оглеждат от всички страни и разписват всички случаи на употреба (use cases), които ще доведат до искания от клиента краен резултат.

Още на този първи етап на анализ всичко трябва да стане напълно ясно. Ако има някакви процедурни или научни проблеми, те трябва да се изяснят от бизнес анализаторите. Например трябва да са ясни формулите, по които ще се изчисляват лихви, или как ще се управляват складовите наличности. Трябва да е ясно всичко, което в последствие ще бъде въведено като програмен код.

Спецификация

След пълния анализ на заданието се прави описание, с което бизнес хората „превеждат на ИТ език“ заданието, за да може човекът или екипът, които следват, да го разберат и да свършат своята част от работата. Този превод се нарича спецификация и той още не е програмиране.

В следващата статия от поредицата ще те запознаем с човека/екипа, който ще се появи в проекта след бизнес анализаторите.
Следва продължение.

Нашите курсове:

Курс по програмиране за професия Back-end Junior Developer със SQL, PL/SQL, Pro*C и C

Курс по програмиране за професия Back-end Junior Developer със SQL, PL/SQL, Embedded SQL и Java

Абонирай се за нашия бюлетин

Последвай ни: