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

  • C++ для тем более низкого уровня.
  • Python для простоты.
  • Java для твердой середины между двумя вышеупомянутыми.

C++

C++ учит вас очень низкоуровневым концепциям, таким как указатели и управление памятью, за счет сложности. В языке реализован принцип абстракций с нулевой стоимостью, другими словами, компилятор ничего не сделает, если вы явно не скажете ему об этом. Например, при чтении через поток ввода-вывода вам нужно явно указать компилятору, чтобы он генерировал исключение, если файл не читается должным образом. В противном случае компилятор выдаст неопределенное поведение. «Неопределенное поведение» при изучении этого языка.

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

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

// C++
std::string str = "hello world";
std::cout << str << std::endl;
# Python
str = "hello world"
print(str)

Поймите, что в примере с C++ вы узнаете о строковом типе данных, который все еще используется в примере с python только «под капотом».

В конечном счете, вам следует начать изучение C++, если вы готовы изучать более низкоуровневые темы и лучше понимать информатику в обмен на сложность и сложность.

питон

Python — самый простой язык для изучения. Идея, лежащая в основе Python, буквально звучит так: «Чем проще, тем лучше». Это противоположность C++, и интерпретатор держит вас за руку во время кодирования. Это делает его очень простым для изучения языком для начинающих. Однако впоследствии вам будет сложнее освоить другие языки, потому что вы не будете знать многих фундаментальных понятий.

В моем конкретном учебном заведении студентов учат Python, а затем C++. Вы можете думать о Python -> C++ как о «маленьких шажках», в то время как начинать с C++ — значит сразу же переходить к действию. Я встречал студентов, которые начинали свою деятельность с Python, и они говорили, что сам язык был очень простым. Они привыкли к синтаксису и абстрактному мышлению, которые необходимы программисту.

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

Джава

Java — это язык, который находится между Python и C++. Вам не нужно изучать чрезвычайно сложные темы, такие как управление памятью, но вам необходимо явно определять такие вещи, как типы данных. С одной стороны, C++ может быть очень сложным для новичков, а с другой стороны, Python временами может быть настолько упрощенным, что становится трудно понять, что происходит «под капотом».

Однако проблемы с этим языком возникают, когда речь идет о его популярности и шаблонах (это действительно раздражает). Несмотря на высокий уровень использования в 2022 году, прогнозируется, что его популярность резко снизится. Кроме того, шаблоны и управление проектами в Java, как правило, очень раздражают и иногда вызывают больше проблем, чем они того стоят (только взгляните на это).

// this is just saying "hello world" do you see how annoying this is
public class Main {
  public static void main(String args[]) {
    System.out.println("hello world");
  }
}

С точки зрения обучения и образования я думаю, что Java — отличный язык для освоения новых технологий. Однако с практической точки зрения я думаю, что есть более совершенные языки.

Какой язык выбрать?

  • Python, если вы хотите медленно продвигаться по лестнице программирования.
  • C++, если вы хотите сразу перейти к сложным темам и основам CS (что впоследствии облегчит понимание других языков)
  • Java, если вы хотите счастливую медиану в обмен на практичность.