С чего начать изучать программирование – один из самых часто задаваемых мне вопросов. Изучение начинается с азов, и я считаю, что это вполне можно сделать самостоятельно. В этой статье поговорим, с чего начать и на какие нюансы обратить внимание.
Выучите английский язык
Прежде, чем приступать к изучению непосредственно программирования, зайдем с другой стороны. Вся информация по программированию в интернете (кроме самой-самой базовой) на английской языке. Вся документация исключительно на английском. Вы не станете хорошим программистом если не знаете английский хотя бы на уровне чтения документации. Информацию, которую вы можете найти на русском – не полная, устаревшая или ошибочная. Поэтому программист гуглит и читает исключительно на английском языке. Да, стартовые книги и видео по любой программистской специальности можно найти на русском. Но когда вы начнете работать профессионально, вам в любом случае потребуется английский.
Без английского, если не невозможно совсем, то уж точно очень тяжело. Без языка вы потратите в три раза больше времени чтобы достичь тех же результатов, которых бы достигли со знанием английского. Разговорный английский тоже важен и пригодится в карьере, но умение чтения документации абсолютно необходимо. И именно с этого вы должны начать.
*Программисты 1С могут не учить английский. Это особая каста.
Ищите источник изучения
Источник изучения по тому языку программирования, который вы выбрали, может быть любой: книги, курсы в интернете (в том числе бесплатные) и пр. Мне больше всего по душе книга, но тут выбор за вами. Как выбирать языки программирования я уже рассказывал, читайте тут.
Выделяйте достаточно времени на изучение
Если садясь что-то учить вы тратите меньше 1 часа, вы никогда ничего не выучите. Вам нужно выделить минимум 1,5-2 часа на каждое занятие программированием.
Занятия должны быть не менее трех раз в неделю. Занимаясь реже, вы будете забывать все, что изучили на предыдущих уроках, и вам каждый раз будет требоваться много времени чтобы восстановить уровень предыдущего занятия.
Тут все понятно и очевидно. Можно учиться годами и не далеко отойти от стартовой точки, ибо без регулярных занятий вы все будете забывать.
Отводите больше времени на практику
Обучение программированию – это прикладная задача. Только практика поможет понять и запомнить, каким образом решаются те или иные задачи: как задача декомпозируется в код, как строится алгоритм, как вообще решается задача при помощи программы. Все это довольно сложно, выучить это между делом не получится, только практика.
Конечно, если вы уже программируете на каком-то другом языке и учите новый, то эти вопросы для вас не проблема. Все языки +/- об одном. Подавляющее число современных языков императивные, и с одного императивного языка вы достаточно просто перейдете на другой, нужно только выучить синтаксис.
Если же это ваш первый язык программирования и вы никогда ничего в жизни не программировали и не понимаете, что с этим всем делать, потребуется много времени для того чтобы просто настроиться на мышление программиста. Дальше будет проще.
Обращаю ваше внимание! Все время, которое вы тратите за сидением за консолью (не только когда вы пишите код, но и когда настраиваете ваше IDEшку, базу данных, окружение и пр.) – это все обучение программированию. Это время не бесполезно, вы его тратите на обучение. В этом моменте у некоторых новичков возникает паника, мол два дня потратил только на то, чтобы настроить фреймворк, там все криво и ничего не получается. Эти два дня вы не потеряли, вы их потратили с пользой. Если бы эти два дня вы просто слушали лекции по программированию и не занимались практикой – вот тогда бы вы потратили время зря. Все что вы делаете руками на компьютере, хоть как-то относящееся к программированию – это учеба. Все не относящееся к написанию кода и работе с вашим окружением – это получение справочной информации. И она не так уж важна. Я бы советовал распределить время 80 на 20, где 80% программирования (практики) и 20% получения информации.
Вы берете учебный курс или книгу по вашему языку программирования и начинаете практиковать все задания которые там есть. Если в этой книге/курсе нет практических заданий – просто выкидывайте ее. Задания обязательно должны быть! Вы должны писать код, настраивать консоль и все что вокруг вас находится. Потому что именно этим вы будете заниматься на работе. Чем опытнее вы будете становиться, тем меньший процент времени в вашей работе будет занимать непосредственно написание кода и больше времени будет уходить именно на настройки, чтение документации, осмысление что же все же нужно сделать и пр.
Составьте список, что нужно знать начинающему программисту
Вам не обязательно дочитывать/доделывать всю книгу до конца. Как правило, книги и курсы составляются таким образом, дабы подороже продать, соответственно, набивают в содержание всего и побольше. И не все из этого вам нужно. Изучите, что нужно знать начинающему программисту конкретно по вашему языку. У нас есть чек-лист, в котором собран список требований. Когда вы прошли примерно треть книги, загляните в этот чек-лист, выпишите те технологии, которые вы должны знать по своему языку, и сверяйтесь по нему, что вы знаете, а что нет. Далее бросаете книгу для начинающих и переходите конкретно на изучение тех фреймворков и библиотек, которые вам нужны.
Не скачите с языка на язык
Я очень часто встречал новичков-программистов, которые несколько месяцев учили один язык, потом перешли на другой, потом еще на один. Такой подход ни к чему не ведет — освоить хорошо язык за несколько месяцев невозможно и в итоге вы не станете специалистом ни в одном из них. Если вы потратите 9 месяцев на изучение Python, вы станете Python-разработчиком. Если вы потратите эти же 9 месяцев на 3 разных языка, то в итоге не станете никем.
Менять профессию/язык программирования стоит только в двух случаях:
- Если вы понимаете, что вам категорически не нравится, вы больше не хотите работать в этом направлении. Тогда честно признаетесь себе, что потратили время зря на освоение этой профессии/языка и ищите новую.
- Вы стали сеньором, проработали много лет в одном направлении и поняли, что надоело, что хочется чего-то нового.
Только в этих случаях вы переходите с языка на язык. Во всех остальных случаях – выбрали и пилите его. И не заморачивайтесь над остальным.
Никогда не опускайте руки
Да, учиться сложно. Даже на курсах вам будет сложно, ибо самостоятельная учеба – это не легко. А все что не самостоятельная учеба, то не учеба вовсе, ведь за вас вам знания в голову никто не вложит. Если вам дали четкий список, что вам нужно сделать, чтобы программа заработала, вы это сделали и теперь думаете, что вы программист – увы, нет. Программист тот, кто может написать список того, что нужно сделать, чтобы программа заработала.
Учиться программированию тяжело – это действительно сложная профессия. Если бы порог входа не был таким высоким, каждый бы был программистом и получал большие зарплаты. Но есть хорошая новость. Любой человек, у которого нет повреждений мозга, может освоить программирование. Вопрос только в том, хватит ли вам для этого мотивации. А это уже зависит исключительно от вас. Окружите себя мотивированными людьми, договоритесь со своей семьей, чтобы она вас поддерживала, найдите ментора, который поможет и покажет путь. Никогда не опускайте руки!
Как известно, если вы считаете, что у вас получится, или если вы считаете, что не получится – вы в обоих случаях правы.
Всегда ваш Сергей Немчинский