Курсы программирования с нуля

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Клуб формулистов - Ежемесячная подписка

Вступление в Клуб Формулистов на выгодных условиях для НОВЫХ участников.

После взноса  999  499 руб. вы получите подписку
в Клуб Формулистов на 30 дней и 256 байт для быстрого старта.
Байты используются для открытия более одного урока в день, по 50 байт за урок.

Стоимость 1 дня за первый месяц: всего 16 рублей.

Первый взнос - 499 руб./30 дней.

Через 30 дней будет списано 3,000 2,400 руб.
за продление подписки в Клуб на 30 дней + подарок 512 байт.

Так будет продолжаться каждые 30 дней, пока вы не отмените подписку.
Средства будет автоматически считываться с вашей карты.
Вы в любой момент сможете отказаться от продления Клуба.

Только ДО КОНЦА НЕДЕЛИ -
-50% скидка на первый взнос, всего 499 (вместо 999) рублей!
-20% скидка на ЕЖЕМЕСЯЧНЫЙ платёж!
Всего 2400 руб/месяц (вместо 3000 руб/месяц), или 80 руб./день - цена чашки кофе.


Стоимость 1 дня: 80 руб.

Хочу вступить!

Также есть другие варианты оплаты участия в КФ:

Билет в клуб формулистов на ...
30+ дней | 60 дней | 150 дней | 380 дней | 1000 дней

Внимание!
Стоимость участия в Клубе формулистов увеличивается 1 числа каждого месяца на 100 рублей.
При оформления подписки стоимость остаётся постоянной, пока подписка не будет отменена.







Первый взнос - 499 руб./30 дней + 500 байт.
Последующие взносы - 3,000 2400 руб./месяц + 512 байт.



Список уроков | фото | видео

# Название видеоурока Видео / Тесты Решило Рейтинг Доступ
1 FREE Вступление 00:08:49
81 чел. ★ 4.9 Done
  Мы начинаем создание базы данных для гостиницы.
Твоя задача - самому подумать и создать описание
сущностей проекта, для каждой выписать атрибуты.
Отчёт отправил: 9913. vip Выполнено за 10 час. 5 мин. [Показать отчёт]
Научился: Главное что бы в гостинице был бесплатный Wi-Fi прямо с номера ну и бассейн 
Сложности: Захотелось сразу после просмотра Витольдовичем таких красивых картинок попасть в одну из картинок 
2 Таблицы клиентов и заказов 00:25:03
1 тест
76 чел. ★ 4.9 Done
  На этом уроке мы перечислим поля таблиц Client и Book.
Каждое поле этих таблиц потребует подробных
комментариев, почему так, как можно сделать
иначе, какие могут быть ошибки и так далее.
Отчёт отправил: 9913. vip Выполнено за 1 день 15 час. 59 мин. [Показать отчёт]
Научился: Создали небольшую структуру будущей БД 
Сложности: все продумать 
3 Таблицы комнат и дней 00:22:47
1 тест
74 чел. ★ 4.9 Done
  На этом уроке мы перечислим поля трёх таблиц:
Room, Calendar, Map.
В конце урока распишем типы
каждого поля нашей базы данных.
Подумай и напиши, какие ещё поля
можно добавить в эти таблицы.
Отчёт отправил: 9913. vip Выполнено за 23 час. 55 мин. [Показать отчёт]
Научился: Продолжили работы с созданием БД для ПО Отель 
4 Создание базы в MS Access 00:26:28
1 тест
70 чел. ★ 5 Done
  На этом уроке мы создадим нашу базу данных в MS Access.
Там же нарисуем схему базы данных и
создадим связи между таблицами.
Необходимо будет распечатать схему базы данных
и прикрепить её на своём рабочем месте.
Отчёт отправил: 9913. vip Выполнено за 2 дня 23 час. 33 мин. [Показать отчёт]
Научился: Создали схему БД в MS Access 2007-2010  
Сложности: создание связей можно добавить в таблице связей когда их создаешь там список есть из списка выбрать и добавить еще связь если нужно 
5 Установка сервера MySQL 00:08:39
2 теста
50 чел. ★ 4.9 Done
  На этом уроке мы установим MySQL Community Server
и программу HeidiSQL для подключения к нему.
Отчёт отправил: 9913. vip Выполнено за 19 час. 45 мин. [Показать отчёт]
Научился: Install MySQL and HeidiSQL 
Сложности: In Windows 10 MySQL commander starting menu Start MySQL Command Line Client 
6 SQL запросы для создания Базы 00:24:00
1 тест
65 чел. ★ 5 Done
  На этом уроке мы напишем SQL запросы
для создания нашей базы данных отеля.
Отчёт отправил: 9913. vip Выполнено за 2 дня 3 час. 47 мин. [Показать отчёт]
Научился: создаем БД в MySQL ->create database Hotel; перейдем для работы с этой БД ->use Hotel; сменит текущую кодировку на UTF-8  ->set names utf8; если у кого-то с первого раза не получиться создать таблицу или оа будет кривая убейте ее ->drop table <name>; посмотрим структуру созданной таблицы ->explain client; посмотреть скрипт создания таблицы  ->show create table client; делаем то же самое с остальными таблицами  
Сложности: с внешними ключами это ДА 
7 Модель. Планирование. 00:04:53
64 чел. ★ 4.8 Done
  На этом уроке самостоятельное задание -
сформулировать все задачи, которые решает программа.
Это будет своеобразное проектирование бизнес-модели проекта.
Подсказка: смотрим на схему базы данных,
на каждую таблицу по отдельности, и задаём себе несколько раз вопросы:
что это? для чего? что можно с этим сделать? как это можно обработать?
Отчёт отправил: 9913. vip Выполнено за 10 мин. [Показать отчёт]
Научился: Продумать бизнес модель приложения 
8 Модель. Список задач. 00:23:02
62 чел. ★ 5 Done
  На этом уроке мы составим список задач.
Для каждой задачи нужно будет написать SQL запрос (или несколько),
который решает поставленную задачу.
Запросы нужно писать в таком виде,
в котором они сразу могут быть
выполнены в SQL-мониторе.
Каждый запрос необходимо проверить на работоспособность.
Отчёт отправил: 9913. vip Выполнено за 1 день 12 час. 53 мин. [Показать отчёт]
Научился: Построили первый вариант бизнес-модели сделали немного запросов к БД 
9 Модель. SQL запросы для Client 00:20:17
60 чел. ★ 4.9 Done
  На этом уроке мы составим SQL запросы для
решения задач с таблицами Client и Calendar.
По аналогии создай SQL запросы для остальных задач.
Отчёт отправил: 9913. vip Выполнено за 1 день 11 час. 35 мин. [Показать отчёт]
Научился: ALTER TABLE <table>  auto_increment=1; начнет очищенную таблицу строить заново с id=1;  - это то же важный момент в редактировании записей в БД  
10 Модель. SQL запросы для Room 00:12:04
1 тест
59 чел. ★ 4.9 Done
  На этом уроке мы составим SQL запросы для
решения задач с таблицей Room.
По аналогии создай SQL запросы для остальных задач.
Отчёт отправил: 9913. vip Выполнено за 33 мин. [Показать отчёт]
Научился: не совсем был понятен ход с этим запросов UPDATE Room SET step=1 WHERE id=1; на текущем этапе. Для чего запрос этот делаем понятно - что бы не было в таблице одинаковых записей но почему именно сейчас пока непонятно. Видимо понимание придет немного позже. 
11 Модель. SQL запросы для Book и Map 00:26:03
59 чел. ★ 4.9 Done
  На этом уроке мы составим SQL запросы
для всех остальных задач, для таблиц Book и Map.
В отчёте напиши мини-отзыв о созданных запросах.
Отчёт отправил: 9913. vip Выполнено за 22 час. 56 мин. [Показать отчёт]
Научился: Добили и протестировали все запросы к БД 
Сложности: вот такое надо попереваривать: SELECT * FROM room WHERE id Not in (SELECT room_id FROM map WHERE calendar_day='2019-01-02');  
12 Модель. Имена методов. 00:26:12
1 тест
58 чел. ★ 4.9 Done
  На этом уроке мы пройдёмся ещё раз по списку
составленных задач и дадим названия классам
и методам, которые эти задачи будут выполнять.
Отчёт отправил: 9913. vip Выполнено за 1 день 23 час. 18 мин. [Показать отчёт]
Научился: Спрогнозировали методы: ModelClient.InsertClient() ModelClient.SelectClient() ModelClient.SelectClient(string find) ModelClient.SelectClient(int client_id) ModelClient.UpdateClient(int client_id) ModelCalendar.InsertDays(int year) ModelCalendar.SetHoliday(string day) ModelCalendar.DelHoliday(string day) ModelRoom.SelectRooms() ModelRoom.InsertRoom() ModelRoom.SelectRoom(int room_id) ModelRoom.UpdateRoom(int room_id) ModelRoom.ShiftRoomUp(int room_id) ModelRoom.ShiftRoomDn(int room_id) ModelBook.UpdateStatus(int book_id, string status) ModelBook.UpdateBook(int book_id) ModelBook.UpdateFromDay(int book_id, string from_day) ModelBook.UpdateTillDay(int book_id, string till_day) ModelBook.SelectBooks() ModelBook.SelectBooks(string find) ModelMap.SelectMap(string from_day, string till_day) ModelMap.InsertMap() ModelMap.InitMap(int room_id, int book_id, string calendar_day) ModelMap.UpdateMap() ModelMap.DeleteMap(string room_id, string book_id) ModelRoom.SelectFreeRooms(string from_day)  
Сложности:     *****************************************************************************************************************************************************     *                                      Количество переходит в качество Если количество должного качества!                                        *     *                                                                                                                                                                                                  *     ***************************************************************************************************************************************************** 
13 Класс MySQL. Драйвер и конструктор. 00:28:30
1 тест
58 чел. ★ 5 Done
  На этом уроке мы наконец-таки создадим проект.
Установим Mysql DotNet Connector и начнём
создавать класс MySQL для подключения к базе данных.
Мы напишем конструктор и три метода.
Отчёт отправил: 9913. vip Выполнено за 2 дня 18 час. 3 мин. [Показать отчёт]
Научился: Реализовали интерфейс минимальный и классы для подключения к БД Кстати link на MySQL.DATA.EF - тут не нужен и  так все работает (это для другого) А вот сам модуль подключения может не слабо глючить если в приложении выбран не тот FW на котором он работает 
14 Класс MySQL. Получение таблицы. 00:23:55
1 тест
56 чел. ★ 5 Done
  На этом уроке мы создадим ещё несколько полезных методов
в классе MySQL для считывания, изменения и добавления записей.
Отчёт отправил: 9913. vip Выполнено за 3 дня 4 час. 4 мин. [Показать отчёт]
Научился: Написали функции для обработки запросов к БД и протестировали эти функции на примерах 
Сложности: было бы неплохо addslashes еще разок показать как работает 
15 Класс MySQL. Обработка ошибок. 00:13:22
55 чел. ★ 5 Done
  На этом уроке мы создадим функцию SqlError()
для удобной обработки ошибок во время тестирования.
Отчёт отправил: 9913. vip Выполнено за 1 день 17 час. 16 мин. [Показать отчёт]
Научился: Запустили в код метод обработки ошибок НОУ ХАУ Евгения Витольдовича 
Сложности: Косяк в обработке кода Application.Exit(); приложение зацикливается и смысла оттуда возвращать хоть true хоть false не ни какого Победил проблему пока так Environment.FailFast("Error MySQL");  
16 Модульный тест 00:16:02
1 тест
54 чел. ★ 5 Done
  На этом уроке мы создадим модульный тест (UnitTest)
для тестирования класса MySQL, который мы создали ранее.
В уроке приводится только знакомство, без полного покрытия
тестами нашего проекта, но в будущем мы к ним ещё вернёмся.
В комментариях необходимо написать,
использовал ли ты ранее модульные тесты.
Полезная ссылка: https://msdn.microsoft.com/ru-ru/library/hh694602.aspx
Отчёт отправил: 9913. vip Выполнено за 19 час. 6 мин. [Показать отчёт]
Научился: Запустили Unit test для проекта и протестировали методы класса MySQL Для этого создали в VS новый проект UnitTests. Подключили using <наш тестируемый класс>  (класс должен быть публичным! это важно) Подключили в Projects Solution Referenсe <тестируемый класс> Test Explorer живет в меню Test->Windows 
Сложности: Да тесты писались ранее но все-равно осталось недопонимание как писать программу на их основе. Устал бороться в чем проблема - не стартует тест выдает ошибку проекта. Все перелопатил просмотрел урок второй раз. Запустил на другой студии. Переделывал и переименовывал тесты. Создал пару новых. Нет эффекта. Погуглил, почитал MSDN - нет результата. Включил мозг - нашел косяк - т.к. MySQL connect требует FW4.5.2, а проект тестов по-умолчанию 4.5 вот в этом собака покопалась. Что странно второй раз натыкаюсь на такие же грабли и VS молчит.  
17 Отображение таблицы 00:06:18
54 чел. ★ 5 Done
  На этом уроке мы визуализируем созданное,
через отображение в компоненте DataGridView.
Заголовки столбцов можно поменять двумя разными способами.
1. sql.Select("SELECT id as Nr, client as Surname FROM Client");
2. dataGridView1.Columns[0].HeaderText = "№";
Отчёт отправил: 9913. vip Выполнено за 13 мин. [Показать отчёт]
Научился: Загрузили таблицу на форму AutoSizeColumensMode  - Fill что бы не забыть сделаем тут пометку - наводим красоту в таблице  
Сложности: Магия нереальная всегда этот момент волнительный т.е. между сухим кодом и то что видит человек - маленький шаг для человека - БОЛЬШОЙ шаг для ЧЕЛОВЕЧЕСТВА 
18 Модель. Класс Клиента 00:24:57
1 тест
53 чел. ★ 5 Done
  На этом уроке мы наконец-таки начнём
создавать первый класс Бизнес Модели Отеля.
Это класс Model.Client, для подготовки которого
потребуется ещё некоторые вспомогательные работы.
Отчёт отправил: 9913. vip Выполнено за 1 день 2 час. 22 мин. [Показать отчёт]
Научился: Реализовали класс клиента и небольшой функционал в нем.  
Сложности: Про добавление комментов знал /// использовал, но не знал, что там еще можно и в параметрах поставить комменты 
19 Модель. Всё про Клиента 00:35:00
1 тест
52 чел. ★ 5 Done
  На этом уроке мы допишем класс Client.
Реализуем четыре метода и слегка потестируем их.
Написать свои впечатления о созданном классе модели.
Отчёт отправил: 9913. vip Выполнено за 3 дня 1 час. 10 мин. [Показать отчёт]
Научился: До реализовали методы класса Client Реализовали нереальную магию в таблице Ctrl+K+C - комментировать Ctrl+K+U - отменить  проверил точно сработало Все время смотрел и думал как реализован контекстный поиск и тут вдруг раз - и вторая смена - открытие поиска по фильтру 
20 Модель - Календарный год 00:29:48
48 чел. ★ 5 Done
  На этом уроке мы начнём создавать модель календаря.
Поработаем с запросами, напишем метод InsertDays(int year).
Создадим тест для этого метода и немного доработаем класс тестов.
Отчёт отправил: 9913. vip Выполнено за 50 мин. [Показать отчёт]
Научился: Создал класс календарь и тест к нему 
Сложности: урок открытый в 150 раз т.к. не смог вовремя пройти и тут при отправке на тебе получи фашист гранату нет кнопки отправить при обновлении страницы в итоге запросил снова 50 очков за новое открытие и жди 30минут пока урок не просмотришь косяк приложения!!! :((( хрень какая-то что-то портал все чаще дает сбои в работе 
21 Модель - Календарные праздники 00:20:00
1 тест
46 чел. ★ 5 Done
  На этом уроке мы добавим в модель календаря методы
для создания дней, пометки их праздничными/обычными.
Также добавим ещё несколько тестов, чтобы они представляли
из себя логически завершённую последовательность
для тестирования календаря.
Отчёт отправил: 9913. vip Выполнено за 21 час. 17 мин. [Показать отчёт]
Научился: Дописал функционал календаря Узнал что Евгений Витольдович очень древний аж с 1924года выпуска - неожиданно А ведь только 40 лет сбылось - видимо Дункан Маклаут 
Сложности: ошибки в тестах прибить 
22 Модель. Класс комнаты 00:16:39
46 чел. ★ 5 Done
  На этом уроке мы создадим модель на комнат, класс Room.
Чтобы сделать это быстро - мы воспользуемся заготовками
из класса Client.cs. В этом уроке мы не пишем тестов,
поэтому класс создали в рекордно короткое время, 15 мин.
Однако, создание тестов никто не отменял - это самостоятельное задание.
Отчёт отправил: 9913. vip Выполнено за 1 день 1 час. 52 мин. [Показать отчёт]
Научился: Создал класс Комната и пописал тесты для его методов 
Сложности: попробовал сверстать тест на проверку добавления новой комнаты в SQL запросе прописал все ручками - не получилось отработать тест т.к. не совсем понял что должен вернуть SELECT в случае положительного и отрицательного исхода выполнения кода так же непонятно как в тестах отработать пошаговую отладку в командной строке sql все отработало верно = INSERT INTO room SET room='Double 102', beds=1, floor='1', info ='No Nice bed'; код в тесте    string rooms=sql.Scalar("INSERT INTO room SET room = 'Double 103', beds = 1, floor = '1', info = 'No Nice bed'"); не проходит по идее при положительном исходе запроса sql должен вернуть 1 добавленную запись и в тесте мы её сравниваем с "1" если запись не добавилась или ошибка тогда ответ sql 0 и сравнивать нужно с "0" посмотрим на следующем уроке как разрешилась ситуация 
23 Модель. Удаление комнат. 00:14:41
44 чел. ★ 4.9 Done
  На этом уроке мы добавим метод для удаления комнат.
Исправим логическую ошибку метода Update в классах Room и Client.
Подготовим функцию для теста созданного класса.
Рекомендую эти тесты создать самостоятельно.
Отчёт отправил: 9913. vip Выполнено за 2 дня 21 мин. [Показать отчёт]
Научился: Создал и протестировал методы для Комнат 
Сложности: вот что подумал. это какой же должен быть отель что бы там нумерация комнат вмещалась в тип long 
24 Модель. Тестирование комнат. 00:30:31
41 чел. ★ 5 Done
  На этом уроке мы создадим TestRoom() для класса Room.
Это будет одна функция, в которой мы последовательно
будем вызывать все методы класса Room и проверять,
на сколько правильно и корректно они отработали.
В конце урока мы выполним тест пошагово.
Отчёт отправил: 9913. vip Выполнено за 1 мин. [Показать отчёт]
Научился: Создал функционал тестирования класса Комната Протестировал методы исправил ошибки. Понравилось в пошаговом режиме исполнить тест. Очень заманчиво и интересно - магия! 
Сложности: в функционале класса Room при использовании метода удаления Delete не используется параметр ID см. предыдущий тест TestDeleteRoom() 
25 Модель. Бронирование. 00:29:40
41 чел. ★ 5 Done
  На этом уроке мы посмотрим картинки красивых комнат.
И начнём создавать модуль бронирования Book.
Создадим конструктор, методы InsertBook(),
SelectBook() и UpdateBook().
В конце поговорим о том, что нужно отдыхать ДО того, как устанешь.
Отчёт отправил: 9913. vip Выполнено за 2 дня 54 мин. [Показать отчёт]
Научился: Дописал класс Бронирование в книге 
26 Модель. Статусы заказов. 00:14:52
39 чел. ★ 5 Done
  На этом уроке мы поговорим о статусах заказа.
Создадим методы изменения статуса и дней заезда/выезда.
Отчёт отправил: 9913. vip Выполнено за 2 дня 21 час. 50 мин. [Показать отчёт]
Научился: Написал функционал Update Book 
Сложности: можно было бы последние функции одинакового вида вызывать с параметром 
27 Модель. Список заказов. 00:13:17
1 тест
38 чел. ★ 5 Done
  На этом уроке мы допишем два последних метода в класс Book.
Методы для получения списка заказов по фильтру и без.
В конце урока выведем результаты в грид,
чтобы убедиться, что код работает.
Отчёт отправил: 9913. vip Выполнено за 23 час. 55 мин. [Показать отчёт]
Научился: Реализовал поиск выборку по условию в БД таблица бронирования 
Сложности: что-то в запросе с параметром коряво написано лишнее присутствует и обращение к b.info до объявления 
28 Модель. Карта отеля 1 00:22:41
1 тест
37 чел. ★ 5 Done
  На этом уроке мы начнём создавать модель управления комнатами.
Пока мы создадим только конструктор, поля и метод
void SelectMap (long room_id, long book_id, DateTime calendar_day)
Отчёт отправил: 9913. vip Выполнено за 1 день 17 мин. [Показать отчёт]
Научился: Реализовал модель Map- карта отеля 
29 Модель. Карта отеля 2 00:18:56
37 чел. ★ 4.9 Done
  На этом уроке мы создадим методы InsertMap() и InsertMapNone().
Также добавим в класс MySQL метод DateToString()
и пробежимся по всему проекту, убирая yyyy-MM-dd.
Отчёт отправил: 9913. vip Выполнено за 23 час. 45 мин. [Показать отчёт]
Научился: Добавил и расширил функционал класса Комната 
30 Модель. Карта отеля 3 00:16:56
37 чел. ★ 4.9 Done
  На этом уроке мы создадим оставшиеся методы класса Map:
SelectMap(), UpdateMap() и DeleteMap().
Пока без тестирования.
Отчёт отправил: 9913. vip Выполнено за 31 мин. [Показать отчёт]
Научился: Дописал класс Карта Отеля 
Сложности: устал страшно от этой галиматьи нужно тестирование всего этого безобразия 
31 Вид. Список форм. 00:12:00
1 тест
25 чел. ★ 4.8 Done
  На этом уроке мы приступаем к следующему этапу создания программы - Представления (вид). Наша задача - составить список форм, которые будут в проекте, и для каждой формы нарисовать, как она будет выглядеть.
Отчёт отправил: 9913. vip Выполнено за 14 мин. [Показать отчёт]
Научился: Спланировал перед днем космонавтики 
Сложности: Вопрос как и у всех ГДЕ продолжение банкета. Не Евгений Витольдович так дело не пойдет. Ждемс продолжения и окончания курса!!!!!!!!!!!!!!!!!!!!!! 
  Итого:   31 видеоурок 10 час. 16 мин.
17 тестов
23 чел. ★ 4.96  
  Финалисты:   Денис,   Иван,   Николай Миролюбов,   Валентин,   Кирилл Шмойлов,   Frank,   Rita,   Ludmila,   Станислав,   Сергей Зулкарнаев,   kalobyte,   Tekashnik,   egresr,   Новопашин Владимир,   Роман,   Yefim,   Василий,   Ivan,   vip,   Илья,   Михаил,   Vdonsk,   Егор Ульянов .

Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: Выучил описание методов. Начинаю понимать как добавлять клиентов. Интересует теперь как их удалять, что б каждый раз неприходилось прописывать в консоле - alter table client auto_increment = тот который надо; Если будут текст боксы то я догадываюсь что и где прописать, но будет ли проблемой если я захочу добавить несколько UserControl для того чтоб при нажатии на кнопку было легче и красивее менять интерфейс, загружать данные с этих UserContol в дата грид или в какуюто другую форму? Интерестно...ночные размышления)



Научился: Написали функции для обработки запросов к БД и протестировали эти функции на примерах
Трудности: было бы неплохо addslashes еще разок показать как работает