https://habr.com/ru/company/skillfactory/blog/503464/- Блог компании SkillFactory
- Python
- Программирование
- GTD
- Учебный процесс в IT
Я начинал и бросал кодить раза четыре точно, перед тем как наконец осилил. Когда я опросил студентов, специализирующихся на обработке и анализе данных, оказалось, что ситуация не так уж необычна.
Многие начинания заканчиваются неудачей и полным разочарованием отчасти из-за того, что обучение кодированию протекает медленно и утомительно. Я очень хочу помочь людям преодолеть этот путь и стать продвинутыми программистами. Барьеры и препятствия будут всегда, но некоторые получится обойти.
Вот 10 советов, которые помогут избежать ненужных ошибок и улучшить навыки программирования. Понятно, что если вы кодите уже годами, то большинство советов покажутся бесполезными или крайне очевидными решениями. Но для новичков открывается все не сразу. И даже если вы кодите с тех незапамятных времен, когда мобильники еще были килограммовыми глыбами, возможно все же найдется пара советов, которые сэкономят и ваше время.
10 советов
- Разделите экран. Пока вы только учитесь кодить, советую разделить экран на две смежные области: одна — для кода, над которым вы работаете в блокноте Jupyter или в другом редакторе, а вторая — для браузера. Браузер понадобится для просмотра документов, Stack Overflow и других вспомогательных материалов. Если ваш экран маленький, при возможности советую приобрести монитор побольше. На Amazon можно найти 25-дюймовый монитор чуть дороже $100. Набравшись опыта, вы обязательно захотите сконцентрироваться на одной области работы. Для переключения с рабочих областей на полноэкранный режим используйте горячие клавиши. Для реализация подобной функции на Mac я установил BetterSnapTool за $2.99, а как это сделать на Windows — описано в этой статье.
- Не отвлекайтесь. Переведите компьютер и телефон в беззвучный режим. По возможности телефон лучше совсем убрать. Если работаете в шумном месте, включите успокаивающую музыку или наденьте шумоподавляющие наушники. Чем лучше вы сосредоточитесь, тем быстрее научитесь.
- Перепишите пример кода. Нельзя просто читать учебник и надеяться его запомнить. От копипаста тоже толка мало. Перепечатайте код. Затем продлите его. Затем напишите по памяти. “В теории нет разницы между теорией и практикой. А на практике есть.”— цитата Бенджамина Брустера, а не Йоги Берра, как многие привыкли считать.
- Учитесь в течение нескольких дней. Учите новые методы, алгоритмы, структуры кода и затем закрепляйте их в течение последующих нескольких дней. Исследования показывают, что, чтобы отложить информацию в долговременную память, гораздо эффективнее применять метод интервального повторения, нежели пытаться зубрить.
- Учитесь, обучая других. Объясняя материал другим — письменно или устно — вы и сами его усваиваете, устанавливаете взаимосвязи, создаете аналогии. Так вы укрепляете задействованные в памяти нейронные связи. Этот совет являются частью превосходнгого метода обучения Феймана.
- Сначала язык, потом библиотека. Прежде чем залезть в библиотеку, сперва освойте язык программирования. Типы переменных — не самая увлекательная тема. Атрибуты и методы класса, может, и выглядят заманчиво, но когда вы хорошо овладеете языком, разобраться с библиотекой будет гораздо проще. Вы допустите меньше ошибок и тем самым сэкономите свое время.
- Учите по одному пункту за раз. Не пытайтесь выучить все и сразу. Вы не просто не научитесь быстрее, а замедлитесь раз так в десять. Поэтому, не забивайте голову. Все интересные, но не имеющие прямого отношения к теме URL-адреса сохраните до лучших времен. One Tab — удобное расширение для Chrome, которое можно использовать для сохранения вкладок.
- Высыпайтесь, занимайтесь спортом и будьте упорны. Поддерживайте свой мозг в тонусе для укрепления новых нейронных путей. Подробнее о том, как сохранять остроту ума можно узнать из моей книги Memorable Python.
- Научитесь быстрее набирать код. Чем больше непривычных комбинаций символов вы печатаете, тем быстрее вы потом их вводите. Однако, есть небольшая хитрость. Освойте печатать вслепую. Вот небольшое упражнение в помощь от SpeedCoder.
- Станьте профи, выучив горячие клавиши. Вот ссылки на горячие клавиши для Chrome, Mac, и Windows. Если вы работаете в сфере науки о данных, то вот горячие клавиши для GitHub Gist и Jupyter Lab. Также можно создать горячие клавиши для терминалов Mac или Linux, добавив строчки после Bash Profile: ~/.bash_profile:alias gs=«git status». Затем перезагрузите терминал и нажмите 2 клавиши вместо двух слов.
Бонус: Как быстро устранить ошибки
На самом деле, тема настолько обширна, что по ней можно написать целую статью. Но, вместо этого я прикрепляю небольшой бонус— 5-этапный план для быстрого устранения ошибок.
Пояснение: вы вызвали функцию “shape” как метод, который не найден, от вас требуется ввести атрибут.
Каждый программист допускает погрешности. Но набравшись опыта, на исправление ошибок вы будете тратить не больше минуты.
Однако, в начале пути, ошибки отнимают уйму времени. Пытаясь их найти, новичок словно пускается вплавь по болоту.
Вот план действий для быстрого устранения 95% ошибок.
Итак, возникла ошибка, что делать?
1. Ищите опечатку — пропущенные круглые скобки, переменную или функцию, написанные с ошибкой. Возможно пригодится подсветка синтаксиса. Всегда используйте среду разработки с функцией отладки программы. Тогда вы избежите многих ошибок, быстро исправите отступы, несбалансированные скобки и т.п. Есть много хороших редакторов кода. Если вы из начинающих, предложу
VSCode — один из самых популярных редакторов на рынке, к тому же бесплатный и со множеством полезных функций.
2. Сначала прочитайте первую и последнюю строчки сообщения ошибки. Информация в середине, как правило, менее полезна. Учитывая подсказки, попробуйте понять, что не так в вашем коде. Если не получается расшифровать сообщение, скопируйте и вставьте последнюю строку сообщения в Google (если вы используете Python. Некоторые языки могут выводить сообщение об ошибке перед трассировкой стека). Главная ошибка неопытного кодера заключается в том, что он не спешит загуглить код ошибки.
3. Фильтруйте интернет-ресурсы, чтобы отделить зерна от плевел. Вот несколько полезных ресурсов, которые помогут вам быстрее найти необходимую и проверенную информацию.
На
Stack Overflow,
Medium,
Reddit,
Hacker News,
Dev и в других онлайн комьюнити публикуемый материал фильтруют пользователи через голосование. Такой способ оценки, конечно, не идеален, но все же работает. Stack Overflow,
Towards Data Science Medium publication, репозиторий проблем GitHub и официальная документация по языку и его библиотекам — вот к чему я обращаюсь, чтобы разобраться в проблеме.
Результаты в Google оставляют желать лучшего. Если вы кодите на Python, советую следующие сайты:
4. Избегайте устаревших источников. Для решения большинства проблем необходимы свежие источники, не старше пары лет. Во время поиска в Google обращайте внимание на дату сайтов, либо сразу ставьте фильтр по дате.
Выставление фильтра с помощью инструментов поиска Google
Если вы лишь недавно стали работать с Python, то информация о Python 2, начиная с 2009 года, вряд ли вам поможет.
API не стоит на месте, и то, что работало раньше, сегодня уже вряд ли пригодится. Нужный ответ вы скорее всего найдете в сравнительно недавних результатах.
Но, если ваши попытки не увенчались успехом, то тогда уже стоит обратиться к старым постам и не популярным сайтам.
5. Выясните, что означают коды ошибок. Вот
список распространенных кодов ошибок и пояснений для Python. И вот неплохая схема, которая поможет вам разобраться с распространенными ошибками в Python.
Если вы используете pandas для работы с данными, то, скорее всего, допускаете ту или иную оплошность. С помощью блокнота Jupyter я сделал
GitHub Gist о наиболее частых ошибках и о том, как из них выйти:
Было бы здорово, если бы Python и pandas выдавали действительно полезные сообщения об ошибках, которые включали объяснения наиболее вероятной причины их возникновения. Это был бы по-настоящему ценный проект, так что, если кто-то хочет заняться — дерзайте.
На этом мой план по устранению ошибок подходит к концу. Жду от вас обратной связи.
Узнайте подробности, как получить востребованную профессию с нуля или Level Up по навыкам и зарплате, пройдя онлайн-курсы SkillFactory:
Читать еще