Изучаем Python. Программирование игр, визуализация данных, веб-приложения

Мэтиз Эрик

Приложение В. Помощь и поддержка

 

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

 

Первые шаги

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

• Что вы пытаетесь сделать?

• Что вы делали до настоящего момента?

• Какие результаты вы получили?

Ваши ответы должны быть как можно более конкретными. Например, в первом вопросе развернутое утверждение «Я пытаюсь установить последнюю версию Python 3 на свою машину с Windows 10» достаточно подробно, чтобы другие пользователи сообщества Python могли вам помочь. Формулировки типа «Я пытаюсь установить Python» просто не содержат достаточной информации, чтобы кто-то мог предложить вам помощь.

Ответ на второй вопрос должен быть достаточно развернутым, чтобы вам не предлагали делать то, что уже было сделано: описание «Я открыл страницу http://python.org/downloads/ и выбрал кнопку Download для Python 3. Затем я запустил программу установки» более полезно, чем «Я зашел на сайт Python и загрузил программу установки».

Что касается последнего вопроса, при поиске в Интернете или обращении за помощью желательно знать точные сообщения об ошибках.

Иногда в процессе поиска ответов на эти три вопроса вы сами понимаете, где была допущена оплошность, и выходите из тупика самостоятельно. У программистов даже имеется специальный термин для таких ситуаций: это называется «отладкой с резиновой уткой». Если вы четко объясните свою ситуацию резиновой утке (или любому другому неодушевленному объекту) и зададите конкретный вопрос, часто вы сможете ответить на него. Некоторые организации даже заводят настоящую резиновую утку, чтобы подтолкнуть своих программистов к «разговорам с уткой».

 

Попробуйте заново

Просто вернитесь к началу и попробуйте еще раз; часто этого оказывается достаточно для решения многих проблем. Допустим, вы пытаетесь написать цикл for на основе примера из книги. Возможно, вы пропустили что-то совсем простое — скажем, двоеточие в конце строки. Повторное выполнение всех действий поможет избежать повторения ошибки.

 

Сделайте перерыв

Если вы уже долго бьетесь над какой-то проблемой, сделать перерыв — едва ли не лучшее, что можно сделать. Когда мы трудимся над одной задачей в течение долгого времени, наш мозг начинает концентрироваться на единственном решении. Мы забываем о сделанных предположениях, а перерыв помогает взглянуть на проблему под новым углом. Перерыв даже не обязан быть долгим, просто нужно заняться чем-то, что выведет вас из текущего мысленного настроя. Если вы давно сидите на одном месте, переключитесь на какую-нибудь физическую нагрузку: пройдитесь или выйдите на улицу; может, выпейте стакан воды или съешьте что-нибудь легкое и здоровое.

Если вы начинаете отчаиваться, попробуйте отложить работу на следующий день. Хороший сон почти всегда упрощает задачу.

 

Обратитесь к ресурсам этой книги

В список сетевых ресурсов этой книги (https://www.nostarch.com/pythoncrashcourse/) включен ряд полезных разделов, посвященных настройке системы и обзорам каждой главы. Просмотрите эти ресурсы — возможно, вы найдете в них то, что вам поможет.

 

Поиск в Интернете

Вполне вероятно, что кто-то уже столкнулся с такой же проблемой и написал о ней в Интернете. Хорошие навыки поиска и конкретные запросы помогут вам найти информацию для решения ваших проблем. Например, если у вас возникли трудности с установкой Python 3 в Windows 10, поиск по условию python 3 windows 10 может привести вас к ответу.

Поиск по точным сообщениям об ошибках тоже может оказаться исключительно полезным. Допустим, при попытке запуска терминального сеанса Python произошла следующая ошибка:

> python

'python' is not recognized as an internal or external command

>

Вероятно, поиск по полному тексту сообщения принесет полезную информацию.

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

 

Stack Overflow

Stack Overflow (http://stackoverlow.com/), один из самых популярных сайтов с вопросами и ответами для программистов, часто встречается на первой странице результатов поиска, связанного с Python. Пользователи публикуют вопросы по возникшим проблемам, а другие участники пытаются дать полезные ответы. Пользователи могут голосовать за ответы, которые, по их мнению, принесли наибольшую пользу, так что лучшими ответами обычно оказываются первые из найденных.

На сайте Stack Overflow можно найти ответы на многие основные вопросы по языку Python, потому что со временем они были хорошо проработаны. Пользователи также публикуют обновления, так что ответы остаются относительно актуальными. На момент написания книги на сайте Stack Overflow были опубликованы ответы более чем на 400 000 вопросов, связанных с Python.

 

Официальная документация Python

Официальная документация Python (http://docs.python.org/) уже не столь бесспорно полезна для новичков, потому что она написана для документирования языка, а не для разъяснений. Примеры в официальной документации должны работать, но возможно, что-то в них останется для вас непонятным. Тем не менее это полезный ресурс, к которому стоит обращаться при поиске, а по мере углубления вашего понимания Python он будет приносить еще больше пользы.

 

Официальная документация библиотек

Если вы используете конкретную библиотеку (например, Pygame, matplotlib, Django и т.д.), в поиске часто будут встречаться ссылки на официальную документацию этого проекта — например, документация http://docs.djangoproject.com/ чрезвычайно полезна. Если вы собираетесь работать с любыми из этих библиотек, вам стоит ознакомиться с официальной документацией.

 

r/learnpython

Форум Reddit состоит из ряда подфорумов (subreddits). Подфорум r/learnpython (http://reddit.com/r/learnpython/) достаточно активен и благожелательно на­строен. Здесь вы сможете прочитать вопросы других участников и опубликовать свои собственные.

 

Сообщения в блогах

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

 

IRC (Internet Relay Chat)

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

 

Создание учетной записи IRC

Чтобы создать учетную запись на IRC, зайдите на сайт http://webchat.freenode.net/. Выберите имя пользователя, заполните поле c кодом проверки (captcha) и щелкните на кнопке Connect. Появляется сообщение, приветствующее вас на сервере IRC freenode. В поле в нижней части окна введите следующую команду:

/msg nickserv register пароль адрес_электронной_почты

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

/msg nickserv verify register имя код_проверки

Скопируйте эту строку на сайт IRC с именем, которое вы выбрали ранее, и полученным кодом проверки. Теперь все готово для присоединения к каналу.

 

Выбор канала

Чтобы присоединиться к основному каналу Python, введите команду /join #python. На экране появляется подтверждение о том, что вы присоединились к каналу, а ­также общая информация о канале.

Канал ##learnpython (с двумя символами #) обычно тоже активно работает. Этот канал связан с http://reddit.com/r/learnpython/, поэтому вы также будете видеть здесь информацию о сообщениях на r/learnpython. Канал #pyladies предназначен для женщин, изучающих Python, а также для людей, помогающих женщинам-­программистам. Если вы работаете над веб-приложениями, также можно при­соединиться к каналу #django.

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

 

Культура IRC

Чтобы помощь была эффективной, необходимо кое-что знать о культуре IRC. Если вы сосредоточитесь на трех вопросах, приведенных в начале приложения, это определенно станет значительным шагом на пути к успешному решению. Люди охотно помогут вам, если вы сможете точно объяснить, что вы пытаетесь сделать, что уже пробовали сделать и какие именно результаты при этом получили. Если вам нужно поделиться кодом или выходными данными, участники IRC используют внешние сайты, предназначенные для этой цели (например, https://bpaste.net/+python/). Тем самым предотвращается загромождение канала кодом и упрощается чтение опубликованного кода.

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