Реально ли стать программистом. Книга по веб-программированию для начинающих

Отчасти я уже ответил на этот вопрос в статье .

Но там речь шла о программистах с более-менее приличным уровнем подготовки.

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

Итак, допустим, что в программировании вы полный ноль, но очень хотите стать программистом. Прежде чем начать изучать программирование, особой подготовки не требуется. Однако кое-что вы всё-таки должны знать и уметь. Например:

  1. Быть уверенным пользователем компьютера. Это важно. Просто в моей практике периодически возникают ситуации, когда человек скачивает книгу “ ”, а потом пишет мне на почту претензии в том, что вместе с книгой нет инструкции как её открыть. Вопрос: не рано ли человек пытается изучать программирование, если он не знает, как распаковать архив и открыть файл формата PDF?
  2. Понимать, чем отличается опытный пользователь от программиста. Исходя из примера, который я привёл в п.1, я делаю вывод, что многие люди совершенно не понимают, чем занимаются программисты и думают, что программист - это человек, который хорошо разбирается в компьютерах. На самом деле это не так - программист вообще может не разбираться в компьютерах (в некоторых случаях он и без этого может делать свою работу).
  3. Знать математику хотя бы на уровне начальных классов средней школы.
  4. Желательно хотя бы в общих чертах знать информатику.
  5. Уметь хорошо печатать на клавиатуре (не обязательно, но это сократит время на изучение программирования, так как вам придётся печатать много текста, чтобы проверить примеры разных учебных программ на практике).
  6. Уметь читать)))

Когда вы уже приступите к изучению программирования, то на начальном этапе вам потребуется примерно следующее:

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

Вам надо знать, как создаются программы (ну хотя бы программы для работы в Windows).

Вам надо разобраться с тем, что такое переменные, типы данных, подпрограммы, модули и т.п.

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

Всё это есть в моём курсе для начинающих “Основы программирования”, получить который можно здесь.

Секреты о том, как стать программистом с нуля самостоятельно , мы постараемся раскрыть в данной статье. Рассмотрим, с чего начать и как стать программистом самостоятельно практически с нуля .

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

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

Проясним этот момент, для тех, кто хочет учиться самостоятельно.
Суть работы программиста рассмотрим на простых вещах.

Допустим, у нас есть начальник и подчиненный, которые говорят на разных языках. К примеру, начальник говорит на русском, а подчиненный на английском. Чтобы начальник смог управлять подчиненным и решать нужные задачи по работе, необходим переводчик. Переводчик слушает сначала начальника, после объясняет подчиненному, что нужно делать на простом ему языке.
Если брать программиста, то он тоже переводчик. Только подчиненным в случае с программистом является компьютер.
Программист получает от заказчика задание, в котором тот объясняет, какие задачи для него должен решать компьютер.
Программист садится и пишет указания компьютеру на языке программирования. Эти самые указания мы называем кодом или программой.


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

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

Если вы хотите писать программы для стационарных компьютеров, то для этого предназначены такие языки как С++ и Delphi , к примеру. А, чтобы стать интернет программистом сайтов и находить общий язык с удаленным компьютерами в интернете, необходимо выучить такие языки программирования, как PHP и JavaScript.

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

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

Универсального ответа на вопрос, как стать хорошим программистом с нуля не существует . Всё зависит от того, насколько сильно ваше желание учиться.

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

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

Если вы решили самостоятельно стать программистом с нуля , нам лишь остается пожелать вам удачи в этом! Будьте упорны и у вас обязательно все получиться!

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

С чего начать

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

Если с вами ничего из вышеперечисленного не произошло, значит, у вас есть выбор из четырёх вариантов:

  • Самообразование . Этот вариант можно использовать как самостоятельно, так и в паре с другими методами. В интернете полно , и приложений , которые помогают изучать различные языки программирования и технологии. Но это самый тяжёлый путь для начинающих.
  • Университет . Если вы оканчиваете школу и хотите быть программистом, тогда идите в университет. Если не за знаниями, тогда за корочкой. Она может послужить бонусом при устройстве на работу. Хотя и какие-то знания вы тоже получите. Но не забывайте заниматься и самообучением. К выбору вуза стоит подойти очень ответственно. Внимательно изучите программы обучения и выбирайте лучшие технические вузы.
  • Ментор . Будет очень неплохо, если вы найдёте человека, который согласится помочь вам и направит вас в правильную сторону. Он подскажет подходящие книги и ресурсы, проверит ваш код, даст полезные советы. Кстати, мы уже писали о , где вы сможете найти ментора. Наставника можно искать среди знакомых программистов, на IT-тусовках и конференциях, на онлайн-форумах и так далее.
  • Специализированные практические курсы . Попробуйте поискать в своём городе курсы, где вас обучат какому-нибудь языку программирования или технологии. Я был приятно удивлён количеством таких курсов в Киеве, в том числе бесплатных и с последующим трудоустройством.

Какой язык, технологию и направление выбрать

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

  • Наличие на рынке вакансий . Конечная цель этого пути - найти работу программистом. А это будет трудно сделать, если на рынке вакансий никто не будет искать разработчиков на вашем языке программирования. Проверьте сайты с вакансиями, посмотрите, кого больше ищут, выпишите десяток языков. И переходите к следующему критерию.
  • Низкий уровень вхождения . Если вам придётся потратить длительное время на изучение языка, это может отбить у вас охоту к программированию вообще. Почитайте о тех языках, которые вы выбрали выше. Просмотрите литературу, которую нужно будет прочитать, чтобы изучить эти языки. И выберите те, о которых пишут, что они лёгкие, или которые вам показались лёгкими. Такими языками могут оказаться PHP, Ruby, Python.
  • Кайф от процесса . Если вам не нравится писать код на выбранном языке, вы не будете получать удовольствия от этого процесса, от работы и от жизни. А оно вам надо? Делайте правильный выбор.

Также вам придётся определиться с направлением программирования. Мобильное, десктопное, игры, веб, низкоуровневое программирование и так далее. Самые популярные и относительно лёгкие отрасли - разработка под веб, мобильные и десктопные клиенты. Под каждое направление может подходить один язык и совсем не подходить другой. То есть при выборе языка программирования также стоит отталкиваться и от этого фактора.

В любом случае изучите веб-технологии. Это язык разметки , стили и , который позволит сделать вашу страницу динамической. На следующем этапе изучите серверный язык (Python, PHP, Ruby и другие) и подходящие для него веб-фреймворки. Изучите базы данных: практически в каждой вакансии программиста это упоминается.

Как получить начальный опыт

Без опыта вы не получите работу. Без работы вы не получите опыт. Замкнутый круг реальной жизни. Но ничего страшного, мы из него выберемся.

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

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

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

Ещё одним неплохим вариантом для получения реального опыта является open source. Таким проектам всегда нужны новые люди, пусть даже и новички. Вы можете поискать в проекте баги или посмотреть в баг-трекере и предложить методы их решения. Найти такие проекты легко на GitHub или . Не стесняйтесь задавать там вопросы.

Четвёртый вариант получения опыта - помощь знакомым программистам. Попросите их передать вам маленькие и несложные задания. Если что-то не будет получаться, у вас всегда будет к кому обратиться. И при этом вы будете участвовать в реальном проекте.

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

Почему стоит выбрать Python

Давайте немного подробнее поговорим о выборе первого языка программирования. Первый язык должен быть простым и популярным на рынке. Таким языком является Python . Я очень советую выбрать именно его в качестве первого языка программирования.

Код программы на Python читабелен. Вам даже не нужно быть программистом, чтобы в общих чертах понять, что происходит в программе. Из-за несложного синтаксиса Python вам понадобится меньше времени для написания программы, чем, например, на Java. Огромная база библиотек, которая сэкономит вам кучу сил, нервов и времени. Python является высокоуровневым языком. А значит, вам не нужно особо думать о ячейках памяти и о том, что там разместить. Python - язык широкого назначения. И он такой простой, что даже дети могут его выучить.

Справедливости ради стоит упомянуть и о других языках программирования. Java может стать неплохим выбором для новичка. Этот язык популярнее, чем Python, но и немного сложнее. Зато инструменты для разработки гораздо лучше проработаны. Стоит только сравнить Eclipse и IDLE. После Java вам будет проще перейти к работе с низкоуровневыми языками программирования.

PHP - ещё один очень популярный язык. И, мне кажется, он даже проще, чем Python. Очень легко найти себе ментора или решение какой-нибудь проблемы на форуме. Всё потому, что в мире существует огромное количество PHP-программистов разного уровня. В PHP нет нормального импорта, есть множество вариантов решения одной и той же задачи. А это усложняет обучение. И PHP заточен исключительно под веб.

Языки C и C# очень сложны для новичка. Ruby - хороший выбор в качестве второго языка, но не первого. JavaScript - очень простой язык, но ничему хорошему он вас не научит. А задача первого языка программирования всё-таки научить вас чему-то правильному, задать какую-то логику.

Важен ли английский язык

Важен! Не знаете? Учите. Знаете? Совершенствуйте. Учитесь читать, писать, слушать и говорить на английском. Делайте упор на техническую литературу. Слушайте англоязычные подкасты. Читайте англоязычные учебники по программированию.

Что нужно знать, кроме языка программирования

Конечно же, кроме языка программирования и английского, нужно знать что-то ещё. А вот что - зависит от направления, которое вы выберете. Веб-программист обязан знать HTML, CSS, JavaScript. Десктоп-программист учит API операционной системы и различные фреймворки. Разработчик мобильных приложений учит фреймворки Android, iOS или Windows Phone.

Всем нужно выучить алгоритмы. Попробуйте пройти курс на Coursera или найти подходящую для себя книгу по алгоритмам. Кроме этого, нужно знать одну из баз данных, паттерны программирования, структуры данных. Стоит также познакомиться с репозиториями кода. Хотя бы с одним. Обязательно знание систем версионного контроля. Выбирайте Git, он самый популярный. Вам нужно знать инструменты, с которыми вы работаете, операционную систему и среду разработки. И главный навык программиста - уметь гуглить. Без этого вы не проживёте.

Последние шаги

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

Так звучит самый пессимистичный ответ на вопрос, заданный студентом-второкурсником на Quora.com, и даже он основан на весьма вдохновляющем тезисе — "Нет предела совершенству".

Q: — Как стать программистом мирового уровня за 3 года?

A: — А это довольно занятный вопрос, особенно учитывая, что вы метите в программиста "мирового уровня" , а не просто спрашиваете, как стать очень хорошим программистом.
Что вы вообще считаете мировым уровнем? И как вы это измеряете?

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

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

И чем больше таких проблем вы решаете, тем лучше вы становитесь. Вот, что я думаю:

1. Программирование — это решение проблем. Окружите себя проблемами. Чем больше, тем лучше. Поначалу они будут казаться пугающими, но как только вы начнете с ними справляться, все начнет становиться проще.

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

3. Расширяйте количество применяемых языков : говорить "C++ или Java — лучший, я буду пользоваться исключительно им" достаточно глупо; у каждого есть свои тонкости, которые можно использовать в своих интересах, и владеть ими очень полезно.

4. Не расслабляйтесь, если нашли отличное решение какой-то проблемы. Будьте уверены: вы обладаете лишь одним вариантом решения из множества, так что не все так круто. Будьте открыты для новых методов и идей.

5. Работайте в команде. Это как пункт 2, только немного иначе: каждый программист имеет свою уникальную точку зрения, которая помогает расширить вашу собственную.

A: — Вы позволяете другим людям заглядывать в ваш код? Попробуйте использовать такие сервисы как StackExcange : это бесплатно, и люди дают там много полезных советов по улучшению кода. Я стал делать значительные успехи в программировании после того, как начал показывать свой код другим людям.

Один профессор Массачусетского технологического института сказал: "Работайте каждый день в течение двух лет, и будете великим программистом. Работайте каждый день в течение двух лет и учитесь работать с алгоритмами, и станете программистом мирового класса".

Я перефразирую: "Работайте каждый день в течение двух лет и используйте помощь коллег для получения экспертных оценок, и станете программистом мирового класса".

A: — Хм, я не уверен, что в какой-то момент вы сможете сказать "Достижение разблокировано! Теперь я — кодер последнего уровня".

Что может быть круче, чем ответ на вопрос "Какой у меня ранг?" среди каких-то мифических разработчиков Земли? Полагаю, понимание того, что вы пишете лучше, чем на прошлой неделе, месяце или году.

Думаю, совершенствоваться помогают:
- готовность узнать новое: я улучшаю свою программу с 1996 года — и все еще есть, куда ее улучшать;
- привычка делиться новыми знаниями: умение объяснять другим — это полезно для вас самих (кстати, не так много людей это умеют);
- интерес к предметным областям вне программирования: умение быстро понимать разные вещи крайне важно для программиста — кому я объясняю?

A: — Написать код. Много кода. Работающего кода. Создать собственный движок. Написать Единую Истинную CMS (она будет такой же как и тысячи других, но вас ждет много открытий в процессе). Создайте собственный тасктрекер. А потом дополните его почтовым клиентом. А еще, пусть поддерживает плагины. Вы все еще тут? Напишите собственный язык для написания плагинов и собственный интерпретатор для него.

A: — 10: Практика
20: RTFM (Read The Following (Fucking) Manual)
30: Используйте правильные инструменты
40: Читайте чужой код
50: Развивайте коммуникативные навыки
60: Решайте проблемы с кодом
70: Практика
80: Практика
90: GOTO 10

Это основное:-)

A: — О, у меня есть любимая цитата , которую я перечитываю, когда мне нужно вдохновение. Крис Хэсфилд (астронавт, побывавший на орбите Земли) отвечает на вопросы на Reddit:

Вопрос: Какой совет вы можете дать молодому человеку, который хочет попасть в эту область?

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

А потом кто-то сделал комикс из этого ответа:

A: — Не подпускайте себя к выводу о том, что вы программист мирового уровня. Вы же потеряете способность учиться! Какой тогда вы будете программист?

A: — Читайте много кода и вносите свой вклад в Open-Source проекты.

A: — Короткий ответ: "Никак"; длинный ответ: "Я не уверен, что есть такая вещь, как "программист мирового уровня".

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

A: — Три вещи, которые известны мне:

1. Не стоит искать каких-то на 100% успешных путей к вашей цели. У всех они разные.
2. Почти все лучшие продукты написаны не в одиночку. Если вы гений, найдите еще парочку и научитесь с ними общаться.
3. Все языки ограничены (как и английский), но постоянно развиваются.Не останавливайте как развитие своих продуктов, так и свое собственное.

Как начать путь? Выбрать престижную профессию .

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

С чего начать

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

Если с вами ничего из вышеперечисленного не произошло, значит, у вас есть выбор из четырёх вариантов:

  • Самообразование . Этот вариант можно использовать как самостоятельно, так и в паре с другими методами. В интернете полно , и приложений , которые помогают изучать различные языки программирования и технологии. Но это самый тяжёлый путь для начинающих.
  • Университет . Если вы оканчиваете школу и хотите быть программистом, тогда идите в университет. Если не за знаниями, тогда за корочкой. Она может послужить бонусом при устройстве на работу. Хотя и какие-то знания вы тоже получите. Но не забывайте заниматься и самообучением. К выбору вуза стоит подойти очень ответственно. Внимательно изучите программы обучения и выбирайте лучшие технические вузы.
  • Ментор . Будет очень неплохо, если вы найдёте человека, который согласится помочь вам и направит вас в правильную сторону. Он подскажет подходящие книги и ресурсы, проверит ваш код, даст полезные советы. Кстати, мы уже писали о , где вы сможете найти ментора. Наставника можно искать среди знакомых программистов, на IT-тусовках и конференциях, на онлайн-форумах и так далее.
  • Специализированные практические курсы . Попробуйте поискать в своём городе курсы, где вас обучат какому-нибудь языку программирования или технологии. Я был приятно удивлён количеством таких курсов в Киеве, в том числе бесплатных и с последующим трудоустройством.

Какой язык, технологию и направление выбрать

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

  • Наличие на рынке вакансий . Конечная цель этого пути - найти работу программистом. А это будет трудно сделать, если на рынке вакансий никто не будет искать разработчиков на вашем языке программирования. Проверьте сайты с вакансиями, посмотрите, кого больше ищут, выпишите десяток языков. И переходите к следующему критерию.
  • Низкий уровень вхождения . Если вам придётся потратить длительное время на изучение языка, это может отбить у вас охоту к программированию вообще. Почитайте о тех языках, которые вы выбрали выше. Просмотрите литературу, которую нужно будет прочитать, чтобы изучить эти языки. И выберите те, о которых пишут, что они лёгкие, или которые вам показались лёгкими. Такими языками могут оказаться PHP, Ruby, Python.
  • Кайф от процесса . Если вам не нравится писать код на выбранном языке, вы не будете получать удовольствия от этого процесса, от работы и от жизни. А оно вам надо? Делайте правильный выбор.

Также вам придётся определиться с направлением программирования. Мобильное, десктопное, игры, веб, низкоуровневое программирование и так далее. Самые популярные и относительно лёгкие отрасли - разработка под веб, мобильные и десктопные клиенты. Под каждое направление может подходить один язык и совсем не подходить другой. То есть при выборе языка программирования также стоит отталкиваться и от этого фактора.

В любом случае изучите веб-технологии. Это язык разметки , стили и , который позволит сделать вашу страницу динамической. На следующем этапе изучите серверный язык (Python, PHP, Ruby и другие) и подходящие для него веб-фреймворки. Изучите базы данных: практически в каждой вакансии программиста это упоминается.

Как получить начальный опыт

Без опыта вы не получите работу. Без работы вы не получите опыт. Замкнутый круг реальной жизни. Но ничего страшного, мы из него выберемся.

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

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

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

Ещё одним неплохим вариантом для получения реального опыта является open source. Таким проектам всегда нужны новые люди, пусть даже и новички. Вы можете поискать в проекте баги или посмотреть в баг-трекере и предложить методы их решения. Найти такие проекты легко на GitHub или . Не стесняйтесь задавать там вопросы.

Четвёртый вариант получения опыта - помощь знакомым программистам. Попросите их передать вам маленькие и несложные задания. Если что-то не будет получаться, у вас всегда будет к кому обратиться. И при этом вы будете участвовать в реальном проекте.

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

Почему стоит выбрать Python

Давайте немного подробнее поговорим о выборе первого языка программирования. Первый язык должен быть простым и популярным на рынке. Таким языком является Python . Я очень советую выбрать именно его в качестве первого языка программирования.

Код программы на Python читабелен. Вам даже не нужно быть программистом, чтобы в общих чертах понять, что происходит в программе. Из-за несложного синтаксиса Python вам понадобится меньше времени для написания программы, чем, например, на Java. Огромная база библиотек, которая сэкономит вам кучу сил, нервов и времени. Python является высокоуровневым языком. А значит, вам не нужно особо думать о ячейках памяти и о том, что там разместить. Python - язык широкого назначения. И он такой простой, что даже дети могут его выучить.

Справедливости ради стоит упомянуть и о других языках программирования. Java может стать неплохим выбором для новичка. Этот язык популярнее, чем Python, но и немного сложнее. Зато инструменты для разработки гораздо лучше проработаны. Стоит только сравнить Eclipse и IDLE. После Java вам будет проще перейти к работе с низкоуровневыми языками программирования.

PHP - ещё один очень популярный язык. И, мне кажется, он даже проще, чем Python. Очень легко найти себе ментора или решение какой-нибудь проблемы на форуме. Всё потому, что в мире существует огромное количество PHP-программистов разного уровня. В PHP нет нормального импорта, есть множество вариантов решения одной и той же задачи. А это усложняет обучение. И PHP заточен исключительно под веб.

Языки C и C# очень сложны для новичка. Ruby - хороший выбор в качестве второго языка, но не первого. JavaScript - очень простой язык, но ничему хорошему он вас не научит. А задача первого языка программирования всё-таки научить вас чему-то правильному, задать какую-то логику.

Важен ли английский язык

Важен! Не знаете? Учите. Знаете? Совершенствуйте. Учитесь читать, писать, слушать и говорить на английском. Делайте упор на техническую литературу. Слушайте англоязычные подкасты. Читайте англоязычные учебники по программированию.

Что нужно знать, кроме языка программирования

Конечно же, кроме языка программирования и английского, нужно знать что-то ещё. А вот что - зависит от направления, которое вы выберете. Веб-программист обязан знать HTML, CSS, JavaScript. Десктоп-программист учит API операционной системы и различные фреймворки. Разработчик мобильных приложений учит фреймворки Android, iOS или Windows Phone.

Всем нужно выучить алгоритмы. Попробуйте пройти курс на Coursera или найти подходящую для себя книгу по алгоритмам. Кроме этого, нужно знать одну из баз данных, паттерны программирования, структуры данных. Стоит также познакомиться с репозиториями кода. Хотя бы с одним. Обязательно знание систем версионного контроля. Выбирайте Git, он самый популярный. Вам нужно знать инструменты, с которыми вы работаете, операционную систему и среду разработки. И главный навык программиста - уметь гуглить. Без этого вы не проживёте.

Последние шаги

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