@N_lible
Новичок в IT, DATA SCIENCE.

Как у вас происходило обучение python?

Для меня язык программирования Python первый, и на основе этого вопрос. Я прочёл книгу Марка Лутца "A byte of python" и во время прочтения и в конце книги было пару заданий, например вот одна из них: ""Создайте собственную программу «Адресная книга», работающую из командной строки и позволяющую просматривать, добавлять, изменять, удалять или искать контактные данные ваших знакомых. Кроме того, эта информация также должна сохраняться на диске для последующего доступа. Это достаточно простая задача, если думать о ней в терминах, которые мы до сих пор проходили.""
Дело в том что для меня это совсем не простая задача, смотрю на начало кода и сильно туплю, чувствую что писать буду это в лучшем случае неделю. Знаю что практика наше всё, поэтому начну пробовать на codewars или его подобных сайтах, параллельно читая книгу Лутца "Изучаем python", либо "Простой python: Современный стиль программирования" Автор Билл Любанович.
И собственно сам вопрос. Как у вас шло изучение? Хватило ли вам одной книги чтобы написать программу которая описана выше? Если вы уже пишите на python напишите пожалуйста как вы его изучали?
  • Вопрос задан
  • 1938 просмотров
Пригласить эксперта
Ответы на вопрос 10
Jump
@Jump
Системный администратор со стажем.
Как у вас шло изучение?
Как обычно - читал, писал..

Хватило ли вам одной книги чтобы написать программу которая описана выше?
Не хватило. Нафига мне адресная книга?
Ответ написан
@Uragiremono
Изучаю python, первый язык. Работаю с сетями, потому знакомство с python начал с прекрасной книги Наташи Самойленко Python для сетевых инженеров(книга абсолютно бесплатна).

Как у вас шло изучение?
Если вы уже пишите на python напишите пожалуйста как вы его изучали?

Читая теорию, надо всегда закреплять практикой.
Читаю главу много раз, начинаю решать задания, в процессе всегда обращаюсь к теории, т.к. запомнить всё нереально. Иногда сижу целый день над решением задания. Решая задания, запоминаю инструменты(полезные функции, модули, методы), следующие задания идут уже быстрее.

Хватило ли вам одной книги чтобы написать программу которая описана выше?

"A byte of python" не читал. Только "Python для сетевых инженеров", книгу освоил примерно на 20%, это 2 главы Основы Python и Повторное использование кода.

Эту задачу не решал, но примерно уже понимаю как сделать:
* для удобного взаимодействия со скриптом из командной строки, использовать модуль argparse
* данные хранить в БД или просто в .txt файле или вообще сохранять объект(например словарь вида:
{
    'ivan':{'number':'123', 'address':'pushkina'},
    'magomed':{'number':'456', 'address':'lenina'}
}
)
* написать функций для просматривать, добавлять, изменять, удалять или искать контактные данные, которые будут взаимодейстовать с данными в БД/файлом/объектом

Всё сводится к тому, что надо запомнить инструменты python'а(часто можно услышать от аксакалов python, что программирование это знание алгоритмов, а ЯП это просто инструмент, что конечно верно, но и как пользоваться инструментами тоже надо помнить, иначе это перманентный гуглёж):
* типы данных, какими они бывают(изменяемые упорядочные и т.д.), как с ними взаимодействовать
* функции
* методы
* операторы
* циклы
Это пока всё что я прошёл, даже с такими минимальными знаниями, я облегчил себе работу, автоматизировал рутинные задачи у себя на работе.

Если что-то не понимаю, тупо гуглю, например задача: надоело прописывать логины/пароли при входе на коммутаторы.
Гуглишь, на английском обычно больше инфы: подключиться к коммутатору python / connect to switch python
узнаёшь про модуль pexpect, читаешь документацию, пишешь свой скрипт, всё, теперь в копилке знаний есть модуль pexpect, в следующий раз быстрее решишь задачу.

Таким макаром пишу свои велосипеды, решил их публиковать, мало ли кому понадобиться, велопарк: https://github.com/Savamoti/scrips_for_reinventing...
Рекомендую познакомиться с PEP8, не забывать писать комменты(у самого плохо получается пока) к коду, иначе через месяц уже не вспомнишь, для чего это функция, что ожидает и что возвращает.
Ответ написан
Для начала вам нужно научиться формализовывать задачу: представить что такое "Контакт" - это "Фамилия, Имя, Отчество, email,телефон", потом представить что такое сохранение на диске - это некоторый файл в котором куча контактов - например каждая строчка это отдельный контакт - в итоге получается формат хранения CSV(поля разделенные запятыми).

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

Потом вы уже можете гуглить - "python работа с файлами" или читать конкретную главу справочной информации.
А со временем вы уже запомните эти примеры и гуглить придется меньше.

Обучение конкретно python сводится к запоминанию(пониманию) примеров решения конкретных мини-задач, как работа с файлами, работа с базами, работа с сетью, работа с GUI - разбивается на работу с каждой графической библиотекой которых куча GTK,Qt,wX,Tk,Kivy.
Ответ написан
Battle_Hamster
@Battle_Hamster
Если дейтсвительно только начинаете - действительно советую Stepik
Там и теория преподнесена, и практика. При чём задачи не принимает, пока не проходишь все тесты, соответственно костыль на костыле не получится, надо писать что-то действительно работающее
Ответ написан
Jossnix
@Jossnix
tester
Прочитал Лутца. Для ознакомления вполне хватило. А дальше всё зависит от поставленных задач. Абсолютно всё выучить нереально.
Поэтому, появилась задача поработать с Excel - нашёл нужный модуль, прочитал его описание и написал, то, что тебе нужно.
Нужно написать графическую оболочку - алгоритм тот же самый. Выбрал библиотеку, прочитал описание и вперёд.
Ответ написан
qlkvg
@qlkvg
python backend developer
Дело в том что для меня это совсем не простая задача, смотрю на начало кода и сильно туплю, чувствую что писать буду это в лучшем случае неделю.

Чтобы написать что-то за час, надо сначала написать это за неделю. Это нормально.

Придумайте себе задачу. Codewars это хорошо, но это не совсем та практика, которая нужна. Найдите какую нибудь ерунду, которую можно автоматизировать, и которая вам хоть немножко пригодится. Типа телеграм-бота с напоминалками, парсера сайта любимой футбольной команды, чего угодно. Это уже будет опытом реальной разработки. И опять же там есть куча сопутствующих задач, с которыми придется столкнуть на работе, например как это разворачивать, как писать логи etc. Я, собственно, начал с того, что пол года писал парсеры, а книжки и мануалы читал параллельно по мере надобности.
Ответ написан
@warriorofpython
Ко всему прочему, неплохо было бы качнуть алгоритмы
Ответ написан
@Valsin
Кроме codewars можно еще посмотреть проект Эйлера
Ответ написан
@Natalka_Z
Я пару месяцев сама посидела над литературой и потом случайным образом попала на бесплатное занятие по питону в школу Avenue, показался преподаватель толковым и вуаля - я на курсе. А дальше уже самостоятельно наращиваю массу знаний. Но если бы сама все это время долбалась, может бы и бросила уже, а так - втянуло
Ответ написан
@dachnik99
Главное, чтобы знания закреплялись практикой, упражнениями.
Учил по видеоурокам.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы