Skip to content
Get App

Чему не учат на курсах программирования

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

Key Takeaways

  • Перед написанием кода нужно понять, что именно должна делать программа, разбив процесс на действия и шаги
  • Реальный процесс (например, работа библиотеки) — хороший источник логики для проектов
  • Умение писать код и умение проектировать решение — разные навыки, и второе часто не тренируется на курсах
  • Трудности новичков часто связаны не с языком, а с отсутствием навыка анализа задачи

What the video covers

  • Курсы обычно показывают готовую задачу, и ученик повторяет за автором, но при собственном проекте не знает, с чего начать
  • Знание синтаксиса и конструкций не означает умения писать проекты, как знание грамматики не даёт умения составить предложение
  • Автор сам долго сталкивался с этой проблемой и даже бросал программирование, работая менеджером
  • Ключевой пропущенный этап — разбор самой задачи и понимание, как она должна работать, до написания кода
  • Для наглядности разбирается работа библиотеки: каталог, тетрадь записи, формуляры и тетрадь долгов
  • Выдача книги включает проверку читателя (нет просрочек, меньше пяти книг на руках, нет долга), затем проверку книги
  • Продление возможно один раз, при возврате считается опоздание и штраф 50 руб. за каждый день
  • Редкие книги выдаются только в читальный зал, повреждённые книги отправляются на реставрацию
  • Бумажная система неудобна: формуляры легко потерять или перепутать, поиск требует перебора всех записей
  • Логика, выписанная из реального процесса, переносится в программу: записи хранятся в базе, а действия становятся шагами алгоритма

Answers

Questions about this video

Почему после курсов программирования трудно начать собственный проект?

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

Что предлагает автор как способ понять логику программы до написания кода?

Автор предлагает разобрать реальный процесс, например работу библиотеки, выделить действия, разбить их на шаги и уже по полученной логике писать код. Код появляется в самом конце.

Какие документы библиотеки используются в примере и зачем?

Используются каталог с карточками книг, тетрадь записи читателей, формуляры выдач и тетрадь долгов по штрафам. Вместе они описывают данные и правила, которые затем превращаются в структуру программы.

Full Transcript — Download SRT & Markdown

00:00
Speaker A
В курсах и уроках мы обычно видим уже готовую задачу, где автор уже сам знает, что должна делать программа и показывает нам, как это написать. Мы за ним повторяем и получаем рабочую программу.
00:12
Speaker A
Но когда садимся за собственный проект, никто нам уже не говорит, с чего начать. Нам самим нужно понять, что должна делать программа, и поэтому мы ловим ступор.
00:23
Speaker A
Вот получается, я что-то учу, есть какая-то конструкция, но как эту конструкцию применять конкретно, как конкретной задаче какой-то, я не понимаю. Я не пойму, куда применять и как применять этот код.
00:31
Speaker A
[музыка] Человек может полгода изучать язык и всё-равно не умеет писать проекты. [музыка] Он может заниматься по 5-6 часов в день и при этом сам создать ничего не может. Он может учиться на курсе с наставником, репетитором.
00:49
Speaker A
Он может понимать язык, но проблема остаётся той же самой. Это как будто знать всю грамматику английского, но не мочь самому составить даже простое предложение. И, конечно, [музыка] в такие моменты кажется, что у других есть мозги, у них всё получается,
01:08
Speaker A
проекты пишутся, на работу устраиваются, а ты один какой-то не такой. И опускаются руки, начинаешь уже в себе сомневаться.
01:20
Speaker A
Я сам долго сталкивался с этой проблемой. В какой-то момент даже бросал программирование, работал просто обычным менеджером [музыка] потому что думал, что я тупой и это просто не моё.
01:34
Speaker A
[музыка] Но со временем я всё-таки разобрался, чего мне не хватало. А когда начал обучать новичков, то увидел, что многие сталкиваются с той же проблемой.
01:45
Speaker A
А дело вот в чём, ребята. Мы учимся писать код, но часто пропускаем этап, на котором нужно сесть и разобраться в самой задаче понять [музыка] как она должна работать. А ведь именно из этого этапа и берётся логика проекта, [музыка] которую нам обычно в
02:04
Speaker A
видеокурсах не показывают. В этом видео я покажу, как понять, что должна делать программа ещё до написания кода. Для этого мы возьмём как пример библиотеку.
02:17
Speaker A
Посмотрим, какую работу выполняет библиотекарь. Что он делает, по каким правилам. [музыка] Затем разберём этот процесс отдельно.
02:28
Speaker A
Выделим действия, разобьём их на шаги и получим [музыка] логику будущей программы. В этой библиотеке нет программы. Все записи ведутся от руки на бумаге.
02:43
Speaker A
Давайте посмотрим, что тут у нас. Книги стоят на стеллаже. Читатели к стеллажу не подходят, они ждут у стойки, а книгу им приносит библиотекарь.
02:54
Speaker A
Порванные книги кладут на полку реставрации. Их оттуда потом забирают в ремонт. А редкие книги домой не выдают. Их читают [музыка] здесь, прямо в читальном зале.
03:06
Speaker A
На столе у библиотекаря четыре документа: каталог, тетрадь записи, формуляры и тетрадь долгов. Каталог - это ящик с карточками для книг. На каждую книгу в библиотеке заведена одна карточка.
03:24
Speaker A
На карточке написаны автор, название и год издания. Инвентарный номер у каждой книги свой, и такой же номер написан на самой книге. Место - это на какой полке стеллажа стоит сейчас книга. По нему библиотекарь её и находит. А сами книги
03:40
Speaker A
стоят на стеллаже. В каталоге лежат только записи о них. Редкие книги отмечены красной наклейкой и на карточке, и на самой книге. Домой их не выдают, только в читальный зал.
03:54
Speaker A
Тетрадь записи. Сюда вписывают каждого нового читателя. Номер читательского билета. По этому номеру библиотекарь находит все остальные записи о читателе, имя и телефон, чтобы знать, у кого книги и позвонить, если их не вернули, а то мало ли.
04:12
Speaker A
Формуляры. Это карточки, на каждого читателя своя. Они лежат в ящике по номерам билетов. Когда человек берёт книгу, в формуляр пишут её номер, название, дату выдачи и дату, до которой её вернуть. Когда книгу сдают, ставят дату сдачи. Если даты
04:34
Speaker A
сдачи нет, книга сейчас у читателя на руках. Тетрадь долгов. Сюда записывают штрафы, когда читатель не заплатил сразу.
04:45
Speaker A
Номер билета, имя, за что штраф и сколько. Когда читатель платит, долг зачёркивают и ставят дату оплаты.
04:55
Speaker A
Вот пришёл человек и называет книгу. Библиотекарь просит читательский билет. А человек оказывается здесь впервые.
05:03
Speaker A
Тогда сначала его надо записать. Библиотекарь вписывает в тетрадь записи новый номер билета, имя и телефон. Потом заводит на читателя формуляр. Он пока пустой.
05:17
Speaker A
Читатель получает свой билет. И библиотекарь сразу идёт искать его книгу. По каталогу он узнаёт номер книги и на какой полке она сейчас стоит. Книга на месте.
05:28
Speaker A
Библиотекарь берёт её. В формуляр он записывает номер и название книги, дату выдачи и дату возврата. Книгу выдают на 14 дней.
05:39
Speaker A
Приходит постоянный читатель. Он называет книгу и показывает билет. Библиотекарь не помнит читателя в лицо, поэтому каждый раз проверяет всё по порядку, по алгоритму. Сначала все проверки читателя, потом уже по книгам.
05:53
Speaker A
То есть, по номеру билета он находит формуляр. Так, просроченных книг нет, на руках меньше пяти книг, о'кей. В тетради долгов этого читателя нет, отлично.
06:03
Speaker A
Теперь книга. По каталогу библиотекарь узнаёт, где она стоит. Книга на месте. Но на ней красная наклейка.
06:11
Speaker A
Книга редкая, поэтому домой её не выдают. Библиотекарь отдаёт книгу и читатель садится с ней в читальный зал.
06:19
Speaker A
Следующий читатель просит книгу. Проверка та же. Просрочек нет. На руках меньше пяти книг, долгов тоже нет.
06:28
Speaker A
Библиотекарь смотрит в каталоге, где стоит книга, но на полке её нет. Книгу уже взял другой читатель. Пока книгу не вернут, выдать её нельзя.
06:39
Speaker A
Следующий читатель хочет взять ещё одну книгу. Библиотекарь находит его формуляр. Одна книга просрочена. Срок вышел, а читатель её ещё не вернул. Поэтому пока он не вернёт эту книгу, новую ему не выдадут.
06:53
Speaker A
А остальное уже дальше не проверяют. Другой читатель тоже просит книгу. Просроченных книг в его формуляре нет.
07:03
Speaker A
Но на руках уже пять. А больше пяти книг одному читателю не выдают, чтоб книг всем хватило. Поэтому и отказывают.
07:13
Speaker A
У одного срок подходит к концу. Первый читатель не успел дочитать свою книжку и просит продлить. Библиотекарь смотрит формуляр. Срок ещё не прошёл и книгу раньше не продлевали. Он зачёркивает старую дату возврата и пишет новую, ещё на 14 дней. Продлить книгу можно только
07:29
Speaker A
один раз. Первый читатель возвращает книгу. Он опоздал на неделю. Библиотекарь записывает формуляр дату сдачи.
07:40
Speaker A
По календарю он считает, на сколько дней читатель опоздал. За каждый день опоздания штраф 50 руб. Читатель платит и книга возвращается на стеллаж.
07:54
Speaker A
Другой читатель сдаёт книгу с оторванной обложкой. Ремонт оплачивает читатель. Цена ремонта есть в прайсе. Книгу кладут на полку реставрации. Пока её не починят, её никому не выдают.
08:08
Speaker A
В тот же день книгу забирают в ремонт. Следующий читатель просит книгу. Формуляр в порядке, просрочек нет, книг на руках нет, но в тетради долгов за ним штраф. Прошлую книгу он сдал с опозданием. Пока долг не оплачен, книги не выдают. Читатель платит сразу,
08:27
Speaker A
библиотекарь зачёркивает долг и ставит дату оплаты. Дальше всё как обычно. По каталогу библиотекарь узнаёт, где стоит книга. Книга на месте.
08:35
Speaker A
Библиотекарь её берёт, записывает её в формуляр и выдаёт. Книгу вернули из ремонта. Библиотекарь ставит её на стеллаж.
08:49
Speaker A
Теперь её снова можно выдавать. Вся эта работа держится на бумагах и на памяти библиотекаря. Смотрите, формуляров сотни, их достают и кладут обратно и потом вот этот весь бардак на столе. Если формуляр положили не туда, его не найти уже.
09:08
Speaker A
В итоге книги у читателя есть, а записи может о них нет. Похожие формуляры легко перепутать и записать книгу вообще не тому читателю.
09:18
Speaker A
Чтобы проверить один долг, библиотекарь листает тетрадь долгов страницу за страницей. А чтобы узнать, у кого сейчас конкретная определённая книга, он перебирает все формуляры, потому что они лежат у него по читателям, а не по книгам. Книгу просроченную ищут также.
09:38
Speaker A
Берут каждый формуляр и сверяют даты с календарём. Это очень долго и легко ошибиться. Пока библиотекарь вот этим всем занимается и ищет, там считает, у стойки собираются уже в очередь. Люди подолгу ждут.
09:55
Speaker A
Вот это вся работа библиотеки, ну, в таком урезанном формате, чтобы вам было понятно. Всё, что нужно сейчас для программы у нас есть из этого рассказа. Сейчас давайте соберём из него некий алгоритм, программу, чтобы было понятно, как это всё у нас работает.
10:16
Speaker A
Давайте выпишем всю эту работу уже как программу. Не кодом, просто логикой. Библиотекарь у нас делает шесть разных дел. Он записывает читателей, выдаёт книги, продлевает срок, принимает книги, принимает оплату и возвращает книги из ремонта. Вот это каждое дело это отдельная функция. У неё
10:37
Speaker A
есть имя и то, что ей нужно знать об этом деле. Каждое дело делится на шаги.
10:45
Speaker A
Вот выдача это проверить читателя, проверить книгу и оформить выдачу. Проверить читателя это значит убедиться, что у него нет просрочки, на руках меньше пяти книг и нет долга.
11:00
Speaker A
Проверить книгу, найти её в каталоге и убедиться, что она на месте и она не редкая. Оформить выдачу, записать её в формуляр и поставить срок.
11:14
Speaker A
Приём книги. Записать дату сдачи, посчитать штраф, отправить её на ремонт и записать долг. Вот вся программа библиотеки.
11:25
Speaker A
Это та же работа библиотекаря, только записанная по шагам. В конце остаются простые шаги обычными словами. Достать из базы, посчитать, сравнить. Если что-то не так, книгу не выдают. Например, нет просрочки. Это достать не сданные книги и сравнить срок с сегодняшней датой.
11:47
Speaker A
Если срок прошёл, новую книгу не выдают. А вот так это выглядит в коде. Идёт запрос в базу, потом цикл и какое-то условие. Каждый шаг из карточки несколько строк кода. Сейчас наш фокус не на коде, а на том, откуда он
12:05
Speaker A
появляется. Также до код раскладывается и оформление выдачи. Собрать запись, сохранить её в базу. Поставить срок сегодня плюс 14 дней.
12:19
Speaker A
Вот чего не хватает новичку. Он открывает редактор и не знает, что писать. Потому что не разобрал логику. А когда логика выписана, уже становится понятно, что писать.
12:41
Speaker A
Теперь представим, что мы написали наш код по этой логике и теперь видим ту же библиотеку. Теперь у нашего библиотекаря есть программа. Тетради на столе больше нет.
12:52
Speaker A
Все записи хранятся в программе. На экране те самые шесть действий из карты, которые мы рисовали до этого.
13:00
Speaker A
Каждое стало кнопкой. Вот приходит читатель, просит книгу. Библиотекарь вводит номер билета, номер книги и нажимает выдать. Программа сама проходит те же проверки, что библиотекарь делал вручную.
13:15
Speaker A
И на это уже уходит секунда. Бац, у читателя долг. Программа отказывает и показывает сумму.
13:21
Speaker A
Библиотекарь принимает оплату, долг программа отмечает сама. Снова нажимает выдать. Теперь все проверки пройдены и программа подсказывает полку. И всё, библиотекарь только ходит к стеллажу.
13:35
Speaker A
Следующий читатель сдаёт книгу с опозданием. Библиотекарь вводит номер книги, программа сама находит выдачу и считает дни опоздания и штраф.
13:44
Speaker A
Календарь больше не нужен. Читатель платит и книга возвращается на стеллаж. Другой читатель сдаёт порванную книгу.
13:53
Speaker A
Библиотекарь отмечает повреждение. Программа сама берёт цену из прайса и ставит книге отметку на реставрации.
14:00
Speaker A
Читатель платит за ремонт, книга на полку реставрации. Записи, проверки, расчёты теперь делает сама программа. Библиотекарь ходит только к стеллажу и к полке реставрации.
14:13
Speaker A
Очереди у стойки больше нет. Давайте подведём итог. Сначала мы посмотрели, как работает библиотека на бумаге. Потом выписали её логику, какие там действия, какие шаги выполняются, что проверяют, что считают. И только в конце мы записали эту логику кодом.
14:31
Speaker A
Программа наша делает ровно то, что делал библиотекарь. Мы ничего не придумывали. [музыка] Всё взяли из его работы.
14:39
Speaker A
Вот так придумывается любая программа. Сначала разбираешься, как устроено дело, потом пишешь код. И помните сообщение, которое мы читали в начале? "Синтаксис знаю, написать проект не могу". Вот теперь понятно, откуда брался этот ступор.
14:57
Speaker A
Вот вся программа библиотеки. Справа наш код, условия, циклы, запросы в базу, технологии, языки. А всё, что слева, вся эта логика. Мы просто описали работу библиотеки. Ступор был из-за того, что мы думали, что логика должна появляться сама, потому что мы хорошо учим язык. Но
15:17
Speaker A
оказывается, это не так. Ребята, сам язык не подскажет, какую программу писать. Задача, что писать, решается за рамками [музыка] языка программирования.
15:32
Speaker A
Поэтому, когда не знаете, с чего начать программу, начинайте с вопроса: как эта работа устроена без программы?
15:40
Speaker A
Вот что сказал мой ученик, когда впервые так сделал. И уже когда начал писать код, я вижу, что я пишу, а у меня есть готовая картина, что должно быть, как оно должно работать.
15:50
Speaker A
Ну, то есть, это классно. Это очень круто. Очень круто. Поэтому спасибо тебе, Рахим. Хорошо, что я тогда на этот шаг решился.
16:00
Speaker A
Решился и выбрал хорошего наставника. Очень хорошая прокачка мозгов. [музыка] [музыка] [музыка] [музыка] [музыка]
Topics:программированиекурсы программированияначинающие программистыалгоритмылогика программыпроектированиеPythonобучение программированиюанализ задачибиблиотека

Get More with the SozAI App

Transcribe recordings, audio files, and YouTube videos — with AI summaries and speaker detection. 30 minutes free.

Or transcribe another YouTube video here →