Как выбрать язык программирования для изучения?
Факторы выбора
- Уровень и опыт изучающего
- Цели изучающего
- Желаемая специализация изучающего
- Ситуация на рынке труда
Факторы выбора
- Уровень и опыт изучающего
- Цели изучающего
- Желаемая специализация изучающего
- Ситуация на рынке труда
- Сложность языка и библиотек
- Возможности языка и библ.
- Область применения языка (возможная и желательная)
- Востребованность языка
→
→
→
→
Многое субъективно
За более-менее объективное суждение можно принять наиболее широко поддерживаемые мысли/мнения, распространенные в среде специалистов высокого уровня
Я рассказываю с оттенком своего мнения
Что такое язык программирования на самом деле?
Язык программирования —
формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических
правил, определяющих внешний вид программы и действия, которые выполнит исполнитель (обычно — ЭВМ) под её управлением.
Обычно язык воспринимается шире
- Синтаксис (лексика+синтаксис+семанитика)
- Транслятор (компилятор и/или интерпритатор)
- Среда исполнения
- Стандартная библиотека (фреймворк)
- Популярные библиотеки и фреймворки
О каких языках пойдет речь?
- Assembler
- C/C++
- Objective C, Swift
- Java, C#
- PHP, Perl, Python, Ruby, JS
- SQL
- (Спец.языки, например, 1С)
Assembler
- Уровень и опыт изучающего
→ Сложность языка и библиотек
- Цели изучающего
→ Возможности языка и библ.
- Желаемая специализация изучающего
→ Область применения языка (возможная и желательная)
- Ситуация на рынке труда
→ Востребованность языка
- Высокая сложность, требуется высокий уровень по железу и основам
- Работа на низком уровне, системное программирование, управление железом
- Операционные системы, встраиваемые системы, драйвера, специализированное железо и т.д.
- Востребованность относительно низкая, но очень мало хороших специалистов
С/С++
- Уровень и опыт изучающего
→ Сложность языка и библиотек
- Цели изучающего
→ Возможности языка и библ.
- Желаемая специализация изучающего
→ Область применения языка (возможная и желательная)
- Ситуация на рынке труда
→ Востребованность языка
- Высокая сложность, требуется глубокое понимание базы, алгоритмов, архитектуры ЭВМ; внимательность и усидчивость
- Низкий и средний уровень, системное программирование, высокопроизводительные подсистемы
- Операционные системы, встраиваемые системы, высокопроизводительные программы и компоненты
- Востребованность средняя, в основном требуются специалисты с опытом
Objective C, Swift
- Уровень и опыт изучающего
→ Сложность языка и библиотек
- Цели изучающего
→ Возможности языка и библ.
- Желаемая специализация изучающего
→ Область применения языка (возможная и желательная)
- Ситуация на рынке труда
→ Востребованность языка
- Средняя или низкая сложность, относительно легко начать и изучить, но нужно быть внимательным для Objective C
- Программирование для платформ Apple (Mac OS, iOS).
- Прикладные программы, развитый GUI
- Востребованность высокая, в обозримом будущем вряд ли снизится
Java, C#
- Уровень и опыт изучающего
→ Сложность языка и библиотек
- Цели изучающего
→ Возможности языка и библ.
- Желаемая специализация изучающего
→ Область применения языка (возможная и желательная)
- Ситуация на рынке труда
→ Востребованность языка
- Средняя или низкая сложность, легко начать, легко изучать
- Высокий уровень, прикладные программы, развитый GUI, энтерпрайз
- Интерфейс, службы для Windows, web-приложения (бэк-энд), тестирование
- Востребованность высокая, требуются программисты разного уровня
Perl
- Уровень и опыт изучающего
→ Сложность языка и библиотек
- Цели изучающего
→ Возможности языка и библ.
- Желаемая специализация изучающего
→ Область применения языка (возможная и желательная)
- Ситуация на рынке труда
→ Востребованность языка
- Высокая сложность самого языка, но работа на высоком уровне (в отличие от Assembler)
- Прикладные программы, автоматизация
- Unix, автоматизация, Web-приложения (бэк-энд), тестирование
- Востребованность низкая, язык устарел и отмирает
PHP, Python, Ruby
- Уровень и опыт изучающего
→ Сложность языка и библиотек
- Цели изучающего
→ Возможности языка и библ.
- Желаемая специализация изучающего
→ Область применения языка (возможная и желательная)
- Ситуация на рынке труда
→ Востребованность языка
- Низкая сложность языка, низкий порог вхождения, легкость использования
- Прикладные программы, автоматизация
- Web-приложения (бэк-энд), автоматизация, Unix, тестирование
- Востребованность высокая, специалистов много (кроме Ruby)
JS (JavaScript)
- Уровень и опыт изучающего
→ Сложность языка и библиотек
- Цели изучающего
→ Возможности языка и библ.
- Желаемая специализация изучающего
→ Область применения языка (возможная и желательная)
- Ситуация на рынке труда
→ Востребованность языка
- Низкая сложность языка, низкий порог вхождения, некоторая сложность правильного использования
- Прикладные программы
- Web-приложения (прежде всего фронт-энд, но и бэк-энд тоже)
- Востребованность высокая, специалистов не много
SQL
- Уровень и опыт изучающего
→ Сложность языка и библиотек
- Цели изучающего
→ Возможности языка и библ.
- Желаемая специализация изучающего
→ Область применения языка (возможная и желательная)
- Ситуация на рынке труда
→ Востребованность языка
- Низкая сложность языка, низкий порог вхождения, некоторая сложность правильного использования
- Реализация бизнес-логики на базе СУБД, энтерпрайз
-
Информационные системы, встроенные в СУБД, часто — банковский сектор
- Востребованность низкая, но стабильная
Специальные языки
- Уровень и опыт изучающего
→ Сложность языка и библиотек
- Цели изучающего
→ Возможности языка и библ.
- Желаемая специализация изучающего
→ Область применения языка (возможная и желательная)
- Ситуация на рынке труда
→ Востребованность языка
- Обычно все относительно просто
- Прикладные программы, работа с определенной платформой
- Информационные системы, энтерпрайз
- По-разному, но в среднем невысокая
Какой язык выбрать?
- Первый — лучше простой и прикладной
- Очень полезно для всех изучить C/C++
- Для работы полезны Java, C#, Objective C/Swift, PHP, Python, Ruby, JS в зависимости от предпочтений
- Все, что связано с вебом, набирает обороты
- SQL и спец.языки хороши для специалиста в некоторой предметной области (банковский сектор, экономика, производство, управление предприятиями)
Лучше всего изучить несколько языков, при этом
2–3 знать хорошо и практиковать
О языках программирования v2
By Valer Leontyev
О языках программирования v2
Человек, который хочет изучить программирование, сталкивается с выбором языка, который он будет изучать. На чем основывать этот выбор? Разница между языками большая, плюсов и минусов у каждого хватает и объективно сравнить их между собой невозможно. В начале карьеры легко сделать неправильный выбор, из-за которого в какой-то момент захочется вообще бросить изучение. Я хочу представить свой способ субъективного сравнения языков и дать свои небольшие рекомендации.
- 1,924