Питон как первый язык

psm-home

Как его учить? Какой букварь брать?

khachin

Не поверишь: открой справку. Всё во введении.

psm-home

Спасибо на добром слове, я как-то справился в свое время. Только в момент втыкания в питон у меня уже был опыт прогания и поэтому мне Dive Into Python хватило. А тут у человека нет никакого опыта программирования и что, самый правильный путь это открыть справку? Серьезно?

khachin

Справка содержит туториал. Первый же раздел: "1. Whetting Your Appetite"
Далее прямо по пунктам: типы данных, циклы, функции, классы... ошибки и исключения...
Всё с примерами. Реально для старта предостаточно.
С другой стороны, я был на крайнем севере с ГИС-обеспечением, к которому прилагался Питон. Другой литературы не было, познавал по этой.
Не исключаю, что может быть что-то лучшее. Мне, однако, вполне хватило прилагаемой справки и вводного курса в ней же.

yroslavasako

Не думаю. Мне кажется, начинать путь в программирование нужно с изучения соответствующих абстракций: машины тьюринга, нормальных алгоритмов макрова и лямбда исчислению. А уже потом трогать питон. Про типизацию читать ничего не надо, для питона этот концепт не значителен.

psm-home

Ок, спасибо за советы, пока решил предложить коллеге Learn Python The Hard Way, посмотрим, что будет.

ppplva

Система типов - единственное по сути значимое различие между языками.
Конечно, к черту типизацию, давайте плодить программистов-на-питоне!

YUAL

Это зависит от того хочешь ли ты сделаться прогером или язык программирования тебе нужен чисто чтоб автоматизировать какие-то действия или писать простые прикладные софтинкт для себя.
Во втором случае вся эта теория с машинами тьюринга не нужна. У меня вон одногрупник вполне освоил питон по туториалу и бодро юзает его для своих задач. Может пишет не идеальные в плане архитектуры и производительности программы, но ему хватает.

psm-home

начинать путь в программирование нужно с изучения соответствующих абстракций: машины тьюринга, нормальных алгоритмов макрова и лямбда исчислению
А если человек страшно далек от, скажем так, математики, но научиться программировать хочет? Если дать ему лямбда исчисление и нормальные алгоритмы Маркова, он с большой вероятностью забьет. Лучше уж пусть появится еще один "программист-на-питоне", все лучше, чем ничего.

YUAL

Для чего он хочет программировать? Для себя или за деньги для других? Во втором случае я за вариант айвенго. Лучше пусть забьёт, чем ещё один говнокодер.

yroslavasako

Система типов - единственное по сути значимое различие между языками.
с чего бы? Одни и те же зависимости между типами можно реализовать совсем разными способами.

Dasar

Одни и те же зависимости между типами можно реализовать совсем разными способами.
это как?
и разве зависимости между типами не входят в систему типов?

yroslavasako

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

durka82

Можно попробовать Non-Programmer Tutorial for Python или Изучаем Python.

apl13

Система типов - единственное по сути значимое различие между языками.
Гм.
А макропроцессор?

apl13

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

bav46

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

AlexV769

питон тут не лучший выход для начала
жирный +1. И типизация - не самое "больное" место. Самое больное - это иерархия кода, закопанная в ident. Ну и UTF-8... :)

YUAL

Ну и UTF-8...
а чё с ним?

spitfire

Говорят, в третьей версии починили.

YUAL

Да у меня и во второй особо проблем не было. Дописал в стандартный заголовок нового файла
 
 # -*- coding: utf-8 -*- 

apl13

Самое больное - это иерархия кода, закопанная в ident. Ну и UTF-8... :)
Посмотри на это так:
это иерархия кода в иденте, где наконец не надо ставить еще и фигурные скобки.

yroslavasako

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

6yrop

а отступами не выделяются?

yroslavasako

именно. Потому что скобочки часто используются в пределах одной строки. И это отдельная от оформления концепция.

6yrop

И это отдельная от оформления концепция.
все равно же код это последовательность символов, в чем принципиальная разница символов: разрыв строки, отступ или скобочка? Только в визуальном восприятии человеком, а это вопрос удобства. Можешь убедительно показать, почему скобочки удобнее?
И это отдельная от оформления концепция.

а зачем такое разделение?

yroslavasako

Кто сказал, что скобочки удобнее? Скобочки просто более явно выражены. Что для изучения программирования полезнее. Как и явно указанные типы. Вывод типов тоже гораздо удобнее явного их указания. Но если в первом языке программист будет обязан эти типы указывать он лучше поймёт их концепцию и зачем они нужны. Ну или вместо такого языка он может почитать TaPL, но большинству простые примеры покажут больше и будут понятнее чем книжка для любителей математической логики.

forvito

Помимо букваря я бы еще советовала какой-нибудь минимальный набор упражнений, например вот http://www.codecademy.com/ru/tracks/python
А еще сейчас стартует курс курсеры, но за него ничего сказать не могу.
Оставить комментарий
Имя или ник:
Комментарий: