СПОНСОРИРАН ОТ

Стартирай като Junior Developer със С, Python, Linux и Basic BASH!

НАЧАЛО

12 АПРИЛ 2023

6 МЕСЕЦА

БЕЗПЛАТНО

9 ЧАСА СЕДМИЧНО

ОНЛАЙН ПРОВЕЖДАНЕ

ЗА ХОРА С БАЗОВИ ПОЗНАНИЯ ИЛИ СРЕДНО НАПРЕДНАЛИ

ЗА ЦЯЛАТА СТРАНА

ПОДХОДЯЩ ЛИ Е ЗА МЕН ТОЗИ КУРС

Имаш ли интерес към информационните технологии? Готов ли си да се отдадеш и да смениш професията си? Обичаш ли да решаваш логически задачи? Обичаш ли да анализираш и разделяш голямата картина на по-малки елементи?

Ако отговорът ти на тези въпроси е “да”, този курс e точно за теб! Курсът е подходящ за кандидати с отличен английски и стабилни начални познания по програмиране.

КАК ДА ИЗВЛЕЧЕШ МАКСИМАЛНА ПОЛЗА ОТ КУРСА

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

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

НУЖНО ЛИ Е ДА ИМАМ ПОЗНАНИЯ В ОБЛАСТТА

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

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

Линк към безплатен курс “Въведение в програмирането с езика С”

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

КАКВО ЩЕ НАУЧА

До края на обучението ще имаш необходимите знания да започнеш работа като Junior Developer със  С, Python, Linux и Basic BASH в Strypes. По време на 6-месечното интензивно обучение ще преминеш не само лекции и упражнения, но също така и много практически проекти, дадени от компанията, в която ще работиш и в екип, ръководен от ментор с много опит в Strypes.

КАК ЩЕ ПРОТЕЧЕ КУРСЪТ

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

ТЕМИ ЗА ТОЗИ КУРС

1. Въведение – структура на програмите на С – билд процес, компилатор – бройни системи – Запознаване с конзолата. – Запознаване с IDE – Visual Studio Code

2. Променливи и константи – signed и unsigned тип – типове с плаваща запетая – float, double – Достъп до променлива – L-value и R-value – Видимост и време на живот – локални, глобални и статични променливи – Константи – дефиниране, декларация,използване на препроцесора за създаване на константа – Целочислени литерали, Литерали с плаваща запетая, Символни литерали – Низови (string) литерали в С – Big and Little Endian (подредба на байтовете: старши байт първи или младши байт първи)

3. Оператори, изрази и стейтмънти – Модификатори на променливи – auto (подразбира се във блок),register, static, extern – Аритметични оператори – Релационни и логически оператори – Инкрементиране и декрементиране – Оператори за сравнение

4. Управление на последователността на изпълнение – Оператори и блокове – Условна конструкция if-else – Условна конструкция if-else-if – Конструкция switch – Цикъл с предусловие – while() – Цикъл с постусловие – do {/* изпълнява ако е изпълнено */} while () – Цикъл for (;;) – Безусловен преход goto

5. Функции – Спецификация на функция – Дефиниция на функция, прототип на функция – параметри на функцията и връщан тип – Указател като параметър – Указател към функция – Функция с произволен брой аргументи. – Overloading на функции – Рекурсивна функция – Inline функция – Видимост на функции – Стек и извикване на функция

6. Указатели и масиви – Указатели и адреси – Указатели и масиви – Адресна аритметика – Указатели и масиви – Конст пойнтер – Какво е референция – Масиви от указатели – указатели към указатели – многомерни масиви – Инициализация на масив от указател – Аргументи от командния ред

7. Структури – Дефиниция, декларация, инициализация – Достъп до елементите на структура – Разполагане в паметта – Структура като формален параметър – Връщане на структура от функция – Масиви от структури – Указатели към структури – typedef – Обединения – Битови полета

8. Преобразуване на типове – Неявно преобразуване на типове – преобразуване от един тип в друг (type casting) – преобразуване на типове с изрично указване на типа

9. Препроцесор – директиви – препроцесорни оператори – макроси

10. Динамични структури – Елемент на динамична структура – Рекурсивна структура – Списък – Стек и опашка – Дърво

11. Вход/Изход – Стандартни Вход / Изход / Грешки – Свързване на входа и изхода на програми (pipe) – Небуфериран вход/изход – Режим на отваряне на небуфериран файл – Буфериран вход/изход – Функции от стандартната библиотека за вход/изход – Режим на отваряне на файла при буфериран вход / изход – Бинарни и текстови файлове

12. Управление на грешките – грешки при анализа на обекта на автоматизация – грешки в спецификацията – грешки при компилиране – грешки при свързване – грешки по време на изпълнение (runtime errors) – грешки в стандартна С библиотека – сигнали за грешки – Обработка на изключения със setjmp/longjmp

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

14. Многонишково програмиране на С – Multithreading – заключване с mutex – Producer – Consumer – context_t

1.Типове данни и операции – Въведение в типовете обекти на Python – Числени типове данни – Динамична типизация – Стрингови променливи – Списъци и речници- Колекции и файлове

2. Оператори и синтаксис – Оператори за присвояване, вход и изход – Оператор IF синтаксис – Оператори за цикли WHILE и FOR – Итерации и списъци

3. Функции и генератори – Въведение във функциите – Области на видимост – Аргументи – Генератори

4. Модули и пакети – Принципи на създаване на модули – Пакети от модули

5. Обектно ориентирано програмиране, класове – Основи на класовете – Методи и конструктори – Overloading – Проектиране с класове

6. Изключения и атрибути – Обработка на изключения – Обекти на изключенията – Атрибути – Управление на атрибути – Декоратори – Метакласове

7. Unit testing

8. Разработка на проект

1. Linux Основи. 1.1. Linux shell 1.2. Logging in to Linux 1.3. Logging out of Linux 1.4. Основни комади. 1.5. Използване операторите за пренасочване. 1.6. Използване на pipe при комбиниране на команди – |, Стартиране командите да работят от зад – & 1.7. Използване на Job Control – jobs, fg, bg 1.8. Използване на ps and kill команди. 1.9. Смяна на шела с командата chsh. Linux файлова система

2. Работа с директории 2.1. Принтиране на текущата директория pwd 2.2. Промена на директорията с командата cd. 2.3. Листване съдържанието на директорията – ls 2.4. Преглеждане съдържанието на директориите с команда echo,less 2.5. Преглеждане съдържанието на файл с cat 2.6. Създаване и ъпдейтване на файл с touch, създаване на директория с mkdir 2.7. Копиране на файл с команда cp. Преместване на файл с команда mv. 2.8. Линкване на файлове с командата ln. Soft Links, Hard Links. 2.9. Изтриване на файлове и директории. 2.10. Намиране на файлове и директории – find, locate, whereis 2.11. Използване на текстов редактор – vim emacs

3. Конфигурация на системата – 3.1.Показване на обкръжаващите променливи с комадата printenv и env. 3.2. Сетване на обкръжаващи променливи от командния ред. 3.3. Изтриване на обкръжаващи променливи от командния ред. 3.4. Сетване на пътища PATHs. 3.5. Персонализиране на логването. 3.6. Персонализиране на Command-Line Prompt 3.7. Създаване на елиаси(Aliases).

4.Работа с дискови устройства 4.1.Установяване големината на вашето устройство и неговите партишъни. 4.2. Хардуерни устройства. 4.3. Използване на файлова система. 4.4. Разделяне на твърдия-диск с fdisk 4.5. Манипулиране на дяловете с командата sfdisk 4.6. Маунтване на хард-диск и други устройства. 4.7. Маунтване и ънмаунтване на NFS Hard Drives.

5. Добавяне на преносими устройства Tape and Zip Drives – 5.1.Инсталиране на Tape Drive. 5.2. Използване на командата mt. 5.3. Инсталиране на Zip Drive.

6. Linux permissions – 6.1.Добавяне, промяна и изтриване на юзър от командния ред. – използване на командата useradd за добавяне на юзър. – модифициране на юзъра с usermod. – изтриване на юзер с командата userdel. 6.2. Добавяне, промяна и изтриване на групи от командния ред. 6.2.1. използване на командата groupadd за добавяне на юзър. 6.2.2. модифициране на юзъра с groupmod. 6.2..3 изтриване на юзер с командата groupdel. 6.3. Промяна собствеността на юзъра и групата. 6.3.1. Промяна на групата с командата gpasswd 6.3.2. Използване на командата chgrp. 6.4. Changing File Ownership and Permissions 6.4.1. Използване на командата chown. 6.4.2. Използване на командата chmod

7. Управление на услуги за планиране – 7.1. Конфигурация на inittab и rc файлове. 7.2. Конфигурация на crontab услуги за планиране.

8. Управление на файловата система – 8.1. Mounting и Unmounting на файловата система. 8.2. Използване на usermount и mount командите. 8.3. Настройка на нови файлови системи. Стартиране на linuxconf. 8.4. Промяна на /etc/fstab ръчно. 8.5. Как да организираме файловата система. 8.6. Поправка на файловата система – fsck .

9. Поддръжка на системата – 9.1. Създаване на резервни копия на системата – компресиране и декомпресиране на файлове и директории с #gzip. 9.2. Компресиране и декомпресиране на файлове и директории с tar команда. 9.3. Използвайте команда find за да намерите файловете за бакъп с tar команда. 9.4. Почистване на диска – df -h, du -h, find -size +1000k -print 9.5. Компресиране на документи и директории.

1.Какво е shell 1.1. Автоматично стартиране на bash 1.2. Shell shortcuts 1.3. Управляващи команди. 1.4. Delete & Paste. 1.5. Повторно изпълнение на команда. 1.6.Super User.

2. Променливи 2.1.Създаване на нови променливи на средата 2.2.Local Variables 2.3. Разлики между локални и променливи на средата 2.4. Променливи на средата. Работа с променливи. 2.5. Използване на BASH ефективно.

3. Shell Expansion 3.1.Интерпретиране на специалните символи 3.2.Кавичките 3.3. Аритметични изрази 3.4.Псевдоними 3.5. Промяна на Prompt

4. Какво е процес? 4.1.Дефиниция 4.2. Идентификация на процеса – “Process ID” (PID). 4.3. Приоритет на процесите. 4.4. Начален приоритет 4.5. Промяна на приоритета. 4.6. Терминиране на процес 4.7. Top, Jobs, Ping. Контрол върху jobs процеса 4.8.Стартиране на задача във фонов режим. 4.9.Pausing a Job. Background команда и JOB ID 4.10. Foreground команда 4.11. Командата screen. Идентификация на сесиите на екрана

5. Регулярни изрази 5.1.Grep опции. 5.2.Правила за RegExp. 5.3. Операция Not 5.4.Шаблон с произволен брой еднакви символи. 5.5. Начало и край на шаблона. Диапазон на повторение. 5.6.Изрази за групиране. Разширени регулярни изрази. 5.7. Регулярните изрази и кавичките.

6. Команди на shell 6.1.Команда Translate- tr – tr и множествата – tr опции 6.2. Sed е потоков редактор. – Изтриване със sed. – Sed и регулярните изрази. – sed scripting. – Sed Arkanoid 6.3. sort 6.4. wc 6.5. gawk е малък език за търсене на шаблони. 6.3. Vim

7. Скрипт 7.1.Shebang 7.2.Инициализация на променливи и масиви. 7.3.Предаване на аргументи към скрипт. 7.4. Оператор if 7.5. Операции за сравнение 7.6. Сравнение на низове. 7.7. Разширение. Проверка за пътища. 7.8. Аритметични операции. Използване на аритметични операции. 7.9. Цикъл while. Цикъл Until 7.10. Цикъл for. Друг синтаксис на for. 7.11. Безкраен цикъл. break – изход от цикъл. continue – преход към следваща итерация на цикъла 7.12. Четене на данни от потребителя – read. 7.13. case условен оператор. 7.14. Функции 7.15. Локални променливи. 7.16. Рекурсивни функции. 7.17. За debug на кода се извиква скрипта с опция -x.

8. Скриптовите езици awk и sed 8.1.Sed скрипт.

9. Pipe.

10. find команда.

11. tee

.

ЗАПЛАЩАНЕ

Курсът е финансиран от Strypes. Обучението ще е БЕЗПЛАТНО за курсистите, които изпълнят определени условия и изисквания. Последвай линка и прочети повече за Strypes!

КАК ДА КАНДИДАТСТВАМ ЗА КУРСА

Ако искаш това за себе си, първо трябва да се регистрираш/запишеш.

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

Допълнително ще ти изпратим линк за входящ тест.

Успешно преминалите теста ще бъдат поканени на лично онлайн интервю.

Одобрените кандидати ще получат договор за обучение.

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

Старт на обучението 12 април 2023 г.

ЛЕКТОРИ

Петър Нетев

Лектор на модул Python
Петър е програмист с повече от 9 години опит. Определя себе си като нестандартен софтуерен инженер. Опитът му е изцяло ориентиран около Python като преминава през различни софтуерни проекти в пътя си дотук. Стартира работа в сектора на шега, по-време на подготовката си за държавен изпит по Финанси. От тогава досега вярва, че най-красивото нещо на професията на програмиста е, че можеш да учиш всеки ден и, колкото повече научаваш, толкова повече осъзнаваш, че имаш още много за учене. Да решава бизнес проблеми посредством програмни решения е нещото, което го кара да се усмихва всеки ден. Споделя, че когато получава предложение да води курс в Code Academy, не се и замисля, а се съгласява да влезе в това предизвикателство веднага. “Изключително важно е да трупаш знания, но е дори по-важно да ги споделяш с хората, които имат интерес към тях.”