Я наконец-то начал изучать программирование, и не начинал с курсов по программированию.


🚀 Хочешь улететь на Луну вместе с нами? Подписывайся на CryptoMoon! 💸 Новости крипты, аналитика и прогнозы, которые дадут твоему кошельку ракетный ускоритель! 📈 Нажмите здесь: 👇

CryptoMoon Telegram


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

Первоначально запуск Visual Studio Code казался пугающим и даже бесполезным. Конечно, я мог бы заставить компьютер показать ‘Hello, world’, следуя инструкциям с Reddit, но цель оставалась непонятной, если я не осознавал почему и как это работает. Для неспециалиста вроде меня программирование настолько же чуждо, как другая планета, поэтому прыгать в него без понимания его механизма казалось безумием.

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

Веселое времяпрепровождение — лучший способ

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

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

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

Я наткнулся на книгу под названием «Код: раскрыть скрытый язык компьютерной инфраструктуры и приложений» Чарльза Петзольда. У него были положительные отзывы как учеников, так и опытных разработчиков программного обеспечения, и его подход, удобный для начинающих, мне понравился. Однако, просмотрев содержимое (двоичные коды, логика переключения, байты и шестнадцатеричное, логическое добавление, используя ворота, регистры и шины, контрольные сигналы процессора и т. Д.), Я почувствовал немного подавленным. Несмотря на мое желание углубиться в это, я почувствовал, что мне нужно сначала начать с чего -то немного на моей знакомой территории.

К счастью, есть область, которая кажется мне совершенно знакомой и может быть релевантна для различных тем: это история. Мне было интересно заниматься ею в школе, глубже изучать в университете, и у меня слабость к историческим романам или драмам на эту тему. Как оказалось, некоторые влиятельные фигуры в истории вычислительной техники были уже знакомы мне — такие как Чарльз Бэббидж, Ада Лавлейс, Джордж Буль и Алан Тьюринг. В свете этого я решил временно отложить книгу по коду и погрузиться вместо этого в истоки компьютерной науки.

Универсальный компьютер: путь от Лейбница до Тьюринга

Книга под названием «Работа Мартина Дэвиса» доступна в виде электронной книги на Amazon. Если вас интересует история, настоятельно рекомендую ознакомиться с ней; однако даже если вам не очень нравится история, все равно стоит её прочитать. Если вы испытываете трудности с концепцией программирования, чтение этой книги станет отличным стартом для вашего обучения, поскольку она воспринимается скорее как приятное чтение, чем традиционное изучение.

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

Давайте сделаем небольшой отклонение здесь. Похоже, математика часто представляет собой трудность для людей при обсуждении компьютеров и программирования. Иногда может показаться, что нужно быть специалистом по математике, чтобы заниматься этой областью, хотя это могло быть верно в прошлом (но это было много лет назад). Однако сегодня это уже не так.

Компьютеры и технологии несомненно построены на основах математики и науки. Однако когда дело доходит до создания программ или разработки ПО, математика играет скорее избирательную роль, нежели существенную.

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

Как энтузиаст технологий, я обнаружил, что большинство книг по программированию или курсов компьютерной науки начинают с изучения фундаментальной концепции двоичного кода — тех знаковых ‘1s’ и ‘0s’, которые мы видим в Матрице. Вы познакомитесь с тем, что они представляют, почему существуют и их применением в цифровом мире. Однако когда вы погружаетесь в процесс кодинга, становится ясно, что о двоичном коде не нужно активно думать. Вы уже не будете непосредственно вводить его, производить вычисления с ним; вместо этого ваши мысли будут сосредотачиваться на байтах (группах из 8 двоичных цифр) скорее, чем на отдельных битах (одна двоичная цифра).

Работа с бинарной информацией является высокоспециализированной задачей, с которой многие программисты сталкиваются редко. Поэтому они склонны обходить сложности работы с двоичными числами и сосредоточиться на других аспектах. В то же время использование математики в программировании аналогично; те, кто отлично справляются с этим, обрабатывают математические вычисления для вас, аккуратно упаковывая их в так называемые «функции.»

Вы можете открыть коробку, если хотите лучше понять его содержимое, но это не требуется. Вместо этого просто призовите функцию всякий раз, когда вам нужно ее использовать. Например, если вы хотите определить количество символов в тексте, для компьютера потребовалось бы гораздо больше усилий, чтобы выяснить это по сравнению с человеком, который мог бы просто искать и рассчитывать «1, 2, 3.» Тем не менее, вам не придется беспокоиться о базовых сложностях — просто вызов функции strlen () (длина строки) в C или ее аналогах, таких как len () в Python и length () в Java. У каждого языка есть своя терминология для функций.

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

Если числа вызывают у вас дрожь по спине, не бойтесь! Высокоуровневое программирование позволяет держаться на безопасном расстоянии от бинарного мира единиц и нулей. Чем выше уровень, тем меньше математики вам придется иметь дело. Так что не позволяйте математике пугать вас в мире кодирования; здесь так же легко избежать её, как и в повседневной жизни!

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

Код: Тайный язык компьютерного оборудования и программного обеспечения

После этого пришло время углубиться в тему — поэтому я взял книгу о компьютерных основах. Как упоминалось ранее, эта книга поначалу казалась весьма пугающей из-за своего объема и сложности. Однако не буду преувеличивать; я не сразу понял все концепции оттуда. Но помните: стремиться к ‘отличному’ вместо ‘хорошего’ зачастую контрпродуктивно. Понимание 80% книги гораздо лучше, чем ничего не понять вовсе, потому что если не прочитать ее, вы останетесь без знаний.

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

Книга не начинается с тем о компьютерах; напротив, она сначала затрагивает несколько на первый взгляд несвязанных вопросов, таких как код Морзе и шрифт Брайля. Однако эти начальные главы кажутся случайными, пока читатель не продвинется дальше и не поймет, что автор умело ввел концепции, важные для понимания последующих частей книги.

Это несомненно одна из тех встреч ‘верьте в путь’, но позвольте заверить вас, что книга тщательно спланирована и организована. Даже если некоторые части кажутся сложными, вы получите уровень компьютерных знаний, о котором никогда не думали, что сможете достичь.

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

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

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

Смотрите также

2025-03-30 16:29