[Python, Программирование, Изучение языков] Почему Python — плохой выбор для первого языка программирования?

Автор Сообщение
news_bot ®

Стаж: 6 лет 7 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
21-Авг-2020 15:31


Так как я веду несколько технических групп и чатов, то часто сталкивался с вопросом от подписчиков о том, с какого же языка лучше начать изучать программирование и информатику. Очень часто кто-то советует именно Python. Я в корне не согласен с этим советом. Мне нравится этот язык, и я ничего не имею против него, он прост и удобен. Но есть кое-какие аргументы против того, чтобы поставить его на место вашего первого языка программирования. Оговорюсь, что всё сказанное далее является субъективным мнением автора и не претендует на истину.
Итак, почему…
Ниже на картинке я привел пример, как можно с помощью маленькой функции обработать матрицу и вернуть структуру, соответствующую транспонированной матрице.

Транспонирование матрицы — это операция над матрицей, при которой ее строки и столбцы меняются местами. Кто уже начинал изучать аналитическую геометрию (линейную алгебру), тот сталкивался с этой простейшей задачей. Иногда это задание дают на уроках информатики в качестве сложных задач на обработку двумерных массивов, которые мы и называем матрицами. Что ж, кому-то может показаться и вовсе несложным. Однако, для большинства начинающих и людей, не сталкивающихся с программированием, понять, что такое двумерный/многомерный массив — это непростая задача. Вы можете не поверить, но есть много очень замудренных задач на обработку многомерных массивов, над которыми придется подумать даже опытному разработчику.
Но вернемся к нашей (более-менее легкой ?) задачке про транспонирование. Как вы видите, в Python задачу можно решить буквально за пару строчек кода. И всё это благодаря сложным встроенным функциям и методам, которые очень сильно облегчают ваш мыслительный процесс. В результате программируя на Python в качестве первого своего языка, вы надеваете на себя розовые очки и начинаете считать, что программирование — это просто. В этом есть и доля правды, и в этом есть огромный подвох.
Есть другие языки, более низкого уровня, которые помогут вам понять глубину, понять базу, понять структуру, снять розовые очки, убрать синтаксический сахар и как следует подумать над теми вещами, которые ранее вы принимали как должное. Какой из этого вывод? Если вы хотите научиться думать, по-настоящему понимать как работает железо, то лучше начать с низкого уровня. Поэтому полезнее будет начать с Assembler или C.
Во-первых, это даст вам лучшее представление о том, как работает процессор и периферийная электроника в вашем ПК.
Во-вторых, вы начнете понимать сообщения об ошибках в операционной системе.
В-третьих, последующие языки высокого уровня, базирующиеся на крепком фундаменте низкоуровневых основ, покажутся вам более прозрачными и понятными в обращении.
Думаю, что можно еще привести кучу плюсов к тому, чтобы начать с низкого уровня. Зачастую, люди, изучающие Python, по привычке подключают в свой код кучу библиотека ради реализации каких-то простейших функций. Логично предположить, что это сильно утяжеляет код и делает его медленным. А если еще вспомнить, что даже эффективно написанный python-код примерно в 1000 раз медленнее аналогичного кода на C/C++, то представьте себе какая производительность в итоге получится. Конечно же не всем разработчикам нужно писать ПО, которое работает в режиме реального времени и требует мгновенных реакций с минимальными задержками. Не всем нужно писать ААА-игры.
Тем не менее, обратите внимание на текущую ситуацию в программном обеспечении. Если раньше нужно было 8-битный процессор, чтобы запустить спутник в космос, то сейчас у нас тормозит несколько вкладок в браузере при 2-4 ядерном 64-битном CPU. Так может быть причина как раз в разработчиках, а не в «слабом» железе?
Самый ранний из найденных космических аппаратов, в которых стояли не микросхемы средней степени интеграции, а именно монолитный микропроцессор (8-битный RCA 1802) – это спутник Magsat, запущенный 30 октября 1979 года.

В завершении хотелось бы сказать, что все языки программирования — это великие достижения в IT-области. Но чтобы нам стать настоящими профессионалами и экспертами, всё равно придется узнать то, с чего всё начиналось, вспомнить об истоках, математике, алгоритмах, ассемблере и даже об электронике и физике. Все знания должны сплетаться в вашей голове в единую картину, в крепкую логическую цепочку. Последнюю получится построить только тогда, когда мы начнем от корня технологий, начнем с самого нижнего уровня.
Напишите в комментариях, согласны ли вы с такой идеей? Или же вы придерживайтесь другого подхода?
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_python, #_programmirovanie (Программирование), #_izuchenie_jazykov (Изучение языков), #_python, #_programmirovanie (программирование), #_it, #_vybor_jap (выбор яп), #_python, #_programmirovanie (
Программирование
)
, #_izuchenie_jazykov (
Изучение языков
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 06-Окт 19:09
Часовой пояс: UTC + 5