Введение
Вы вообще не шарите, что такое программирование и как к нему подступиться? Видите какие-то сложные слова по типу ИТЕРАЦИИ, ЦИКЛЫ, АЛГОРИТМЫ? "ОНЕТ!!! Хватит!!! уберите это от меня!" - кричите вы, как только услышите или увидите что-то подобное.
Вам очень повезло, ведь вы попали в проект "Программирование по-пацански". Что это такое? А это, братан мой, объяснение прогинга (программирования) простыми словами, как мы это любим - без лишней фигни, но и чтоб с душой и толком. Ну и как там говорил один великий чел "Поееееехали!"
Алгоритмы - основа основ!
Все мы знаем, что алгоритмы это просто порядок действий.
Например: Сходить в магазин это
Встать с дивана
Одеться
Открыть дверь и так далее до самого магазина
Что отличает программиста от простого смертного?
Но что отличает программиста от обычного человека, так это то, что он может эти алгоритмы расписывать компьютеру. Ведь он не понимает наш естественный язык. Для этого придуманы языки программирования, через которые мы и общаемся с компьютером. Но язык программирования - это язык логики. Он устроен не так, как тот же английский, русский или даже китайский.
Так вот, первое, что должен научиться делать человек, который хочет быть программистом, это правильно разбивать действия на подзадачи (составлять алгоритмы).
Упражнение и первый пример
Упражнение
Это упражнение в принципе и нужно для того, чтобы тренировать ваш мозг научиться переводить порядок действий в компьютерную программу. У этого упражнения могут быть уровни сложности и всё в этом духе, но сейчас самое важное это в принципе понять саму суть и научиться погружать себя в эту тему хотя бы как-то.
Пример как выполнять упражнение:
Собака прыгает - в реальности, мы это видим, как собака сначала поднимается вверх, а потом опускается вниз. По сути, так и выглядит этот алгоритм.
Далее начинаем думать, как бы мы сделали это в игре: сначала проверяем, нажата ли клавиша пробел. Значит, первое действие - если нажата клавиша пробел:
если нажата клавиша пробел
Далее нужно поднять собаку вверх. Вот как это сделать:
Высота расположения собаки увеличивается (например, текущее положение + 5).
Так, мы поднимем собаку на 5 единиц вверх. Что дальше? А теперь нам нужно её опустить.
Берём положение собаки и отнимаем у неё 5 единиц, чтобы она спустилась (новое положение -5).
Всё ли сделали правильно? Вроде да, есть собака, есть положение, она поднимается, а потом она опускается.
СТОП!!! Так она же просто поднимется и опустится, а в жизни это происходит плавно! Значит, с каждой миллисекундой она должна подниматься по чуть-чуть, пока на 5 не поднимется, и точно также опускаться. Значит, этот алгоритм не правильный!
В секунде 1000 миллисекунд, значит, каждую миллисекунду надо подниматься по 5/1000 = 0.005, по 0.005.
Итак:
Если нажата клавиша пробел
Ждём 1 миллисекунду
Поднимаем собаку на 0.005 единиц
Ждём 1 миллисекунду
Поднимаем собаку на 0.005 единиц ... и так далее.
СТОП... Неужели, чтобы такое простое действие замутить, нужно писать так много строчек кода? Конечно же, нет!!! Вот для этого и существуют циклы, функции и многое другое, о чем дальше и пойдёт речь, в следующих уроках.
Программирование - это просто
Посмотрите, ведь то, что вы раньше не понимали - переменные и условия - это же и есть то, что мы с вами делали. Когда мы проверяли, если клавиша пробел нажата, мы с вами поставили условие, а когда мы повышали высоту собаки, мы работали с переменной под названием "высота", которая является числом. Получается, мы программировали, и это оказалось совсем не сложно!
Учиться, учиться и ещё раз учиться!
Увы, но просто узнав, что надо составлять задачи таким образом, после того как вы прочитали примерчик с собачкой, вы не сможете просто тупо взять и сразу же мыслить как программист по щелчку. Для этого я и придумал упражнение, которое вы должны выполнять в течение какого-то времени и отслеживать результат. Желательно попробовать самому прямо сейчас составить подобный примерчик, только свой, и если он будет отличаться, это будет даже лучше, ведь вы своими рассуждениями придёте к чему-то своему.
Как лучше тренироваться?
Рекомендую выполнять два тренировочных блока в день - днём и перед сном.
Один тренировочный блок выглядит так: 20 минут работы - 5 минут отдыха - 20 минут работы. - 15 минут отдыха - 20 минут работы
Возможно, что кто-то уже узнал технику помодоро, только люди помнят, что там 25 минут, а у меня 20, потому что 25 это на физические тренировки, а 20 на умственные.
Обращайте внимание, что в обучении важно:
Регулярность - если вы будете пропускать, то тупо весь прогресс сбросится, и придётся начинать сначала (всё не так печально, когда пройдёт нормально, так времени потом прогресс закрепится, но пока навык не сформировался, будет всё не клёво).
Обратная связь - это короче, когда ты ошибаешься или не ошибаешься, то есть насколько правильно ты что-то делаешь, и важно получить эту связь как можно быстрее и исправить ошибку сразу же, как ты о ней узнал, вот как у нас с собачкой. Мы поняли, что она там будет сразу взлетать и падать и исправили. Обратную связь можно получить от учителя, ну или от кого-нибудь шарящего чела, ну и на крайняк, если можете сами внимательно найти, но скорее всего вас бы тут и не было, если вы так могёте.
Интенсивность - это вообще кабзда какая важна фигнюшка, это типо звёл таймерок на 20 минуток и всё, и ты только этим и занимаешься, только тренировка, и ни на что больше ты не отвлекаешься, иначе хана твоему прогрессу!
Изоляция - это короче, когда ты задачу на подзадачи разделяешь. Например, хочешь ты научиться играть на гитаре (сначала учу аккорды, потом баре зажимаю и т.д.). Тут можно разбить на разные алгоритмы по сложности, смотрите сами, что вам легче объяснить: как собачка прыгает, или как котейка танцует брейк-данс. В общем, смотрите сами и по очереди изучайте.
Заключение
В общем, думаю, всё понятно. На последок скажу такую фигню: есть приблизительные цифры, по которым можно понять, надо ли этим заниматься.
Это 10-2-1-3-5:
Десять - это 10 часов (по часу в день).
Два - это 2 месяца (по часу-три в день). Тут вы скорее всего уже станете новичком.
Если не выдержите и дропните на одном из этапов выше, значит, не ваше. А если дошли до этапов ниже, то скорее всего вы и не дропните уже. Это скорее просто примерная разбаловка стажей, чтобы излишних ожиданий у вас не было:
Один - это один год. Тут вы станете таким прям шарящим новичком.
Три - это три года. Тут вы станете любителем.
Пять - это пять лет. Тут вы станете таким полу-профессионалом или даже уже прям сильно шарящим разрабом.
Скажу так, если честно, то из 1000 людей скорее всего только 100 станут новичками, 10 любителями, и лишь один станет полу-профессионалом. Увы, но многие люди ленивые, кто-то поймёт, что это не его, а кто-то не преследует высоких целей, чтобы становиться профессионалом, поэтому как есть. Но в любом случае я желаю удачи в ваших начинаниях и кто готов продолжать, ждём следующих уроков.
