Full Stack Developer

Аплицирај

Програма

Преку совладување на програмските јазици, програмата на PingDevs за FullStack developer ќе ви овозможи да стекнете солидно познавање за Backend и Frontend технологии.

Наставата ќе се изведува во просториите на PingDevs почнувајќи од 19:00 до 21:00 часот секој понеделник, среда и петок, додека пак, неделите се предвидени за практична работа. Предавањата ќе бидат достапни и преку Stream којшто ќе можете да го следите од дома. Така наставата ќе тече непрекинато, а видео-материјалите можат да служат како потсетник.

На самиот почеток од курсот, ќе ги поставиме стандардите за Agile software development. На секој од вас ќе му бидат доделени Github и Jira акаунти на кои што ќе ги поставуваме скриптите, кодовите и проектите. Комуникацијата ќе се одвива преку Slack каде сите заедно ќе го следиме процесот и развојот на индивидуалните и тимските проекти.

Со синхронизација на работните околини на тимот, ќе поставиме еднаква работна околина без разлика на оперативниот систем. Односно, ќе работиме на виртуелна машина под Linux и ќе ги научиме основните поставувања и команди.

Секоја недела, како дел од практичните вежби, ќе се работи на развивање Content Management System (CMS) којшто ќе биде изработен од секој ученик посебно. Со цел компаниите лесно да го препознаат вашиот труд и знаење, програмот ќе биде поставен на сервер кој ќе овозможи demo верзија, а кодот ќе биде прикажан на вашиот Github account. Деталите од програмата се опишани во продолжение. Некои од наведените програмски јазици ќе се изучуваат паралелно.

Linux

Oснови на Linux

Во првиот дел од овој курс, ќе се запознаете со оперативниот систем Linux. Основните команди во Linux терминалот, подесување на apache сервер, конфигурација и инсталација на PHP, преку инсталација на Vagrant и Homestead. Сетирање на вируелни хостови, инсталација на MySQL сервер, итн.

HTML, CSS, JavaScript

Запознавање со HTML, CSS и JavaScript

HTML (Hyper Text Markup Language) е стандарден јазик за креирање на веб-страници, кој ја опишува нивната структурата. За совладување на HTML, ќе го опфатиме следново:

  • Basic HTML Template
  • Elements
  • Attributes
  • Paragraphs
  • Styles
  • Formatting
  • Quotation
  • Comments
  • Colors
  • CSS
  • Links
  • HTML Images
  • Tables
  • Lists
  • Block and Inline Elements
  • The class Attribute
  • The id Attribute
  • Iframes
  • <script> Tag
  • HTML File Paths
  • <head> Element
  • Layout Example
  • Symbols
  • <form> Element

Основниот дел од web development-от ќе го поминете во еден здив. За да изработите основна веб-страница во HTML 4.01 Strict, неколку часа ќе се запознаете со HTML таговите и разликите помеѓу DOCTYPE декларациите за подоцна да ги стилизирате преку CSS. Откако страницата ќе добие зелено светло преку онлајн валидатор, продолжуваме со JavaScript.

CSS (Cascading Style Sheets) е јазик којшто го опишува стилот на HTML документот, односно ги опишува HTML елементите и нивниот приказ. Во овој дел од курсот ќе се запознаете со следново:

  • Syntax
  • How To
  • Colors
  • Backgrounds
  • Borders
  • Margins
  • Padding
  • Height/Width
  • Box Model
  • Outline
  • Text
  • Fonts
  • Icons
  • Links
  • Lists
  • Tables
  • Display
  • Max-width
  • Position
  • Overflow
  • Float
  • Inline-block
  • Align
  • Combinators
  • Pseudo-class
  • Pseudo-element
  • Opacity
  • Navigation Bar
  • Dropdowns
  • Image Gallery
  • Image Sprites
  • Attr Selectors
  • Forms
  • Counters
  • Website Layout
  • Specificity

По изучување на CSS, практично и креативно ќе научите да го стилизирате предходниот HTML документ. Со ова, ќе добиете јасна слика како се изработува дизајнот на една веб-страница и нејзиниот изглед до крајниот корисник. Воедно, ќе имате можност да ја изразите вашата креативност и сами да ја дизајнирате веб-страницата. Во текот на курсот, CSS ќе се применува постојано. По изучување на првиот дел од курсот, ќе ја совладате и практичната примена на LESS и SASS кои се препроцесори на CSS.

JavaScript е програмски јазик за HTML и Web development. Во овој дел од курсот, ќе се запознаете со основите на JavaScript.

  • Output
  • Statements
  • Syntax
  • Comments
  • Variables
  • Operators
  • Arithmetic
  • Assignment
  • Data Types
  • Functions
  • Objects
  • Events
  • Strings
  • String Methods
  • Numbers
  • Number Methods
  • Arrays
  • Array Methods
  • Array Sort
  • Array Iteration
  • Dates
  • Date Formats
  • Date Get Methods
  • Date Set Methods
  • Math
  • Random
  • Booleans
  • Comparisons
  • Conditions
  • Switch
  • Loop For
  • Loop While
  • Break
  • Type Conversion
  • Bitwise
  • RegExp
  • Errors
  • Scope
  • Hoisting
  • Strict Mode
  • this Keyword
  • Let
  • Const
  • Arrow Function
  • Classes
  • Style Guide
  • Best Practices
  • Mistakes
  • Performance
  • Reserved Words

Преку JavaScript, за првпат ќе ја примените математиката во програмирањето. Во овој дел од курсот, ќе се стекнете со знаење за основно програмирање и преку реални примери и задачи, ќе научите како да ги решавате практичните секојдневни проблематики. Секако, подетално ќе навлеземе во програмирањето во делот на PHP, но JavaScript ќе Ви ги отвори вратите за одредени програмерски Frontend позиции.

Bootstrap, JQuery и Работа со template

Bootstrap 4 е најновата верзија на Bootstrap, којшто е најпопуларен HTML, CSS и JavaScript framework за девелопмент на респонзивни, mobile-first веб-страници. Bootstrap 4 е комплетно бесплатен за користење и преземање. Еве што ќе поминете во овој дел:

  • Basic Bootstrap Template
  • Grid System
  • Text/Typography
  • Colors
  • Tables
  • Images
  • Jumbotron
  • Alerts
  • Buttons
  • Badges
  • Progress Bars
  • Spinners
  • Pagination
  • List Groups
  • Cards
  • Dropdowns
  • Collapsible
  • Navs and Navbars
  • Forms
  • Carousel
  • Modal
  • Tooltip
  • Popover
  • Toast

Во овој дел од курсот, преку изучување на Bootstrap 4, ќе ја препознаете разликата, потребата и можноста за креирање на едноставни, прегледни, брзи и mobile friendly веб-страници. Со помош на Bootstrap, ќе изработите целосна презентациска веб-страница за само неколку часа.

JQuery е JavaScript библиотека која овозможува динамичко "out-of-the-box" однесување. Со JQuery се создаваат креативни ефекти и исчитување на "endpoints", како и други функции коишто ќе ги научите во овој дел од курсот:

  • About jQuery
  • Using jQuery Core
  • Events
  • Effects
  • Ajax
  • Plugins
  • Performance
  • Code Organization
  • jQuery UI
  • jQuery Mobile

Со изучување на JQuery ќе знаете како да изработите динамична веб-страница. Ќе научите како да направите повик до API со цел да ги преземете податоците, да ги претставите на веб-страницата и истите да ги стилизирате со различни ефекти.

Во текот на изучувањето на HTML, CSS и JavaScript ќе референцираме поединечни мултифунционални темплејти коишто ќе бидат индивидуално изучени и ќе се применат во изработка на комплетна веб-страница со одредена тема.

Секој од вас ќе добие по еден темплејт со кој ќе треба целосно да изработи frontend на една веб-страница. Темплејтот ќе треба да се искористи и за поврзување со backend којшто ќе ја направи веб-страницата тотално динамична.

Во овој дел ќе научите како да ги минимизирате, односно да ги припремите скриптите за deploy на сервер. Исто така, ќе се запознате со nodejs, npm и како да се инсталираат веќе постоечки скрипти.

Со завршување на овој дел од курсот, очекуваме секој од вас да има одлично познавање и примена на frontend development.

MySQL

  • Installation
  • Administration
  • Connection
  • Create Database
  • Drop Database
  • Select Database
  • Data Types
  • Create Tables
  • Drop Tables
  • Insert Query
  • Select Query
  • Where Clause
  • Update Query
  • Delete Query
  • Like Clause
  • Sorting Results
  • Using Join
  • NULL Values
  • Regexps
  • Transactions
  • Alter Command
  • Indexes
  • Temporary Tables
  • Clone Tables
  • Database Info
  • Using Sequences
  • Handling Duplicates
  • SQL Injection
  • Database Export
  • Database Import

PHP: Hypertext Preprocessor

PHP Basics

                                                 

<?php
  
echo "Hello, World!";
?>

Термини што треба да ги разберете

  • Language and Platform
  • Language construct
  • Data type
  • Opening and closing tags
  • Expression
  • Variable
  • Operation and operator precedence
  • Conditional structures
  • Iteration and Loops
  • Functions
  • Variable variables and variable functions

Техники што треба да ги совладате

  • Creating a script
  • Entering PHP mode
  • Handling data types
  • Type casting and type juggling
  • Creating statements
  • Creating operations and expressions
  • Writing function
  • Handling conditional statements
  • Handling loops

Object-Oriented PHP

                                                 

<?php
class Books{
  public function 
name(){
  echo 
"Ракување";
  }
  public function 
price(){
  echo 
"900 мкд";
  }
}

$obj = new Books();
$obj->name();
$obj->price();
?>

Термини што треба да ги разберете

  • Namespace
  • Class
  • Object
  • Method
  • Property
  • Class member
  • Instantiation
  • Constructor
  • Inheritance
  • Magic function

Техники што треба да ги совладате

  • OPP fundamentals
  • Writing classes
  • Instantiating objects
  • Accessing class members
  • Creating derivative classes
  • Serializing and deserializing objects

PHP and the Web

                                                 

<?php
session_start
();

$name $_POST["name"];
$_SESSION["name"] = $name;
print_r($_SESSION);

?>

Термини што треба да ги разберете

  • Server-side
  • Client-side
  • Hypertext Transfer Protocol (HTTP)
  • GET request
  • POST request
  • Superglobal array
  • HTTP header
  • Cookie
  • Session
  • Session identifier

Техники што треба да ги совладате

  • Distinguishing between server-side and client-side
  • Handling form data using superglobal arrays
  • Working with cookies
  • Persisting data in sessions

Arrays

                                                 

<?php
$cars 
= array
  (
  array(
"Volvo",22,18),
  array(
"BMW",15,13),
  array(
"Saab",5,2),
  array(
"Land Rover",17,15)
  );

for (
$row 0$row 4$row++) {
  echo 
"<p><b>Row number $row</b></p>";
  echo 
"<ul>";
  for (
$col 0$col 3$col++) {
    echo 
"<li>".$cars[$row][$col]."</li>";
  }
  echo 
"</ul>";
}
?>

Термини што треба да ги разберете

  • Array
  • Key and value pairs
  • Numeric arrays
  • Multidimensional arrays
  • Array navigation (or walking)
  • Sorting
  • Intersection and difference
  • Data serialization

Техники што треба да ги совладате

  • Creating arrays
  • Handling numeric and associative keys
  • Creating and handling multidimensional arrays
  • Sorting arrays
  • Randomizing arrays
  • Intersecting arrays
  • Calculating the difference between one or more arrays
  • Serializing arrays

Strings and Regular Expressions

                                                 

<?php
$pattern 
"/ca[kf]e/";
$text "He was eating cake in the cafe.";
if(
preg_match($pattern$text)){
    echo 
"Match found!";
} else{
    echo 
"Match not found.";
}
?>

Термини што треба да ги разберете

  • The == and === operators
  • Regular expression
  • PCRE

Техники што треба да ги совладате

  • Formatting strings
  • Comparing strings
  • Modifying string contents
  • Using regular expressions for pattern matching and extraction
  • Joining and splitting strings

File Manipulation

                                                 

<?php
$file 
"data.txt";

// Check the existence of file
if(file_exists($file)){
    
// Open the file for reading
    
$handle fopen($file"r") or die("ERROR: Cannot open the file.");

    
// Reading the entire file
    
$content fread($handlefilesize($file));

    
// Closing the file handle
    
fclose($handle);

    
// Display the file content
    
echo $content;
} else{
    echo 
"ERROR: File does not exist.";
}
?>

Термини што треба да ги разберете

  • How to open a file
  • How to read from a file
  • How to write to a file
  • How to close a file
  • How to interact with the filesystem
  • How to lock files
  • Miscellaneous functions for handling files

Техники што треба да ги совладате

  • File resources
  • File properties
  • Advisory locking
  • End of File

Managing Email

                                                 

<?php
$to 
"tilia@pingdevs.com";
$subject "Вечера?";
$message "Здраво Тилиа, сакаш ли да излеземе?";
$from "martin@pingdevs.com";

// Sending email
if(mail($to$subject$message)){
    echo 
"Your mail has been sent successfully.";
} else{
    echo 
"Unable to send email. Please try again.";
}
?>

Термини што треба да ги разберете

  • Sendmail wrapper
  • SMTP
  • Headers
  • MIME encoding
  • sendmail

Техники што треба да ги совладате

  • Mail functions
  • URL functions

PHP and Databases

                                                 

<?php

/* Attempt <li>rver connection. Assuming you are running <li>rver with default setting (user "root" with no password) */
$link mysqli_connect("localhost""root""");

// Check connection
if($link === false){
    die(
"ERROR: Could not connect. " mysqli_connect_error());
}

// Attempt create database query execution
$sql "CREATE DATABASE demo";
if(
mysqli_query($link$sql)){
    echo 
"Database created successfully";
} else{
    echo 
"ERROR: Could not able to execute $sql. " mysqli_error($link);
}

// Close connection
mysqli_close($link);
?>

Термини што треба да ги разберете

  • Database
  • Table
  • Column
  • Key
  • Index
  • Primary key
  • Foreign key
  • Referential Integrity
  • Sorting
  • Grouping
  • Aggregate functions
  • Transaction
  • Escaping

Техники што треба да ги совладате

  • Creating tables
  • Designing and optimizing indices
  • Inserting and deleting data
  • Selecting data from tables
  • Sorting results
  • Grouping and aggregating data
  • Using transactions
  • Escaping user input
  • Managing dates

Stream and Network Programming

                                                 

<?php
$opts 
= array(
  
"http"=>array(
    
"method"=>"POST",
    
"header"=> "Auth: SecretAuthTokenrn" .
        
"Content-type: application/x-www-form-urlencodedrn" .
              
"Content-length: " strlen("Hello World"),
    
"content" => "Hello World"
  
)
);
$default stream_context_get_default($opts);
readfile("http://localhost/dev/streams/php_input.php");
?>

Термини што треба да ги разберете

  • File wrappers
  • Streams
  • Sockets
  • Blocking calls

Техники што треба да ги совладате

  • Filesystem functions
  • Network functions
  • Socket functions
  • Stream functions
  • URL functions
  • List of support protocols/wrappers
  • List of supported transports

Date and Time

                                                 

<?php
// Executed at September 15, 2019
$futureDate mktime(000date("m")+30date("d"), date("Y"));
echo 
date("d/m/Y"$futureDate);
?>

Термини што треба да ги разберете

  • UNIX timestamp
  • UNIX epoch
  • Date arrays
  • UTC
  • Format strings

Техники што треба да ги совладате

  • Handling dates in PHP
  • Getting the current date
  • Converting a string into a date
  • Formatting dates and times

Security

                                                 

<?php
$stmt 
$dbh->prepare("INSERT INTO Customers (CustomerName,Address,City)
VALUES (:nam, :add, :cit)"
);
$stmt->bindParam(":nam"$txtNam);
$stmt->bindParam(":add"$txtAdd);
$stmt->bindParam(":cit"$txtCit);
$stmt->execute();
?>

Термини што треба да ги разберете

  • Data filtering
  • Register_globals
  • SQL injection
  • Command injection
  • Cross-site scripting (XSS)
  • Shared hosting
  • Safe_mode
  • open_basedir

Техники што треба да ги совладате

  • Validating client data
  • Understanding the register_globals directive
  • Escaping data used in SQL statements
  • Escaping data used in shell commands
  • Preventing cross-site scripting attacks
  • Understanding the safe_mode directive
  • Understanding the open_basedir directive

Laravel framework

  • Overview
  • Installation
  • Application Structure
  • Configuration
  • Routing
  • Middleware
  • Namespaces
  • Controllers
  • Request
  • Cookie
  • Response
  • Views
  • Blade Templates
  • Redirections
  • Working With Database
  • Errors & Logging
  • Forms
  • Localization
  • Session
  • Validation
  • File Uploading
  • Sending Email
  • Ajax
  • Error Handling
  • Event Handling
  • Facades
  • Contracts
  • CSRF Protection
  • Authentication
  • Authorization
  • Artisan Console
  • Encryption
  • Hashing
  • Understanding Release Process
  • Guest User Gates
  • Artisan Commands
  • Pagination Customizations
  • Dump Server
  • Action URL