От обилия информации о программировании, терминов, форм, курсов даже у опытного пользователя компьютера может закружиться голова. Новичок в программировании похож на маленького ребенка, который только учиться говорить. Ребёнок не просто запоминает новые слова, он изучает окружающий мир, отношения между людьми, предметы, явления - и только потом знания формируются в речь.
Самый первый вопрос новичка - где и как лучше всего изучать программирование?
Если у вас нет грамотного наставника, имеющего планы относительно вашего дальнейшего развития, то вариантов остается как правило 3:
1. Поступить в профильное образовательное учреждение: колледж, ВУЗ;
2. Записаться на те или иные образовательные курсы по программированию;
3. Учиться самостоятельно, в интернете или с помощью профильной литературы.
Рассмотрим каждый вариант отдельно.
Учиться в образовательном учреждении.
От преподавателей образовательных курсов и даже работающих программистов часто можно услышать мнение: "Карьеру программиста можно начать и без высшего образования". Это, действительно так, но есть целый ряд принципиальных моментов.
Специальное образование в колледже или ВУЗе в течении нескольких лет знакомит обучающегося с фундаментальными основами программирования, базовыми алгоритмами и смежными дисциплинами, такими как высшая математика, информатика, физика и др. Это громадная поддержка для будущего программиста, ведь для эффективной работы нужно не только иметь инструменты программирования, но и понимать как программы работают "под капотом" - как они реализуются в компьютере, микроконтроллере или сетях интернет.
Сказывается наличие образования, а вместе с ним и диплома и на возможностях карьеры - высокие инженерные или исследовательские должности без высшего образования обычно недостижимы. Также часто в случае выбора между двумя кандидатами предпочтение компании отдают программисту с дипломом о высшем образовании.
Как же тогда работают программисты самоучки или выпускники курсов? Дело в том, что область программирования очень обширна и включает в себя множество задач. Считается что высшее инженерное или математическое образование поможет в наукоемких отраслях программирования, а в прикладных – будет достаточно курсов или самообразования.
Если есть возможность получения специализированного образования, то лучше всего воспользоваться ей. Увы, этот путь подходит не всем - не у всех есть возможность тратить несколько лет на колледж или институтов, особенно после определенного возраста.
Есть и другие минусы профильного образования в России - такие как устаревание учебных программ относительно новых тенденций в отрасли. Но они могут быть решены путем самостоятельного изучения актуальных материалов.
Практика трудоустройства в России указывает на то, что предпочтение отдается выпускникам МГТУ им. Баумана, МФТИ, Университет связи, МИСиС и МАИ (факультетов математики и информатики).
Курсы по программированию.
Сегмент российского интернета переполнен предложениями образовательных курсов: "Курсы по программированию с гарантией трудоустройства", "Обучению программированию с нуля", поисковые сети и сайты демонстрируют обилие рекламы с самыми радужными предложениями.
Есть много форматов онлайн курсов. Видео, тренажеры, не интерактивные форматы, где только текст. Есть форматы с экзаменами, а-как Coursera. Есть более интерактивные с живыми преподавателями.
И есть разные офлайн-школы программирования, либо частично онлайн, либо частично офлайн.
Но стоит сразу отметить главное: Чаще всего задачей курсов по программированию является продажа Вам материала, целью курсов является заработок денег на студентах в большей степени, чем подготовка квалифицированных кадров.
Увы, но чтобы устроиться на работу сразу после курсов, нужна доля удачи или стечение обстоятельств. Почти курсов, куда можно прийти, отдать деньги, время, а на выходе получить знания и умения, которые нужны, чтобы пройти собеседование и устроиться на работу.
Отсутствие диплома о специализированном образовании чаще всего не заменяет сертификат или документ о прохождении курсов.
Касается это, конечно же, курсов по программированию для новичков, курсы для повышения квалификации представляют собой совершенно другое дело.
Это вовсе не означает что материал, преподносимый на курсах для новичков является бесполезным. Но обычно это недостаточно полные, фрагментарные знания - либо о самых основах программирования, либо о узкоприменимых инструментах. Если вы имеете базовые знания - то можете узнать для себя новые вещи, которые сможете применить на практике. Если нет - то курсы могут принести пользу только если вы усиленно и углубленно занимаетесь параллельно с ними самообразованием.
В следующих публикациях автор планирует детальный разбор некоторых существующих онлайн-курсов по программированию.
Самообразование.
Программирование именно та отрасль, в которое самообразование принципиальное, критически важное значение. Стремительное развитие технологий не позволяет существовать программистам с одними лишь ранее полученными знаниями. "Учиться, учиться и ещё раз учиться" - вот главный лозунг для программиста.
Однако, у самообразования есть громадные сложности, в отличии от образования в ВУЗе или на курсах. Специализированное образование имеет программу обучения, включающую в себя комплексы знаний. Тому, кто учится самостоятельно сложно проложить свою дорогу в громадном обилии информации, даже имея возможности обращаться с литературе и сайтам в Интернете.
Этот блог ставит задачу (и надеется её решить) последовательного и целостного подхода в важной для новичков информации по программированию. Автор надеется представить курс, который станет фундаментом для будущего дальнейшего образования или профессии.
В этом блоге ожидается информация по языкам программирования, практическим задачам, алгоритмам, общей теории и техническому английскому языку.
Успех и развитие блога зависит от читателей - от их внимания, лайков, комментариев.
Попробуем пройти эту дорогу к изучению настоящего программирования вместе.
В следующих публикациях: как учиться программированию самостоятельно, какие материалы требуется изучить и проработать, дорожная карта программиста, какой язык программирования выбрать для старта, устройство компьютера и сети Интернет.
И для заключения несколько мотивирующих цитат от действующих программистов и руководителей проектов:
Александр Першин, генеральный директор компании HTML Academy:
"В нашей команде много программистов-самоучек. У нас даже есть дочерняя компания «Лига А», в которой коммерческие заказы выполняют только наши выпускники. Они самоучки с той точки зрения, что проходили только онлайн-курсы, а не получали профильное вузовское образование.
Кроме того, программисту для успешной работы необходимо системное мышление и внимательность. И желание разобраться в задаче перед тем, как начать писать код.
Идеально, если разработчик всегда горит желанием узнать, зачем он решает конкретную задачу, что она даст пользователям и его компании".
Дмитрий Уткин, техлид направления Machine Learning, группа компаний Neti:
"Высоко ценится знание английского языка – почти все новые фреймворки и технологии описаны именно на английском, а это значит, что у вас будет преимущество в год или два перед теми, кто ждет перевода документации на русский.
И, конечно, важна способность постоянно учиться. В разных областях программирования знания устаревают за два-три года. Так что необходимо постоянно учиться и переучиваться".
Евгений Лопатин, директор департамента разработки «Инфосистемы Джет»:
"Важнейшее качество разработчика — уметь и хотеть учиться. Любые знания в конкретной области — это лишь базис для последующего совершенствования. Тот, кто остановился в развитии, очень быстро теряет ценность.
При найме сотрудника мы смотрим на перспективы роста и мотивацию. Разумеется, берем на работу и программистов-самоучек, но, как правило, потолок развития у таких кандидатов ниже, а темпы роста компетенций не такие быстрые. В любом случае пробелы системного образования нужно будет восполнять. Но сегодня востребованность такого специалиста, безусловно, гарантирована".
Денис Коровкин, генеральный директор WebProfy (Kokoc Group):
"В работе я отдаю предпочтение ребятам сообразительным и любознательным, независимо от пола, возраста, вероисповедания и высшего образования. Гораздо важнее внимательность, обучаемость, пунктуальность, критическое мышление. Умение правильно «гуглить», кстати, тоже пригодится.
Кроме перечисленных качеств программисту не обойтись без умения концентрироваться, самодисциплины и самокритики. Очень важен навык чтения, в том числе, на английском языке, и навык отладки.
Это то, чем программист занимается 80% своего времени — ищет причину, по которой код не работает так, как хочется. Что поразительно, очень большое количество программистов не умеет этого делать и тратит время работодателя на перебор вариантов и метод тыка".
Андрей Коваленко, сооснователь и CTO Voximplant:
"Образование — это еще не все. Для программиста важна усидчивость и внимательность.
Конечно, программирование — это творческая профессия, но творческих задач в ней 15%, а остальное — типовые процессы, требующие аккуратного выполнения.
Также обязательна способность быстро усваивать новое: сейчас технологии появляются с такой скоростью, что книги устаревают еще до выхода в печать, поэтому умение быстро разбираться в новинках необходимо любому IT-специалисту".