Добрый день. Очень часто на всяких вебинарах и интенсивах ведущие говорят, что сначала надо бросаться в бой и писать код, а потом уже изучать основы. Мол, повторяйте за нами, просто подключайте вот эти библиотеки, берите функцию/метод из документации без понимания, как оно работает, осознание придёт потом. А оно не приходит. За ними-то я повторила, посмотрела, что оно работает, но вот домашнее задание - чуть что-то там надо переделать, взять какие-то другие методы. Ты их берёшь так же бездумно, а они не работают, то параметры такие не поддерживаются, то сам метод для этой задачи не подходит, потому что нет толком понимания, что ты делаешь и зачем. Так вот, прокомментируйте пожалуйста, на ваш взгляд надо всё-таки начинать с основ языка и "Hello, world", или вот так на конкретном примере продолжать грызть кактус, пока не дойдёт?
Тут есть две крайности. Одна из них - это много лет углубленно изучать фундаментальные основы Computer Science и долго-долго не переходить к решению практических задач. Это не такой плохой путь, его минус в том, что он медленный и еще в том, что человек может бесконечно откладывать момент перехода к практике, потому что он еще «не готов».
Вторая крайность - то, что вы описали - «пофиг, прорвёмся». Да, программированию чаще всего учатся на практике в процессе решения реальных задач, «догугливая» информацию там, где ее не хватает. Но так, как вы описываете быть не должно: «без понимания, как оно работает», «повторить, чуть-чуть переделать», «бездумно», «нет понимания, что и зачем».
Почему так получается с конкретными преподавателями или спикерами? Они, скорее всего, не могут поставить себя на ваше место и понять степень вашего непонимания. Опытный разработчик может взять новый незнакомый ему язык и сразу начать писать на нём код, лишь периодически заглядывая в документацию или гугл - может быть, у него получится не очень хороший код, но это уже другой вопрос. Опытным многое понятно интуитивно и по аналогии с тем, что они уже делали раньше. А у новичка такой базы нет, поэтому он в аналогичной ситуации может чувствовать себя беспомощно как слепой котёнок.
Отвечая на ваш вопрос - начните с основ языка. Как только возникает ощущение, что ничего не понятно - делаем паузу, замедляем темп и начинаем разбираться. Разработчик всегда должен докопаться до причин происходящего. Ничего не должно происходить непонятно как, как будто по волшебству, программирование - это не магия. Если код не работает - надо разобраться, почему он не работает, а не просто попробовать его переделать («а может, если эти строчки местами поменяю - будет ОК?»). Если он сначала не работал, а потом заработал - надо разобраться, почему он не работал раньше, и почему работает теперь. Что изменилось, и на что это повлияло. Если нет понимания, почему для решения используется какой-то конкретный метод, а не другой - надо искать причину. Все ответы есть в гугле, но их надо искать. «Само» пониманием в какой-то степени с опытом тоже приходит, но если всегда скакать по верхам и ни во что не вникать, то оно магическим образом не возникнет.
Бот для ваших вопросов: @hum_it_bot
Тут есть две крайности. Одна из них - это много лет углубленно изучать фундаментальные основы Computer Science и долго-долго не переходить к решению практических задач. Это не такой плохой путь, его минус в том, что он медленный и еще в том, что человек может бесконечно откладывать момент перехода к практике, потому что он еще «не готов».
Вторая крайность - то, что вы описали - «пофиг, прорвёмся». Да, программированию чаще всего учатся на практике в процессе решения реальных задач, «догугливая» информацию там, где ее не хватает. Но так, как вы описываете быть не должно: «без понимания, как оно работает», «повторить, чуть-чуть переделать», «бездумно», «нет понимания, что и зачем».
Почему так получается с конкретными преподавателями или спикерами? Они, скорее всего, не могут поставить себя на ваше место и понять степень вашего непонимания. Опытный разработчик может взять новый незнакомый ему язык и сразу начать писать на нём код, лишь периодически заглядывая в документацию или гугл - может быть, у него получится не очень хороший код, но это уже другой вопрос. Опытным многое понятно интуитивно и по аналогии с тем, что они уже делали раньше. А у новичка такой базы нет, поэтому он в аналогичной ситуации может чувствовать себя беспомощно как слепой котёнок.
Отвечая на ваш вопрос - начните с основ языка. Как только возникает ощущение, что ничего не понятно - делаем паузу, замедляем темп и начинаем разбираться. Разработчик всегда должен докопаться до причин происходящего. Ничего не должно происходить непонятно как, как будто по волшебству, программирование - это не магия. Если код не работает - надо разобраться, почему он не работает, а не просто попробовать его переделать («а может, если эти строчки местами поменяю - будет ОК?»). Если он сначала не работал, а потом заработал - надо разобраться, почему он не работал раньше, и почему работает теперь. Что изменилось, и на что это повлияло. Если нет понимания, почему для решения используется какой-то конкретный метод, а не другой - надо искать причину. Все ответы есть в гугле, но их надо искать. «Само» пониманием в какой-то степени с опытом тоже приходит, но если всегда скакать по верхам и ни во что не вникать, то оно магическим образом не возникнет.
Бот для ваших вопросов: @hum_it_bot