Как самостоятельно стать программистом с нуля
Содержание:
- Внесите свой вклад в сообщество с открытым исходным кодом
- Как быть, если вам не хватает знаний до вакансии джуниор-программиста?
- Что нужно знать, чтобы устроиться на работу джуниор-программистом
- Где учиться на программиста
- Тест: А ты точно программист?
- Лучшие книги и средства обучения
- Требования к программисту
- Шаг 4. Получите образование
- Кризис и смена направления
- Шаг 3. Изучите основы языка
- Читайте больше
- Как стать программистом?
- Кто такой программист, что это за профессия
- Пошаговое руководство: как стать программистом
- Куда пойти учиться?
- Программирование ближе к математике или к иностранному языку
Внесите свой вклад в сообщество с открытым исходным кодом
Когда вы вносите свой вклад в сообщество с открытым исходным кодом, это расширяет ваши возможности
«Когда вы вносите свой вклад в проект, обратите внимание на обратную связь, которую вы получаете от пользователей и других разработчиков», — добавил Техада
Когда вы отдаете что-либо обществу, убедитесь, что вы также пользуетесь возможностью получать в ответ!
«Признайте, насколько важно взаимодействовать с вашим профессиональным сообществом, но также долго и упорно думайте о том, какой вы хотите видеть свою роль в данном месте», — сказал Чарли Роббинс, директор по инженерным вопросам GoDaddy и бывший член совета директоров компании. Node.js Foundation
Вместо того чтобы гоняться за славой суперзвездного разработчика, убедитесь, что вы выступаете на конференциях, пишете посты в блогах и участвуете в проектах наставничества, которые на самом деле вызывают у вас страсть!
Обмен идеями и изучение новых вещей из вашего сообщества может помочь избежать выгорания, но только если вы подходите к нему по-настоящему с интересом.
Как быть, если вам не хватает знаний до вакансии джуниор-программиста?
Осваивать большую часть навыков программирования нужно на практике. Во-первых, так вы поймете их быстрее и лучше. Во-вторых, работодателей интересует не то, сколько умных слов из мира программирования вы знаете наизусть, а как вы умеете свои знания применять. Значит, он спросит портфолио.
Начинать нарабатывать портфолио нужно еще во время учебы. В середине процесса или после первых двух третей начинайте искать себе стажировку. Стажировка — это почти полноценная работа начинающим программистом. Отличие в том, что стажировки обычно неоплачиваемые и занимают не полный день, а несколько часов.
Вот как устроена система стажировок в программировании: вы работаете на компанию, решаете базовые задачи в своей области без финансового вознаграждения. Взамен опытные коллеги учат вас и помогают разбираться в сложных вещах.
Такой подход ломает замкнутый круг «всем нужны работники с опытом, но где взять опыт, если никто не берет меня без опыта». Если вы хорошо покажите себя на стажировке, то есть шанс, что работодатель после окончания предложит вам остаться на полноценную работу начинающим программистом.
Если после окончания учебы и/или первой стажировки у вас все еще недостаточно навыков, чтобы получить работу джуниор-программиста, то пройдите еще одну стажировку.
Где искать стажировки: на тех же сайтах и площадках, на которых нужно искать работу.
Что нужно знать, чтобы устроиться на работу джуниор-программистом
В каждом направлении программирования требования разные. Самый лучший способ узнать, что нужно знать, это «спросить» тех, кто нанимает джуниоров-программистов.
Откройте HeadHunter и посмотрите 7-10 junior вакансий в вашем городе по своему направлению. Выпишите требования из каждой из них, удалите повторы. Бинго, перед вами усредненный лист требований к джуниор-программисту в вашем направлении.
Мы сделали срез по самым популярным направлениям в Москве:
- Что нужно знать, чтобы стать frontend junior программистом: Опыт работы с VueJS, Vuex, HTML5, CSS3, взаимодействие с бэкендом по Rest-Api, базовые навыки работы с Git, понимание основных принципов HTTP/REST/JSON, опыт работы с React,js
- Что нужно знать, чтобы стать backend junior программистом: JavaScript, понимание ООП, базовые знания JVM, опыт работы с Git, оптимизация и отладка запросов в MySQL, знание Node.js, опыт работы с облачными сервисами
- Что нужно знать, чтобы стать junior iOS программистом: Swift, базовое понимание ООП, базовое понимание MVC, опыт разработки клиент-серверных приложений, знание Git, Знание HTTP/S, REST API, JSON
- Что нужно знать, чтобы стать junior Android программистом: Java, Android, Kotlin, понимаешь особенности разработки клиент-серверных приложений, Базовые знания Git, Gradle/Maven; Базовые знания HTTP/S, REST API, XML, JSON; Базовые знания Google Play Services (GCM, GM, GA, FIREBASE)
Где учиться на программиста
Программист – популярная специальность, поэтому на рынке образовательных услуг есть немало предложений по обучению профессии. Что предпочесть, образовательные учреждения или курсы? И в том, и в другом варианте есть свои положительные стороны.
Вузы и колледжи
Обучают программированию как в высших учебных заведениях, так и в средне специальных. Профильные вузы и колледжи, частные или государственные, есть во всех крупных городах
Выбирая, нужно обращать внимание на наличие у учебного заведения государственной аккредитации
Некоторые вузы предлагают обучение программированию в качестве второго высшего или коротких курсов. Если образование первое, то перед поступлением абитуриенту потребуется сдать ЕГЭ:
- математику;
- русский язык;
- информатику или физику (в зависимости от выбранного факультета).
Обучение происходит по разным направлениям и специальностям. Учебные заведения готовят:
- техников-программистов;
- разработчиков ПО;
- разработчиков web- и мультимедийных приложений;
- специалистов по информатике и вычислительной технике;
- специалистов по информационной безопасности;
- техников по компьютерным сетям и других специалистов.
Поступать или нет? Решать вам:
Преимущества | Недостатки |
Возможность в процессе обучения попробовать разные направления и осознанно выбрать специализацию | Долгий период обучения. Получение среднего специального образования займет 3 года, диплома бакалавра – 4 года |
Фундаментальное образование и получение знаний в смежных областях, что дает возможность легко сменить квалификацию | Учебные программы меняются медленно и отстают от последних тенденций |
Крупные компании часто присматриваются к специалистам еще на этапе обучения | Обучение проводится по не самым актуальным специальностям |
Возможность поступить на бюджет и не оплачивать свое обучение |
Онлайн курсы
Если нет желания садиться за студенческую скамью, можно найти подходящие онлайн курсы. Они дают возможность учиться дома, быстро подстраиваются под новейшие тренды, предлагают самую актуальную информацию, но ограничены по времени. Самые долгие и подробные программы продолжаются не больше двух лет, поэтому информация, получаемая на них, узкопрофильная. Возможно, потребуется пройти несколько курсов по разным направлениям или обучаться самостоятельно.
Курсы бывают платными и бесплатными. Последние актуальны для людей, неуверенных в своем желании программировать, и помогают определиться.
Ресурсы, предлагающие бесплатные онлайн курсы по изучению Си++, Python; JavaScript и других языков:
- Stepik.org;
- Loftblog.ru;
- Alison.com;
- Edx.org.
Последние две площадки подойдут для англоговорящих пользователей.
Желающие углубленного изучения могут записаться на платные курсы. Доступных программ много: по разным языкам программирования, специальностям, разной продолжительности и стоимости.
Где их найти:
- GeekBrains (gb.ru);
- Skillbox.ru;
- Practicum.yandex.ru;
- Codecademy.com;
- Udacity.com;
- Teamtreehouse.com.
На трех последних площадках курсы ведутся на английском языке.
Рекомендации полезных ресурсов
Программирование – область, в которой нужно обучаться постоянно. В сети выложено большое количество материалов как для тех, кто еще учится, так и для профессионалов. Выбор конкретной литературы и уроков зависит от специализации, но можно отметить несколько общих ресурсов, полезных всем программистам:
- Англоязычный hackr.io предлагает удобный поиск с фильтрами по существующим курсам, обучающим сайтам, пособиям и книгам на компьютерную тематику.
- Электронные книги, туториалы и видео уроки выложены на tutorialspoint.com .
- w3schools.com будет интересен новичкам. Сайт предлагает посмотреть уроки по разным языкам программирования и проверить свои знания с помощью онлайн упражнений.
- Много англоязычных каналов по теме программирования можно найти на YouTube: LearnCode.academy, ProgrammingKnowledge, thenewboston, Derek Banas.
- Среди русскоговорящих видео блогеров известны Гоша Дударь и S0ER.
Тест: А ты точно программист?
Лимит времени:
из 12 заданий окончено
Вопросы:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
Вы уже проходили тест ранее. Вы не можете запустить его снова.
Тест загружается…
Вы должны войти или зарегистрироваться для того, чтобы начать тест.
Вы должны закончить следующие тесты, чтобы начать этот:
Результаты
Правильных ответов: из 12
Ваше время:
Время вышло
Вы набрали из баллов ()
-
У тебя точно есть опыт в разработке. Либо ты знаешь, как смотреть код HTML-элементов на странице и только что лишил себя возможности по-настоящему проверить себя.
-
Да, ты программист, но пока что только начинающий.
-
Пока что о программировании ты знаешь мало. И только в теории, скорее всего.
-
Ты почти ничего не знаешь о программировании.
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
-
С ответом
-
С отметкой о просмотре
-
Задание 1 из 12
1.
Начнём с простого. Какую первую программу обычно пишут программисты?
-
Hello world
-
Сортировку «пузырьком»
-
Для взлома аккаунта «ВКонтакте». Такая программа есть у каждого программиста
Правильно
Да, конечно. Это все знают.
Неправильно
Обычно всё же начинают с вывода на экран «Hello world». А программ для взлома Вконтакте не существует.
-
-
Задание 2 из 12
2.
-
Да, конечно
-
Нет, это фантастика
Правильно
Правильно. Не бывает такого.
Неправильно
Ты уверен, что хотя бы раз писал настоящий код и пытался его скомпилировать? Не бывает с первого раза.
-
-
Задание 3 из 12
3.
-
Выключу комп и спокойно пойду спать — дело сделано
-
Порадуюсь за себя и продолжу писать код
-
Буду искать ошибку в компиляторе, где-то она должна быть
Правильно
Правильно. Совсем без ошибок не бывает.
Неправильно
Тебя предыдущий вопрос ничему не научил? Ошибка все равно должна быть, так что радоваться рано.
-
-
Задание 4 из 12
4.
-
Изменятся, конечно
-
Не изменятся. Вы же сами сказали, что всё чётко зафиксировано
Правильно
Обычно так и бывает, да. Заказчик сам не знает, чего хочет.
Неправильно
Ты в сказке живешь? Не бывает так.
-
-
Задание 5 из 12
5.
-
Да
-
Какой правильный ответ на вопрос про рекурсию?
Правильно
Какой правильный ответ на вопрос про рекурсию?
Неправильно
У тебя ошибка типов. Перечитай вопрос.
-
-
Задание 6 из 12
6.
-
Была одна, теперь ошибок не будет
-
Неизвестно
Правильно
Правильно. Кто знает, может, ты ошибся, исправляя этот баг?
Неправильно
Очень самоуверенное предположение. Ты вполне мог накосячить, исправляя этот баг, и их станет только больше.
-
-
Задание 7 из 12
7.
-
Надо сначала детально изучить проект, чтобы понять это
-
Его код просто ужасен, ну кто так пишет!
Правильно
Истинно так! Как может быть хорошим код другого программиста, в котором тебе надо разобраться?
Неправильно
Что там изучать, если этот код писали не ты сам? Впрочем, даже если это твой код, то через год вы будешь к нему относиться так же плохо.
-
-
Задание 8 из 12
8.
-
2
-
1
Правильно
Да. Деревья 0, 1, 2. Кот на среднем, правильно.
Неправильно
-
-
Задание 9 из 12
9.
Теперь чуть сложнее. Что такое Пик Балмера?
-
Гора в Северной Америке
-
Феномен: при определённой концентрации алкоголя в крови программистские способности резко возрастают
-
Яхта Стива Балмера — бывшего генерального директора Microsoft
Правильно
Ты знал!
Неправильно
Неправильно.
-
-
Задание 10 из 12
10.
Что такое стринги?
-
Разновидность мини-трусиков
-
«Верёвки» на английском
-
Несколько переменных типа «строка»
Правильно
Да, правильно. Вот они: string s1, string s2.
Неправильно
В принципе, конечно, да. Но нет. Тест же про программистов.
-
-
Задание 11 из 12
11.
-
5
-
4
-
31
-
32
Правильно
Верно! В двоичной системе счисления 11111 будет 31 в десятичной. Это если все пальцы разогнуть.
Неправильно
Используй двоичную систему счисления — загнутый палец будет ноль, разогнутый — один.
А что касается «32», то ход мыслей у тебя правильный, скорее всего, но вот 11111bin = 31dec. -
-
Задание 12 из 12
12.
Буратино дали три яблока. Два он съел. Сколько яблок осталось у Буратино?
-
Одно
-
У него не осталось яблок
-
Никто не знает наверняка
Правильно
Правильно. Переменную забыл обнулить. Мало ли сколько у него было яблок изначально.
Неправильно
А вот и нет! Ты же не знаешь, сколько яблок у него было изначально. Мораль — обнуляй переменные.
А насчет ответа «У него не осталось яблок», то даже если считать, что изначально у него не было яблок, всё равно 3-2=1. У тебя всё в порядке с математикой? -
Лучшие книги и средства обучения
- «Искусство программирования», Дональд Кнут
- «Жемчужины программирования», Джон Бентли
- «Путь программиста», Джон Сонмез
- «Чистый код. Создание, анализ и рефакторинг», Роберт К. Мартин
- «Алгоритмы. Построение и анализ», Томас Х. Кормен
- «Сам себе программист. Как научиться программировать и устроиться в Ebay?», Кори Альтхофф
- «Карьера программиста», Г. Лакман Макдауэлл
- «Идеальный программист. Как стать профессионалом разработки ПО», Роберт Мартин
- «Рефакторинг. Улучшение существующего кода», Мартин Фаулер и другие
- «Совершенный код», Стив Макконнелл
- «Кодеры за работой. Размышления о ремесле программиста», Питер Сейбел
- «Мифический человеко-месяц», Фредерик Брукс
- «Программист-прагматик. Путь от подмастерья к мастеру», Дейв Томас, Энди Хант
- Codecademy — универсальная интерактивная платформа для обучения языкам программирования. Лычки, ачивки, геймификация — сплошная мотивация.
- Udacity — англоязычный ресурс для обучения программированию.
- Codewars — огромный сборник тестовых задач для тренировки навыков по любому языку программирования.
- Coursera — без комментариев, просто лучшая лекционная «солянка».
- MIT OpenCourseware — море курсов от Массачусетского технологического института.
неплохой обзор курсовогромная и свежая подборка
Требования к программисту
Программист должен обладать острым умом, развитой логикой и вниманием. Так как программирование всё время бурно развивается, то необходимо уметь быстро адаптироваться к новым условиям и быть готовым постоянно изучать новые технологии
Иначе его ценность как профессионала будет со временем снижаться.
Для части программистов, которые не занимаются фрилансом или собственными разработками, важно уметь работать в команде с использованием разнообразных современных методологий: SCRUM, KANBAN, AGILE и других. Для продвижения по карьерной лестнице и работы в управлении проектами или ведущим программистом, то крайне желательны навыки управления коллективом и задачами, способность нести личную ответственность за выполнение поставленных задач
Такие качества как самостоятельность, ответственность и инициативность важны для любой профессии и программисты исключением не являются.
Ещё одним важным и необходимым требованием к программисту является владение английским языком на уровне чтения документации и справочной информации в оригинале. Все новинки и современные технологии разрабатываются за рубежом и лучше читать информацию в первоисточнике.
Шаг 4. Получите образование
После окончания школы можно стать программистом, не поступая в вуз. Но тогда вам придется вложить много сил в изучение языка программирования.
Плюс поступления в вуз в том, что вы получите опыт работы с программными задачами, а также знакомства в сфере программирования. Во время учебы вы будете получать опыт не только на своих ошибках, но и на чужих. Это позволит быстрее стать профессионалом в IT.
В МГ, МГТУ им. Н.Э.Баумана и МФТИ есть бесплатные курсы от Mail.ru Group (Технотрек, Техносфера и Технопарк). Поступив на них, можно стать профессионалом и устроиться в компанию мечты.
На этом этапе изучить алгоритмов и структур данных. Воспользуйтесь следующим списком книг:
- «Алгоритмы. Руководство по разработке», С. Скиена
- «Алгоритмы» С. Дасгупта, Х. Пападимитриу, У. Вазирани
- «Алгоритмы. Введение в разработку и анализ», А. Левитин
Кризис и смена направления
В 2010 году в Беларуси произошел кризис. В итоге, проработав с анкетами два месяца с тремя выходными, я заработал 1500 долларов, а из-за скачка курса на руки получил всего 500 долларов. Уроки музыки и вокала стали людям не нужны.
Из-за всех жизненных потрясений еще в 14 лет у меня развились серьезные психологические проблемы, которые мешали мне жить и развиваться.
Самым серьезным осложнением было отсутствие эмоций. В 21 год, я тренировался перед зеркалом, чтобы пойти на встречу с будущей женой, потому что забыл, как улыбаться, так как мышцы лица атрофировались и эмоций я никаких не испытывал.
Это подтолкнуло меня к изучению психологии, с помощью которой я хотел попытаться разобраться со своими проблемами. В итоге, глубоко погрузившись в психологию, оказалось, что у меня и к ней есть определенный талант.
Примерно в 20 лет, я провел большой психологический эксперимент над собой, где полностью перестроил свою личность. Все мои психологические заболевания ушли, большинство проблем тоже. Например, мне удалось значительно уменьшить свое заикание.
В 24 года я начал работать психоаналитиком, сперва как любитель, консультируя друзей и знакомых. Вскоре я начал задумываться об открытии собственной практики. Но и это дело накрылось медным тазом, потому что для оказания подобного вида услуг необходимо иметь лицензию, а для ее получения нужно как минимум получить диплом врача медицинского вуза, потратив на это семь лет.
Дистанционного обучения нет, заочное образование тоже не мой вариант. Примерно в это же время в 2014 году, накрылась компания с анкетами. Все начали переходить на анкетирование онлайн и поэтому надобность в моей работе отпала. Я оказался без работы, с маленьким ребенком и женой в декрете. Ни с одним из моих занятий не выгорело, я начал думать, что делать дальше.
Шаг 3. Изучите основы языка
Программистам приходится решать десятки задач ежедневно. Поэтому для того, чтобы стать программистом с нуля, необходимо развить логические и математические навыки. Старайтесь расширять свой кругозор, решая задачи школьного курса математики и информатики. Читайте книги по синтаксису выбранного языка программирования, участвуйте в городских олимпиадах.
На данном этапе нужно изучить основы языка. Попробуйте написать простейшие программы: калькулятор, календарь или ежедневник. Потренируйтесь в решении задач на сайте «Степик», выбрав язык программирования для изучения.
Читайте больше
Многие навыки, необходимые для того, чтобы быть сильным разработчиком, не преподаются в колледже или университете. Но ряд книг, написанных разработчиками, может дать вам практическую информацию, которая в противном случае может занять годы, чтобы научиться на работе.
Я рекомендую «Полный код» Стива Макконнелла, «Чистый код» Роберта Сесила Мартина и «Мифический человек-месяц» Фреда Брукса.
Для начинающих в этой области выделю следующие книги: «Научиться программировать» Криса Пайна, «Программирование Ruby: Руководство для прагматичных программистов» Энди Ханта и Дэйва Томаса, «Гибкая разработка с Rails» Дэвида Хайнемайера Ханссона и «Плетение паутины» Тима Бернерса-Ли.
Как стать программистом?
Обучение программированию в вузе
Самый очевидный способ стать программистом – поступить на соответствующий профиль в вуз. Жизнь большинства специалистов уже невозможна без it-технологий. Обращаться с кодом в какой-то мере учат и математиков, и химиков, и биологов. Но чтобы не мучиться на неинтересных для вас предметах и изучать только профильные дисциплины, выберите одно из следующих направлений:
- 02.03.01 Математика и компьютерные науки;
- 09.03.02 Информационные системы и технологии;
- 09.03.03 Прикладная информатика;
- 09.03.04 Программная инженерия;
- 10.03.01 Информационная безопасность;
- 38.03.05 Бизнес-информатика.
Каждый вариант имеет свои особенности. С одной кафедры выпускаются учёные, с другой — управленцы, а с третьей — самые настоящие анти-хакеры! Чтобы подробнее в этом разобраться, посмотрите нашу инфографику. Будущим it-специалистам лучше выбирать технические университеты. Эти профили есть в МИРЭА, МИФИ и других.
Обучение на программиста в колледже
Необязательно ждать выпускного, чтобы посвятить себя любимому занятию. Обучение на программиста можно начать после 9 класса, надо только правильно выбрать колледж. Подходящих специальностей тут не так много:
- 09.02.03 Программирование в компьютерных системах;
- 09.02.05 Прикладная информатика;
- 09.02.07 Информационные системы и программирование.
Всего в стране 71 учреждение среднего профессионального образования с нужными нам направлениями подготовки. Эти профили вы найдете в Санкт-Петербургском колледже информационных технологий, Петровском колледже, Новосибирском колледже электроники и вычислительной техники, в Уральском технологическом колледже “МИФИ” и в многих других.
Курсы дополнительного образования
Учить программированию в России начали не так давно, потому найти качественный профессиональный курс — целое приключение. К тому же далеко не все варианты бесплатные
Чтобы не потратить деньги зря, обратите внимание на отзывы, на преподавателей, программу и перспективу трудоустройства.
Онлайн-платформы
Изучать приглянувшийся язык программирования можно самостоятельно в удобном темпе на одном из обучающих ресурсов. Например, на INTUIT легко подобрать курс по java-программированию. После успешного прохождения итогового тестирования система выдаст бесплатный сертификат.
Онлайн-школы
Если идея самостоятельного изучения вам не по душе, то приглядитесь к онлайн-школам. Существенный плюс — чаще всего тут курсы ведут практикующие программисты, которые не только поделятся общими знаниями, но и расскажут о реальных интересных кейсах. В конце обучения дают диплом и обещают помочь с трудоустройством. Обучение «официальное», даже налоговый вычет можно получить. Но и стоит довольно много. Годовой курс обойдется в 150 тысяч рублей. Здесь уже как посмотришь: это большой расход или умная инвестиция в себя.
Очные курсы
Для желающих видеть преподавателя не через экран монитора, а вживую, есть очные курсы. Например, MAXIMUM ведет занятия по изучению it-сферы для школьников Digital Skills. Программирование там тоже есть, а на ознакомительное занятие можно прийти бесплатно.
Кто такой программист, что это за профессия
В какой бы сфере программист ни работал, его первичная задача – создавать код. Машинные коды или программы переводят действия, которые нужно выполнить, на язык, понятный цифровому устройству. Программы, требуются для работы компьютеров и гаджетов, сайтов и приложений, а также для автоматизации процессов на производствах.
Отсюда вывод – программисты нужны везде. Во всех областях, где применяются цифровые устройства, требуются люди, знающие, как их использовать. Специалисты по программированию работают в сфере науки, медицины, транспорта, энергетики, космоса, образования… Специальность «программист» входит в число самых востребованных профессий XXI века.
Читать также. Интернет-маркетолог – чем занимается и сколько зарабатывает.
Разновидности профессии
Программирование – обширная область знаний, которую невозможно освоить одному человеку. Тем, кто изучает программирование, приходится выбирать специализацию на раннем этапе обучения. Конечно, можно переквалифицироваться позже (и сделать это будет проще, чем учиться «с нуля»), но процесс отнимет время и силы.
Программистов различают по специализации, по типу выполняемых задач и по языкам программирования, которыми владеет конкретный человек.
Выделяют три направления специализации:
- системные программисты разрабатывают операционные системы, необходимые для работы компьютеров и гаджетов;
- прикладные программисты решают конкретные задачи (создают игры, приложения, программное обеспечение);
- веб-программисты поддерживают работу сайтов, занимаются разработкой веб-приложений.
На практике специализация наблюдается на еще более глубоком уровне. Чтобы разработать мобильную игру, написать ПО для офиса или программу для дрона, требуются разные навыки и знание разных языков программирования. Настоящего профессионализма достигают обычно в одной узкой области.
Языков программирования придумано более тысячи, и у каждого из них свои особенности, определяющие область применения. Какие-то языки уже устарели, другие – все еще влиятельны и не сдают позиций. Третьи – только что были созданы. Для программиста желательно освоить несколько, полезных для его специализации.
По теме. Как найти высокооплачиваемую работу в Интернете без вложений на дому.
Плюсы и минусы профессии
Перед тем, как начать обучение по специальности, нужно трезво на нее взглянуть. Рассмотреть не только преимущества приобретаемой профессии, но и ее негативные стороны. Готов ли человек мириться с недостатками будущей работы?
Что вы приобретете, став программистом, с чем придется смириться.
Что вы приобретете, став программистом: | С чем придется смириться: |
высокую (относительно рынка) заработную плату | с сидячей работой, которая может привести к проблемам со здоровьем |
востребованность как специалиста | с ненормированным рабочим графиком |
возможность выбирать между фрилансом, офисной или удаленной работой | с высокой конкуренцией вначале карьеры |
возможности карьерного роста и развития в профессии | с необходимостью постоянно учиться, чтобы не отстать от постоянно развивающейся отрасли |
разнообразие выполняемых задач и возможность раскрыть свой творческий потенциал |
Пошаговое руководство: как стать программистом
Стоит ли изучать программирование
На каждого программиста, который взял в ипотеку двушку в Бутово, ездит на BMW X5 и отдыхает каждый год на Бали, есть как минимум два копирайтера и три сетевых маркетолога, которые прошли те же курсы, купили те же книги, но не смогли выйти даже на начальный уровень.
Программирование — как занятия в тренажерном зале. Эктоморфы плохо набирают мышечную массу, им лучше сосредоточиться на легкой атлетике, беге, воркауте. Эндоморфы в свою очередь вряд ли преуспеют в беге на длинную дистанцию, но достаточно быстро построят впечатляющий мышечный корсет. Каждый должен заниматься не тем, что сулит хорошую зарплату, а тем что нравится и хорошо получается!
Важный дисклеймер!
Несмотря на то, что некоторые люди обучаются программированию гораздо быстрее, чем другие, тем не менее, мы считаем, что практически каждый человек способен стать хорошим программистом. В данной профессии, как и в других, очень многое зависит от вашего желания и усердия. Возможно, чтобы добиться хороших результатов, вам потребуется потратить больше времени, но если программировать вам действительно нравится, то все в ваших руках и важна лишь ваша мотивация и упорство.
Как же оценить свои навыки и перспективы?
Математический склад ума — это основа
Умеете ли вы играть в шахматы? Если нет, хотели бы научиться? Любили ли вы в детстве собирать головоломки? Можете ли в уме перемножать двузначные цифры? Как насчет кубика Рубика? Пятерку по математике в школьном аттестате работодатель вряд ли будет искать, но если ее там нет, вероятно, программирование будет даваться вам чуть тяжелее, чем коллегам, с математическим складом ума, а это значит, чтобы добиться тех же результатов, вам придется трудиться усерднее и дольше.
Знание английского — это важно. IT-сфера меняется очень динамично, образовательные материалы публикуются в основном на английском
Многие замечают, что переводы книг на русский иногда содержат ошибки, хотя и появляются спустя полгода-год, когда технологии уже активно применяются теми, кто изучил их описание на оригинальном языке. Стандартом сферы уже давно является необходимость предоставить резюме на английском, а также доказать свои знания на собеседовании, даже если вас интересует работа начинающего программиста без опыта. Карьерный рост без знания английского невозможен, ведь даже начинающему программисту часто приходится участвовать в конференциях с заказчиками, которые часто базируются в Европе и США.
Готовность к сложной умственной работе. Думаете, разгружать вагоны сложнее, чем работа программистом 1с? Это так, но качеству сна грузчика позавидует любой программист, потому что его мозг просто не может расслабиться в нерабочее время.
Известное исследование: во время шахматного матча на первенство мира ученые оценили расход калорий чемпионом мира Анатолием Карповым (игра в шахматы весьма схожа с написанием кода) и пришли к выводу, что на партию ему требуется столько же энергии, сколько и футболисту на один футбольный матч.
Мозг программистов на самом деле постоянно напряжен, и такая нагрузка может быть не под силу бывшим бухгалтерам, экономистам, охранникам, школьникам, которые привыкли списывать, а теперь вдохновились высокими зарплатами и радужными перспективами.
Куда пойти учиться?
Я рекомендую настроиться на получение высшего образования. Знаю, сейчас «программистов» выпускают и средне-специальные учебные заведения, но я сильно сомневаюсь в том, что вы там чему-то научитесь.
Напомню, что главный движитель опыта и ваших знаний — вы сами. Окружение, в котором вы находитесь, может быть как катализатором, так и помехой. Кто идет учиться в средние учебные заведения? Те, кто не хочет или не может учиться в школе? Вам с ними не по пути.
Кроме этого, наличие высшего образования еще никому не вредило, а в некоторых специализациях нашей отрасли просто не обойтись без знаний высшей школы. Ну, и еще раз: круг лиц которые вас окружают. С самого начала вы должны быть окружены правильными людьми.
Программирование ближе к математике или к иностранному языку
С одной стороны, программирование у многих людей ассоциируется с математикой. Считается, что айтишник хорош в точных науках. С другой, мы же говорим язык программирования», а не система программирования», например. Значит это что-то похожее на изучение английского. Какой из двух тезисов ближе к правде?
Скорее второй, чем первый. У компьютерных языков тоже есть своя лексика и грамматика. Они более точные и логичные, чем любой человеческий язык. По сути мы можем сравнить изучение языка программирования с изучением английского, и это не будет прям грубым сравнением. Нужно выучить слова (функции), грамматику (логику и правила написания кода), устойчивые фразы (часто используемые фрагменты кода). Можно даже сказать, что русскоговорящему выучить Python или JavaScript, к примеру, проще, чем арабский или корейский язык. А может даже проще, чем любимый нами английский.
А что с математикой? Она тоже нужна. Условный математический склад ума значительно упростит вам работу с кодом. Умение мыслить категориями из технических наук пригодится не столько в изучении языка, сколько в его применении. Вам будет проще представить в голове, как реализовать задуманное.
Если речь идет о базах данных, блокчейне, искусственном интеллекте или других сложных штуках, то тут уже без математики совсем никак. Причем речь идет не о школьном курсе, а о самой настоящей высшей математике. Для рядовых же задач достаточно базовых знаний.
А вот что касается английского, то он пригодится в любом случае. Код пишется на английском, комментарии к нему и техническое задание зачастую тоже. Без английского в IT вам будет намного сложнее, но об этом позже.
Можно ли стать айтишником с нуля
Конечно можно, ведь все когда-то начинали с нуля. Запаситесь терпением и мотивацией и начните осваивать новую профессию. Ваша предыдущая специальность и образование большой роли не играют. Программистом с нуля может стать как инженер, так и учитель младших классов. Препятствием может стать разве что возраст. Найти первую работу в IT после 23-25 будет сложнее, чем более молодом возрасте.