Моё рассуждение о программировании. Часть 3.
Сегодня я расскажу вам как учиться программированию и как это делаю я. Покажу какие есть методики, подходы, источники, книги, курсы и как их выбирать. Объясню как я с ними работаю, какие пишу конспекты и как это делаю.
Я обо всём вам этом сейчас расскажу, но не с точки зрения того как правильно, а с точки зрения своего опыта и как я это делаю уже на протяжении 10 лет.
Если брать большую тему в которой я хочу прокачаться, то мой алгоритм следующий.
Большая тема - это может быть новый язык программирования, большой фреймворк, более глубокая проработка какой-то системы управления баз данных или это может быть просто новая для меня тема.
Итак, первое что я делаю - это просмотр и поиск информации в интернете. Если мы берём какую-то конкретную технологию или конкретный язык программирования, фреймворк, библиотеку, то у этой технологии всегда есть официальный сайт. Его нужно найти и посмотреть какие там есть туториалы, вводные гайды, документация и так далее.
Официальная документация далеко не всегда устраивает меня по качеству, понятности, доступности, полноте, но тем не менее, в любом случае это то, что стоит почитать и то с чего стоит начать. Я недавно изучала одну из библиотек. И вот я читаю официальную документацию, там написано как установить эту библиотеку:
https://quilljs.com/docs/download
Дальше сразу расположены куски кода, которые объясняют как эту библиотеку использовать без импортирования, но команда импорта там не написана. И тут у меня возникает вопрос: "А импортировать откуда?"
В итоге пришлось лезть в Google для того чтобы найти команду её импорта. И это конечно же печальная история, когда на самом первом этапе вводного гайда, по конкретной технологии, у вас уже ничего не получается и вам необходимо лезть в Google для того чтобы разрулить какую-то проблему. Это пример неправильного подхода к написанию документации, такое к сожалению есть. Но в любом случае, безусловно, нужно найти официальный сайт той технологии которую вы собираетесь изучать и почитать.
Например по языку программирования Rust документация просто офигенная:
https://doc.rust-lang.org/book/ch01-01-installation.html
Почему? Потому что она оформлена в виде книги. Эту книгу можно почитать на сайте, её можно скачать в pdf, её можно даже купить в книжном магазине в бумажном виде. И это официальная документация по языку программирования Rust, которая находится на официально сайте. Это очень круто, я фактически не видела не одного языка программирования, не одной технологии, которая настолько серьёзно, основательно и здраво подошла к написанию своей документации и обернула её в книгу.
В чём отличие книги от документации? Документация, к сожалению, часто из себя представляет небольшой туториал с сухим описанием, в нём вам вообще ничего не понятно. Хорошо, вы прочитали документацию:
У вас есть просто сухое описание. Есть люди которые предпочитают читать только официальную документацию, я к ним не отношусь. Мне официальная документация очень редко нравится. В случае с Rust она отличная, потому что это книга.
Книга - это логически выстроенный материал. Это не сухое описание api и как написать "hello world", а дальше просто обычный справочник. Книга это выстроенный материал, где в начале рассказано как установить эту штуку, потом рассказано как на ней "hello world" поднять, потом более сложные примеры, какие-то сравнения, почему лучше сделать вот так, а не иначе, почему именно такой подход выбран в этой технологии, языке программирования, библиотеке, рассказано как ими правильно пользоваться, какие есть подходы, добавлены также ссылки на дополнительные материалы. Это есть хорошая книга, плюс в ней есть задания. В официальной же документации заданий нет вообще.
Официальная документация не всегда хороша, где-то она хуже, где-то она лучше, но её безусловно стоит найти и почитать, хотя бы полистать для того чтобы хотя общие азы о технологии сложить, а далее уже читать книги.
На мой взгляд абсолютно лучший источник для серьёзного, глубокого, основательного прокачивания любой темы - это книги. Во-первых, книги это систематически выстроенное повествование, это не набор каких-то лоскутных туториалов "Как сделать вот это", "Как сделать то", а рассказ о том, как всё это вместе связать и как лучше. На хорошие книги работает команда, это автор или авторы, рецензенты, редакторы. Если все эти люди ответственно относятся к своему делу и являются прекрасными специалистами, знатно потрудились в процессе разработки своей книги, то на выходе получается офигенный продукт, ценность которого сильно превышает стоимость книги.
Лично мне очень нравятся именно бумажные книги, а не электронные. Мне всегда так смешно как некоторые люди мне в личные сообщения пишут, что цены на книги по программированию превышают 30 евро (2 тысячи рублей). Они заходят в какой-либо книжный магазин, видят цену в 30-45 евро (2-3 тысячи рублей) и такие: "Ничего себе. Книга 45 евро - это очень дорого". Приведу пример. У меня есть знакомый, он прочитал две книжки, прошёл небольшой курс и стал зарабатывать в месяц, минимум на 1500 евро больше, чем он зарабатывал до этого. Это чуть более 18000 евро дополнительного дохода в год, при стоимости каждой книжки в 45 евро. Мне кажется, что если вы считаете что хорошая профессиональная книжка за 45 евро это дорого, то возможно вы немножко дурачок. Без обид. В любом случае, если вам не нравятся бумажные книги и вы не хотите тратить денег, то можете найти бесплатную электронную версию в интернете, они все давно слиты.
Поэтому после изучения документации, вводных статей в интернете, просмотра каких-то видео на Youtube, я захожу на сайты с продажей бумажных книг, а далее смотрю какие книги там продаются, смотрю отзывы по этим книгам. Иногда бывает так, что по какой то теме очень много людей рекомендуют какие-то конкретные книги, называя их базой, фундаментальными трудами, которые обязательно стоит прочесть для того чтобы глубоко прокачаться в этой теме и значит их стоит купить.
Вы нашли какие-то хорошие книги, заказали и оплатили, это первый подход. Теперь расскажу о втором подходе - найдите несколько самых крупных магазинов книг в вашем городе, езжайте туда, отыщите там стенд с книгами по интересующей вас тематике, и просто берите эти книги, листайте их, бегло просматривайте страницы. Если что-то вам понравилось - покупайте и читайте.
Даже если вы не искали отзывы на эту книгу или они не очень хороши, то в любом случае, прочитав одну книгу - вы не станете супер профессионалом в той теме которую вы изучаете, но что-то полезное из прочитанной книги вы вытащите. Даже если рейтинг этой книги 3 из 5, но вы её полистали и она вам нравится, то покупайте, читайте, всё нормально, свою пользу вы из этого получите.
В чём тут суть? Вы читаете какую-то книгу, листаете, а далее вы понимаете, что она вам неинтересна, не цепляет - откладывайте. Другую читаете: "Прикольно." Вам сразу понятно и нравится как пишет автор, вам нравятся примеры, вам хочется продолжить её читать, значит её можно купить. Что-то другое беретё читаете: "Прикольно. Классные темы, интересные, автор круто пишет, завлекающе, но это пока что тяжеловато для моего уровня, эта книга для более продвинутых уже специалистов в этой теме". Тут два варианта:
- Покупайте её на вырост, если она действительно понравилась.
- Не покупайте, но запоминайте, можете название куда-то записать, чтобы в будущем купить и почитать её.
Это очень хороший подход, потому что по отзывам вы такую информацию не получите, а съездив, полистав, почитав, посмотрев на книжки вживую, вы сможете выбрать действительно достойный и именно для вас материал.
Замечательно, вот вы купили книги, пришли домой. Но страшная тайна заключается в том, не все это знают, но от того, что у вас, в вашем жилище, появились новые книги - новых навыков у вас от этого не появится автоматически. Представляете? Для того, чтобы новые навыки появлялись, то книги нужно не просто покупать, а их ещё нужно читать.
Прямо читать, прорабатывать серьёзно, и штука тут в том, что читать и прорабатывать книжки можно тоже по разному. Можно на "отвали". Что-то там пролистали, музычка играет, мессенджер отвлекает, на телефон кто-то звонит, полистали, вроде прочли книжку. Очевидно же, что вы не прочли книжку.
Вы просто на "отвали" что-то сделали, но ничего полезного из книги не извлекли.
Нужно обязательно прорешивать все задания в книге, помимо этого нужно чётко понимать чем вы сейчас, в конкретный момент, занимаетесь.
Если вы отдыхаете, то отложите учёбу, книги, работу, а далее полноценно и круто отдыхайте, так, как вам нравится. Гуляйте, занимайтесь спортом, встречайтесь с друзьями, всё что угодно, выберете ваш любимый формат отдыха. Не пытайтесь всё вместе намешать в одну кучу и заниматься сразу двумя делами.
Учёба и получение новых навыков - это очень тяжело и энергозатратно, вы не сможете это ни с чем совместить. Если вы хотите эффективно тратить своё время, то если вы отдыхаете, то отдыхайте полноценно. Учитесь - учитесь полноценно. Работайте - работайте полноценно. Не пытайтесь всё это вместе как-то скопоновать и соединить, у вас ничего не получится.
Можно делать эффективно только одно дело в конкретную единицу времени. Поэтому если вы учитесь, то выключайте свои телефоны, мессенджеры, всё отклыдывайте в сторону. Если вы читаете книгу, статью, смотрите какой-то материал - весь остальной шум ставьте на паузу и занимайтесь только тем, что для вас сейчас важно.
Подарите это время себе. Когда вы что-то изучаете, то вы пракачиваете себя, свои навыки, поднимаете свой заработок со временем. Подарите это время себе, а не спаму в телефоне, не людям, которые что-то пишут и им что-то нужно от вас. Всё это нужно отставить в сторону.
Идём дальше. Обязательно прорешивайте задания в книгах.
В большинстве книг по программированию есть задания, которые большинство людей просто перелистывает: "Ну я же книгу прочёл, всё понял, я молодец." Так делать не нужно. Большинство людей читает книги невнимательно и когда вы начинаете прорешивать эти задания, то вы понимаете, что оказывается вам вообще ничего не понятно и более того, оказывается, у вас в голове не то, что ничего не отложилось, оно туда даже не попало. Вы просто бездумно пролистали книгу, вроде понятно, глазами пробежались, начинаете делать задания и понимаете, что вы не способны выполнить эти задания. Поэтому не торопитесь, все задания, которые есть в книге, обязательно прорешивайте, причём прорешивайте не в уме. Пишите код и убеждайтесь в том, что те гипотезы, которые есть в книге, действительно соответствуют реальности, что вы действительно способны эту задачу решить и получить правильный результат. Это очень важно.
Следующий момент. Нужно ли делать конспекты, заметки, пометки, что-то куда-то выписывать, когда вы прорабатываете тот или иной материал, будь то книга, статья, курс, видео на Youtube и так далее? Если тема большая и новая для вас, а вам нужно глубоко в ней прокачаться, то, конечно же, нужно делать конспекты и заметки. Но вы должны всё делать для себя. Вы делаете конспект не для преподавателя в университете, и не потому что вам какой-то блогер сказал делать конспекты и это важно, нет. Здравый смысл нужно соблюдать и понимать для чего вы его делаете.
Конспекты нужно делать также для того, чтобы уложить всё то, что вы прорабатываете - в голове. Когда вы записываете своими словами, то у вас это укладывается в голове и вы начинаете это запоминать, понимать, прорабатывать. Очень важно записывать именно своими словами.
Есть замечательная книга Зонки Аренс "Как делать полезные заметки". Можете её почитать, в этой книге говорится о методологии Zettelkasten. Там очень много правильных мыслей о том, как нужно правильно писать заметки. И одна из этих мыслей: "Нужно писать заметки своими словами, по памяти". Не так, что вы это прочитали, а далее машинально переписали и мимо головы всё у вас прошло.
Так делать не нужно, писать нужно всегда по памяти и своими словами, это очень важно. Вы прочитали книгу, отложили в сторону, а далее написали своими словами то, как вы это поняли. И очень часто бывает так, что даже на этом этапе, вы только что это прочитали, но начинаете переписывать и вы понимаете, что вы не поняли этот материал, вы не можете сформулировать его своими словами, вы можете машинально просто переписать и воспроизвести фразы из книги по памяти, но вы их не понимаете.
И вот это очень важный момент, значит вам ещё раз нужно перечитать, обдумать это, вернуться назад на несколько страниц и обязательно перечитать. Это правильная, хорошая, мощная, основательная проработка материала, а не так, что что-то там быстро пролистали и якобы прочли книгу. Нет. Конспекты именно в этом и помогают, вы укладываете у себя в голове то, что вы читаете, вы начинаете об этом задумываться, начинаете это понимать, запоминать, это замечательно. Далее вы сможете в любой момент к этому конспекту вернуться когда захотите освежить это в памяти.
Вы проработали какую-то тему, потом на неделю отвлеклись и хотите быстренько освежить, вместо того, чтобы перечитывать книгу, вы можете 5-10 страниц ваших собственных заметок пролистать и в памяти освежить. Это ещё один из огромных плюсов ведения своих конспектов. Но при этом опять же, я не могу сказать, что нужно прямо всё выписывать в конспект. Например у вас книга 400 страниц, не нужно делать конспект на 200. Я так конспекты не делаю, нужно здравый смысл всегда иметь в виду. Вы конспект для себя делаете, а не для кого-то. Также желательно вести такие заметки от руки на бумаге, лично я так делаю всегда.
Есть очень много научных исследований, что когда мы записываем, не набиваем на клавиатуре, а именно записываем, то это по другому влияет на наш мозг. Я этой информации доверяю, мне кажется, что самая кайфовая штука, которая только можно сделать это записывать от руки на бумаге. Потому что когда мы пишем, то мы пишем медленнее чем мы печатем и это по другому проходит через наш мозг.
Но для меня то, что я пишу на бумаге - это временные заметки. Я их фоткаю и переношу в свою базу знаний - мой постоянный источник информации. А моя личная база знаний хранится у меня электронно.
В общем, вести заметки и конспекты нужно. Обязательно этим занимайтесь если тема, которую вы изучаете большая, новая для вас и вам нужно прокачаться в ней основательно. Очень рекомендую.
Youtube занимает сейчас отдельную нишу во всём. Я им тоже пользуюсь и очень его люблю. Когда я изучаю какую-то новую технологию или она мне просто интересна, но я не хочу её глубоко изучать, мне просто интересно посмотреть что там творится, то абсолютно прекрасно посмотреть это на Youtube. Человек разобрался с какой-то конкретной технологией, поработал с ней и составил своё видео об этом.
А вы за 10 минут просмотра этого видео знакомитесь с тем, что она делает и для чего используется. Если же вам нужно более углублённо, то там есть часовые видео и лекции по практически любой технологии которая вас интересует и любому языку программирования. Есть огромные плей листы, это конечно же очень полезно.
Есть сравнения разных технологий, это тоже интересно.
Но есть и минус. Информацию на Youtube может выкладывать любой человек, поэтому то, что говорит какой-то конкретный человек на Youtube, к этому нужно относиться скептически, это просто мнение какого-то конкретного человека.
Но смотря разных людей и складывая картинку из разных мнений, накладывая это на свой собственный опыт и мысли, можно приходить к тем или иным выводам. Поэтому Youtube я рекомендую смотреть. Также я рекомендую читать описание под видео. Нашли какое-нибудь хорошее видео - не поленитесь и загляните в комментарии, потому что там вы иногда сможете найти хорошие материалы, какие-то дополнения к этому, опровержения, упоминания книг, людей, докладов, конференций.
Теперь поговорим с вами о курсах.
Я считаю, что пройти какой-нибудь хороший и замечательный курс по той теме, которую вы сейчас прокачиваете - это просто прекрасно и почему бы этим не воспользоваться? Да, я знаю, есть большое количество людей, которые являются ярыми противниками курсов и говорят что нет, они читают только официальную документацию и учатся на хардкорном режиме. Я с ними не согласна, я много курсов различных проходила в оффлаине, в онлаине, по IT и не по IT. Все эти курсы я покупала. И абсолютно прекрасные курсы у меня были, из которых я извлекла много хорошего.
Вообще курс, это лишь один из источников информации и навыков, не хуже и не лучше чем другие источники. Это просто один из источников новых навыков и информации для вас.
В IT я уже 10 лет и постоянно, минимум по 2 часа в день, я что-то новое для себя изучаю, новые технологии, подходы. Поверьте, это не просто слова, я действительно продолжаю всё изучать, и так на протяжении всей своей жизни.
Ещё есть онлаин школы по программированию (я думаю вы поняли о каких школах я говорю), которые говорят: "Заплатите нам. Мы вас научим за 6 месяцев. Вы станете мега профессионалом в программировании. А далее наступит рай, счастье, вы станете зарабатывать по 120 тысяч рублей." И вот конец, успех настал... Но нет... Потому что работа в IT - это постоянное обучение, а курсы это лишь один из возможных источников для получения новых навыков, один из, не лучше и не хуже чем другие источники, а ещё лучше комбинировать.
Почему реклама оффера этих школ программирования не соответствует реальности? Сама их реклама - возьми кредит, заплати нам и мы тебе гарантируем трудойстройство. И вот между возьми кредит, заплати нам и трудойстройством как будто ничего нет. Во-первых гарантировать трудойство никому нельзя.
Лично я вообще не понимаю как можно в 21 веке работать на кого-то, тем более на официальной работе. Для меня это полнейший шок. Ведь я никогда не работала на кого-то и уж тем более официально. Но не все люди такие, некоторые предпочитают жить как их родители, ходить всю жизнь на работу, а потом получать пенсию. Но сейчас не об этом.
Что такое гарантия? Гарантия - это значит, что если эта гарантия не выполняется, то у компании, которая эту гарантию даёт, должны возникать штрафные санкции обязательно, они должны вернуть деньги за курс. Давайте представим такую ситуацию, вы пришли к ним в онлаин школу, отучились и вас действительно чему-то обучили, но вы хотите вернуть себе деньги за курс. Вы просто приходите на все собеседования и матом шлёте куда подальше всех. Возьмут вас на работу? Нет. Можно ли такому человеку гарантировать трудоустройство? Нет. Это первое.
А второе, про гарантию трудоустройства вам могут рассказывать продавцы этой школы, это может быть написано на сайте, но по факту там будет не гарантия трудоустройства, а какой-нибудь, в конце курса, один вебинар с каким-нибудь эйчаром, кадровиком, который расскажет вам как правильно писать резюме. Всё. Само всё не сложится. "Возьми кредит и мы тебе гарантируем трудоустройство, а между этими двумя точками ничего нет, там какая-то штука непонятная происходит, но мы гарантируем тебе трудоустройство, если ты к нам пришёл и заплатил, то мы тебе уже всё гарантируем." Оно так не работает.
Очевидную и неприятную вещь скажу сейчас, но учиться то нужно самим. И что может дать курс? Курс может помочь вам научиться. Научить никого ничему невозможно, можно помочь человеку научиться. Хороший курс, который разработали профессионалы, они сами продолжают дальше вести, взаимодействовать с учениками, давать обратную связь. Хороший курс может помочь научиться, но учиться люди должны сами. Гарантировать они могут только то, что у вас станет в кошельке меньше денег, на сумму курса, это единственное что они могут гарантировать.
А дальше, если курс хороший, если вы готовы учиться и работать на этом курсе, то да, вы сможете получить какую-то пользу. Если же вы заплатили деньги и не готовы учиться и работать, то очевидно, что вы вообще пользу не получите на курсе, даже если курс хороший, либо вы получите 10-20% от той пользы, которая реально есть в нём.
Для того, чтобы её получить, нужно работать, практиковаться, изучать, читать, прорабатывать все материалы которые вам дают и это никто не сделает за вас. Суровая правда жизни. Поэтому ещё раз, если вы нашли хороший курс и вы готовы работать, то это абсолютно нормальный способ получения новых знаний и навыков.
Как выбрать хороший курс на мой взгляд? Во-первых не ведитесь на рекламу. Идёте по городу и видите рекламу на билборде одной из онлаин школ. Вы смотрите: "Ага. Прикольно. Наверное они шарят раз рекламу тут разместили, наверное они серьёзные." Если какую-то онлаин школу рекламируют в центре вашего города, то это всё равно в любом случае на вас влияет, хотя умом вы понимаете, что это никак не связано.
Я категорически уверена, что первоочерёдное значение для хорошего курса играет автор этого курса, преподаватель. Не реклама, а преподаватель. И важно чтобы этот преподаватель участвовал не только на этапе создания контента данного продукта. Ведь часто бывает, что препод записал контент, а дальше его ведут какие-то левые люди. Нет, нужно чтобы преподаватель продолжал работать с учениками непосредственно в живую, с коммуникацией, фидбеком, обратной связью, ответами на вопросы и так далее. Причём важно, чтобы этого автора вы знали до покупки курса, не лично, а косвенно. Часто бывает так, что вам повсюду на глаза попадается курс какой-нибудь компании которая рекламится везде где только можно. Означает ли это что они шарят? Простите, но нет. Означает ли это что им интересно преподавать? Нет. Означает ли это то, что они могут грамотно доносить их мысли, что они будут заинтересованы в том, чтобы вести учеников? Нет. Поэтому если компания является известной, то это не говорит о том, что у них получится сделать хороший курс и что вы там действительно извлечёте свою пользу. Если уж вы всё таки хотите записаться на обучение по рекламе одной из таких школ, то поищите сливы их предущих курсов в сети, всё слито бесплатно, просмотрите, понравится ли вам такой подход их обучения и действительно ли у них преподаётся хорошая информация.
Лично я покупала курс по профессиональному взлому и защите беспроводных сетей, давно ещё, в 2016 году. И я покупала его у человека, который всё Youtube канал тогда, я посмотрела, он мне понравился, я купила курс и извлекла из него огромную пользу.
Я покупала курс по тому как правильно криптовать вирусы, не помню как зовут автора, это также было давно. Я читала его блог на одном из даркнет форумов и мне очень понравилось. Я купила его курс, прошла и очень огромную пользу получила, прямо дико кайфанула.
И ещё очень множество различных курсов я проходила. Возможно в будущем создам отдельный пост по этой теме если вам интересно.
Также курсы можно проходить и бесплатно.
Например расскажу как бесплатно выучить Python.
Есть такой замечательный сайт с курсами:
Там есть курсы не только по программированию, но и вообще по любым темам. Биология, математика, английский и тд и тд.
Бесплатные курсы по Python. Проходите их именно в том в порядке как я выкладываю:
"Поколение Python": курс для начинающих.
Инди-курс программирования на Python.
Добрый, добрый Python - обучающий курс от Сергея Балакирева.
"Поколение Python": курс для продвинутых.
После этого можете пройти ещё этот курс:
"Поколение Python": курс для профессионалов.
Последний курс платный, 3400 рублей, на него вы можете записаться после прохождения четырёх бесплатных курсов, если они вам понравятся, для ещё более глубокого изучения. Но оно того стоит.
На прохождение данных курсов у вас уйдёт примерно 6 месяцев и вы практически полностью освоите язык программирования Python. Далее вы можете начать читать книги, изучать фреймворки и дополнительные технологии (по ним кстате также есть курсы на степике). Там же есть курсы и по другим языкам программирования.
Вот ещё один хороший сайт с курсами. Там есть как платные так и бесплатные. Особенно там очень много курсов по хакингу:
Из РФ вы оттуда ничего не сможете купить, но ставите VPN и всё работает хорошо.
А вот очень хороший сайт с бесплатными курсами по изучению иностранных языков:
Мой вывод. Если вы хотите чей-то курс купить, то курс нужно покупать не у компании, не вестись на рекламу. Самое главное - нужно знать того человека который курс ведёт - нужно с ним как-то познакомиться (косвенно) > посмотреть его материалы и выступления, посмотреть его записи на Youtube или Telegram, если они там есть, почитать его статьи. Всё это даст вам необходимый массив информации для того, чтобы принять решение о том, стоит ли покупать у этого человека курс или может быть не стоит.
Используйте все источники информации. Это очень важно. Когда я что-то изучаю, то я стараюсь смотреть вообще везде, мне интересно, меня прёт и я ищу информацию везде, где можно что-то новое узнать о технологии которую я изучаю.
Это книжки, Youtube, Telegram, форумы, чаты, комментарии, курсы. Вы получаете разностороннюю информацию из разных источников, кто-то хвалит, кто-то ругает, кто-то говорит об одном, кто-то говорит о другом. И вы составляете комплексную информацию на основе разных мнений, на основе разных источников, это позволяет вам быть более объективными и разностонне развитыми.
Поэтому я рекомендую не зацикливаться на каком-то одном источнике получения информации. Это очень важно.
И самое главное. Практикуйтесь. Вы что-то изучили - нужно практиковаться, это важно. Я не могла об этом не написать, очень важно практиковаться, потому что, то, что вы не практикуете - испаряется из вашей головы. Это одна из причин почему многие не могут изучить английский язык. Вы прониклись мотивацией, что-то изучили, вам стало понятно, уложилось в голове, но нет практики, вы это не используете и оно забывается очень быстро.
Поэтому не упускайте такой момент. Обязательно выполняйте задания которые есть в книгах - которые вы читаете, в курсах - которые вы проходите. Вы прочитали, вам вроде понятно что это и как работает, но у вас в голове возникает гипотеза: "А вот если я так код изменю, он будет работать или нет?" Не нужно на подобные гипотезы в голове отвечать: "Да. Он будет работать. А может не будет." Проверьте.
Это один из методов и способов изучения. У вас возникает гипотеза - поиграйтесь с кодом. Скопируйте его или наберите, сломайте его, измените один параметр, другой параметр, убедитесь в том, что вы меняете параметры - меняется результат и вы таким образом убеждаетесь в том, что вы действительно всё правильно понимаете. И тогда у вас складывается действительно мощная, хорошая, фундаментальная база.