Я відчуваю, що застряг у центрі Python, як пройти початківця [закрито]


22

Я дійсно вибачаюсь, якщо це не відповідає правилам SO, але мені потрібна невелика допомога, я особисто все ще класифікую себе як новачок в python, але я написав дуже маленьку і ДУЖЕ ВДАЛЬНУЮ непрактичну програму для свого боса.

Я знаю, що я все ще новачок, тому що прості речі все ще мене здивують, але кожна книга, яку я читаю для початківців, чесно просто переробляє те, що я вже знаю, але кожна «більш просунута» книга насправді не дозволяє мені вчитися, вони залежать від прикладних файлів і я ніколи не розумію, чому вони побудували функцію "сказав" або "сказав". Отже, на моє запитання ...

Чи є якісь рекомендації щодо книги чи будь-чого, що виштовхує мене з цього етапу, я спершу використовував голову, і зазвичай вони справді хороші, але моя проблема там у мене, щоб я знову відстежував, щоб знову рухатися вперед, це працювало в HTML, але його плутанина в Python, в основному я думаю, що мені потрібно створити програму, продовжуючи далі. Знову мені подобається стиль HeadFirst, але мені потрібно щось, що не змусить мене запам’ятати одне, просто забути його ...

для запису я перевірив кілька книг O'Reilly


7
На кожну концепцію, що починається, напишіть кілька невеликих програм, поки ви не отримаєте її. Як тільки ви відчуваєте себе комфортно, робіть те ж саме з тим більше і більше, поки не перейдете до передових матеріалів. Просто читання без практики та кодування не дуже допоможе вам.

6
Ви вже читали Як мислити, як інформатик ?
Оскар Медерос

Ви вже дотримувалися підручника docs.python.org/tutorial/index.html ? Чи є у вас конкретні аспекти, які вас бентежать? Якби ви могли проілюструвати їх на прикладі коду, було б ще краще.
juanchopanza

Чи не потрібен бос і більшу програму, написану на Python? Вам потрібен досвід ...

2
роби, намагайся і задавай питання, коли ти не розумієш, люди тут допоможуть тобі.
monkut

Відповіді:


23

Перестань читати книги.

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

Тоді у вас буде достатньо питань, на які можуть відповісти передові книги. Зараз у вас немає цих питань, і відповіді в книгах для вас не мають сенсу.

Це дуже схоже на вивчення іноземної мови або навчання плавання: одні книги не можуть допомогти. Потрібно багато тренуватися, тоді ваш мозок «отримує це».


19

FWIW, я дійсно пізнав Python - писати нетривіальну заявку для себе . Насправді це було переписування тієї самої програми, яку я раніше створив, щоб вивчити C (і C ++ пізніше), тому я був дуже добре знайомий з видами обробки, які потрібно зробити. Під час кожного (повторного) запису я намагався скористатися будь-якими особливостями, що пропонуються певною мовою, або якою я просто хотів випробувати.

Як бонус, коли ви закінчите або принаймні матимете працюючу версію, у вас з’явиться щось насправді корисне, а не певна вправа програмування, яка сама по собі нічого не потрібна. Ви також можете повернутися пізніше та змінити програму після того, як ви дізнаєтесь більше про кращі способи досягнення справ мовою.

Один дуже корисний спосіб покращити будь-яку мову програмування - це просто прочитати багато інших програм. Один хороший спосіб зробити це сьогодні - це використовувати Google, як описано у цій відповіді StackedOverflow . Це чудовий ресурс, і ви часто читаєте код "промислової сили", написаний професійними програмістами та використовуваний в інших додатках реального життя.

Оновлення:

Оскільки пошук коду Google було припинено 15 січня 2012 року, окрім того, як повернутися до звичайних пошукових запитів Google, є щось, що називається Колекція фрагментів коду, що виглядає перспективно. Ряд інших ресурсів згадується у відповідях на це (закрите) запитання Заміна для пошуку Google Code? .


5
Акцент на нетривіальне. Щоб навчитися робити складні речі, спробуйте робити складні речі.
Брайан Оуклі

5

Просто продовжуйте розміщувати легкі концепції. Зробіть невеликі програми, що містять свої концепції. У якийсь момент ви будете гребати пагорб розуміння, і нові речі матимуть більше сенсу для вас. Я також зберігаю каталог під назвою фрагменти Python. Я вважаю це корисним як відправна точка в певних поняттях.

Ще одна хитрість, яку я вважаю неоціненною, - це читати код інших людей і коментувати його, узагальнюючи те, що робить кожен рядок і розділ. Якщо я не знаю, то прийшов час Google. Таким чином я бачу Python в дії і можу розбити його на акуратні ділянки.

Один з особливо багатих ресурсів для коду - це саме джерело Python.


5

Якщо ви не впевнені в базових бібліотеках Python або об'єктно-орієнтованому дизайні (оскільки ви згадуєте, не знаючи, для чого використовується "сказав" клас або "сказана"):

  1. Навички побудови об'єктно-орієнтованого дизайну дійсно допомагають вам продумати об'єктно-орієнтований дизайн.

  2. Інший сайт S.Lott, « Навички побудови в Python» , також може стати для вас гарним способом розширити свої навички Python за межі основ. У ньому багато додатків, які трохи простіші, ніж перераховані нижче книги, але все ще веселі та повчальні.


Якщо ваше питання полягає в тому, що ви не можете зрозуміти, як використовувати Python, щоб зробити щось цікаве:

1) Починаючи з Python: від початківця до професіонала потрапляє в цікаві речі: графічні інтерфейси, написання власного додатку для спільного використання файлів тощо. Мені також подобається стиль Гетленда.

2) Ви згадали книги O'Reilly, але програмування Python майже повністю стосується програм замість синтаксису. У ньому є багато цікавих додатків, які дозволять вашим творчим сокам витікати. Це величезна книга (приблизно 1500 сторінок, я думаю), і 4e повністю орієнтований на Python 3, але, безумовно, відкриває вам очі на те, як люди використовують Python.


+1 для посилання на сайт S. Lott ... Я ніколи цього не бачив.
Геррат

4

Я б порекомендував дві книги Python, і одну з них уже згадував @MikeRand:

  • Dive Into Python 3 - це обов’язкова книга, яка охоплює вступні та деякі більш сучасні теми.
  • Програмування Python - це правильна книга IMHO для переходу до дуже розвинених тем Python. Він також охоплює багато областей, наприклад (G) інтерфейси користувача, системні програми, веб-програмування тощо.

Зауважте, що останні версії обох книг охоплюють Python 3. Якщо ви працюєте зі старшою версією Python, шукайте більш ранню версію книг. FTR, альтернативним варіантом є Python for Design Software (колишній як думати як комп'ютерний вчений: навчання з Python, згаданий @ oscar-mederos), але більша частина його вмісту також вступна (і в цьому сенсі я рекомендую замість цього зануритися в Python ).


3

Найефективніший спосіб - регулярно перевіряти свій код досвідченим наставником та реалізовувати його пропозиції. Це одна з найбільших переваг ступеня коледжу, але не обов'язково повинна бути такою офіційною. Я вважаю себе передовим програмістом, але я все одно йду по залі, щоб обговорити основні дизайнерські рішення з однолітком перед кодуванням, а потім переглядати готовий продукт.


0

На додаток до деяких згаданих книг (особливо, як думати як комп'ютерний вчений ), відвідайте сайт Рецепти Python з рецептами ActiveState . Прочитайте деякі цікаві для вас речі, подивіться на код, а потім з’ясуйте, як би ви підійшли до проблеми і чим це відрізняється від того, що є в рецепті.


-1

Це досить дивна пропозиція, але я маю бути там, де я є, задаючи питання та спостерігаючи, як інші люди задають питання та читають відповіді. Отже, перегляд питань із тегами Python з тегом Stack Overflow або (як у моєму випадку) стає звичайним на #python на freenode.


-3

Спробуйте книгу "Привіт, світ! Комп'ютерне програмування для підлітків та інших початківців" від Уоррена та Картера Санди, як я дізнався сценарій Python, або я чув "Здрастуйте! Пітон" від Ентоні Бріггса - також фантастична книга.

Сфокусуйтесь на організації своїх програм за допомогою функцій, коментарів та якоїсь структури щодо того, як вони протікають. Не забувайте: Програма - це просто набір інструкцій, якими керується комп'ютер. Зробіть його легким для читання та розуміння.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.