В прошлом году я начал пытаться научиться программировать с нуля, что, вероятно, является достаточно распространенным повествованием, но до этого я никогда не представлял себя кем-то, кто может работать с компьютерами. Всю свою жизнь я был чисто гуманитарным человеком, с большей частью того, что влечет за собой стереотип — книжный ребенок, плохой спорт, тематический день рождения Джейн Остин (дважды, я признаю это) — и я специализировался на английском языке, прежде чем поступить в аспирантуру. для, что еще, британская литература 19-го века. Тем не менее, в мае прошлого года я хотел посмотреть, кем еще я могу быть. Я хотел научиться чему-то совершенно отличному от всего, что я когда-либо делал раньше.
Так или иначе, в мае прошлого года я был полон решимости начать изучать программирование, но у меня была проблема: как человек, который был пугливым в отношении компьютеров, я понятия не имел, что такое программирование. Даже для того, чтобы начать, нужно иметь хотя бы немного понимания, чтобы хотя бы знать, что начинать изучать в первую очередь. Несмотря на все мое рвение, у меня было лишь смутное представление о том, что включает в себя «программирование», которое я почерпнул из популярных СМИ. Конечно, эти вымышленные рассказы по сути ничего не говорят о реальных процессах кодирования, поэтому все, что я знал из этих фильмов и т. д., это то, что в компьютере было некоторое особое место, где настоящие программисты занимались кодированием, и какой-то особый язык, на котором они писали свой код.
Одна из вещей, которая делает программирование кажущимся непостижимым, заключается в том, что в этой области появился совершенно новый набор правил и словарей, которые вам нужно каким-то образом уже узнать, прежде чем вы сможете начать. Как это ни парадоксально, кажется, что вы уже должны быть программистом, чтобы начать учиться тому, как быть программистом. Без четкой отправной точки не может быть плана; до того, как я начал программировать, мне казалось, что вообще не с чего начинать. Я был в том, что я бы назвал «петлей невежества». Я не мог начать учиться программировать, потому что не знал ни словарного запаса, ни основных процедур… и я не мог выучить ничего из этого, пока не начал учиться программировать.
Затем, примерно через месяц, я писал и запускал простейшие программы. Я был за порогом. У меня были процедурные знания и словарный запас, чтобы серьезно начать кодировать. Но как это произошло?
Странно то, что, когда я сажусь объяснять, что я сделал, я все еще не могу определить, что стало переломным моментом. Резкой истории, которую я хотел написать о том, как я преодолел петлю невежества, не последовало.
Конечно, самое простое объяснение, которое я мог бы дать, это: «Я просто начал немного возиться с Python». Знаете, этот ответ. Когда я отчаянно нуждался в прямом ответе о том, как другие начали программировать, я ненавидел читать на форумах ответы «возиться без дела», потому что они абсолютно ничего не объясняли о том, как человек, о котором идет речь, вообще учился. Этот ответ создает впечатление, что начало работы с кодированием — это то, что происходит только тогда, когда соблюдается правильный набор условий, даже если расплывчатость ответа упускает из виду, каковы эти условия. Что вообще такое Python? Как научиться тому, как заставить компьютер делать достаточно вещей, чтобы бездельничать? Что вообще квалифицируется как «бездельничать»?
Несмотря на желание ударить всех, кто пишет на Reddit и в блогах программистов, которые говорят, что они научились, «бездельничая на компьютере», я могу признать, что это эмоционально честный ответ. Мое общее ощущение первого месяца программирования состоит в том, что я бездельничал, и если бы у меня было только одно предложение, чтобы выразить опыт, это было бы лучшее, что я мог сделать. Однако, поскольку ответ говорит только об общем смысле, слишком быстро сводить опыт обучения к цитируемому самородку. Хотя ответ честный, он также ленив, требуя от отвечающего минимум размышлений. он опирается только на смутное чувство, которое насыщает воспоминания, не исследуя реальный опыт обучения.
Лучшее объяснение того, как я начал кодировать, которое я хотел бы дать, не имеет такой же цепляющей способности, как простое, расплывчатое объяснение. Это мучительно конкретно, и это не произойдет в одном предложении или даже в одном сообщении в блоге. С другой стороны, он также предоставляет больше информации и, как таковой, может быть более полезным. Конечно, в то время как расплывчатое объяснение кажется честным в том смысле, что я чувствую, будто я бездельничал, конкретный ответ фактически честный, потому что он не замалчивает конкретные шаги, которые я предпринял. Он также не скрывает разочарований. Попытки программировать иногда очень злили меня, и я не буду притворяться, что обучение произошло само собой, как будто я обнаружил, что «сила была внутри меня все время!» Блех.
Нет единого ответа или определенного порога, который я переступил, когда начал учиться программировать. Начало работы само по себе является процессом, состоящим из конкретных шагов для меня. Шаги для начала также имеют определенные места и процессы, которые нельзя интуитивно понять из какой-либо расплывчатой рекомендации «бездельничать». Итак, задача, которую я поставил перед собой, состоит в том, чтобы рассказать о том, как я начал, не в одном замечательном втором посте, а в серии, которая реконструирует мои воспоминания о моих первых набегах на программирование. У меня все еще есть папка, полная рудиментарных программ с мая прошлого года, когда я впервые начал, и я начну на следующей неделе, как и многие другие, с «Hello World».