6 признаков того, что вы учите программирование неправильно

6 признаков того, что вы учите программирование неправильно

Вот изучаете и изучаете программирование, а будто топчетесь на месте, развития нет. Иногда это часть нормального процесса, а иногда вы просто неправильно учитесь. Вот 6 самых частых ошибок

1. На уроке всё понятно, повторить без подсказки — не выходит

Речь не только про уроке, это могут быть видео на ютубе, чьи-то статьи, курсы или другие форматы. Главное — вам объяснили, показали, всё кристально понятно, но взялись повторить на практике — самостоятельно ничего не получается. Знакомо?

Чем это плохо? Тем, что вы путаете понимание с узнаванием. Мозг часто нас обманывает этим, заявляя, что мы поняли, когда понимание на деле максимум поверхностное.

Представьте, что вы видите, как профессионал что-то делает — например, готовит блюдо. Вы смотрите и вам всё понятно. Но как только вы попробуете это повторить, у вас начнут появляться куча вопросов, на которые ответа у вас не будет. Вопросы будут про детали — а сколько масла? А специи в какой момент добавлять? А золотистый — это какой?

Когда же вы поняли рецепт по-настоящему, в том числе за счёт того, что несколько раз приготовили всё неправильно, вы видите его как систему из элементов и связей между ними. И вы уже понимаете, ЗАЧЕМ каждый из элементов и каждая из связей нужны.

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

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

Быстрая проверка:

закрываете урок/статью открываете пустой редактор пробуете написать код с нуля. Получилось без подглядывания? → Понимание. Застряли? → Узнавание (и это нормально, просто нужно больше практики).

2. Решаете задачи, гугля похожие решения

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

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

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

Что делать? Пробуйте сначала хотя бы 30 минут посидеть самостоятельно, гугля только функции и методы, которые вам нужны. Если по итогам 30 минут вы в тупике, тогда можете искать подсказки и готовые решения.

А если не справились и нашли готовый код — не копируйте его. Разберитесь, как это работает, и напишите код «своими словами».

3. Решаете задачу нейросетями

Точнее, нейросеть решает задачи за вас. Вы берёте задачу, пишете нейросети, потом просто меняете названия переменных и всё. Или пишете сами код, но все ошибки просто отправляете в нейросеть и просите исправить код, не понимая, а что было не так. Или вы пишете код, нейросеть предлагает вариант дописанного кода и вы нажимаете tab tab tab, тоже не разбираясь.

Чем плохо? Тем, что вы не нарабатываете навыки, не тренируете их. Это даже хуже, чем в случае с гуглингом. Ведь нейросеть ещё и вроде как объясняет вам код и вы вроде как понимаете — но на самом деле попадаете в ловушку узнавания вместо понимания.

Для работы с нейросетями используйте правило 80/20 — 80% делаете вы, 20% нейросеть. И лучше применяйте нейросеть для таких вещей:

Объяснение чужого кода Проверка вашего кода(с результатом в виде комментариев и советов, а не переписанным кодом) Поиск и объяснение ошибок в коде (исправляете сами) Получение информации по узким техническим вопросам и общим темам(«что такое тернарный оператор?», «как удалить элемент по индексу?», «что такое рекурсия?») И всегда проверяйте себя — про каждую строчку, каждую переменную, функцию, оператор спрашивайте себя — а зачем она здесь? Что будет, если убрать это?

4. Прыгаете между темами/языками/технологиями

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

Если ваше обучение выглядит именно так, то вы в ловушке, которая убивает весь прогресс. Если вы постоянно прыгаете, вы не успеваете добраться до сути, хватаете по верхам, да и это забываете, а что остаётся превращается в кашу. Если вы прыгаете по технологиям, языкам программирования, то это только поиск подходящего направления, а не обучение.

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

Так что обязательно изучите ветвления и циклы до тройной вложенности, функции с параметрами и return, базовые структуры данных хотя бы с двойной вложенностью.

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

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

5. Учите синтаксис без алгоритмического мышления

Вот вы знаете, что for — это цикл, if — ветвление, знаете, как их писать. Но не можете решить задачу, для решения которой вы знаете достаточно. Когда смотрите на готовое решение — довольно быстро его понимаете и убеждаетесь, что да, вы всё, что использовалось, знаете. Но решить не смогли, даже не знали, с чего начать. И такое происходит часто.

Пример такой задачи — найти в списке(массиве) чисел второе по величине число, если знаете, как найти просто максимальное. Вот научитесь находить максимум и попробуйте сами решить эту задачу. Можете?

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

Если вы, зная, как найти максимум, не можете найти второй — значит, вы изучаете только синтаксис, а не алгоритмы. Что с этим делать?

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

6. Не можете объяснить свой собственный код

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

Чем плохо? Не можете объяснить свой код — не понимаете, как он работает. Не понимаете, как он работает — занимаетесь магией. Профессионалам часто требуется изменить свой код, чтобы исправить баг, ускорить работу, добавить новую функцию или банально улучшить читабельность, чтобы в будущем меньше тратить времени на переписывание. И вы это сделать не сможете.

Тест: Возьмите свою последнюю решённую задачу. Можете ли объяснить её пятикласснику? Или коллеге, который не программист? Если не можете — вы не понимаете свой код.

Что делать? Объясняйте вслух себе или кому-нибудь, что делает каждая операция в коде, зачем нужна каждая переменная в коде. Делайте так с каждым своим кодом.

Итоги

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