С чего начать путь в программирование?

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

С чего начать путь в программирование?

Изучение основ

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

Алгоритмы

Как только ты разберёшься с изучением каких-то основ языка, пора взяться за алгоритмы. Что можно почитать по этому поводу? Есть замечательная книжка -- "Грокаем алгоритмы", написал её Адитья Бхаргава. Надо, зубодробительное имя, но в переводе издательства ПИТЕР, читается легко и просто. Издание даже иллюстрировано, так как не всегда удобно понимать некоторые вещи из текста, хочется ещё и схемы посмотреть. Я её покупал на OZON, стоила около 700 рублей. Книга даст понимание об алгоритмах, какие они бывают, там же есть классические задачки на некоторые из них. После чтения полученные знания можно проверить на практике. Для этого есть leetcode. Это классный сайт, где можно испытать свои навыки на решение тех или иных задач, много задач в тренажёре доступны бесплатно. Сами задачи предлагаются на страничке problems.

Паттерны проектирования и архитектура

Как только ты разоберёшься с алгоритмами и потренируешься с задачками на leetcode, можно пойти на ступеньку выше и ознакомиться с архитектурой, паттернами проектирования и принципами SOLID (а так же DRY и KISS), о которых я тоже готовлю материал, не пропусти. Для изучения паттернов проектирования можно почитать публикации, которые буду делать я, а так же есть онлайн проект от Refactoring Guru. Когда я пришёл в большое программирование, это была по сути моя библия и настольная книга наряду с Робертом Мартином, про которого я уже писал.

Тут стоит поизучать рынок и определиться, в каком направлении тебе хотелось бы заниматься в рамках того языка, который ты выбрал. По сути этот пункт и пункт про изучение основ можно совместить, чтобы не терять времени на изучение того, что первое время не пригодится, а в дальнейшем забудется. Определи, какие тебя интересуют вещи в программировании. Это может быть мобильная разработка, или веб-разработка, или что-то более сложное из области BIM. Тут просто целый спектр тем, которые могут занять тебя и твой пытливый ум. Затем стоит изучить технологический стек той области, в которую хочется пойти (так называемый roadmap, который каждый год публикует тот же Microsoft, например). Сообщество часто такие делает, так что можно погуглить такой вот roadmap для своей области.

Домашний проект (pet-project)

Тут уже тебе решать, будешь ты что-то делать более сложное, чем задачки с leetcode, чтобы набить руку и потом блеснуть на собеседовании, что у тебя есть свой pet-project на GitHub, который ты регулярно дорабатываешь. И он не просто может быть, а он может быть полезным для сообщества, если будет решать какие-то проблемы (от чтения файлов особого формата до отправки каких-то сообщений в бот в телеграм, у кого на что хватит фантазии). Про себя скажу, что сам я не нашёл идеи для воплощения на GitHub, да и работы хватает, чтобы потом ещё дома код писать...

Подписывайся на мой Telegram-канал, чтобы читать публикации первым

5 комментариев