Владимир Краснов

Учимся разработке ПО на карантине

Пока все носятся с короновирусом и садятся на карантин, самое время заняться обучением. Ниже я собрал материалы, которые можно изучить за 2 недели. Что-то посмотреть, что-то прочитать. Где-то — сделать микропроект. Короче, сплошная польза.

Что посмотреть

Если вы недавно начали изучать программирование, я горячо советую посмотреть все, что есть на канале Соера . Там столько видео, что хватит на весь карантин.

Также очень советую фильмы: Социальная сеть, Пираты Силиконовой долины, Игры разума, Революционная ОС



Что почитать

Начните с прекрасной статьи Вастрика про Войти в АйТи и про командную игру.

А затем смело берите книги из моего списка. Начать лучше с Дорофеева, а затем почитать Столярова. Кроме них я советую почитать Раскина и Купера даже если вы планируете изучать только backend-разработку.



Идеи проектов

Парсер цен кибермаркетов

Тут все просто. Берем пару-тройку крупных интернет-магазинов вашего региона и пишем парсер, который умеет по списку адресов вытаскивать названия товаров и актуальную цену. Чтобы было интересно, предлагаю писать историю изменения цен, если таковое случается. А потом составлять тренд и даже рисовать график. Также, можнот отслеживать доступность товара и тоже отмечать это в истории.

Что потребуется: Python3, SQLite, BeautifulSoup, регулярные выражения

Чему научитесь: Писать простой демон, который запускается пару раз в сутки, собирает данные и сохраняет их в базу данных. Научитесь работать со строками и регулярными выражениями.

Сколько займет времени: ~1-2 дня


Свой таск-менеджер

Пишем очередную программу для ведения задач. Прежде всего она должна уметь добавлять задачи, распределять на сегодня, завтра и любую другую дату. Сделайте, чтобы можно было группировать задачи в списки, присваивать задачам метки и все это гибко фильтровать.

Чтобы было интереснее, добавьте возможность строить график с трендом: сколько задач было добавлено и сколько фактически сделано. И тоже с возможностью фильтровать данные по разным группам и меткам.

Сколько займет времени: ~2-3 дня

Что потребуется: SQLite или MySQL, Python3, Flask, Jinja2, SQLAlchemy

Чему научитесь: Как сделать простое веб-приложение с базой данных.


Файловый менеджер с поддержкой мета-данных

Эта задачка может оказаться сложной для новичков, но от этого не менее интересной.

Напишите файловый менеджер, через который можно будет работать с файловой системой вашей ОС: создавать файлы, каталоги. Сделайте поддержку добавления мета-тегов к файлам и быстрый поиск ним. Добавьте фичи, типа группировки нескольких файлов в каталог. Поэксперементируйте со способами представления файлов.

Что потребуется: Python3, SQLite, библиотека для поддержки графического интерфейса (скажем, pyqt5) или псевдографического интерфейса (например, ncurses). И, конечно же, много терпения.

Чему научитесь: Работать с ФС (файлы и каталоги). Писать приложения с графическим или псевдо-графическим интерфейсом (если будете использовать ncurses, например). Научитесь работать с БД.

Сколько займет времени: от пары дней до целой недели