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

Факторы выбора

  • Уровень и опыт изучающего
  • Цели изучающего
  • Желаемая специализация изучающего
  • Ситуация на рынке труда

Факторы выбора

  • Уровень и опыт изучающего
  • Цели изучающего
  • Желаемая специализация изучающего
  • Ситуация на рынке труда
  • Сложность языка и библиотек
  • Возможности языка и библ.
  • Область применения языка (возможная и желательная)
  • Востребованность языка

 

Многое субъективно

За более-менее объективное суждение можно принять наиболее широко поддерживаемые мысли/мнения, распространенные в среде специалистов высокого уровня

Я рассказываю с оттенком своего мнения

Что такое язык программирования на самом деле?

Язык программирования —

 формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексическихсинтаксических и семантических
правил, определяющих внешний вид программы и действия, которые выполнит исполнитель (обычно — ЭВМ) под её управлением.

Обычно язык воспринимается шире

  • Синтаксис (лексика+синтаксис+семанитика)
  • Транслятор (компилятор и/или интерпритатор)
  • Среда исполнения
  • Стандартная библиотека (фреймворк)
  • Популярные библиотеки и фреймворки

О каких языках пойдет речь?

  • Assembler
  • C/C++
  • Java, C#
  • PHP, Perl, Python, Ruby, JS
  • (Спец.языки, например, 1С)

Assembler

  • Уровень и опыт изучающего
    → Сложность языка и библиотек
     
  • Цели изучающего
    → Возможности языка и библ.
     
  • Желаемая специализация изучающего
    → Область применения языка (возможная и желательная)
     
  • Ситуация на рынке труда
    → Востребованность языка
  • Высокая сложность, требуется высокий уровень по железу и основам
     
  • Работа на низком уровне, системное программирование, управление железом
     
  • Операционные системы, встраиваемые системы, драйвера, специализированное железо и т.д.
     
  • Востребованность относительно низкая, но очень мало хороших специалистов

С/С++

  • Уровень и опыт изучающего
    → Сложность языка и библиотек

     
  • Цели изучающего
    → Возможности языка и библ.

     
  • Желаемая специализация изучающего
    → Область применения языка (возможная и желательная)
     
  • Ситуация на рынке труда
    → Востребованность языка
  • Высокая сложность, требуется глубокое понимание базы, алгоритмов, архитектуры ЭВМ; внимательность и усидчивость
     
  • Низкий и средний уровень, системное программирование, высокопроизводительные подсистемы
     
  • Операционные системы, встраиваемые системы, высокопроизводительные программы и компоненты
     
  • Востребованность средняя, в основном требуются специалисты с опытом

Java, C#

  • Уровень и опыт изучающего
    → Сложность языка и библиотек
     
  • Цели изучающего
    → Возможности языка и библ.
     
  • Желаемая специализация изучающего
    → Область применения языка (возможная и желательная)
     
  • Ситуация на рынке труда
    → Востребованность языка
  • Средняя или низкая сложность, легко начать, легко изучать
     
  • Высокий уровень, прикладные программы, развитый GUI, энтерпрайз
     
  • Интерфейс, службы для Windows, web-приложения (бэк-энд), тестирование

     
  • Востребованность высокая, требуются программисты разного уровня

Perl

  • Уровень и опыт изучающего
    → Сложность языка и библиотек
     
  • Цели изучающего
    → Возможности языка и библ.
     
  • Желаемая специализация изучающего
    → Область применения языка (возможная и желательная)
     
  • Ситуация на рынке труда
    → Востребованность языка
  • Высокая сложность самого языка, но работа на высоком уровне (в отличие от Assembler)
     
  • Прикладные программы, автоматизация

     
  • Unix, автоматизация, Web-приложения (бэк-энд), тестирование

     
  • Востребованность низкая, язык устарел и отмирает

PHP, Python, Ruby

  • Уровень и опыт изучающего
    → Сложность языка и библиотек
     
  • Цели изучающего
    → Возможности языка и библ.
     
  • Желаемая специализация изучающего
    → Область применения языка (возможная и желательная)
     
  • Ситуация на рынке труда
    → Востребованность языка
  • Низкая сложность языка, низкий порог вхождения, легкость использования
     
  • Прикладные программы, автоматизация

     
  • Web-приложения (бэк-энд), автоматизация, Unix, тестирование

     
  • Востребованность высокая, специалистов много (кроме Ruby)

JS (JavaScript)

  • Уровень и опыт изучающего
    → Сложность языка и библиотек

     
  • Цели изучающего
    → Возможности языка и библ.
     
  • Желаемая специализация изучающего
    → Область применения языка (возможная и желательная)
     
  • Ситуация на рынке труда
    → Востребованность языка
  • Низкая сложность языка, низкий порог вхождения, некоторая сложность правильного использования
     
  • Прикладные программы

     
  • Web-приложения (прежде всего фронт-энд, но и бэк-энд тоже)

     
  • Востребованность высокая, специалистов не много

Специальные языки

  • Уровень и опыт изучающего
    → Сложность языка и библиотек
     
  • Цели изучающего
    → Возможности языка и библ.
     
  • Желаемая специализация изучающего
    → Область применения языка (возможная и желательная)
     
  • Ситуация на рынке труда
    → Востребованность языка
  • Обычно все относительно просто

     
  • Прикладные программы, работа с определенной платформой
     
  • Информационные системы, энтерпрайз


     
  • По-разному, но в среднем невысокая

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

  • Первый — лучше простой и прикладной
  • Очень полезно изучить C/C++
  • Для работы полезно Java, C#, PHP, Python,
    Ruby, JS в зависимости от предпочтений
  • Все, что связано с вебом, набирает обороты
  • Спец.языки хороши для специалиста
    в некоторой предметной области

Лучше всего изучить несколько языков, при этом
2–3 знать хорошо и практиковать

Made with Slides.com