Сегодня я начал свое знакомство с миром программирования и начал изучать язык Python.

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

Моя конечная цель — иметь возможность использовать Python для автоматизации некоторых черных задач моей текущей работы, а также для управления некоторыми различными проектами на микроконтроллерах (роботы!) и создать хотя бы одну программу, которая может быть полезна другим.

Откровенно говоря, это не первый мой взгляд на мир компьютерного программирования, но то, что я знаю, ограничено и (вероятно) в основном устарело.

Мой опыт:

Мой первый опыт программирования любого вида был на курсе «Введение в Visual Basic» в местном колледже более 10 лет назад. Моя любимая часть урока заключалась в подключении экспериментальной платы Velleman и написании программы для считывания показаний датчиков и управления некоторыми выводами.

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

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

Перенесемся на пару лет вперед, и я оказался в положении, когда эти знания VB пригодятся — в реальном мире! Оказывается, к тому времени я уже забыл большую часть этого, но я смог собрать воедино то, что помнил, с большим количеством Google Fu, чтобы создать пользовательскую программу инвентаризации с приятным маленьким графическим интерфейсом для моей компании.

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

Вот и весь мой опыт работы с языками программирования.

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

Первые шаги

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

После небольшого исследования я узнал, что Python был предпочтительным языком для энтузиастов Rpi и что это был очень универсальный и мощный язык, который было легко выучить и сложно освоить. Я также узнал, что большинство плат Rpi и многие другие чипы сейчас крайне дефицитны. Поэтому я заказал плату Raspberry Pi Pico, которая была одной из немногих доступных, и поискал в Интернете некоторые образовательные ресурсы.

Найденные мной ресурсы

То, что я нашел, было огромным. Материалов для изучения Python и всего остального в Интернете гораздо больше, чем я мог себе представить. От Codecademy до Youtube и StackOverflow выбор бесконечен, поэтому я решил начать с того, что делаю обычно, с книги.

Поскольку я был сосредоточен в первую очередь на Rpi Pico, я нашел книгу под названием Начало работы с MicroPython на Raspberry Pi Pico, написанную Гаретом Халфакри и Беном Эверардом, и решил начать с нее. Я также погуглил разницу между MicroPython и Python и узнал, что MicroPython был просто сокращенной версией, которая не предлагала полный выбор библиотек, как Python. Это казалось отличным способом намочить ноги.

Что я узнал

Просмотрев аппаратную часть, с большей частью которой я был знаком еще до покупки платы, я перешел к разделу, посвященному MicroPython, и настроил Thonny. Затем я узнал о печати, циклах и отступах кода, условных выражениях и переменных.

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

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

Как я упоминал ранее, существует множество информации, но я сосредоточился на возможностях MicroPython, и это привело меня к возможностям Python, которые, если вы не знаете, просто безумны. ИИ и машинное обучение больше не являются технологиями, недоступными для обычного человека, и их можно использовать практически для чего угодно.

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

Введите канал

Во время этого периода размышлений я наткнулся на короткую, но приятную статью Нитина Шармы Единственная книга/курс, которая вам когда-либо понадобится для изучения Python. с Python»: Практическое программирование для начинающихЭла Свейгарта.

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

Мой план

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

Заключение

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