Свой путь к карьере программиста стоит начать с ответа на вопрос, нужно ли вам программирование вообще? Этот вопрос не относится к тем, кто учится или учился по специальности, близкой к программированию. Если у вас в школе математика была лучше, чем гуманитарная, если вы любите проводить много времени за компьютером, если хотите научиться чему-то новому, то вам подойдет программирование.
С чего начать
Есть несколько вариантов развития событий, в результате которых человек становится программистом. Первая — это родители-программисты, которые научили своих детей всему. Этим детям даже не нужно идти в университет. Второй вариант – модная профессия программиста. После школы пришлось выбирать, куда пойти учиться, и выбрали модное направление IT, вроде понравилось. И последний вариант – хобби, переросшее в работу.
Если ничего из вышеперечисленного с вами не произошло, то у вас есть выбор из четырех вариантов:
- Самообразование. Этот вариант можно использовать сам по себе или в сочетании с другими методами. В Интернете полно веб-сайтов, книг и приложений, которые помогут вам изучить различные языки программирования и технологии. Но это самый сложный путь для новичков.
- Университет. Если ты заканчиваешь школу и хочешь стать программистом, то иди в университет. Если не за знания, то за корочку. Может служить бонусом при приеме на работу. Хотя вы также получите некоторые знания. Но не забывайте заниматься самообразованием. К выбору вуза следует подходить очень ответственно. Внимательно изучайте программы обучения и выбирайте лучшие технические вузы.
- Наставник. Будет очень хорошо, если вы найдете человека, который согласится помочь вам и направить в нужное русло. Он подскажет подходящие книги и ресурсы, проверит ваш код и даст полезные советы. Кстати, мы уже писали о полезном ресурсе, где можно найти наставника. Искать наставника можно среди знакомых программистов, на IT-вечеринках и конференциях, на интернет-форумах и т. д.
- Специализированные практические курсы. Попробуйте поискать курсы в своем городе, где вас научат какому-нибудь языку программирования или технологии. Приятно удивило количество таких курсов в Киеве, в том числе бесплатных и с последующим трудоустройством.
Какой язык, технологию и направление выбрать
Когда вы станете программистом, через год или два вы сможете свободно выбирать любой язык, который вам нравится. Но при выборе первого языка программирования новичку следует учитывать следующие критерии:
- Доступность на рынке труда. Конечная цель этого пути — найти работу программистом. А это будет сложно сделать, если разработчиков на вашем языке программирования никто не ищет на рынке труда. Проверьте сайты вакансий, посмотрите, кто ищет больше всего, запишите дюжину языков. И перейдите к следующему критерию.
- Мало встречаемости. Если вам придется потратить много времени на изучение языка, это может отбить у вас желание заниматься программированием в целом. Прочтите о языках, которые вы выбрали выше. Просмотрите литературу, которую вам нужно будет прочитать, чтобы выучить эти языки. И выберите те, о которых написано, что они легкие, или о которых вы думали, что они легкие. Такими языками могут быть PHP, Ruby, Python.
- Высоко в процессе. Если вам не нравится писать код на выбранном вами языке, вы не получите удовольствия от процесса, работы или жизни. Тебе это надо? Сделайте правильный выбор.
Также вам предстоит определиться с направлением программирования. Мобильные, настольные, игры, веб, низкоуровневое программирование и так далее. Наиболее популярными и относительно легкими отраслями являются разработка для веб-клиентов, мобильных и десктоп-клиентов. Один язык может подходить для каждого направления, а другой вообще не подходить. То есть при выборе языка программирования тоже стоит отталкиваться от этого фактора.
В любом случае изучайте веб-технологии. Это язык разметки HTML, стили CSS и JavaScript, которые сделают вашу страницу динамичной. Следующим шагом будет изучение серверного языка (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, он самый популярный. Вам необходимо знать инструменты, с которыми вы работаете, операционную систему и среду разработки. А главное умение программиста — уметь гуглить. Вы не будете жить без него.
Заключительные шаги
Вам необходимо подготовить резюме. Не просто резюме, а хорошее резюме. Не стоит писать туда лишнюю информацию, но и умалчивать о своих навыках тоже не нужно. После того, как вас пригласили на собеседование, вы должны к нему подготовиться. Просмотрите материал, указанный в вашем резюме. Вы должны быть уверены в своих знаниях. Просмотрите проекты, над которыми вы работали, вспомните технологии, которые вы использовали. И вперед - в светлое будущее с новой профессией программиста.