
Почему так много людей отказываются от обучения программированию
Самый популярный новый навык для всех не так прост, как кажется на Codecademy
Недавно я написал скрипт на python для захвата постов и комментариев к ним из Facebook и отчета об объеме, настроениях и темах обсуждения. Как вы быстро поймете, мои навыки кодирования я изучаю самостоятельно с помощью образовательных онлайн-платформ, таких как Codecademy, и моя способность писать полнофункциональные инструменты все еще довольно нова. Переход от изолированного электронного обучения к просмотру пустого текстового файла был невероятно сложным и занял много времени, но, тем не менее, я очень рад показать свою работу, даже если она не так хороша!
Предыстория
Я продемонстрировал Socialnaut, новый инструмент Social Listening, созданный в Black Swan, который охватывает огромное количество источников данных, быстр и отзывчив в использовании и охватывает все основные области, о которых вы хотите узнать из социальных сетей. Через несколько минут меня спросили, почему Facebook не отображается как источник данных. Это происходит часто, поэтому было легко понять, что Facebook является частной социальной сетью и скрывает большинство сообщений от таких наборов инструментов, как наш. Тем не менее, они были очень заинтересованы в использовании тех же методов анализа, таких как настроения и темы в комментариях к сообщениям на их странице в Facebook. Я знал, что в Черном лебеде мы создали API, которые я мог бы использовать для обогащения, поэтому все, что мне нужно было сделать, это получить сообщения и комментарии из Facebook Graph API, передать их через API-интерфейсы обогащения, сохранить в базе данных и написать несколько отчетов SQL для извлечения информации. Это не звучало слишком сложно, и, поскольку у нас было мало ресурсов для разработки, я подумал, что попробую сам.
Акт 2
Я нашел отличную серию постов с полными инструкциями и прохождением по адресу http://simplebeautifuldata.com/2014/08/25/simple-python-facebook-scraper-part-1/, так что казалось, что я должен быть в состоянии чтобы обернуть все это в два раза быстрее. Увы, это было не так. Я начал с установки MySQL, которая шла нормально, пока я не попытался подключиться к серверу и не смог понять, почему срок действия пароля, который мне дали во время установки, истек. В любом случае, я узнал, как сбросить пароль, и продолжил. Через терминал я подключился к серверу, создал свою первую тестовую базу данных, и с базой данных дела шли хорошо. Далее скрипт Python.
Наслаждаясь опытом Codecademy и впоследствии борясь с обычными текстовыми редакторами после того, как я обратился к ним как к чистому способу написания кода, я начал искать IDE, которая убрала бы часть переключения между текстовым редактором, терминалом и базой данных. client, надеюсь, это немного упростит задачу, чтобы я мог сосредоточиться исключительно на коде. Я нашел PyCharm, мне понравился его внешний вид, и люди на Quora одобрили его, поэтому я воспользовался бесплатной пробной версией, и должен признать, что это, вероятно, причина, по которой мне удалось завершить этот проект там, где другие потерпели неудачу.

Раньше я использовал виртуальные среды для Python, поэтому начал настраивать их в PyCharm, и так начался целый день борьбы и раздражения. Настроить среду было легко, PyCharm прекрасно справляется со всем этим через графический интерфейс, но когда дело дошло до MySQL, я не смог его подключить. Я попробовал множество предложений в Интернете, но безрезультатно, через пару часов я решил прекратить и запустить все в своей основной среде, где MySQL сразу же подключился.
Итак, наконец, дело дошло до того, что в окно попал какой-то код, я скопировал базовый скрипт из второго шага руководства и попытался запустить его… ошибка… конечно, мне нужно настроить базу данных! Глупый я! Не так уж полезно было настроить базу данных в отдельном учебнике на том же сайте, но домашняя страница выдавала ошибку 500, поэтому потребовалось немного творческого поиска в Google, чтобы получить то, что я хотел. Так или иначе, когда база данных была отсортирована, я еще раз прокрутил сценарий… ошибка… Facebook сообщил мне, что это должен быть аутентифицированный вызов. Похоже, что автор, возможно, использовал более старую версию Facebook Graph API, которая не использовалась с апреля 2015 года. Не беспокойтесь, в учебнике был аутентифицированный вызов для более позднего этапа, поэтому я мог просто посмотреть на это и адаптировать функция сведений о странице для его поддержки. Так началось мое путешествие в то, что кажется настоящим программированием; копирование кусков кода, интеграция в мой собственный код, а затем неустанный поток работы над тем, что сломалось, пытаясь найти правильный способ формулировать вопросы в Google, надеясь, что какой-нибудь умный, полезный человек из Stack Overflow имел порядочность ответить на такие вопросы. основная проблема раньше.
Кульминация
Не проводя вас через каждую ловушку, ошибку и глупую слепоту к очевидной проблеме и не утомляя вас до невозможности. У меня есть несколько советов для новичков в программировании и тех, кто хочет облегчить себе задачу.
- КОДИРОВАНИЕ СЛОЖНО! Это требует настойчивости, и взрослые обычно не привыкли к такому количеству неудач. Это фантастический навык, который может помочь вам во многих отношениях, но вы должны быть готовы потратить время. Будьте готовы часами разбираться в проблеме, а затем ее исправление будет таким простым, как неправильная пунктуация в конце строки.
- Среды разработки — это боль в заднице. Установка всего, что вам нужно, требует времени, и вам нужно управлять разными средами для каждого проекта. Кроме того, всегда полагаться на «sudo», когда что-то не работает в первый раз, кажется опасным и, вероятно, так и есть.
- Сообщения об ошибках не ясны, подскажите как исправить! Я понимаю, что пути ошибок должны быть очень общими, но, пожалуйста, постарайтесь сделать их более читабельными. Это также относится к большинству общедоступных сообщений об ошибках, написанных разработчиками (проверка формы, я смотрю на вас).
- Инструменты электронного обучения, такие как Codecademy, имеют действительно хороший пользовательский интерфейс, который упрощает написание кода, но затрудняет переход к реальным инструментам. Само по себе это неплохо, но не забудьте сделать направляющие, чтобы совершить переход, на данный момент это ничейная земля!
- Отладке нужно учить, это навык сам по себе.
Спасибо за чтение, дайте мне знать о ваших неудачах в обучении программированию!