Какой язык программирования лучше выбрать первым для изучения новичку?

Один из самых популярных вопросов в нашем сообществе от начинающих программистов звучит так: «С какого языка мне начать?» Для ответа мы привлекли наших экспертов.

Иван Кухта, старший программист-разработчик ПО в компании Acronis

Все зависит от того, какую области вы выберете. Если вы хотите работать непосредственно с железом, писать драйверы и различные приложения, для которых требуется максимальная производительность, — тогда подойдут только C или C++. Если ваша цель — приложения для мобильников, стоит изучить Java или Objective C, C#. Для веб-серверов необходимы go, python и php; для веб-приложений — JavaScript.

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

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

Алексей Камалетдинов, разработчик в «Ростелеком Контакт-центр»

Python вполне подойдет для изучения общих концепций программирования. Это очень популярный язык, у него много библиотек, синтаксис легко читаемый и довольно аккуратный код. Основными преимуществами Python для новичков является то, что он довольно распространен и его легко выучить. Вы с легкостью сможете на нем писать как web-приложения, так и обычные десктопные. В зависимости от предметной области, необходимо выбрать объектно-ориентированный язык. Например, если вы занимаемся системным программированием, то лучше всего подойдет С++. Если вы разрабатываете корпоративное приложение (информационные системы предприятий), то это С# или Java.

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

Я в своё время начинал с Фортрана и Паскаля, так как они были у меня в институте. Потом был С/C++, Visual Basic Script, PHP и Visual Basic, потом C#, потом немного F#.

Если опираться на свой опыт и иметь возможность выбирать, наиболее комфортно мне было разрабатывать на С#, и с него бы я и начал. Больше всего в плане понимания алгоритмов и механизмов работы ОС, под которые я писал, дал мне C++.

Артём Кудзев, руководитель направления маркетинга технологий 2ГИС

На примере C++ и Java изучить основу основ ООП, а потом определиться в предметной области и изучить родной для неё язык.

Григорий Петров, технический евангелист VoxImplant

Полагаю, лучше всего начать обучение с JavaScript. Благодаря веб браузерам, этот язык программирования является стандартом де-факто при создании веб приложений, одной из самых быстрорастущих областей разработки. Также по нему есть великолепная бесплатная книга, «Eloquent JavaScript», переведенная на русский.

Борис Шестаков, руководитель группы разработки Java в AT Consulting

Все зависит от задачи, которую вы хотите решить. Однако если это ваш первый язык, я бы порекомендовал язык со строгой типизацией общего назначения (C++, Java, .NET): с ними в любом случае не пропадете и будет легко перейти на любой другой. Ещё интересный способ понять, какой язык взять для изучения – зайти на GitHub, ввести в поиск интересующую тему и посмотреть, на чем пишут другие разработчики.

Дмитрий Сошников, технологический евангелист Microsoft, доцент МФТИ, МАИ, преподаватель детского лагеря JUNIO-R

Здесь всё зависит от возраста. Если вы решили действительно смолоду учиться программировать, и вам еще нет 12 лет – лучше начинать с простых графических языков, типа Kodu Game Lab или Scratch. Считается, что традиционные языки программирования стоит осваивать после 12-ти. Из традиционных языков мне всегда был близок C# — для него есть хорошая среда разработки, а программировать можно всё: от игр в Unity, до веб-сайтов на ASP.NET или электроники. Для обучения можно посмотреть видеоуроки, или почитать книжку C# для школьников.

Алексей Михайлишин, руководитель отдела разработки ПО компании ОС3

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

Но так как начинать всё равно с чего-то надо, да и изучать те же алгоритмы и структуры данных в вакууме не очень удобно, то могу порекомендовать использовать для этого язык Си. Он достаточно низкого уровня, чтобы не приучать к тоннам синтаксического сахара и дать общее понимание того, как устроен компьютер, который исполняет программу. Но вместе с тем это и не язык ассемблера, что даёт возможность сосредоточиться на общих вещах, не тратя большую часть умственных усилий на запоминание всех названий jump’ов и значений регистров. В качестве литературы рекомендую классическую K&R.

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

Артур Сахаров, технический директор Redmadrobot

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

В продолжение темы: предлагаем ознакомиться со списком из пяти языков, каждый из которых подойдёт новичку для изучения в 2017 году.

Напоминаем, что вы можете задать свой вопрос экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков рубрики. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на admin@tproger.ru, мы расскажем, как это сделать.