СоХабр закрыт.

С 13.05.2019 изменения постов больше не отслеживаются, и новые посты не сохраняются.

H Какой язык программирования стоит выучить первым? в черновиках Из песочницы

Начинающие программисты часто задаются вопросом: «А с чего начать, какой язык учить первым?». На эту тему уже есть много статей. Но в них очень много текста, который, конечно, относится к теме выбора языка, но начинающего программиста может только запутать.

В этой статье я постараюсь ответить на этот вопрос кратко и по делу.

Подбирать язык я буду по 3 критериям:

  • Простой синтаксис  — для простого изучения.
  • Похожий на другие языки  — чтобы можно было перейти потом на другой.
  • Функциональный  — чтобы сразу начать программировать реальные вещи.

Выбирал я из 6 вариантов:

  • Java
  • Java script — в двух словах
  • С#
  • С++
  • Python
  • Языки наподобие КуМира

И еще языки, которые стоит отметить, но которые по каким-то причинам не попали в этот список:

  • PHP  — узко направленный
  • Objective-C  — узко направленный
  • Swift  — узко направленный
  • TypeScript  — только скриптовый, редко используется
  • Lua  — только скриптовый, редко используется
  • Basic  — не актуально
  • Pascal  — не актуально
  • Ruby



Итак, начнем:


Java:


На мой взгляд, «Java» — довольно хороший вариант для первого языка программирования, по моему мнению, это единственный по настоящему кроссплатформенный язык программирования.

За счет этого в будущем легко будет перейти с одной платформы на другую, одна и та же программа сможет запуститься и на MacOS, и Linux, и на Windows, на нем легко писать под «Android».

Он несложен в обучении и удобен в использовании.

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

Цитаты о языке «Java»:

Java — это C++, из которого убрали все пистолеты, ножи и дубинки.
James Gosling
Если бы в Java действительно работала сборка мусора, большинство программ бы удаляли сами себя при первом же запуске.
Robert Sewell

Пример программы, выводящей «Hello, World!» на языке «Java»:


public static void main(String[] args) {
    System.out.println("Hello, World!");
}



Java script:


Java script похож на Java, только скриптовый.

На мой взгляд, учить скриптовый язык в качестве первого не очень правильно, т.к. не зная программирования, мне кажется, писать скрипты немного странно. (Но если вы знаете html и css, тогда Java script — это именно то, что нужно). Поэтому я не буду рассматривать его подробно.

Пример программы, выводящей «Hello, World!» на языке «Java script»:


</script>
    alert( 'Hello, World!' );
</script>



С#:


C# — это прекрасный язык для начала: он прост в изучении, он популярен, он похож на другие популярные языки, например, вы легко сможете с C# перейти на C++ или Java, он многофункционален (игры — unity, мобильные телефоны — xamarin...)

Разумеется, есть и недочеты, но в для данной ситуации они не значительны.

Цитата:

Я думаю, что Microsoft назвал технологию .Net для того, чтобы она не показывалась в списках директорий Unix.
Oktal

Пример программы, выводящей «Hello, World!» на языке «С#»:


static void Main(){
    Console.WriteLine("Hello, World!");
}



С++:


C++ — это замечательный язык программирования, на нем можно сделать все. Новые языки делаются на базе C++.

Но есть одно большое «НО» — обычно начинающим программистам он кажется сложным, в нем очень легко что-то напутать и много времени потратить на дебаг.

Но если вы этого не боитесь, тогда это то, что нужно.

Цитаты о «C++»:

Писать на C или C++ — это как работать с бензопилой без какой-либо защиты.
Bob Gray
Я изобрел понятие «объектно-ориентированный», но могу заявить, что не имел в виду C++ при этом.
Alan Kay

Пример программы, выводящей «Hello, World!» на языке «C++»:


int main(){
    cout << "Hello, world!" << endl;
}



Python:


Сейчас часто предлагают учить «Python» в качестве первого языка, на мой взгляд, это в корне не правильно, здесь я это очень кратко обосновываю, вот статья с полным объяснением"Почему не нужно учить python первым языком".

По моему, «Python» — это «детский» язык программирования. Если вам надо быстро написать программу, выводящую числа от 1 до 100 (такого типа программы иногда нужны), то это — то, что нужно. В нем простой синтаксис. Все, на этом плюсы закончились.

В остальном его мало где используют по сравнению с остальными «претендентами», кроме «КуМира» конечно же.

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

Пример программы, выводящей «Hello, World!» на языке «Python»:


print("Hello, World!")



Языки на подобие КуМира:


Я добавил «КуМир» в этот список, только чтобы объяснить, почему на нем не надо писать.

  1. нельзя использовать для чего-то реального.
  2. синтаксис совершенно не похож на другие и будет очень затруднительно перейти с него на реальный язык программирования (Я никогда не писал на «КуМире», посмотрел код, чтобы написать эту статью, и у меня реально заболели глаза, т.к. я привык к программированию на английском и перестроить свой мозг на что-то еще мне было сложно).
  3. сложность синтаксиса не знаю, т.к. ничего не понял.

(Примера с «Hello, World!» нету, т.к. я нечего в КуМире не понял)



Итоги:


По-моему, распределить места надо так:

  1. «C#»
  2. «Java»
  3. «C++»
  4. с большим отставанием «Python»

Язык «Java script» не вставил, т.к. он скриптовый, а «КуМир» т.к. не считаю его полноценным языком программирования.

комментарии (10)

+2
Metus ,  

А чем JavaScript похож на Java то?

–1
FedyaShlyapkin ,  
можно Rust пробовать
0
lair ,  
Java script похож на Java, только скриптовый. [...]

Эээ, что? JavaScript хоть и имеет script в названии, уже давно не "скриптовый".


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

А что такое "скрипт", если не программирование? И как раз учиться на простых вещах — правильно.


По моему, «Python» — это «детский» язык программирования.

Аргументацию в студию.


В остальном его [Python] мало где используют

21% инфрастуктурного кода Facebook, какие мелочи.

+1
fogone ,  
Java script — в двух словах

В одно слово
+1
staticlab ,  

Внимание, статья эксперта, всем в укрытие!


Java script похож на Java, только скриптовый.

Во-первых, похож только синтаксисом и названием. Во-вторых, JS — основной язык для программирования веб-фронтенда. В-третьих, на нём и бэкенд для веб-приложений, и утилиты для веб-программирования пишут. В-четвёртых, он объединяет как прототипное ООП-программирование, так и функциональное программирование, включая ФРП. Наконец, почему JS — "скриптовый", а Python — нет?


Новые языки делаются на базе C++.

Сильное заявление :) Но как бы язык, использованный для написания интерпретатора или компилятора, имеет весьма слабое отношение к возможностям и "мощности" разрабатываемого языка. И уж точно не влияет на его синтаксис. Наконец, транслятор языка можно теоретически написать на любом практически применяемом языке, если отвлечься от эффективности. Это нам товарищ Тьюринг гарантирует.


По моему, «Python» — это «детский» язык программирования. Если вам надо быстро написать программу, выводящую числа от 1 до 100 (такого типа программы иногда нужны), то это — то, что нужно. В нем простой синтаксис. Все, на этом плюсы закончились.

В остальном его мало где используют по сравнению с остальными «претендентами», кроме «КуМира» конечно же.

Ага, то есть куча компаний, пишуших софт и веб-приложения на Python, включая таких монстров, как Google, Яндекс, Yahoo, Dropbox, тысячи их; аналитики бирж, страховых компаний и банков, использующие Python наряду с R для анализа данных — это так, детишки в песочнице.


сложность синтаксиса не знаю, т.к. ничего не понял

Уважаемый эксперт не разобрался в дубовом алголоподобном (паскалеподобном) синтаксисе процедурного языка для школьников?

0
habradante ,   * (был изменён)
На мой взгляд, Python отличный язык для начала.
1. С одной стороны, в нем «магия» отступов, вместо скобочек, но с другой стороны, он учит писать структурированный код.
2. На нем можно писать как в процедурном стиле, что может быть удобно в начале, так и в ООП, что полезно в дальнейшем.
3. У него меньше фрагментация, по сравнению с Java, две версии против 3-4 актуальных у Java.
4. У него есть REPL (вещь не столь важная, но полезная).
5. Переход в написании с консольных приложений на десктопные программы и в веб-приложения у него ниже, по сравнению с Java и C#.
0
staticlab ,  
  1. С одной стороны, в нем «магия» отступов, вместо скобочек, но с другой стороны, он учит писать структурированный код.

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

0
habradante ,  
Я об этом и говорю, читать, на мой взгляд, слегка непривычно, но зато это приводит к ошибкам и их приходится исправлять.
+1
medvoodoo ,  
У статьи есть один огромный минус, который обесценивает все ее содержание. Учить язык предлагается ради того, чтобы выучить язык. А эта цель сразу приводит нас в тупик. Выбирать язык нужно исходя из задачи, в случае начинающего программиста исходя из того, к какому виду работы у него лежит душа. Если у него есть куча знакомых, которым нужен сайтец — почему бы и с пхп не начать. Если интересно программировать микроконтроллеры — то си и асм. Математика — питон, и т.п. Всем нужна мотивация, а делать что-то ради того, чтобы это просто сделать — не лучший мотив.
0
andreymal ,  

А куда язык Си забыли?


это единственный по настоящему кроссплатформенный язык программирования.

Бред


Java script похож на Java, только скриптовый.

Бред, и hello world к тому же нерабочий, ну лол


Новые языки делаются на базе C++.

Бред


«Python» — это «детский» язык программирования

Бред и оскорбление чувств питонистов, на нём немалая часть веба держится вообще-то, и он способен на всё, а не только до ста считать


Вывод: статья — бред)


Вообще, для начала нужно определиться с задачей — для чего мы учим язык программирования-то? И уже потом исходя из этого ставить критерии