Первый шаг в программирование: выбор языка
В конце позапрошлой недели в Москве состоялось небольшое выступление Сергея Камянецкого, где он поведал начинающим гикам о том, с какого языка стоит начать свой профессиональный путь и к какой будущей карьере с соответствующими знаниями стоит стремиться.
Некоторые подробности этой встречи вы можете найти в комментариях к записи, а пока давайте здесь попробуем выяснить: так какой язык выучить первым?
Старая школа
Первые уроки информатики, преподаватели со скрипом в сердце подпускают детей к школьным компьютерам, чтобы обучить их первому языку программирования в их жизни. 15 лет назад в большинстве случаев это был процедурные языки Basic или Pascal, но, если вам очень везло с преподавателем, могли заодно познать и C.
Последнее оставим пока за скобками и разберёмся: так ли хорошо начинать обучение с сильно ограниченных языков. Плюсы очевидны: простой синтаксис, схожий с обычным английским языком, и возможность обучиться азам программирования всего за несколько часов. Но есть и минус: отсутствие реального практического применения без изучения дальнейшего развития этих языков (Visual Basic и Object Pascal). Да и в этом случае вы окажетесь далеки от разработки полноценных современных приложений.
Так что если вам ещё совсем немного лет, выбирать будущую профессию не вынуждают обстоятельства, то процедурные языки – прекрасный выбор. Тренироваться, как говориться, лучше всего на кошках. Но если начать зарабатывать вы хотите уже завтра, то… Впрочем, об этом чуть позже.
Современная школа
Как вы наверняка знаете, многие современные школьники начинают свой путь в программирование с неких упрощённых версий «больших» языков, таких как Scratch, Blockly или Logo. В целом, плюсы можно было бы переписать из процедурных языков, если бы не одно «но»: данные языки и приложения, построенные на их основе – развлекательный сервис для детей.
То есть единственное, что можно вынести из такого программирования – общая структура программы, понятие циклов и операторов. А значит, если вам уже исполнилось 12 лет, то забудьте про эти детские языки, вам пора в мир взрослых.
Быстрый старт с перспективой
Допустим, что, отбросив все прелюдии, вы хотите немедленно приступить к изучению одного из ходовых языков программирования, заодно изучив все основы программирования. Тогда стоит ответить лишь на один простой вопрос: чем конкретно вы хотите заниматься? Если программировать «железо», тогда здесь даже дискуссии быть не может: ответ C, то есть язык C. В нём сочетается всё что нужно новичку: простой синтаксис, большие возможности, как для продолжения работы в этой среде, так и дальнейшей переквалификации на «не железный» профиль. При этом почти в любом крупном розничном магазине электротоваров вы сможете найти отладочные платы, стартовые наборы робототехника и прочие радости для новичка.
Если же вы считаете своим призванием веб, то тогда необходимо начать свой путь стандартно с HTML и CSS. Это позволит создавать статические страницы и получить примерное представление о том, с чем придётся иметь дело. Дальше настоятельно рекомендуется взяться за Python. Во-первых, потому что этот язык действительно легко выучить. Во-вторых, по некоторым данным, Python самый популярный язык, если брать в расчёт только статистику обучающихся с 2011 года. В-третьих, возможности этого языка таковы, что сегодня с его помощью вы создаёте веб (как DropBox или Google), а завтра приступаете к разработке игры (Civilization IV).
Тяжело в учении, легко в бою
Не отпуская тему веба, в качестве первого языка (фактически третьего после HTML и CSS) программирования вы можете выбрать JavaScript. Именно так поступали на уроках информатики 15 лет назад и в этом был вполне определённый смысл: у статических страниц с добавлением буквально 4-5 строк появляется активная составляющая, что поднимает мотивацию работать именно в этом направлении. При этом работоспособность не зависит от браузера или от операционной системы. И это не говоря о перспективах дальнейшего развития в сторону Node.js.
Также начать свой путь в вебе можно с PHP или Ruby, но если вы никогда не занимались программированием, то лучше идти по пути наименьшего сопротивления, а эти два языка оставить на будущее изучение. Заодно сравните.
Ну и наконец к разработке приложений. Три пути: Java, Swift, C#. Желание начать своё обучение программированию с них – весьма серьёзный вызов, который в случае отсутствия трудолюбия может оказаться глупостью, ведь на каждый потребуется несколько месяцев усиленного изучения. Впрочем, перспективы тоже могут служить стимулом, будь то успешная карьера в мобильной сфере (Java – Android, Swift – iOS) или игровой (C#+Unity).
А с чего начинали вы? Напишите в комментариях!
Определиться с первым языком вам поможет бесплатный интенсив "Основы программирования".