New skills for emerging industries - national IT retraining programme

New skills for emerging industries - national IT retraining programme

Autor: BIT

Technical portion of the program is based on the FrontEnd stack – JavaScript. The primary focus is technical education, but the background is about teaching students how IT industry is operating and how they can find their place in it. While our students will be equipped with technical skills necessary to successfully participate in IT industry, the enduring value that BIT provides is a mindset necessary for the long term career in IT.

Program is designed to be highly practical - lectures are usually short and followed up by practical work on a computer to illustrate theoretical components.  Every 3 weeks, each student is producing technical solutions which are carefully added to the base knowledge with intent to have sizable final project that can be demonstrated to potential employers.

During the 390 lessons long program (including soft skills lessons), the first part is focused on basics of computer science - candidates will learn basics of HTML, CSS and JavaScript. The focus of the second part is on practical applications of JavaScript - learning the framework landscape, engineering system and one specific framework (React).

One of the frequently overlooked aspects of successful IT education is understanding of the engineering system. During the program, our students will be exposed to technical aspects of the engineering system (source control system, unit testing system, deployment automation system).  In addition to engineering system tools, students will be introduced to concepts of scrum/lean development, roles and responsibilities within engineering teams and general theory of software engineering process.

The climax of the program is the final project which will be completed within the framework (React) and using the engineering system (source control, deployment and unit testing).  Final project will be hosted and available for demonstration to interested parties.

JAVASCRIPT COURSE OVERVIEW

The course is designed for students with minimal or no knowledge of computer programming, Internet principles and software design.
The first part of the course two subjects are taught - Computing and principles of Programming and Web design. The other part of the course one subject is taught - Web applications.

PROPOSED FORMAT

Format: 15 lessons per week
Duration: 6 months
Days per week: 3 – Tuesday, Thursday and Saturday
Lessons per day: Tuesday 2.5 lessons (18.00-20.00), Thursday 2.5 lessons (18.00-20.00), Saturday 10 lessons (9.00-13.00 and 14.00 – 18.00)
Total lessons: 390


Our program is intense on Saturdays in order to simulate a workday in an average IT company.   Any fundamental change in life requires reprogramming.  Such reprogramming cannot occur by part time setting after work alone.  For the fundamental change we need students to fully focus on the transformation and on learning so we are proposing Saturdays as main day for study without distractions and tiredness from work. Saturday program starts at 9:00.  During the initial period the professor will present the plan for the day. Student will do a short morning meeting (similar to scrum) to discuss the experience and challenges from the prior lessons. Five lessons are conducted from 9.00 to 13.00.  Each lesson starts with a short lecture (20 minutes). After the lecture students  work on a practical implementation of a particular theoretical concept. After the lunch break from 13.00 to 14.00, another five classes are conducted from 14.00 to 18.00.

Work-day program starts at 18.00 and ends 20.00. Two and half lessons are conducted in that time. Every day ends with giving homework and instructions for further practicing.

CURRICULUM OVERVIEW


Internet vs Web
Response / Request cycle
How website is created

Web page structure

HTML elements

Layout using just HTML

Forms

Validations

Audio and Video

Computer jargon and terminology

Hardware and software

Programming and programming languages

Introduction to JavaScript. Language syntax

Version control systems (git)

Introduction to CSS

CSS selectors

Fonts
Box Model

Layouts

Positioning

Control flow.

Data structures (Arrays).

Functions

Input/return values

Git branching

VisualStudio Code  deep introduction

Responsive layout

Semantic HTML 5

CSS preprocessors

SASS

Bootstrap

Components

Expanding programming vocabulary

Code blocks

Variable Scope

Self-invoking Functions

"this" value

Constructor functions

The global object

High-order functions

Object-Oriented Programming Concepts

Built-in objects

JavaScript and the browser

Global objects

Window objects

HTML 5 storage

JavaScript and DOM

Traversing DOM

DOM manipulation

Events / Handling Events

Built-in Objects and Functions in Depth

Error Handling

try...catch

Error object

Prototypes and Inheritance

Prototype chain

Connecting with browser

Documenting code

JavaScript library

jQuery

DOM manipulation using jQuery

jQuery Plugins

jQuery IU

AJAX

API

Scoping and scope chain

How code is executed: Js parsers and engines

Execution context & execution stack

Creation and execution phases

Closures

Scope Chain

Lexical Scope

Modules: namespacing, reuse, decoupling, separation of concerns

Module Revealing Pattern

Introduction to JSON. API. ES6

WEB APPLICATIONS
Single Page Applications

Razvojni alati i okruženja

Usklađivanje JavaScript verzija

Build process

Arhitektura aplikacija

Moduli

Testiranje

React

Okruženje za rad

JSX. Components

State

Props. Forms

Events

React Router

Advanced React

Rad na sopstvenom projektu

Postavljanje Hello World aplikacije

Liste

Pretraga

Dohvatanje podataka sa servera

React + Redux

Master-Detail

Unit tests

Deployment

Pregled drugih framework-a

Sigurnost web aplikacija

Wrap-up