@koyote92

Верно ли «грызть» себя за подсматривание чужого кода в процессе самообучения?

Всем доброго времени суток.

15 марта начал исполнять свою отроческую мечту - учиться программированию. Если конкретнее - учу Python. Каждый день без выходных сижу и что-то читаю/кодю/конспектирую.
Начал с видеокурса. Понял, что не моё, купил книгу. Очень понравилось, каждое задание делаю, даже если кажется лёгким, просто руку набить. Дошёл до темы "Классы", прошёл её всю.
И тут в самом конце темы наткнулся на задачу, которую не смог решить сам. Подсмотрел на гитхабе. Как работает понял сразу, начал корить себя за то, что сам не догадался. Закрыл "шпаргалку", попытался воспроизвести - хрен там, забыл важный момент. Пришлось опять заглянуть - "ну вот же оно, тут надо было так сделать, ну это же легко".

Ментора нет. Денег на обучение на курсах/в ВУЗе нет. Знакомых айтишников тоже. Да даже если бы и были, не стал беспокоить.

Есть подозрение, что три недели обучения нон-стоп ночью чутка вымотали. Тем более, по образованию я не технарь, хотя с естественными науками никогда проблем не было.
С другой стороны каждый день просыпается безумное желание узнать/научиться чему-то новому в сфере, а "перепрыгивать" задания считаю за "тему не усвоил".

В общем, вопросы:
1) Правильно/неправильно ли я поступил, заглянув в решение?
2) Стоит ли вообще снизить интенсивность обучения?
  • Вопрос задан
  • 426 просмотров
Решения вопроса 1
dollar
@dollar
Делай добро и бросай его в воду.
Если сделал сам, то сможешь сделать сам снова и через много лет. Это имеет эффект не только на эту, но и на похожие задачи. То есть польза для обучения огромная. Ключевой критерий - сам. Думаю, вы и сами это чувствуете.

Если же подсмотрел решение, и даже если понял его, то вряд ли сможешь повторить через некоторое время и уж тем более на другую задачу. Эффективность для обучения есть, но она примерно в 10 раз меньше, чем в предыдущем примере.

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

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

Ещё можно подсмотреть, к примеру, 10% решения, а до остального догадаться самостоятельно - это тоже хорошо. Вы сами (субъективно) для себя определяете долю подсмотренного, насколько оно существенно. Ключевая идея - это примерно 90% решения. Если тонких моментов несколько, то доля у них будет примерно одинаковая.

Таким образом, корить себя стоит только если было потрачено мало времени на самостоятельное решение задачи и если совесть не позволяет назвать решение своим (учитывая вклад).
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
@12rbah
koyote92, вообще зависит от задачи, но в целом важно уметь разбираться с чужим кодом, в реальности не так много вещей пишется с полного нуля, большинство программ основано на уже готовом коде.
Как работает понял сразу, начал корить себя за то, что сам не догадался.
вообще не стоит этим заниматься, это обычная ситуация, когда не знаешь как решать задачу и находишь в сети способ её решения, главное разобраться с тем как работает а не просто копипастить.
1) Правильно/неправильно ли я поступил, заглянув в решение?

В целом да правильно.
2) Стоит ли вообще снизить интенсивность обучения?
Зависит от цели, если хотите просто уметь автоматизировать некоторые процессы и писать небольшие программы, то точно не стоит сильно напрягаться, если хотите найти работу, то стоит делать выходные, но темп изучения должен оставаться довольно высоким, в целом 2-3 часа в обычный день и 4-5 в выходные дни, если найдете хороший roadmap, и в последние 3 месяца начнете дополнительно изучать как проходить собеседования и ходить на них, то довольно с большой вероятностью сможете найти работу.
Ответ написан
Комментировать
Griboks
@Griboks
Если часто посматривать на других, то можно потерять способность думать и стать типичным/шаблонным программистом. Но нет ничего позорного посмотреть чужие подходы к решению проблем, желательно, конечно, только после изобретения своего велосипеда.

Очень легко проверить, насколько сильно вы "заскриптованы". Если при возникновении новой проблемы вы ловите себя на мысли: " А как это принято решать?", то всё плохо. Нужно думать "как бы сделал я", затем "чем мой подход отличается от чужих", а потом "какие pros & cons".
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev Куратор тега IT-образование
software engineer
И тут в самом конце темы наткнулся на задачу, которую не смог решить сам. Подсмотрел на гитхабе. Как работает понял сразу, начал корить себя за то, что сам не догадался.


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

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

Подсматривать чужие решение - это правильно и хорошо. Но крайне важно искать решение самому, чтобы в конечном результате не только пользоваться рабочим решением, но еще и понимать почему оно рабочее, или почему оно лучшее.
Ответ написан
Комментировать
@russeljo
Грызть конечно же не стоит. Вы же учитесь, и это нормально в процессе обучения что-то не знать, что-то не понимать. И наоборот - это хорошо, когда есть решение, есть куда подсмотреть. Вы посмотрели, постарались понять решение, а когда поняли как решается, значит уже почти знаете. То что вы с первого раза что-то не поняли или не запомнили - это нормально, так у всех.

Насчет интенсивности. Высыпать надо, отдыхать - надо. Это залог, что вы не перегорите, не переутомитесь. И свежая голова всегда лучше учится.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы