Здравствуйте! Изучаю Python и Linux. Хочу более быстро влиться в области и поэтому хочу дополнительно пройти курсы. Я считаю что на них более всё структурировано, чем самообучение. А уж потом я смогу лучше понять и продолжить самостоятельное обучение. Решил пройти не большие курсы по базовому Python и Unix.
Подскажите пожалуйста, эффективная ли программа обучения?
Python:
Содержание
Lecture 1
•Introduction
•Comments (single, multi)
•Directives
•Types: None, NotImplemented , Ellipsis
•Types: Numbers (int, float, boolean, complex, hex)
•Types: Strings
•Type - Sequences: Tuple, List, Map, Set
•Indexing, sections
•Data Type Conversion
•Operations: Arithmetic Operators ()
•Operations: Comparison Operators
•Operations: Assignment Operators
•Operations: Bitwise Operators
•Operations: Logical Operators
•Operations: Membership Operators
•Operations: Identity Operators
•Operations: Operators Precedence
•Condition: if, elif, else
•Cycles: for, while
•Exceptions
Lecture 2
•Comprehensions: (), [], {}
•Comprehensions and Condition
•Functions
•Functions with default values
•Recursive functions
•Generator
•Generator function
•Decorator
•Decorator with params
•Iterators
•Itertools: enumerate, sorted, chain, count, cycle, imap, ifilter, izip
•Functional programming: lambda, high-order functions, yield,
•Functional programming: map, reduce, filter, apply
•Functional programming: closures, functools
•Functional programming: lazy, functors,
Lecture 3
•Object Oriented Programming - OOP introduction
•OOP: Encapsulation, Inheriting, Polymorphism, Composition
•OOP: magic methods: super, __new__, __init__, __del__ …
•@Property
•Self vs Cls
•@classmethod
•@staticmethod
•@cached_property
•Class decorator
•Metaprogramming – introduction
Lecture 4
•Imports
•Packaging
•Overview of python standard libs
•Built-in String Methods
•Files and file methods
•os module
•sys module
•logging
•random
•match
•copy
•datatime
•collections
•string
•contextlib - with
•re (regular expression)
•struct
•zipfile
•hashlib, sha
Lecture 5
•serialization
•scv
•json
•yaml
•xml
•sqlite
•treading
•multiprocessing
•Coroutines
•Profiling, gprof2dot, memory-profiling, objgraph, timeit
•unittest module, nosetests
Lecture 6
•CLI (command line interface). Argparce, click
•Socket: Echo Client-Server
•Requests
•Serial
•PySide
•CherryPy, Flask
•pytest
Lecture 7
•Pip, setuptool
•Requirements.txt
•Setup.py
•pep8
•tox
•virtualenv
•python interpreter
•introspection
•pycharm vs subline vs vim
Unix:
Лекции - 32 академических часа.
1. Введение. (История UNIX, версии, причины популярности. Требования к аппаратному обеспечению. Архитектура UNIX).
2. UNIX с точки зрения пользователя. (Общие вопросы работы в UNIX: Особенности многопользовательской среды. Пользователи и группы; Файловая система UNIX. Стандарт на файловую систему. Типы объектов файловой системы. Атрибуты файлов, права доступа; Процессы UNIX. Типы процессов, атрибуты процессов, жизненный цикл и состояния процессов. Сигналы; Пользовательская среда UNIX. Командный интерпретатор: Назначение и роль командного интерпретатора; Программирование на языке Bourne shell; Основные утилиты работы с файлами и процессами. Системные процессы: Важнейшие демоны: init, cron, inetd; Сетевые демоны).
3. Функционирование некоторых подсистем UNIX. (Элементы архитектуры ЭВМ: Память вычислительной системы. Модели адресации; Уровни привилегий центрального процессора. Задачи и переключение задач; Обработка прерываний. Управление памятью в UNIX: Описание физической памяти; Структура адресного пространства процесса. Операции с регионами; Замещение страниц. Алгоритм, используемыйв Linux; Распределение ресурса «время центрального процессора»: Планирование. Критерии оценки алгоритмов планирования. Вытесняющее и невытесняющее планирование. Приоритетное планирование. Планирование в различных UNIX-системах. Жизненный цикл процесса. Действия UNIX в вызовах fork(), exec*(), exit().)
4. Взаимодействие процессов в UNIX. (Синхронизация. Задача взаимного исключения и е решения.Тупики. Средства межпроцессного взаимодействия в UNIX: Неименованные и именованные каналы; Сигналы; System V IPC (очереди сообщений, семафоры, разделяемая память); POSIX IPC (очереди сообщений, семафоры, разделяемая память); Файлы, отображаемые в память; Работа с потоками в библиотеке pthread; Мьютексы и их реализация в библиотеке pthread; Conditional variables и их реализация в библиотеке pthread; Удаленный вызов процедур. DOORs; Решение задачи «Писатели-читатели»).
5. Подсистема управления файлами UNIX. (Индексный дескриптор (i-node). Назначение и атрибуты i-node. Структуры, используемые в ядре для обеспечения работы процессов с файлами; Размещение файловых систем на устройствах блочного типа. Структура файловой системы; Архитектура виртуальной файловой системы. Стандартные операции над объектами файловой системы и их реализации в VFS. Драйвера файловых систем и монтирование; Устройства символьного и блочного типа, драйвера устройств и их место в подсистеме управления файлами; Драйверы терминалов и строковые интерпретаторы).
6. Стек сетевых протоколов TCP/IP. (Архитектура TCP/IP; Межсетевой уровень архитектуры и протокол IP. IP-адреса, маршрутизация, фрагментация. Протоколы ARP, DHCP; Уровень хост-хост, протоколы UDP, TCP. Алгоритм окна, надежность, мультиплексирование, логические соединения между процессами; Обзор сервисов прикладного уровня: DNS, FTP, SMTP, POP3, IMAP, NFS, TELNET; Программный интерфейс сокетов.
Лабораторные занятия - 40 академических часа.
1.
Работа в командном интерпретаторе bash. Утилиты работы и управления документацией, пользователями, объектами файловой системы, процессами.
2.
Структура файловой системы UNIX. Загрузка ОС UNIX; процессы, работающие при загрузке, и используемые файлы.
3.
Утилиты создания и управления файловыми системами.
4.
Программирование на языке командного интерпретатора bash (Bourne again shell).
5.
Средства разработки программ на языке C. Утилита make и структура Makefile? ов. Написание программ, создающих процессы и использующих неименованные каналы и переменные окружения.
6.
Разработка программ, использующих System V IPC (разделяемая память и очереди сообщений)
7. Создание многопоточных приложений.