Форум сайта python.su
1
День добрый.
Наверное уже тысячу раз отвечали на подобные вопросы, но возможно я задам их по своему, для меня это важно, прошу отнестись с пониманием и снисходительностью.
Суть вопросов в том, что начал учить Python, к сожалению семейные обстоятельства не позволяют сидеть по 3 и более часов за ПК, в основном вечером когда спят или по возможности на работе (читаю с телефона книги). Все очень медленно конечно, но дело не в этом. Учить - значит практикаваться, это ясно. Но со своего опыта, программисты, подскажите (научите), как понять, что нужно зазубривать, что помнить а что иметь ввиду и знать где искать. Например есть много строковых методов, много параметров форматирования, и подобное. Мне реально нужно их все заучивать, т.е. я должен знать на зубок? Правильно ли будет подход учить как иностранный язык - чем больше слов тем богаче понимание языка? Как разграничить глубину погружения в язык для новичка, чтобы и толк был и не завяз в ненужных (возможно пока) подробностях и нюансах?
С благодарностью и вниманием приму любые советы, подсказки и подзатыльники (обоснованные).
Офлайн
568
Зазубривать никогда ничего не надо. По крайней мере в точных науках. Нужно понимать, что ты делаешь, зачем и почему именно так. Я вас уверяю, невозможно знать весь справочный материал. Нереально, например, выучить и держать в памяти всю библиотеку .Net да и незачем совершенно. Под рукой всегда есть интернет, где можно посмотреть доку по любому модулю, современные ИДЕ обладают мощными средствами для помощи программисту, а всовременные языки программирования имеют средства для документирования программ. Всегда можно посмотреть в код неизвестного вам класса или функции, почитать комментарии и докстринги. Нет никакой нужны запоминать всю подряд информацию. Главный скилл программиста - способность алгоритмировать, вот его и нужно развивать.
Офлайн
253
Вы не написали для чего изучаете питон. Это может существенно изменить стратегию изучения.
Думаю что учить все не требуется. Желательно полностью прочитать основополагающие учебники, включая описание стандартной библиотеки. Надо чтобы вы поняли какие задачи можно решить, и в каком месте искать рецепт по их решению. Если задачи будут часто возникать оно само выучится, если нет - оно вам и не надо значит.
Важно разобраться с тем как работает интерпретатор, загрузка модулей, как имена связываются со значениями, как идет поиск имен, на зубок надо знать как использовать help проводить интроспекцию объектов -чтобы можно было при желании разобраться с незнакомыми модулями. Очевидно надо знать основняе управляющие конструкции и связанный с этим вопрос что такое итератор в питоне. Что из себя представляют классы, метаклассы что такое mro и зачем он нужен.
Важно почитать книги вообще про стили программирования.
Обязательная часть чтение чужих кодов. Благо в питоне это просто.
Если телефон позволяет поставьте на него питон. Программировать неудобно, но при чтении книги посмотреть как работает та или иная конструкция можно.
Офлайн
1
Спасибо за подсказки и советы.
Немного конкретизирую на примере из ‘Изучаем Python’ М.Лутц, приведены строковые методы. Мне по идее нужно их понять и выучить, чтобы двигаться дальше, или придется подсматривать в хелпе что обозначает тот илииной метод, раз я его на изусть не помню?
S.capitalize()
S.ljust(width )
S.center(width ))
S.lower()
S.count(sub [, start ])
S.lstrip()
S.encode([encoding ])
S.maketrans(x[, y])
S.endswith(suffix [, start ])
S.partition(sep)
S.expandtabs()
S.replace(old, new )
S.find(sub [, start ])
S.rfind(sub [,start ])
S.format(fmtstr, *args, **kwargs)
S.rindex(sub [, start ])
S.index(sub [, start ])
S.rjust(width )
S.isalnum()
S.rpartition(sep)
S.isalpha()
S.rsplit([sep])
S.isdecimal()
S.rstrip()
S.isdigit()
S.split([sep ])
S.isidentifier()
S.splitlines()
S.islower()
S.startswith(prefix [, start ])
S.isnumeric()
S.strip()
S.isprintable()
S.swapcase()
S.isspace()
S.title()
S.istitle()
S.translate(map)
S.isupper()
S.upper()
S.join(iterable)
S.zfill(width)
Пока точно не определися, в каком направлении буду работать (заниматься), склонен к прикладным программаи, но интереснв и фреймвеки.
Да, интерпритарот установил на телефон. Пока читаю Лутца.
Офлайн
857
OriginatorЭто тонкий вопрос.
как понять, что нужно зазубривать, что помнить а что иметь ввиду и знать где искать.
Отредактировано py.user.next (Авг. 18, 2015 12:53:37)
Офлайн
1
py.user.nextСпасибо за хороший сравнительный образ.
У тебя какбы проблема первого языка. Он самый трудный, потому что учишь всё в первый раз
Офлайн
568
OriginatorГосподи, перестань ныть, не ты один тут такой, не ты первый кто меняет профессию, не ты один кому за….
Но у меня немного не стандартный случай. У меня в голове образы языков которые учил в свое время - Бейсик, Фортран. Да ребята, я старик в вашем коллективе по возрасту. Мне за 40 лет, увы. Но, я реально, всегда отличался хорошим программированием
Офлайн
39
Мой первый комп тоже был ZX-Spectrum и что? Я тоже учил отмороженный бейсик, потом паскаль, потом делфи, потом матлаб потом… Да фиг уже всего упомнишь. Мне тоже уже за 30. Реально. Берите и учите. Если учиться самостоятельно не разучились и хоть более или менее математический склад ума, то все у Вас получится…
Офлайн
1
Ну я и не ныл, может так показалось, сорри.
Просто….. ну хотелось получить немного направление в правильнов векторе изучения, а то сам себя запутал и все переусложнил.
Спасибо всем за советы и подзатыльники 
Офлайн
857
OriginatorНу, и какой из них ты знаешь полностью? Или на сколько процентов?
У меня в голове образы языков которые учил в свое время - Бейсик, Фортран.
OriginatorА что на нём можно писать? Я только сейчас взялся за Asm, так как понадобилась обратная инженерия в одном деле (дизассемблировании dll-шки).
немного писал на Асемблере (еще под ZXSpectrum).
Отредактировано py.user.next (Авг. 19, 2015 01:03:13)
Офлайн