Когда я учился программировать, я постоянно слышал один и тот же совет.

«Учебники - это здорово, но строительные проекты - лучший способ учиться. Просто иди и создавай! "

Но… как?

Для новичка это все равно что услышать: «Больше никаких уроков. Просто прыгай с парашютом! »

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

Я застрял.

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

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

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

Вот 3 способа, которые сработали для меня.

1. Добавьте новые функции в свои обучающие приложения.

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

Моя сестра, старший разработчик в Eventbrite, предложила простое, но действенное упражнение.

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

Я взял учебник по React, в котором вы пишете приложение, а затем добавил в приложение кнопку. Затем я решил добавить в приложение панель поиска и придумал, как ее создать. Затем я придумал еще одну функцию и построил ее. Это хорошо работает, потому что я начинал с того, что уже знал (как работает приложение до сих пор), и постепенно наращивал эти знания. Это было сложно, но достижимо. Чем больше я строил, тем больше росла моя уверенность.

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

Курсы Эндрю Мида по JavaScript на Udemy содержат разделы, называемые "Задачи сборки", в которых он проведет вас через создание приложения, а затем предложит вам добавить функцию в приложение, которое вы только что создали. Затем он показывает вам, как он будет строить эту функцию. Вы строите почти так же часто, как смотрите учебник. Независимо от того, посещаете ли вы его курсы, делайте это для каждого обучающего материала.

Добавьте новые функции в свои обучающие приложения. Посмотрите, насколько быстрее вы учитесь, когда постоянно строите.

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

Совет. Не беспокойтесь, не портят ли новые функции макет или структуру вашего приложения. Когда я подчеркивал это, моя сестра указывала: «Вы беспокоитесь о шаге 20, когда не выполнили шаг 2». Как только вы построили так много, что тонете во всех своих крутых проектах, вы можете беспокоиться о подобных вещах. А пока - приступайте к строительству!

2. Создайте расширения Google Chrome.

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

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

Уилла Сентанса, генерального директора Codesmith и преподавателя Frontend Masters, спросили: Как создать что-то выполнимое - это не займет вечность? Его ответ?

Создавайте расширения Google Chrome.

Это забавный и быстрый способ начать строить как новичок.

Я проработал эти руководства, которые показали мне как создать расширение Chrome всего за десять минут или всего за 20 минут. Затем я взял то, что узнал, и построил собственное очень простое расширение. Меня зацепило. Как объясняет Уилл Сентанс:

«Вы можете практиковать JavaScript без необходимости создавать и разрабатывать приложение с нуля - оно просто подключается к тому, что вы уже используете».

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

Расширения Google Chrome стали для меня отличным способом не только учиться, но и выполнять проекты, которые я могу использовать и показывать друзьям, за относительно короткий промежуток времени.

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

Создавая расширения от начала до конца, моя мотивация как новичка увеличилась в четыре раза. И эта мотивация превратила меня из новичка в младшего разработчика.

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

Совет. Sentance указывает, что вы всегда должны создавать расширения, которые решают проблемы, с которыми вы сталкиваетесь. Вы гораздо больше позаботитесь о завершении своего расширения, если это решение вашей досадной проблемы. Слишком много отвлекаетесь на Facebook? Создайте расширение, которое скрывает вашу ленту Facebook.

3. Создавайте проекты вместе с другом.

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

Я нашел лучший способ исправить это - начать проект вместе с другом.

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

Основатель freeCodeCamp Куинси Ларсон сказал: «Худший способ научиться программировать - это учиться в одиночку». Когда вы работаете в одиночестве, легче отказаться, когда вы чувствуете себя потерянным и не знаете, что делать дальше при создании проекта.

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

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

Строить - лучший способ учиться. Я просто хотел бы начать раньше.

Не делай моей ошибки. Стройте вещи.

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

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