LINUX.ORG.RU

Python для школьника

 , ,


3

1

Для поступления в желаемый универ надо сдать информатику. Не сильно сложно: немного алгоритмов, императивного программирования и декларативного (SQL). Cпециальность не сильно айтишная: дизайн, графика, etc.

Выбор языка программирования – свободный. На экзамене лишь предоставляют задание. Выбор пал на Python 3, поскольку множество литературы нескучной для начала. Платформа – естественно GNU/Linux (Ubuntu). Как варианты рассматривались еще языки Pascal, C, JavaScript (sic!), Java, C#.

На повестке дня выбор инструментария. Понятно, что консолька и vim/nano – это обязательно. Но сейчас скорее вопрос стоит между VS Code, Spyder и Kdevelop. Хотелось бы статический анализатор (aka tidy), дебагер и автокомплит. Есть истории успеха? Может кто тоже начинал с Python? Что стоит учесть?

Дискач.

VS Code, Spyder и Kdevelop

Я думаю, что для обучения можно обойтись чем-то менее громоздким, например KWrite/Kate.

статический анализатор

pylint, flake8, сотни их

дебагер

pdbpp и ручная расстановка breakpoint()'ов. Также не стоит забывать про логи.

автокомплит

ИМХО, для обучения оно скорее вредно, тем более для Python, где основные модули стандартной библиотеки легко запоминаются по мере использования.

Также рекомендую прививать школьнику привычку делать RTFM, прежде, чем гуглить и перелопачивать StackOverflow. Мне бы это пять лет назад сэкономило кучу времени.

Singularity ★★★★ ()
Последнее исправление: Singularity (всего исправлений: 1)
Ответ на: комментарий от KennyMinigun

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

Deleted ()
Ответ на: комментарий от Singularity

Спасибо за ответ.

pylint, flake8, сотни их

Имелось ввиду, чтоб оно было хорошо интегрировано. Как например в процессе написания подчеркивало красным и выводило диагностику.

Также рекомендую прививать школьнику привычку делать RTFM, прежде, чем гуглить и перелопачивать StackOverflow.

Хоть я и согласен, но тут, к сожалению, по пути наименьшего сопротивления RTFM не всегда выходит. Нагуглить решение не есть плохо, если его понять. А вот чтоб хотеть понять нужен интерес.

Но поскольку обучение не будет в форме «сделай то-то, я проверю», то, думаю, подобных проблем быть не должно.

KennyMinigun ★★★★★ ()

Понятно, что консолька и vim/nano – это обязательно.

Зачем?

Хотелось бы статический анализатор

Для питона, да ещё на стадии знакомства, совсем не актуально.

Но сейчас скорее вопрос стоит между VS Code, Spyder и Kdevelop

Да, саблайм с линтерами, и вперёд.

vvn_black ★★★★★ ()

Выбор пал на Python 3, поскольку множество литературы нескучной для начала.

А ребёнка вообще, кто-нибудь спрашивал, оно в принципе надо ему или нет? Питон - не лучший выбор в качестве обучения именно программированию, алгоритмам и т.п.

vvn_black ★★★★★ ()
Последнее исправление: vvn_black (всего исправлений: 1)
Ответ на: комментарий от vvn_black

консолька

Зачем?

Базовое понимание, что скрипт – лишь текстовый файл, который можно запустить интерпретаатором. Никакого хардкора.

Хотелось бы статический анализатор

Для питона, да ещё на стадии знакомства, совсем не актуально.

Ну, идея была такова, что подскажет как сделать лучше/правильнее. А заодно и что-то новое подскажет.

Да, саблайм с линтерами, и вперёд.

Не, проприетарщина гуляет лесом. Я даже пока относительно pycharm сомневаюсь (хотя community == open source)

KennyMinigun ★★★★★ ()
Ответ на: комментарий от vvn_black

А ребёнка вообще, кто-нибудь спрашивал, оно в принципе надо ему или нет?

Да, идея походит не от меня :)

Питон - не лучший выбор в качестве обучения именно программированию, алгоритмам и т.п.

Задача научится мыслить абстрактно и понимать логику. Алгоритмы на экзамене уровня бинарного поиска, поиска найдольшей последовательности, продолжение последовательности с пропущенными данными по заданным правилам, и т.д. Т.е. не computer science не пахнет, скорее просто логика.

Есть что-то лучше? Я даже думал поковыряться в Scratch.

KennyMinigun ★★★★★ ()

паскаль получше питона для совсем новичка, он потупее

хотя смотря какое задание.

и если специальность вообще не программистская, то вариантов мало, но питон можно, да. тогда vscode

lovesan ★☆ ()
Ответ на: комментарий от KennyMinigun

Задача научится мыслить абстрактно и понимать логику.

Для этого нужна доска, мел и нормальный преподаватель.) Для объяснения что такое алгоритм, на примере НОД или НОК, большего и не надо.

Алгоритмы на экзамене уровня бинарного поиска, поиска найдольшей последовательности, продолжение последовательности с пропущенными данными по заданным правилам, и т.д.

Кмк, что-то типа Паскаля, чтобы низкоуровнево, но без выстрелов в ногу.

Это опять же, если надо разбираться, а если нужен результат, то можно и питон, но здесь вероятность большая, что будет знание питона, а не программирования.

vvn_black ★★★★★ ()

Pycharm Community

Нужно учиться читать доки и делать примеры, очевидно. А вообще есть показательная литература , именно 4 издание, на русском. Однако, ни автора, ни названия уже не вспомню. Нагуглишь сходу, типа «классика».

anonymous ()
Ответ на: комментарий от KennyMinigun

А, и правда, обилие неизвестных опций может испугать. Хороший совет, спасибо за напоминание.

Это лишь значит, что 2-3 разных дня нужно потыкать pycharm вместе, и всё. И это в _худшем_ случае.

anonymous ()

Выбор языка программирования – свободный. На экзамене лишь предоставляют задание. Выбор пал на Python 3

Жесткач. С другой стороны, дитё точно не станет программистом после такого. Так что может и правильно.

bread ()

PyCharm однозначно - мечта юниора. Ну если железо позволяет конечно. Не знаю осталось ли ещё комьюнити эдишн или они уже в Е фазе, но тем не менее это наигоднейший вариант.

Сам я не начинал с python, но ряд юниоров смогли стартануть только с этим поделием под рукой, в моём присутсвии по крайней мере.

Если нет, то C# + офтопик + VisualStudio. Понимаю что за такое и отхватить можно в приличном обществе, но студентоту пасут(по-крайней мере какое-то время назад пасли) именно на этой связке. Т.к. дёшево и под виндой, да и язык кайфовый, что ни говори.

Как по мне - про порог вхождения и python ооочень всё преувеличенно. На старте нужна статическая типизация и минимум функциональщины.

Поэтому лично я топил бы таки за C#, т.к. нет любви с системными абстракциями равно как и секса с утиной типизацией.

pon4ik ★★★★★ ()

На повестке дня выбор инструментария. Понятно, что консолька и vim/nano – это обязательно. Но сейчас скорее вопрос стоит между VS Code, Spyder и Kdevelop.

Я думаю, с

Cпециальность не сильно айтишная: дизайн, графика, etc.

обучающийся тебя пошлёт и достанет Notepad++ с редактором.

anonymous ()

Понятно, что консолька и vim/nano – это обязательно.

Только не vim. Чем меньше этого BSD/GNU шлака из 80х - тем лучше. Тем более, что специальность не особо айтишная, смысла грузить людей старьём из эпохи юности Столлмана нет никакого.

seiken ★★★★★ ()
Ответ на: комментарий от lovesan

паскаль получше питона для совсем новичка, он потупее

вовсе не факт. Когда нам после Бейсика пытались что-то рассказать про Паскаль и его явную систему типов, первый возникший в голове вопрос был «а нафига?» И все правильные ответы мы бы тогда не поняли, т.к. поиск всех ошибок проводился тупо запуском проги, и заканчивался, когда эта прога «работала», т.е. в конце соотв. урока. А проблем с тормозами из-за неявной типизации в бейсике никогда не были проблемой, т.к. самая сложная прога вычисляла приближенное значение тригонометрической функции с очень хреновой точностью, и там просто негде было тормозить, даже на i386.

seiken ★★★★★ ()
Ответ на: комментарий от seiken

Дык после бейсика надо мозги с хлоркой отстирывать. Какой диверсант внедрил бейсик в образование я поражаюсь (хотя питон еще хуже). Мне повезло, что я бейсик просто прогулял и начал сразу с паскаля. Правда долго еще это поделие преследовало в жизни сначала как VB, потом дотнет. Целое поколение было испорчено этой дрянью.

bread ()
Ответ на: комментарий от bread

Какой диверсант внедрил бейсик в образование я поражаюсь (хотя питон еще хуже).

Наверное, тот, который понимал, что эпоха программистов как непонятных нердов, протыкающих дырочки на перфокартах, пройдет, и программировать смогут не только профессиональные программисты. Нет?

seiken ★★★★★ ()
Последнее исправление: seiken (всего исправлений: 1)

Возьми VS Code и обвешивай плагинами по мере необходимости. Изначально только сразу все не старайся использовать, включай по одному и смотри, удобно/неудобно. Иначе закопаешься настраивать.

Deleted ()
Ответ на: комментарий от bread

Какой диверсант включил C++ в ВУЗовскую программу, понять бы. Наверно, какой-то старый извращенец с преждевременной оптимизацией и проблемами с логикой. Целое поколение было испорчено байтоебством и множественным наследованием там, где в этом нет необходимости.

Python’а достаточно для основных задач.

Deleted ()
Ответ на: комментарий от Deleted

Целое поколение было испорчено

Это поколение написало автокад, фотошоп, микрософт офис. А чем прославилась молодежь? Веб-макакингом на питоне, где даже 1000 rpm - это офигенная нагрузка?

Uncle_Bobby ()