[Python, Программирование, Изучение языков] Почему Python — плохой выбор для первого языка программирования?
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Так как я веду несколько технических групп и чатов, то часто сталкивался с вопросом от подписчиков о том, с какого же языка лучше начать изучать программирование и информатику. Очень часто кто-то советует именно Python. Я в корне не согласен с этим советом. Мне нравится этот язык, и я ничего не имею против него, он прост и удобен. Но есть кое-какие аргументы против того, чтобы поставить его на место вашего первого языка программирования. Оговорюсь, что всё сказанное далее является субъективным мнением автора и не претендует на истину.
Итак, почему…
Ниже на картинке я привел пример, как можно с помощью маленькой функции обработать матрицу и вернуть структуру, соответствующую транспонированной матрице.
Транспонирование матрицы — это операция над матрицей, при которой ее строки и столбцы меняются местами. Кто уже начинал изучать аналитическую геометрию (линейную алгебру), тот сталкивался с этой простейшей задачей. Иногда это задание дают на уроках информатики в качестве сложных задач на обработку двумерных массивов, которые мы и называем матрицами. Что ж, кому-то может показаться и вовсе несложным. Однако, для большинства начинающих и людей, не сталкивающихся с программированием, понять, что такое двумерный/многомерный массив — это непростая задача. Вы можете не поверить, но есть много очень замудренных задач на обработку многомерных массивов, над которыми придется подумать даже опытному разработчику.
Но вернемся к нашей (более-менее легкой ?) задачке про транспонирование. Как вы видите, в Python задачу можно решить буквально за пару строчек кода. И всё это благодаря сложным встроенным функциям и методам, которые очень сильно облегчают ваш мыслительный процесс. В результате программируя на Python в качестве первого своего языка, вы надеваете на себя розовые очки и начинаете считать, что программирование — это просто. В этом есть и доля правды, и в этом есть огромный подвох.
Есть другие языки, более низкого уровня, которые помогут вам понять глубину, понять базу, понять структуру, снять розовые очки, убрать синтаксический сахар и как следует подумать над теми вещами, которые ранее вы принимали как должное. Какой из этого вывод? Если вы хотите научиться думать, по-настоящему понимать как работает железо, то лучше начать с низкого уровня. Поэтому полезнее будет начать с Assembler или C.
Во-первых, это даст вам лучшее представление о том, как работает процессор и периферийная электроника в вашем ПК.
Во-вторых, вы начнете понимать сообщения об ошибках в операционной системе.
В-третьих, последующие языки высокого уровня, базирующиеся на крепком фундаменте низкоуровневых основ, покажутся вам более прозрачными и понятными в обращении.
Думаю, что можно еще привести кучу плюсов к тому, чтобы начать с низкого уровня. Зачастую, люди, изучающие Python, по привычке подключают в свой код кучу библиотека ради реализации каких-то простейших функций. Логично предположить, что это сильно утяжеляет код и делает его медленным. А если еще вспомнить, что даже эффективно написанный python-код примерно в 1000 раз медленнее аналогичного кода на C/C++, то представьте себе какая производительность в итоге получится. Конечно же не всем разработчикам нужно писать ПО, которое работает в режиме реального времени и требует мгновенных реакций с минимальными задержками. Не всем нужно писать ААА-игры.
Тем не менее, обратите внимание на текущую ситуацию в программном обеспечении. Если раньше нужно было 8-битный процессор, чтобы запустить спутник в космос, то сейчас у нас тормозит несколько вкладок в браузере при 2-4 ядерном 64-битном CPU. Так может быть причина как раз в разработчиках, а не в «слабом» железе?
Самый ранний из найденных космических аппаратов, в которых стояли не микросхемы средней степени интеграции, а именно монолитный микропроцессор (8-битный RCA 1802) – это спутник Magsat, запущенный 30 октября 1979 года.
В завершении хотелось бы сказать, что все языки программирования — это великие достижения в IT-области. Но чтобы нам стать настоящими профессионалами и экспертами, всё равно придется узнать то, с чего всё начиналось, вспомнить об истоках, математике, алгоритмах, ассемблере и даже об электронике и физике. Все знания должны сплетаться в вашей голове в единую картину, в крепкую логическую цепочку. Последнюю получится построить только тогда, когда мы начнем от корня технологий, начнем с самого нижнего уровня.
Напишите в комментариях, согласны ли вы с такой идеей? Или же вы придерживайтесь другого подхода?
===========
Источник:
habr.com
===========
Похожие новости:
- [IT-стандарты, Браузеры] Прощай, Internet Explorer (перевод)
- [Высокая производительность, Мозг, Управление проектами, Управление разработкой] Как создать KPI по стрессу — и превратить его из врага в помощника
- [Data Mining, Big Data, Терминология IT] К чему прилагаются Business Intelligence (BI) — системы для бизнес-анализа?
- [Исследования и прогнозы в IT, Управление персоналом, Карьера в IT-индустрии] Спрос на айтишников в 2020: менять работу или ждать
- [Разработка веб-сайтов, IT-стандарты, IT-компании] 30 английских аббревиатур, которые должен знать каждый начинающий веб разработчик (перевод)
- [] Список полезных IT-ресурсов для специалистов из сферы
- [Гаджеты, Смартфоны, IT-компании] В сети появились первые бенчмарки смартфона Microsoft Surface Duo
- [Информационная безопасность, Социальные сети и сообщества, IT-компании] Вновь утечка: в сети оказались данные 235 миллионов пользователей Instagram, YouTube и TikTok
- [Терминология IT, Хакатоны, Прототипирование, Искусственный интеллект, Будущее здесь] Стартовал прием заявок на участие в масштабном онлайн-хакатоне «Лидеры цифровой трансформации»
- [Гаджеты, Софт, Звук, IT-компании] Бывший инженер Apple рассказал, как компания втайне разрабатывала модификацию iPod для военных в 2005 году
Теги для поиска: #_python, #_programmirovanie (Программирование), #_izuchenie_jazykov (Изучение языков), #_python, #_programmirovanie (программирование), #_it, #_vybor_jap (выбор яп), #_python, #_programmirovanie (
Программирование
), #_izuchenie_jazykov (
Изучение языков
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 15:46
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Так как я веду несколько технических групп и чатов, то часто сталкивался с вопросом от подписчиков о том, с какого же языка лучше начать изучать программирование и информатику. Очень часто кто-то советует именно Python. Я в корне не согласен с этим советом. Мне нравится этот язык, и я ничего не имею против него, он прост и удобен. Но есть кое-какие аргументы против того, чтобы поставить его на место вашего первого языка программирования. Оговорюсь, что всё сказанное далее является субъективным мнением автора и не претендует на истину. Итак, почему… Ниже на картинке я привел пример, как можно с помощью маленькой функции обработать матрицу и вернуть структуру, соответствующую транспонированной матрице. Транспонирование матрицы — это операция над матрицей, при которой ее строки и столбцы меняются местами. Кто уже начинал изучать аналитическую геометрию (линейную алгебру), тот сталкивался с этой простейшей задачей. Иногда это задание дают на уроках информатики в качестве сложных задач на обработку двумерных массивов, которые мы и называем матрицами. Что ж, кому-то может показаться и вовсе несложным. Однако, для большинства начинающих и людей, не сталкивающихся с программированием, понять, что такое двумерный/многомерный массив — это непростая задача. Вы можете не поверить, но есть много очень замудренных задач на обработку многомерных массивов, над которыми придется подумать даже опытному разработчику. Но вернемся к нашей (более-менее легкой ?) задачке про транспонирование. Как вы видите, в Python задачу можно решить буквально за пару строчек кода. И всё это благодаря сложным встроенным функциям и методам, которые очень сильно облегчают ваш мыслительный процесс. В результате программируя на Python в качестве первого своего языка, вы надеваете на себя розовые очки и начинаете считать, что программирование — это просто. В этом есть и доля правды, и в этом есть огромный подвох. Есть другие языки, более низкого уровня, которые помогут вам понять глубину, понять базу, понять структуру, снять розовые очки, убрать синтаксический сахар и как следует подумать над теми вещами, которые ранее вы принимали как должное. Какой из этого вывод? Если вы хотите научиться думать, по-настоящему понимать как работает железо, то лучше начать с низкого уровня. Поэтому полезнее будет начать с Assembler или C. Во-первых, это даст вам лучшее представление о том, как работает процессор и периферийная электроника в вашем ПК. Во-вторых, вы начнете понимать сообщения об ошибках в операционной системе. В-третьих, последующие языки высокого уровня, базирующиеся на крепком фундаменте низкоуровневых основ, покажутся вам более прозрачными и понятными в обращении. Думаю, что можно еще привести кучу плюсов к тому, чтобы начать с низкого уровня. Зачастую, люди, изучающие Python, по привычке подключают в свой код кучу библиотека ради реализации каких-то простейших функций. Логично предположить, что это сильно утяжеляет код и делает его медленным. А если еще вспомнить, что даже эффективно написанный python-код примерно в 1000 раз медленнее аналогичного кода на C/C++, то представьте себе какая производительность в итоге получится. Конечно же не всем разработчикам нужно писать ПО, которое работает в режиме реального времени и требует мгновенных реакций с минимальными задержками. Не всем нужно писать ААА-игры. Тем не менее, обратите внимание на текущую ситуацию в программном обеспечении. Если раньше нужно было 8-битный процессор, чтобы запустить спутник в космос, то сейчас у нас тормозит несколько вкладок в браузере при 2-4 ядерном 64-битном CPU. Так может быть причина как раз в разработчиках, а не в «слабом» железе? Самый ранний из найденных космических аппаратов, в которых стояли не микросхемы средней степени интеграции, а именно монолитный микропроцессор (8-битный RCA 1802) – это спутник Magsat, запущенный 30 октября 1979 года.
В завершении хотелось бы сказать, что все языки программирования — это великие достижения в IT-области. Но чтобы нам стать настоящими профессионалами и экспертами, всё равно придется узнать то, с чего всё начиналось, вспомнить об истоках, математике, алгоритмах, ассемблере и даже об электронике и физике. Все знания должны сплетаться в вашей голове в единую картину, в крепкую логическую цепочку. Последнюю получится построить только тогда, когда мы начнем от корня технологий, начнем с самого нижнего уровня. Напишите в комментариях, согласны ли вы с такой идеей? Или же вы придерживайтесь другого подхода? =========== Источник: habr.com =========== Похожие новости:
Программирование ), #_izuchenie_jazykov ( Изучение языков ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 15:46
Часовой пояс: UTC + 5