Menu

Nakov.com logo

Thoughts on Software Engineering

Професия PHP Developer: как се става PHP уеб разработчик? Как да науча PHP? От къде да започна с PHP?

PHP Web DevelopmentДнес ще разкажа подробно за професията “PHP Web Developer” и как се става PHP програмист, с какви софтуерни технологии работят PHP разработчиците и как можем да се научим на PHP уеб разработка, съвременни уеб технологии, работа с бази данни и PHP frameworks, от къде да стартираме и какво да учим, стъпка по стъпка. По-конкретно ще обясня за:

  • Езикът PHP и екосистемата около него.
  • Платформата LAMP (Linux + Apache + MySQL +  PHP / Python / Perl).
  • PHP MVC Frameworks и как да пишем организирано и структурирано сериозни PHP проекти.
  • Връзката между PHP уеб разработката и HTML5 платформата и уеб front-end технологиите (HTML, CSS, JavaScript, DOM, AJAX, REST, JSON, WebSockets, JS библиотеки, JS frameworks и други).

Ще обясня за стъпките през които минава всеки един начинаещ програмист, за да овладее професията “PHP Developer” и защо няма особена разлика дали учиш PHP, JavaScript, C#, Python или друг език за програмиране, както и кои са фундаменталните умения на софтуерните разработчици, които не зависят от конкретните езици и технологии за разработка. Ще изясня защо трябва да преминем през основните етапи от изучаването на професията PHP Web Developer: овладяване на програмирането (без значение от езика), развиване на алгоритмично мислене, натрупване на базови познания по компютърни науки и софтуерно инженерство, развиване на технологични умения с PHP, MySQL, HTML, CSS и JS и трупане на практически опит с PHP уеб разработката.

Професия “PHP уеб разработчик” – видео

Гледайте видеото от Facebook включването на живо със Светлин Наков по темата “Как се става PHP програмист?“, в което всичко описано в тази статия е обяснено в по-големи детайли, с примери от практиката и въпроси на живо:

Какво работят PHP програмистите?

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

PHP програмистите са програмисти, които използват езика PHP и технологиите от PHP екосистемата (платформата LAMP, базата данни MySQL, front-end уеб технологиите HTML, CSS, JavaScript и различни JS библитеки) за разработка на уеб сайтове, уеб приложения и уеб базиран софтуер. По-конкретно, PHP разработчиците:

  • Пишат PHP-базирани уеб приложения.
    • PHP програмистите изграждат уеб базиран софтуер с PHP, MySQL, различни PHP библиотеки и PHP технологични рамки (frameworks).
  • Пишат PHP back-end.
    • PHP програмистите изграждат сървърна логика за съхранение и обработка на данни с PHP, MySQL, ORM технологии за опростен достъп до бази данни и други сървърни PHP технологии и технологични рамки (frameworks), разработват REST услуги (RESTful back-end services) и сървърни компоненти с PHP.
  • Създават уеб front-end с HTML + CSS + JS и JS библиотеки и технологии.
    • По природа PHP е сървърна (back-end) технология и се използва заедно с front-end технологии като HTML, CSS и JS, които визуализират данните на уеб приложението в уеб браузъра.
    • Затова всички PHP програмисти владеят до голяма степен съвременни технологии за изграждане на уеб потребителски интерфейси като HTML, CSS, JavaScript, AJAX, REST, WebSockets и JavaScript библиотеки като jQuery, Angular и React.
  • Използват инструменти за PHP разработка като:
    • Инструменти за инспектиране на MySQL бази данни като phpMyAdmin и MySQL Workbench.
    • Linux операционна система и Cron задачи, уеб сървър Apache, сървър за проксиране на уеб трафик nginx, инструменти за виртуализация като Docker и Vagrant.
    • Пакетни системи PEAR и Composer за включване на PHP библиотеки, дебъгер Xdebug, frameworks за unit testing като PHPUnit.
  • Използват среди за разработка (IDE) като:
    • Eclipse for PHP, PhpStorm, Netbeans for PHP, Aptana Studio, Zend Studio, Vim, Sublime Text, Atom, Visual Studio Code и други.
  • Имплементират комуникация между клиентски front-end приложения и сървърен PHP код с AJAX и REST, по web socket или с друга съвременна технология за комуникация в уеб среда.
  • Ползват бази данни като MySQL, PostgreSQL, MongoDB и други през PHP интерфейси като PDO и MySQLi и обектно-релационни ORM технологии за PHP като Eloquent ORM, Doctrine, Yii Active Record и други.

Еволюцията на PHP

PHP започва като прост скриптов език за създаване на динамични уеб страници. Поради своята леснота за работа и леснота за научаване и в комбинация с широката поддръжка от уеб хостинг компаниите, PHP лека полека се утвърждава като лидерът при езиците за сървърна уеб разработка, който задвижва половината Интернет сайтове в света (в добрите си години), най-вече чрез платформи за CMS и e-commerce като WordPress, Drupal, Joomla, OpenCart, Magento.

Към 2017 г. PHP задвижда 37% от топ милион сайтовете в Интернет (източник).

В началото (преди PHP 5) езикът PHP е процедурно-ориентиран и това му донася славата на “езика на мазачите” заради често срещана в миналото лоша организация и затруднена поддръжка на PHP кода, с липса на стандарти, с огромен брой безразборно разпръснати функции в глобалния scope, с безразборно навързани PHP файлове, без свястна Unicode поддръжка и с много проблеми, особено при по-големи проекти.

В по-новите си версии (след PHP 5) езикът PHP става съвременен обектно-ориентиран език, силно повлиян от Java и поддържа всички съвременни ООП парадигми (namespaces, класове, интерфейси, обекти, абстракция, наследяване, полиморфизъм, капсулация, изключения и други).

В най-новите си версии (с идването PHP 7  и PHP 7.1) постепенно в PHP е въведена възможността за типизация на данните (type hinting), която значително намалява грешките и подобрява организацията на кода.

С по-новите версии на PHP в езика навлиза и функционално програмиране, което дава повече гъвкавост на разработчиците: first-class functions (функцията като стойност на променлива), higher-order functions (функцията като аргумент на друга функция), анонимни функции и closures (затваране на състояние във функция).

PHP започва като интерпретеруем език, но в последните години за него са разработени и виртуални машини като HHVM и оптимизации в Zend Engine (най-разпространената PHP импелемнтация), които многократно ускоряват производителността му.

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

В съвременния си вид PHP вече не е език за мазачи и може да се ползва за добре структурирани, качествени уеб проекти, използващи добри практики за разработка и качествен код, базирани на модерни парадигми за разработка, не отстъпващи на лидери в сървърното програмиране като Java, C# и Node.js. Научете повече за кадърното използване на PHP технологиите от общността “PHP: The Right Way“.

Факти за PHP. Знаете ли, че?

  • Стартовата заплата на един junior PHP developer е 800-1000 лв. чисто.
  • PHP и MySQL са в топ 5 на най-търсените технологии в софтуерната индустрия в България.
  • PHP технологиите задвижват 1/3 от Интернет сайтовете в целия свят света.
  • Езикът PHP се използва от над 5 милиона програмисти в целия свят.
  • PHP технологиите се ползват за разработка на уеб приложения и back-end системи.

Какво е PHP?

PHP е съвременен скриптов език за сървърно уеб програмиране с отворен код, който съчетава процедурно, обектно-ориентирано и функционално програмиране. Предназначен е за сървърна (back-end) уеб разработка: за писане на уеб приложения и уеб услуги.

PHP е много широко използван език и задвижва стотици милиони сайтове по целия свят, най-вече около open-source екосистемата на WordPress, Drupal, Magento, OpenCart и десетки други уеб CMS системи, уеб магазини, форуми, блогове и други уеб софтуери.

PHP разработчиците обикновено използват базата данни с отворен код MySQL (или по-навият й вариант MariaDB), за да съхраняват данните на уеб приложението във вид на таблици с редове и колони (използвайки релационна схема). Връзката между PHP и MySQL става директно с интерфейса MySQLi или PDO. Понякога вместо MySQL се ползва друга база данни, например PostgreSQL, Oracle, SQL Server, SQLite или MongoDB.

Какво е LAMP?

Платформата LAMP е традиционната среда за изпълнение на PHP уеб приложения. LAMP означава Linux + Apache + MySQL + PHP и представлява стек от back-end технологии за уеб разработка с PHP.

  • Linux като операционна система изпълнява в себе си уеб сървъра Apache (или уеб прокси сървъра nginx в комбинация с няколко Apache инстанции).
  • При постъпване на HTTP заявка Apache сървърът изпълнява заявения от заявката PHP скрипт (чрез модула mod_php извиквайки PHP интерпретатора).
  • PHP скриптът обработва клиентската HTTP заявка, изпълнява някаква бизнес логика, тегли или записва някакви данни от MySQL базата данни и връща обратно към клиента HTML страница с резултата от зявката.
  • Всичко това се комбинира с традиционни Linux инструменти и софтуери като cron jobs, sendmail/ qmail / друг пощенски сървър, Linux потребители и процеси, Linux файлова система и права на файловете, Linux отдалечен достъп (ftp, ssh, scp, nfs), криптосистема OpenSSL, DNS сървър bind, уеб прокси сървър nginx, Apache .htaccess конфигурация, mod_rewrite правила и други.

Рядко за production среда и по-често за development среда се използва и Windows варианта на LAMP, който се нарича XAMPP (Apache + MariaDB + PHP + Perl за Windows).

Какво е PHP MVC Framework?

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

Болшинството PHP frameworks използват MVC (Model-View-Controller) като архитектурна парадигма за разделяне на кода на изгледи (които визуализират данните и потребителския интерфейс), контролери (които изпълняват заявките, променят базата данни и подготвят данните за визуализация) и модели (които съхраняват данните в база данни).

Всички сериозни PHP разработки ползват някакъв PHP framework. Това може да е както framework написан от програмиста (custom PHP framework), така и някой добре известен индустриален open-source PHP MVC framework (което е по-масовия случай) като Symfony, Laravel, CodeIgniter, Yii, Zend, Slim, Phalcon, CakePHP или друг.

Най-използваните към 2017 г. в практиката PHP frameworks са Symfony и Laravel.

  • Symfony е мощен PHP web development framework с отворен код, който се грижи за всички аспекти на PHP уеб разработката: налага използване на MVC архитектура, задава структура на PHP приложението, занимава се с routing на HTTP заявките, намиране и изпълнение на контролерите, извикване на изгледите и рендиране на HTML страницата през Twig темплейти, достъп до базата данни през Doctrine ORM технологията, работа с форми, валидация и прехвърляне на данни, автентикация и управление на потребители, управление на сесия, кеширане и много други. Върху Symfony са изградени широко използване PHP приложения като форумната система phpBB и CMS системата за управление на съдържание Drupal.
  • Laravel е съвременен PHP framework за уеб разработка с отворен код, който се грижи за всички аспекти на PHP уеб разработката: налага използване на MVC архитектура, задава структура на PHP приложението, занимава се с routing на HTTP заявките, намиране и изпълнение на контролерите, извикване на изгледите и рендиране на HTML страницата през Blade темплейти, достъп до базата данни през Eloquent ORM технологията, работа с форми, валидация и прехвърляне на данни, автентикация и управление на потребители, управление на сесия, кеширане и много други. Сравнително нова технология, направена по съвременни парадигми и технологии, близка по концепции до ASP.NET MVC.

Защо да уча PHP технологии (език PHP, LAMP, Symfony / Laravel, HTML, CSS и JavaScript)?

Ако искате да се захванете с програмирането сериозно и да го направите своя професия, трябва да положите доста труд: да овладеете умението да пишете програмен код и да натрупате опит с програмирането, да развиете алгоритмично мислене чрез решаване на стотици практически задачи и да изучите поне една платформа за разработка (например HTML5, Java, PHP, .NET или друга).

Защо да се захващате точно с PHP екосистемата (с технологии като PHP, MySQL, Symfony, Laravel, HTML, CSS и JS), а не с някоя друга платформа за софтуерна разработка?

  • Езикът PHP е най-използваният съвременен скриптов език за сървърно уеб програмиране в света, насочен към разработка на back-end и уеб приложения. Той комбинира процедурно, обектно-ориентирано и функционално програмиране. PHP е лесен за учене, с добра документация и има огромна общност от разработчици около него.
  • Огромно търсене на PHP програмисти. Предлагането на работа за PHP developers е сред топ 5 на най-използваните и най-търсените в софтуерната индустрия в България. Заради дигитализацията на бизнеса и ежедневието, нуждата от уеб разработчици постоянно нараства. И понеже PHP е сред най-предпочитаните платформи за уеб разработка (поради своята леснота на използване, технологична зрялост и огромна общност от специалисти), расте и нуждата от PHP разработчици. Погледнете в сайтовете за обяви за работа за PHP програмисти, за да се уверите колко много отворени позиции има за PHP разработчици.

Как да стана PHP програмист?

Философията на СофтУни за обучение по професия “PHP уеб разработчик” комбинира изграждане на солидни умения по програмиране и развиване на алгоритмично мислене с фундаментални знания от компютърните науки и софтуерното инженерство и съвременни PHP и уеб технологии за изграждане на модерни уеб приложения. Учебният план обхваща:

  • Фундаментални софтуерни умения: отлично ниво на програмиране, работа със сорс контрол системи и екипно взаимодействие с Git и GitHub, обектно-ориентирано и функционално програмиране, бази данни и стандарти за уеб разработка;
  • Практически уеб back-end технологии с PHP: LAMP стек, Linux, Apache уеб сървър, език PHP, сървър за бази данни MySQL и език за заявки SQL, ORM системи за опростен достъп до данни, и PHP MVC frameworks за улеснена разработка на уеб приложения и REST услуги, инструменти за unit testing, управление на PHP пакети и инструменти за PHP разработка;
  • Технологии за уеб front-end разработка: HTML5 платформа, HTML и CSS за уеб потребителски интерфейс, JavaScript, jQuery, AJAX, REST и JSON за динамично съдържание.

Обучението за PHP програмисти в СофтУни е много сериозно и задълбочено и изгражда всички базови познания и практически умения за успешен кариерен старт за junior позиции в софтуерната индустрия.

Как се става PHP програмист?

Да станеш PHP програмист означава да се научиш да програмираш добреда изучиш PHP програмирането и уеб технологиите и да натрупаш практически опит с разработката на PHP уеб приложения. Това включва няколко стъпки:

  1. Натрупване на умения по програмиране – не зависят от езика за програмиране.
  2. Развиване на алгоритмично мислене – не зависи от езика за програмиране.
  3. Овладяване на основите на компютърните науки и софтуерното инженерство – не зависи от езика за програмиране.
  4. Овладяване на PHP, MySQL и уеб front-end технологиите за разработка на софтуер.
  5. Трупане на практически опит с PHP уеб разработката.

Натрупване на умения по програмиране

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

Научете се да програмирате (натрупайте coding skills) с езика PHP, JavaScript или друг и подходяща среда за разработка като PhpStormWebStormVisual Studio Code, Sublime Text или другo IDE. Това включва работа с променливи и данни, писане на условни конструкции (проверки) и цикли, използване на функции, работа с масиви и списъци, обработка на символни низове (стрингове), работа с асоциативни масиви и обекти, работа с файлове и скриптове, дефиниране на класове, работа със среда за разработка (IDE) и други базови програмни умения.

Можете да започнете безплатно с курсовете по основи на програмирането в СофтУни. Те са изключително подходящи за напълно начинаещи, както и за по-напреднали, защото систематично поднасят знанията и ви въвличат в много практика. Може да стартирате с език за програмиране по избор: PHP, JavaScript, C#, Java, Python, C++ или друг.

Развиване на алгоритмично мислене

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

Алгоритмичното мислене, известно още като “математическо мислене” и “инженерно мислене“, е донякъде свързано с овладяване на базови математически концепции, които са мостът между математиката и програмирането: работа с координатни системи, използване на вектори и матрици, разбиране на поведението на дискертни и недискретни математически функции, концепцията “чиста функция”, крайните автомати и state machines, базови понятия от комбинаторика и статистика, понятията “алгоритъм”, “сложност на алгоритъм”, математическо моделиране на проблеми от практиката и други. Всичко това се изучава когато теоретичните постановки, известни от математиката, се използват и приложат на практика чрез решаване на задачи и писане на работещ код.

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

Овладяване на основите на компютърните науки и софтуерното инженерство

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

Ето някои от по-важните области от софтуерното инженерство, които са необходими за да започнеш работа в областта на компютърното програмиране с PHP технологиите:

  • Работа със сорс контрол системи (хранилища за сорс код) като Git, SVN и платформи за колаборация като GitHub, клониране на repository, промяна, commit и push на промените, решаване на конфликти и merge, работа със задачи (issue tracking), упправление на задачи с инструменти като GitHub Issues и Trello. Изучават се в курса по фундаментални основи и принципи на програмирането, както и по време на екипните проекти (teamwork) в СофтУни.
  • Обектно-ориентирано програмиране (ООП) и шаблони за дизайн, работа с класове и интерфейси, капсулация на данни (encapsulation), наследяване на класове и имплементация на интерфейси, абстракция и полиморфизъм, хвърляне и хващане на изключения, работа с OO design patterns. Изучават се в курса “PHP основи” и донякъде в курса JavaScript за напреднали (тъй като JS имплементтира ООП по свой специфичен  начин).
  • Функционално програмиране, работа с функции, функционални изрази, ламбда функции, функции от по-висок ред, функции, връщащи функция, затваряне на състояния с closure, IIFE, revealing module и други. Изучават се в курсовете по JavaScript основи и JavaScript за напреднали и донякъде в курса “PHP основи“.
  • Бази от данни и SQL, създаване на релационна схема чрез моделиране на таблици и връзки (E/R diagram), писане на SQL заявки за CRUD операции чрез DML заявките, извличане на данни с SQL SELECT, селекция, съединения на таблици (joins), филтриране с WHERE, сортиране, групиране, обединения, ползване на SQL функции, вмъкване на данни с SQL INSERT, изтриване на данни с SQL DELETE, модификация на данни с SQL UPDATE, работа с DDL заявки. Изучават се в курса “PHP основи“, където е отделено сериозно внимание на базата данни MySQL (или по-новият й вариант MariaDB).
  • Уеб приложения и HTTP – познания в тази област са необходими на всеки съвременен софтуерен разработчик, тъй като болшинството от мрежовата комуникация между приложенията работи с HTTP протокола и WebSockets. Концепциите за изграждане на уеб приложения и REST услуги са също основополагащи за практическата софтуерна разработка. Такива фундаментални знания и умения за уеб разработка се изграждат в няколко тренинга от PHP професията в СофтУни: курсът “Софтуерни технологии“, курсът “PHP MVC Frameworks” и курсът по “Front-End JavaScript разработка”.
  • Front-end разработка, работа с HTML, CSS и JavaScript са сред редовните изисквания в обявите за работа за софтуерни инженери, програмисти и разработчици. Тези умения се развиват на добро ниво в курса по HTML и CSS и в курсовете за JavaScript front-end разработка.
  • Софтуерни архитектури, client-server, MVC – това са концептуални познания от софтуерното инженерство. Те се изучават на начално ниво в курса “Софтуерни технологии” и се развиват в технологичните курса за създаване на PHP уеб приложения “PHP MVC Frameworks” и курса за JS приложения “JavaScript front-end разработка” чрез много практика.
  • Базови познания по структури от данни и алгоритми: сложност на алгоритъм, работа с линейни структури данни (списък, стек, опашка), дървовидни структури (дървета  графи) и хеш-таблици (речници), алгоритми за търсене и сортиране, рекурсия, комбинаторика, графи, динамично оптимиране и други. Изучават се подробно в курсовете по структури от данни и алгоритми.
  • Компонентно тестване (unit testing), mocking (подпъхване на функционалност) и работа с инструменти за unit testing като Mocha и Chai и концепцията за писане на тестовете преди кода (test-driven development – TDD). Изучават се в курса JavaScript за напреднали.
  • За развитието на един софтуерен инженер, от плюс са уменията за работа с операционни системи и мрежи, познаване на хардуера, уменията за мрежово програмиране, разбиране на парадигмите на конкурентно (паралелно) програмиране, използване на процеси и методологии за разработка на софтуер (например Scrum и agile development), разбиране на концепции и инструменти за софтуерно тестване, разбиране на принципи и инструменти за софтуерен дизайн и много други. Такива знания и умения се развиват с изборните курсове в СофтУни, както и при натруване на опит по време на екипните проекти.

Овладяване на PHP технологиите за уеб разработка и уеб front-end технологиите

Освен фундаменталните знания за програмирането и софтуерното инженерство, един PHP разработчик трябва да научи на добро ниво и най-използваните PHP технологии и уеб front-end технологиите:

  • Технологии за PHP уеб разработка: изучават се доста сериозно в СофтУни по време на професионалните модули от професията “PHP Developer”, най-вече в курсовете “PHP основи” и “PHP MVC Frameworks“:
    • PHP технологиите включват владеене на езика PHP, базата данни MySQL, пакетния мениджър Composer, различни PHP библиотеки, интерфейси към бази данни като PDO и MySQLi, обектно-ориентирано програмиране с PHP, обработка на HTTP заявки и генериране на HTTP отговори, работа с HTTP cookies и сесии, обработка на данни, изпратени от HTML форми и други.
    • Работа с PHP frameworks за разработка на уеб приложения като Symfony и Laravel. Това включва инсталация и настройка на framework, създаване на проект, създаване на изгледи (views) и ползване на templating engines като Twig и Jade, писане на контролери с GET заявки за визуализация на данни и уеб формуляри и POST заявки за изпращане на форми и имплементиране на CRUD операции, работа с форми, валидация и въвеждане на данни, писане на модели (data models), работа с бази данни през ORM engine, контрол на достъпа, автентикация, потребители и авторизация и много други типични функционалности за уеб приложенията.
  • Технологии за уеб front-end разработка:
    • В учебния план за PHP професията са включени и задълбочени курсове по уеб сайтове с HTML и CSS, сериозни курсове по концепциите на JavaScript езика и практически технологичен курс по “JavaScript front-end разработка”.
    • Учи се и се практикува сериозно изграждането на уеб сайтове и уеб-базиран потребителски интерфейс с HTML и CSS, основни HTML тагове, структура на HTML документ, семaнтичен HTML, работа с HTML елементи и атрибути, div, span, параграфи, таблици, форми и контроли, CSS селектори и правила за разположение (layout) и стилизиране и други.
    • Изучава се изграждането на уеб front-end приложения, които извличат данни от back-end REST service с AJAX или друга комуникация и рендират Web UI от JSON данни чрез шаблони, компоненти или друга UI технология. Използват се jQuery и JS библиотеки за front-end JS разработка, ООП в JavaScript, closures, шаблони за модул и revealing module, promises и библиотеки за JS-базиран user interface.
  • По време на PHP курсовете студентите създават RESTful back-end APIs и server-side Web apps с PHP и PHP MVC frameworks като Symfony и Laravel, ползват template engines като Twig, Jade и Mustache, рендират динамичен HTML или подават данни към клиента в JSON и други формати.

Трупане на практически опит с PHP и уеб технологиите

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

Поради недостиг на време в университета се правят малки проекти с учебна цел и това е съвсем нормално, защото никой не иска да учи 10 години, за да излезе с 10-годишен опит от университета. Учебните проекти дават начален опит, но не могат да ви направят опитни PHP уеб програмисти. Колкото и да се стараете, след едно добро обучение можете да излезете на ниво програмист-стажант или най-много junior developer.

Как да стана PHP програмист?

Да се върнем на основния въпрос: “Как да стана PHP програмист?“, “Как да науча PHP програмирането и уеб front-end технологиите и да започна работа като junior PHP developer?“, “Как да науча PHP програмирането“? Имам кратък и наистина добър отговор:

Запиши PHP професията в СофтУни

Не е лесно, нито бързо, нито става без учене, но ако инвестираш в себе си сериозно, за 1-2 години, стъпка по стъпка, ще получиш добро начално PHP и front-end ниво като за започване на работа като PHP програмист. Успех!

Comments (8)

8 Responses to “Професия PHP Developer: как се става PHP уеб разработчик? Как да науча PHP? От къде да започна с PHP?”

  1. Dobromir Stefanov says:

    Може ли да попитам, какво трябва да се подразбира с PHP 6? 🙂

    • nakov says:

      Не разбрах въпроса. Ако питаш за версията на PHP -> ползваме и преподаваме последната версия (към момента PHP 7.1).

  2. PHp6 says:

    И мен ме интересува PHP 6. Къде го видяхте?
    Защото такава версия няма, но вие от къде го знаете в измисленият “Университет”.

    • nakov says:

      Явно някой не чете внимателно. Разбира се, че няма PHP 6, но въпросът беше грешно зададен от някой посетител на сайта.

      Аз отговорих, че преподаваме PHP 7.1 и имаме ултра силни преподаватели, с по над 10 години опит и завидни лекторски умения. Препоръчвам с две ръце този курс на всеки, който иска да се занимава с PHP и уеб разработка: https://softuni.bg/trainings/1746/php-web-developmentbasics-september-2017

  3. google says:

    It is in reality a great and helpfu piece of information. I’m glad that you simply shared this useful info with us.

    Please stay us informed like this. Thanks for sharing.

  4. https://ferrann.co/blog/cortes-de-pelo-para-mujer/

    Професия PHP Developer: как се става PHP уеб разработчик? Как да науча PHP? От къде да започна с PHP? | Svetlin Nakov’s Blog

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

  6. […] PHP програмиране: как да стана PHP програмист? […]

RSS feed for comments on this post. TrackBack URL

LEAVE A COMMENT