Сегодня рассмотрим плохую статью про выбор способа изучения программирования. За неделю статья получила 20 минусов, а автор 7 минусов в карму. Давайте критически посмотрим, где есть проблемы.
Актуальность является смесью шаблонов вроде космические корабли бороздят просторы большого театра и откровенной лжи, когда ставится знак равенства между "достаточно просто уметь пользоваться компьютером" и "карьерой в программировании". Но это мелочи.
Самое мясо начинается дальше. Автор формирует таблицу сравнения "самых популярных языков". Сразу возникает много вопросов, которые следует учесть студентам в рамках работы над курсовыми и дипломными работами.
1. Выбор ЯП. Почему эти 6 языков и по какой метрике они самые популярные? Например, по TIOBE шестым по популярности идёт Visual Basic. По версии PYPL С и С++ объединены, а в топ шесть входят JavaScript (третий) и PHP (шестой). Согласно обзору от stackoverflow в лидерах JavaScript, SQL, Python, Java, C#, bash. HTML я убрал как язык разметки, а не программирования, а TypeScript грубо считаю диалектом JS.
Кстати, по этому же обзору Docker — самая популярная технология в 2022 году, отмеченная как fundamental tool for Professional Developers, как и git в обзоре 2021 года.
Как можно выбирать?
— сослаться на рейтинг
— взять набор, например, разных представителей — один компилируемый язык, один интерпретируемый, один с типизацией, второй без
— субъективно отобрать произвольные 6 языков. Почему эти? Я автор, я так вижу. Но не надо говорить тогда, что это самые популярные ЯП. Вы взяли их, так как они в вашем информационном поле
2. Критерии для сравнения. Вот тут совсем дичь. "Скорость обработки"? А в чём мы измеряем и на какой задаче? Например, Python из-за GIL в многопоточном варианте для cpu-intensive задач — просто ужас.
Как минимум, критерии должны отвечать двум требованиям:
— полнота, то есть все важные характеристики должны быть учтены
— достаточность, то есть никакой критерий выкинуть нельзя
Критерии должны быть подробно описаны и словами с обоснованием полноты и достаточности. Например, если мы ищем ЯП для формирования программы обработки таблицы со 100 записями и 5 полями каждая, то критерий "производительность" нам не нужен. Если все альтернативы по критериям имеют одинаковую оценку, то критерий плохой и должен быть удалён.
Если мы говорим о выборе ЯП для начинающих разработчиков, то скорость обработки нам тоже не требуется как критерий. Что нам может быть важно? Небольшое количество конструкций для запоминания, отсутствие магии, доступность IDE для работы, понятные сообщения об ошибках и быстрая обратная связь (когда компилятор бьёт по рукам и говорит, где конкретно ошибка), доступность литературы и иных обучающих материалов. Вот эти пункты могут выступать кандидатами в критерии.
3. Оценки по критериям. Читабельность у C# 7, а у Python 6? Мммм? А у C++ тоже 6? А вы видели крестики-нолики на шаблонах? Как это оценивалось? Идеальный критерий имеет объективную численную оценку. В Python 33 ключевых слова, в С++ таких слов 92. Это факты. Субъективная оценка — зло, которого следует избегать. Если что-то надо-таки оценивать, то требуется множество экспертов и какой-то формализованный способ сбора мнений, например, метод парных сравнений, который использовали в фильме "Социальная сеть" 2010 года (сайт для сравнения девушек как студенческий проект Цукерберга).
Выбор и обоснование критериев — трудозатратная задача. Но без толковых критериев весь сравнительных обзор становится бесполезным и идёт в /dev/null.
Если понравилась заметка – пробивайте пальцы вверх!
#sudo #edu #devfm