Программирование с нуля. Лучший способ обучения

Программирование стало в 21 веке одной из самых престижных и востребованных профессий, поэтому неудивительно, что Интернет забит вопросами «как программировать?» под завязку. Сегодня существуют различные книги, видеокурсы по программированию и другие способы быстро и относительно недорого научиться писать программы и приложения.

Однако каждый метод обучения имеет свои плюсы и минусы, и начинающему программисту наверняка будет интересно, как стать программистом с нуля в максимально короткий срок и с максимальной отдачей. К примеру, для этого можно посетить «Курс молодого бойца», где всю базовую информацию разложат «по полочкам» и дадут советы по дальнейшему развитию в качестве программиста.
http://sd.uploads.ru/t/aqL5B.jpg

Программирование с нуля, как и любое другое дело, которого вы никогда ранее не касались, будет сперва казаться непонятным и трудным. Существует стереотип о программистах, что они «пишут 2 строчки кода и получают за это тысячи долларов». Действительно, если специалист смог уместить функционал сложной программы в несколько строчек — он заслуживает такой оплаты. Но чтобы достичь этого уровня, нужно упорно работать. Изучать программирование с нуля сложно, если не с кем посоветоваться и не у кого спросить, но если проявить настойчивость и упорство - это возможно, но потребуется много свободного времени.

Итак, рассмотрим, что же нам предлагает способ обучения программированию с помощью видеокурса на Ютубе. 90% таких материалов рассчитано на тех, кто уже понимает базовые принципы или же наоборот, не понимает совсем ничего. В результате пропадает тот самый «средний» информационный пласт, который и позволяет перейти из разряда новичков в разряд начинающих программистов. Нет его по той причине, что введение в программирование происходит на примере одной программы, основные принципы подаются на основе другого приложения, а «высший пилотаж» показывается на чём-то третьем на видеокурсах или в учебниках, поэтому целостной картины не складывается.
http://sd.uploads.ru/t/3vT1i.png

Программа не растёт вместе со своим создателем, не образуется тот самый фундамент, на котором строятся знания. Поэтому видео из разряда «как стать программистом с нуля за 5 дней» могут научить писать простенький код, но что-то большее они не способны предложить. Поэтому закономерным выводом становится необходимость развития собственного проекта/программы для того, чтобы поэтапно проработать все вопросы возникающие при обучении программированию с нуля.
Ваш собственный проект: плюсы, плюсы и один маленький минус

Как известно, лучший способ научить кого-то плавать — скинуть с лодки посреди озера. В стрессовой ситуации тело быстрее поймёт, что ему делать, чтобы выжить. То же самое касается и программирования: как только вы выйдете за пределы «зоны комфорта» — рамок, установленных образовательной программой, и определённой последовательности действий — вы гораздо лучше поймёте, как программировать на выбранном вами языке. Хоть метафора не на 100% верна, но достаточно точно показывает, как стать программистом с нуля самостоятельно.
Как стать программистом

Вам придётся понять саму суть языка и принципы программирования, чтобы написать простенькую программу — результат гораздо лучший, чем если бы вы сделали всё по инструкции. Возможно, на написание уйдёт больше времени, но и пользы для навыка программирования будет гораздо больше!
http://s7.uploads.ru/t/UOpol.png

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

    самостоятельно придуманная задача сделает программирование с нуля легче, лишит вас «костылей» и заставит двигаться вне каких-либо рамок. Так вы лучше поймёте язык или даже сможете найти нестандартное решение возникшей проблемы;
    «набивание шишек» сделает вас психически устойчивей к трудностям. Вы поймёте, что неудача — это повод начать сначала, а не забрасывать основы программирования, учебник и все наработки «за шкаф»;
    программа будет расти с вами и совершенствоваться вместе с навыком программирования. Скоро вы увидите, какие совершили ошибки в начале, сможете исправить их с учётом новых знаний. Работа над ошибками — один из лучших способов постичь программирование с нуля, но он очень редко предлагается в видеокурсах;
    у вас будет цель — написать программу с определённым функционалом, а не абстрактное обучение программированию с нуля в качестве конечной точки процесса. Недостаток мотивации часто служит причиной прекращения занятий программированием. Собственный проект же, который уже частично работает, как вы хотели, остановит вас от необдуманных действий;
    это будет отличным портфолио. Даже если вы самоучка, изучавший программирование с нуля по книгам и роликам с Ютуба, при наличии собственной программы, написанной не «по инструкции», работодатель внимательней к вам присмотрится. В программировании весьма важно нестандартное мышление и умение находить оригинальные решения, поэтому ваше резюме будет выгодно выглядеть даже на фоне программиста с образованием в престижном ВУЗе;
    вы сможете найти команду для реализации задумки. Когда есть конкретная цель, будет легче найти тех, кто так же, как и вы хочет узнать, как стать программистом с нуля, и совместно с ними реализовывать свой проект. Вместе веселей, плюс сложные моменты можно будет разобрать в процессе «мозгового штурма»;
    если идея стоящая, то она вполне может стать стартапом.
http://s7.uploads.ru/t/Pweza.jpg

Разумеется, есть и другие преимущества, перечислять можно очень долго. Ну а минус, обещанный в подзаголовке, очень прост: это будет очень трудно.
Обучение программированию
Так откуда же взять знания?

У вас наверняка возник вопрос: «Свой проект — это хорошо, но откуда взять знания, если у меня за плечами только введение в программирование?».
Есть два способа:

    самостоятельно дойти до всего. Это очень сложно, порой будет хотеться бросить всё и забыть как страшный сон. Времени на самостоятельное обучение уйдёт очень много, зато вы сможете по праву гордиться собой;
    записаться на курсы и спрашивать непонятные моменты у опытного преподавателя. Так вы совместите приятное с полезным: поиск нужной информации не будет занимать сутки, но вы всё так же останетесь предоставлены себе и сможете писать свою программу, а не «создавать гомункула по учебнику».
http://sg.uploads.ru/t/JAdrN.png

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