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

Стартирай като 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

.

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

01. Introduction Computers: IO devices, Motherboard, Memory and CPU CPU: Clock, Control Unit, Arithmetic/Logic Unit Computer memory: Classification and hierarchy, Registers, Cache memory, Volatile, Non-volatile.. Common modern computer architectures: Multiple CPU cores, multiple CPUs, 32bit vs 64bit CPUs, Machine Word Digital signals/data: Binary representation, data layout in memory Software develepment process overview: tools, build process Console, common console commands Hello world: compile and run in console terminal using gcc Error handling and debugging overview, error classification

02. Introduction to C++ Hello world dissection and overview Input and output, streams Namespaces, scope Include preprocessor directive Expressions, operators, variables, initialization Comments C++ Language overview: Functions Control statements: if, while, for Classes: client usage, overview and basic definitions

03. Types and variables Types – data format, size, defined operations Built-in types classification and overview Mechine-level type representation, memory layout overview, bit, Byte, Word in C++ Signed and Unsigned types: overflow rules Type sizes, sizeof, size_t Integral, arithmetic and floating point types Character types – char, signed char, unsigned char, wide chars Literals

04. Variables Variable, types and variables, Object Address, scope, visibility, lifetime lvalue, rvalue Names, Identifiers, keywords, naming conventions Object definitions and declarations Initialization References const qualifier Local, global and static variables

05. More types and working with multiple files enum typedef Class types and basic class definitions Separate compilation Header files Preprocessor: include directives, header guards Header files best practices

06. Library types vector basic usage string basic usage Iterators basic usage

07. Arrays and Pointers Array: fixed size, single type, no copy or assignment Array defition and initialization Indexing arrays Pointer: definition and initialization Pointers and addresses, memory and layout. Possible pointer values, NULL void and void pointers Dereference Pointer vs reference comparisson Pointers and arrays, subscripting Pointer arithmetic Pointers and the const qualifier Multidimensional arrays

08. C-style strings and dynamic memory C-style string definition and initialization Null-terminator C library functions std::string vs c-style strings, c_str Dynamic allocation of arrays – new[] and delete[]

09. Expressions and operators Operators: operands, result, operator classification precedence and associativity Order of evaluation, short-circuit evaluation Arithmetic operators Relational and logical operators Bitwise operators Assignment operators Increment and decrement operators Member access operators Ternary conditional operator Comma operator new and delete expressions

10. Statements Simple statements Declaration statements Blocks (Compound statements) if switch while do while for break continue goto Exception handling overview

11. Functions Functions overview, call stack Parameters and arguments return type Function body, scope Function call operator Pss-by-value, pass-by-reference Pointer and array parameters const parameters Command line arguments return statement, returning references Recursion Function declarations, prototype Inline functions Class methods overview, constructors Function overloading, default argument values Pointers to functions Variable length args

12. Type conversions and casting Implicit and explicit type conversions Conversion types: arithmetic, bool, enum, pointer, const static_cast const_cast dynamic_cast overview reinterpret_cast c-style cast

13. Standart IO IO library overview: io streams hierarchy, stream objects Managing io buffers Buffered vs unbuffered io formatted vs non-formatted io IO Library condition states File streams, file open modes String streams Piping and redirection Binary streams

14. Classes OOP overview: abstraction, encapsulation, .. Class definitions and declarations Class access specifiers: public, private, protected this pointer const members, mutable members Class scope and files. Visibility and name lookup Constructors Constructor initializers Default constructor Constructors and implicit type conversions. Explicit Friends overview Static class members

15. Copy Control Copy constructor Assignment operator Destructor Deep copy, shallow copy. Pointer members

16. Operator overloading Operator overloading overview IO operator overloading Arithmetic and relational operators overloading Assignment operators overloading Subscript operator overloading Member access operator overloading Increment and decrement operator overloading Call operator and function objects Conversions and class types

17. Inhertitance and polymorphism Inheritance overview: base class, derived class, inheritence hierarchy, polymorphism and virtual methods Base and derived class definitions, member access specifiers Dynamic binding, type conversions virtual methods public, private and protected inheritance Inheritance and friendship. virtual destructors Inheritance and copy control Abstract class. Pure virtual methods Multiple and virtual inheritance

18. Templates and Generic programming Generic programming overview – template usage examples Template definitions – type and nontype template parameters Template arguments and instantiation Function templates Class templates Template declarations, compilation models, working with multiple files Templates and friends Template specialization

19. STL Sequential containers Container definitions and declarations Common container operations vector list deque Container adaptors: stack, queue, priority_queue Iterators, iterator operations, iterator ranges, iterator invalidation Container comparisson and deciding which container to use Common container typedefs strings revisited

20. Associative containers Associative containers overview, common operations pair type map set multimap and multiset

21. Generic library algorithms Generic algorithms – overview and classification, design analysis iterator ranges, classification: reverse iterators, insert iterators, const iterators Container-specific algorithms (for list) Common library algorithms: searching, sorting, unique, accumulate, ..

22. Number systems, Binary, Bitwise operations Data memory layout – sign bit, floating-point representation, big endian, little endian Objects in memory, order of declaration of members Number systems overview – bin, oct, dex, hex bin, oct and hex to dec dec to bin bin to hex bin to oct hex to bin oct to bin hex to oct & oct to hex Bitwise operations Bit masks and flags bitfield bitset union

23. Error hanlding, Exceptions Errors overview – classification, error handling strategies Exceptions – working principles, stack unwind, function termination, local variables Exception types, restrictions Exceptions and class hierarchies Library exception types and hierarchy Catch clauses, matching, catch-all handler Exceptions in constructors and destructors Rethrowing exceptions Catch clauses, catch-all handler

24. Preprocessor Preprocessor and preprocessor directives preprocessor as part of the build process #include and #define and header files Multiple line commands with \ #define for function macros #define – importance of parenthesis, common pitfalls using preprocessor pros and cons – generic programming vs inlining and debug difficulty, intellisense issues #undef preprocessor and strings, #param preprocessor concatenation a##b conditional compilation – #if, #endif, #elif conditional compilation – #ifdef, #ifndef directives summary + #error and #pragma practical preprocessor examples, __FILE__ , __VA_ARGS__ , __DATE__ , __TIME__ , __LINE__ , __STDC__ , compiler-specific

25. Dynamic memory management Heap and stack, dynamic memory Resource allocation and deallocation operators and functions Handling errors with dynamic memory allocation

26. Data structures List Doubly-linked list Stack Queue Vector Comparisson of linear data structures – fast and slow operations Tree Types of trees Graph Types of graphs Static graphs as arrays and neighbour vecs Dynamic stuctures summary, tips and pitfalls Pointer sizes

27. Smart pointers, reference counting Smart pointer definitions Library smart pointer types and usage

28. Makefiles makefile usage makefile examples makefile elements

29. Multithreaded programming Threads and communication overview, common pitfalls and strategies Thread safety Working with threads – starting and finishing Mutexes Deadlocks Atomic operations Atomic operations

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, не се и замисля, а се съгласява да влезе в това предизвикателство веднага. “Изключително важно е да трупаш знания, но е дори по-важно да ги споделяш с хората, които имат интерес към тях.”