Code of the Streets: почему методы() пугают начинающих программистов

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

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

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

  1. Поймите, что большая часть кода не сложнее алгебры.

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

2. Начните строить что-то БОЛЬШОЕ.

Весь 2019 год я днем ​​работал на стройке, разгребая бетон и мечтая о кодовой жизни. Я тратил от 2 до 3 часов в сутки на написание кода, создание POS ресторана. В какой-то момент я перестал думать о каждом методе и начал думать о приложении и его частях. Я даже начал писать методы быстрее, потому что понял, что у меня больше работы, чем я изначально предполагал. Я могу никогда не закончить приложение. Это нормально. Мои границы расширились, и я перестал беспокоиться о том, сработают мои методы или нет. Моей заботой стала общая структура программы. Написание каждого метода стало обычным, способом добраться до моей большой цели.

3. Смотреть программу программистов.

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

4. Начните писать псевдокод для каждого написанного вами метода.

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

5. Запомните приемы вашего языка.

Это новейшее явление, с которым я сталкиваюсь. Простота декларативного кода. Я начинаю понимать, что почти все, что вы хотите сделать, вы можете сделать с помощью методов языка. Красная ковровая дорожка уже расстелена. Вам не нужно изобретать велосипед. Меня это поражает, потому что в школе мои преподаватели подчеркивали возможность писать методы с нуля. Они попросили бы нас не использовать методы языка. Это полная противоположность тому, что помогло мне преодолеть страх перед методами. Изучите методы своего языка. Запомните, как их реализовать. Если вам нужен молот, вы не выходите, рубите дерево и плавите сталь. Вы берете молоток и WACK!

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

Это повысило мою уверенность в своих силах больше, чем что-либо еще. Проведя более года в JavaScript, размышляя о его концепциях и реализации, я чувствую, что наконец-то понимаю язык. Для меня становится очевидным, как использовать инструменты языка, чтобы воплотить мои решения в жизнь. Я учусь думать на JavaScript, что сделало методы написания менее напряженными. Я знаю многое из того, что может сделать язык, и я также намного быстрее вижу свои ошибки. Я могу признать свои собственные синтаксические ошибки. Это позволяет мне сосредоточиться на логике, а не на каких-то неясных сообщениях об ошибках. И,поскольку мои методы уже написаны на простом английском и псевдокоде, все, что мне нужно сделать, это перевести эту логику в JavaScript. Самое замечательное то, что теперь, когда моя глубина увеличилась, я знаю со 100% уверенностью, что она всегда будет там, даже если я перейду на другой язык. Сосредоточение внимания на одном языке дало мне опыт реализации методов, который нельзя получить никаким другим способом.

Если мастерство действительно соответствует правилу 10 000 часов, сколько часов вы потратили на овладение методами письма? Заметьте, я не спрашивал о программировании вообще. Программист может отработать свои 10 000 часов, и это нормально. В этом они, наверное, мастера. Но не каждый стрелок — Стеф Карри. Не каждый защитник — Гэри Пэйтон. Не каждый профессиональный программист освоил методы. Но каждый час, который вы тратите на разработку логики методов, приближает вас на один шаг. Не позволяйте страху перед методами остановить вас. Если вы можете сделать 9-й класс алгебры, вы можете стать профессиональным программистом.