Когда дело дошло до кодирования, я никогда серьезно не задумывался об этом. Ну это не совсем так. У меня было достаточно негативных мыслей, чтобы убедить себя, что я никогда не смогу этого сделать. Конечно, в детстве я много раз мог выучить «код». Возможно, это было время, когда я учился создавать веб-сайты на Geocities. Может быть, это было время, когда я взял книгу по C++ в подростковом возрасте. Возможно, это было, когда я учился в общественном колледже и пытался изучать CSS или ActionScript. Неа. Я списал все это на «кодирование невозможно».

Перенесемся на несколько (два десятилетия) лет вперед, и я обнаружу, что приближаюсь к концу своего бакалавриата. в графическом дизайне. Там я увидел, что моим следующим курсом будет класс веб-разработки. Итак, приступим… HTML/CSS и JavaScript. Я немного попрактиковался, пройдя около 30 часов подготовительных курсов на Lynda.com. Еще мне удалось прочитать книгу по веб-разработке. Все это было в рамках подготовки к реальному классу.

Курс веб-разработки пришел и ушел, а я все еще стоял с двумя веб-сайтами, написанными вручную. «Ура», — подумал я. Но на самом деле я никогда не изучал «кодирование». Могут быть некоторые аргументы в пользу того, что HTML/CSS являются языками кодирования. Я их таковыми не считаю. С другой стороны, JavaScript — очень популярный язык. Несмотря на то, что я познакомился с ним во время летней подготовки и курса веб-разработки, я так и не научился программировать. Так что я медленно обнаружил, что падаю по спирали одиссеи. Как можно научиться программированию?

Чтобы ответить на мой вопрос «как научиться программировать», я обратился к тому же ресурсу, который многие из вас используют для ответов на вопросы… Google. Читаю статьи и блоги на эту тему. Я продолжал видеть, как всплывают одни и те же общие темы; выбери язык, JavaScript это легко, практикуйся, бла, бла, бла.

Правда в том, что я не нашел JavaScript простым. На самом деле как раз наоборот. Я просто не понял. Никогда по-настоящему не сталкиваясь с языком программирования, я чувствовал себя потерянным. Я просто не знал, с чего начать. Поэтому я решил зайти на Meetup и найти группу программистов. Немного осмотревшись, я нашел ту, которая звучала так, как будто это было именно то, что я искал… группа кодирования для абсолютных новичков.

Эту группу новичков по кодированию возглавлял учитель математики средней школы, который начал программировать за 8 месяцев (кажется) до меня. Меня познакомили с code.org, сайтом, предназначенным для обучения детей и молодежи программированию. Я подумал: Отлично! Если бы дети использовали это, чтобы научиться программировать, возможно, я тоже смог бы. Лидер группы также хорошо разбирался в основах программирования, и я чувствовал, что могу у него поучиться. Остальная часть группы была кучей неудачников, которые больше никогда не появлялись.

Однако после нескольких встреч группа распалась. Лидер группы сказал мне, что посетителей недостаточно. Ну блин. Что дальше?

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

После выпуска я снова взялся за книгу Python. Я прочитал несколько глав и обнаружил, что меня заинтриговало то, что автор был разработчиком Python-самоучкой. Он рассказал, как он учился, и дал несколько советов остальным. Когда я попытался выполнить упражнения из книги, я обнаружил, что мне нужна среда разработки Linux. Ну блин.

Поэтому я настроил себе среду разработки Linux.

У меня был старый компьютер, спрятанный в шкафу. Я стряхнул с него пыль и установил на него Ubuntu. Это был мой первый опыт работы с ОС Linux. Я был приятно удивлен, насколько мне действительно понравилась ОС. Линия терминала - это тузы, и она сделала установку моей среды разработки очень быстрой и легкой. Еще любопытно, как он узнает, где что находится на внешних серверах, только из терминальной строки… Позже я узнал, что могу использовать программу под названием Thonny. Это среда разработки Python, которую можно установить на компьютер с Windows.

Итак, мы здесь. У меня была среда разработки на базе Linux.

Когда я следил за книгой, Python казался мне более понятным. Я обнаружил, что у него более разборчивый синтаксис по сравнению с JavaScript. С Python я был больше сосредоточен на том, какие команды писать, чем на том, есть ли у меня фигурные скобки, точки с запятой или что-то еще. Я действительно мог писать команды, следуя книге.

Тогда я начал думать «как мне писать программы без книги?» Когда я задумался о «логическом мышлении», я понял, как это сложно для меня. Конечно, это может показаться простым, но при переключении с «человеческого мышления» на «машинное мышление» у меня возникли некоторые проблемы. Итак, вот волшебная смесь, которая сработала для меня.

Я люблю онлайн-образование. Один из моих любимых сайтов — edx.org. Там я взял формальную логику (вроде логики Сократа, Платона, Аристотеля). Размышляя о том, как формировать логические аргументы, я начал понимать, как пишутся программы.

Примерно в это же время я также начал базовый курс математики/предварительной алгебры. Поскольку я никогда не был силен в математике, я почувствовал, что пришло время отнестись к ней более серьезно. Я начал рассматривать этот математический класс в контексте компьютерного программирования. Впервые мне было интересно найти «х». В конце концов, это переменная, а знаете, у чего еще есть переменные? Верно. Кодирование!

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

Через три недели я смог написать свою первую программу. Это была простая игра на выпивку. Он спросил у пользователя его имя. Затем он спросил, хотят ли они шот, пива или бокал вина. Затем им нужно будет выбрать, с какой едой их есть. Программа отслеживала «алкоголь» пользователя. Как только попадалось рандомизированное целое число, пользователь «напивался», и игра заканчивалась. Хорошо, как я уже сказал, это была очень простая программа. За последние несколько дней я написал еще две простые программы.

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