Learning

Будучи учеником старшей школы, я начал изучать графический дизайн. В основном, я занимался созданием различных иконок, логотипов и геофильтров для Snapchat. Примерно в то же время я увлекся разработкой веб-сайтов. И мне действительно нравилось этим заниматься, однако я быстро пришел к выводу, что веб-разработка не для меня. Но в этом году я решил оставить все свои сомнения и вновь заняться этим.

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

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

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

С чего начать

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

Такие знатоки своего дела, как Билл Гейтс и Марк Цукерберг не могли в одно мгновенье взять и создать свои детища, а именно Microsoft и Facebook . Они, также как и все, годами совершенствовали свои знания и навыки.

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

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

Если бы каждый день ваши навыки улучшались на 1%, через 72 дня вы стали бы практически гуру в программировании, нежели выучили бы все наспех за 2 недели. Люди добиваются куда больших результатов, применяя методику постепенного обучения, а не надеясь на то, что они станут суперзвездами в своем деле всего за несколько недель.

Мой процесс обучения

Прошлым летом я начал с того, что иногда почитывал Hackernews. Также я случайно наткнулся на статьи Пола Грэма, но их стоит читать только если вы заинтересованы в стартапах.

Единственное, в чем мне помогли его статьи — это в мотивации продолжать искать свою нишу. Я остановился на HTML и CSS. Оба языка казались довольно легкими для новичков. Я начал учиться по книге Джона Дакетта «HTML и CSS».

Книга оказалась довольно полезной, но, если честно, если бы у меня была возможность начать все сначала — я бы выбрал FreeCodeCamp. Ресурсы на FreeCodeCamp более подробно описывают те или иные аспекты. А еще они обойдутся вам только в потраченное время, которое вы будете инвестировать в себя. Программа FreeCodeCamp позволяет учиться, выполняя практические упражнения со всеми новыми концепциями и понятиями в языке. Это очень мне помогло при изучении базового синтаксиса JavaScript.

Вернемся к моей истории: после создания нескольких статических веб-страниц с помощью HTML, CSS и Bootstrap — я решил, что пришло время учить JavaScript. JavaScript — это очень гибкий язык программирования. Вы можете использовать его для создания веб-приложений, десктопных приложения (используя Electron), а также мобильных приложений (используя React Native). Однако, на данный момент, я пошел еще дальше.

Бывали дни, когда я хотел разбить монитор своей головой. Но, к счастью, перед точкой кипения я нашел FreeCodeCamp. Я решал базовые задачи по JavaScript на FreeCodeCamp из сертификации по фронтенду. После этого я прочел серию книг «Вы не знаете JS». Эти книги очень трудны для понимания, но с их помощью мне удалось разобраться с ES6 и вот с этим. К сожалению, я не добился больших результатов в тот промежуток времени, потому что в школе начались экзамены.

Во втором семестре я решил взять уроки по основам программирования на Java. Помогло ли мне это понять основы синтаксиса языка? Могу с уверенностью сказать: да! Уроки были действительно интересными и познавательными (если хотите посмотреть лекции, я нашел в интернете онлайн записи, а модули 2,3,5,6 и 7 наиболее полезны, на мой взгляд).

После этих занятий, я понял основы информатики. Знания методов и объектов облегчило мое изучение React.

К чему я пришел

Моя текущая цель: стать лучше в разработке приложений с помощью React Native. Дополнительно я прохожу вот этот курс на Udemy по бэкенд-разработке. Информация в нем, безусловно, стоит 10$, в отличие от большинства учебников.

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

Пройденные уроки

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

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

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

Мой совет — начните работать над какими-либо проектами, когда у вас будет базовое понимание синтаксиса языка. Это намного увлекательнее простого теоретического обучения. Вы будете сосредотачиваться на том, что конкретно вы хотите сделать или написать, практикуя при этом достаточно сложные концепции языка. Благодаря работе, вы начнете понимать в языках то, что раньше вам было непонятно. До того, как я начал работать над проектами, я, в основном, читал книги по JavaScript в Интернете и в тот момент я никак не мог разобраться, например, в таких вещах, как методы и объекты.

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

Поэтому сначала убедитесь в том, что выбранный вами материал стоит своих денег, будь то видео-лекции, учебник и т. д. Ознакомьтесь с отзывами пользователей, комментариями и ответами от авторов, например, в Twitter или Medium. Я очень рад, что я обучался именно на платформе Udemy, благодаря которой я многое понял в веб-разработке.

 

Перевод статьи Charles ScheuerWhat I’ve Learned from a year of coding