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

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

«Как вы начали

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

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

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

Не путайте их

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

Как я объяснил в предыдущем посте, это не лучший путь. Обучение программированию — это гораздо больше, чем просто запоминание синтаксиса случайных языков программирования. Это включает в себя тренировку вашего мозга думать по-другому (способ, близкий к компьютерному), чтобы решать проблемы. Этот процесс застопорится и затормозится, если вы будете изучать несколько языков одновременно, когда только начинаете свой путь программирования. Сначала освойте один язык. Я написал целый пост, чтобы объяснить это подробно, поэтому, пожалуйста, обратите на это внимание.

Проектное обучение

Лучший способ научиться программированию — это действовать. Вы должны быть в состоянии построить что-то с вашими знаниями в области программирования, прежде чем это действительно станет знанием программирования. Пока вы учитесь, создавайте для себя небольшие проекты и постепенно масштабируйте их, чтобы усложнить себе задачу. В процессе вы узнаете целую тонну, и это сделает вас более комфортным и мотивированным. Я, например, начал создавать свою первую настоящую программу всего через несколько недель после изучения Python (это язык программирования) и в конечном итоге увеличил ее до гигантской 182-строчной программы и, в конечном итоге, до полномасштабного приложения.

Теперь, когда это сделано, без дальнейших церемоний, вот несколько отличных ресурсов, которые помогут вам начать:

Список

  1. Удасити (бесплатно и платно)

Это мой личный фаворит, потому что он привел меня к разработке Android и, следовательно, к полной одержимости программированием. А если серьезно, то Udacity — отличный ресурс для изучения программирования. По общему признанию, из пройденных мной курсов вам могут помочь некоторые знания в области программирования, но опять же, я прошел только один из их сотен профессиональных курсов. Ради бога, один курс превращает вас из ничего не знающего в обучение тому, как построить поисковую систему. Некоторые курсы бесплатны, но их лучшие курсы (называемые Nanaodegrees) оплачиваются ежемесячно или иногда взимаются.

2. Удеми (бесплатно и платно)

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

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

3. Edx (бесплатно, опционально платно)

Боже мой! Хотел бы я, чтобы больше людей узнали об этом удивительном ресурсе. Edx.com предлагает бесплатные курсы по многим темам из ведущих источников, таких как Гарвард, Массачусетский технологический институт и Microsoft (здесь я вас не обманываю). Если вы заплатите, вы можете получить официальный сертификат этих курсов, и я бы не возражал, если бы он был из Гарварда или Массачусетского технологического института. Вы можете перейти прямо на домашнюю страницу, чтобы изучить, или просмотреть эту публикацию Quora для некоторых предлагаемых курсов. Вы не пожалеете об этом.

4. Coursera (бесплатно и платно)

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

5. Codecademy (бесплатно, опционально платно)

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

6. Линда (Платно)

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

7. Школа кода (Платно)

Code School — это еще один веб-сайт, основанный на подписке, и этот основан на веб-разработке. У него хорошая репутация благодаря качественным курсам, особенно потому, что им управляет Pluralsight — компания, обучающая профессиональных программистов.

8. Переполнение стека

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

Не знаете, какой выбрать?

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

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

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

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

Так что просто выберите один веб-сайт (я рекомендую любой бесплатный, особенно Udacity, Udemy или edx) и создайте.