Pull to refresh

Comments 36

PinnedPinned comments
Судя по…
В ходе выполнения работы мной были изучены различные способы изучения языков программирования

… парень просто запостил на хабр свой реферат. И по-моему, как для уровня реферата старшеклассника или первокурсника, вполне сойдёт :)

Заголовок начинает раскрываться п пятом пункте и сразу закрывается. Чистый пиар питона.

Чтобы выбрать лучший язык для начинающих, я создал таблицу сравнения самых популярных языков по 10-ти бальной системе.

Если под "Скорость обработки" понимается реальное выполнение, то, учитывая что ASM получил 10, а C 6-7, Java должна была получить 0-1 (причем это зависит от платформы), а питон уйти глубоко в минус (вне зависимости от платформы).

Там вся табличка очень уж какая-то не объективная. Например, Python в два раза проще C#, но читабельность у C# выше.

Про "графический интерфейс" там вообще не понятно без зацепки о какой среде вообще речь.

Я даже перечитал свой сумбур из песочницы. Вроде бы структурность есть.. Логика есть... А тут ее почему то нет. Ну нет "выбора". Есть "тыканье кота в миску питона".

Чтобы сравнивать быстродействие разных языков, неплохо бы, из уважения к хабровчанам, привести бенчмаркинг на тестовой задаче. А просто сказать, что Питон всего на 30% медленее С - это очень мощный бросок на вентилятор

Нужно учитывать ещё то, что С можно компилировать с агрессивными оптимизациями, а ассемблер — не сильно. Среднестатистический человек скорее напишет одну и ту же программу на С и ассемблере так, что вариант на С окажется быстрее.

В ходе выполнения работы мной были изучены различные способы изучения языков программирования. Изучив и проанализировав их были выявлены плюсы и минусы каждого из способов.

Это курсач, трезвым такого не напишешь.

Чтобы выбрать лучший язык для начинающих, я создал таблицу сравнения самых популярных языков по 10-ти бальной системе.

Я не знаю, как вы её заполняли, но если будете просто подбрасывать кубик, результат будет не менее релевантным чем тот, что у вас. Но если вам больше всего нравится Пайтон (или вы знаете только его), можно ведь было просто сразу написать об этом, а другие языки можно было не упоминать :)

по 5-ти бальной системе, где 5 – наивысший балл, 1 – наименьший.

Извиняюсь за придирки, но разве в 5-бальной системе 5 может не быть наивысшим баллом?)

Среди всех с достаточно большим отрывом выигрывают видео-уроки. Знатоки,
которые создают эти уроки, на столько подробно и доступно всё
объясняют, что даже человеку, далёкому к данной теме не составит труда
разобраться в программировании.

Выскажу своё субьективное мнение.
1) В видео нет поиска по словам. Поиск посредством перемотки - боль. Пока будешь перематывать на нужный участок, можно двести раз погуглить и прочитать. Особенно радует, когда во время спора в чате один из спорящих даёт другому, в качестве аргумента, ссылку на 4-часовое видео с фразой - "Да вот, тут всё описано, посмотри".
2) Программисту необходимо заранее учиться читать тех. документацию. Просмотр видео вместо чтения на этот навык влияет, имхо, негативно. Да, всё зависит от человека - кто-то хорошо запоминает, читая, а кто-то лучше воспринимает ушами. Но учиться читать всё равно придётся и лучше начать делать это заранее.

разве в 5-бальной системе 5 может не быть наивысшим баллом?)

Вроде как у немцев школьные оценки наоборот ставились . 1 - отлично, 5 - очень плохо.

Да. У Пушкина 1 было высшим баллом, 4 низшим и ещё вроде был 0 как самый низший. Они тогда исправляли нули на четверки в дневнике.

Извиняюсь за придирки, но разве в 5-бальной системе 5 может не быть наивысшим баллом?)

в Чехии они идут наоборот, 1 это наивысший балл. От страны зависит)

В ходе выполнения работы мной были изучены различные способы изучения языков программирования. Изучив и проанализировав их были выявлены плюсы и минусы каждого из способов.

И какой из "способов изучения" ASM/C всподвиг ваше величество поставить их ниже питона?

В "таблице сравнения самых популярных языков" (TM) почему-то отсутствует мегапопулярный JavaScript, зато туда как-то затесался Assembler. :)

Ассемблер очень простой язык. Никаких UB, никаких однострочных головоломок в perl-style. Никаких ООП. Никаких 2 + '2'. Выучить просто.

Напомню, в вышеупомянутой таблице речь идет о популярных языках, к коим ассемблер вроде бы не относится.

Судя по…
В ходе выполнения работы мной были изучены различные способы изучения языков программирования

… парень просто запостил на хабр свой реферат. И по-моему, как для уровня реферата старшеклассника или первокурсника, вполне сойдёт :)

Когда много лет назад защищал диплом, многие студенты говорили фразу "мое решение эффективнее". И один препод задавал всем один и тот же вопрос - "А как вы измеряли эффективность?". Так вот. Без критериев и методов оценки ваша таблица - фигня.

Язык программирования это инструмент, как дрель. Чтобы был результат надо не просто язык учить, но осваивать анализ, алгоритмизацию, помните блок-схемы на доске? Прикладные аспекты. Даже написать игру lunar lander требуется знать физику. А язык не особо важен. Зная один, остальные легко осваивать. И уже тогда выбирать язык под задачу и не писать на джаве управление теплицей.

Можно подумать, многие читают инструкцию к инструменту, например, к дрели)

А вот как начиналось моё обучение программированию 50 лет назад:


Обучение началось с изучения систем счисления. Всё что я знал до этого момента про счёт – это арабские и римские цифры. А оказалось, что в повседневной жизни мы пользуемся десятичной системой счисления, а вот для электронно-вычислительных машин это совсем не подходит и в них используется двоичная система счисления, состоящая из нулей и единичек. А ещё есть восьмеричная система счисления от 0 до 7 и даже шестнадцатеричная от 0 до 9, а далее A, B, C, D, E, F. Последняя система вводила в ступор: символ «А» это же буква, а не цифра!

Закончилось оно таким уроком:


Представь себе кучу пронумерованных/подписанных спичечных коробков, в каждом из которых лежит какое-то количество спичек. Коробок со спичками – это и есть ячейка. Адрес ячейки – это номер коробка или его название. Теперь предположим, что надо узнать, сколько всего спичек хранится в пятом и десятом коробках вместе, т.е. выполнить операцию сложения, и такое же количество спичек положить в коробок с номером 15. Заглядываем в коробок №5 и запоминаем сколько в нём спичек, затем аналогичным образом поступаем с коробком №10, складываем запомненные значения. Это и есть то количество спичек, которое нужно положить в коробок №15. ЭВМ делает тоже самое, только не с коробками, а с ячейками памяти

С тех пор и программирую.


Невольно возник вопрос после прочтения абзаца:


Способы изучения языка Python\
литература
видео-уроки
курсы по программированию
наставник

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

Это и есть то количество спичек, которое нужно положить в коробок №15. ЭВМ делает тоже самое, только не с коробками, а с ячейками памяти

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

Такое ощущение, что текст генерировал очередной Корчеватель

У C простота 2/10? Категорически не согласен. В C на порядок-другой меньше концепций, чем в Python. И начинать лучше с C, потому что он проще и строже


P.S. И простота C++ при этом 3/10. Ну да, ну да

А чем Си со слабой типизацией (то есть с неявным приведением типов) строже сильной типизации питона?

 В C на порядок-другой меньше концепций, чем в Python

При этом одна из концепций - ручное управление памятью - сводит на нет всю "простоту" языка. Написать на C код с утечками памяти очень просто, а вот без них крайне сложно даже опытным людям.

C строже необходимостью аккуратной работы с памятью


сводит на нет всю "простоту" языка

Но язык то простой. Brainfuck, например, еще проще, потому что еще меньше концепций. И разве не существует миллион библиотек для автоматизации free и проверок, если уж не нужен такой низкий уровень?

А зачем учить простой язык на котором сложно писать работающие программы? Может лучше взять язык чуть посложнее, но на котором стрельнуть в ногу будет сложнее, и который более востребован сейчас? Ручная работа с памятью нужна только в немногих сферах разработки. Гораздор более широкая часть разработки использует языки с GC.

Вот выучит человек C, станет си-джуном. Куда он сможет устроиться на работу?

Может лучше взять язык чуть посложнее

"чуть" — можно, например Lua. А не Python и прочее ООП. ООП востребовано, но начинать лучше с элементарного


Вот выучит человек C, станет си-джуном

Пусть потом выучит например Python и станет Python-джуном. После C это не займет много времени

Так питон можно учить и без ООП. Более того, там много функций сделаны не как методы, а именно как функции (map, len, etc). Там functools в комплекте есть. И в нём есть очень много концепций из разных языков: генераторы, асинхронщина, ООП, ФП, типы.
Какой смысл учить один язык без ООП, чтобы потом для изучения ООП переключиться на другой?
«Вот, ученик, ты выучил Си. Теперь мы будем учить другой язык с другими парадигмами и другим синтаксисом, так что 90% знаний из си тебе не пригодится»
Там functools в комплекте есть

Там вообще так много всего в комплекте есть, что и учить, казалось бы, ничего не нужно — только синтаксис и интерфейсы библиотек


Какой смысл учить один язык без ООП, чтобы потом для изучения ООП переключиться на другой?

Выучить два языка вместо одного, очевидно же. Конкретно для Python на C еще и расширения писать можно

Какой способ лучше всего подходит, чтобы начать изучать программирование?

Начать программировать.


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

Любой, который не будет отвлекать от азов. С, Pascal, Python, Javascript. ООП на первом этапе не нужно. Язык — это инструмент. Начиная учиться пользоваться молотками, выбирайте самый простой.

Пост напоминает курсовую работу. В том числе и по уровню.

Пост напоминает курсовую работу

Только не в программистском ПТУ, а в педагогическом.

Типичная статья из дилогии "как войти в IT/как у меня не получилось войти в IT".

Программирование - это процесс управления данными при помощи ЭВМ. Первоочередной вопрос, который стоит перед программистом: какие задачи с данными я хочу решать? Из него уже проистекают прочие вопросы. Например: какие программы я хочу создавать? Какие проблемы автоматизации я хочу решать? А выбор языка - это уже побочное действие. Ну, хочешь в web - учи python, php, is. Хочешь писать приложения для десктопа - смотри языки с буквой C в названии. Часть языков подойдëт для программирования микроконтроллеров, терминалов, робототехники, бортовых компьютеров. Это ничего не значит, если ты не любишь искать логику в обработке данных, превращать задачу в алгоритм, разбираться с тем, как работают вычислительные машины и сети.

Отведя курс по джаве уверен, что правильно научиться кодить без препода анрил

Закрепляются ошибочные понимания, а переучиваться больнее, чем учиться

Чтобы научиться программировать нужно поверхностно самому изучить 2-3 языка, чтобы на своём опыте понять, что в них общего и чем отличаются. Далее уже сделать осознанный выбор с учётом опыта и того, что требуется для реализации текущих задач в работе. А сделать разовый теоретический выбор на базе чужого опыта не получится, выбор будет не правильный. Нельзя выбрать между свининой и говядиной, если ты всю жизнь ел только овощи и никакие статьи тебе не помогут. Надо понадкусывать и в разных блюдах и не один раз.

Sign up to leave a comment.

Articles