Я чувствую себя застрявшим в центре Python, Как пройти мимо новичка [закрыто]

22

Я действительно извиняюсь, если это не соответствует правилам SO, но мне нужна небольшая помощь, я лично по-прежнему считаю себя новичком в python, но я написал очень маленькую и ОЧЕНЬ НЕОБХОДИМУЮ программу для моего босса.

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

Есть ли какие-либо рекомендации по книге или НИЧЕГО, что отталкивает меня от этой стадии, я сначала использовал голову, и обычно они действительно хороши, но моя проблема в том, что они прослеживают меня, чтобы снова двигаться вперед, Это работает в HTML, но В Python это сбивает с толку, в основном я думаю, что мне нужно создать программу, а потом продолжать. Снова мне нравится стиль HeadFirst, но мне нужно что-то, что не заставит меня вспомнить одну вещь, просто чтобы забыть об этом ...

для записи, я зарегистрировался в некоторых книгах О'Рейли

Isov5
источник
7
Для каждого начального концепта напишите несколько небольших программ, пока вы не освоите их. Как только вы почувствуете себя комфортно, делайте то же самое с каждым разом, пока не дойдете до продвинутых вещей. Просто чтение без практики и программирования не очень вам поможет.
6
Вы уже читали, как думать, как ученый ?
Оскар Медерос
Вы уже ознакомились с руководством docs.python.org/tutorial/index.html ? У вас есть конкретные аспекты, которые вас смущают? Если бы вы могли проиллюстрировать их примерами кода, было бы еще лучше.
Juanchopanza
Разве боссу не нужна большая программа, написанная на Python? Вам нужен опыт ...
2
делай, пробуй и задавай вопросы, когда ты не понимаешь, люди здесь помогут тебе.
monkut

Ответы:

23

Хватит читать книги.

Иди пиши код, используя свободное от чтения время. Практика. Вдумайтесь. Столкнитесь с реальными проблемами в реальном написанном вами коде.

Тогда у вас будет достаточно вопросов, на которые могут ответить продвинутые книги. Теперь у вас нет этих вопросов, и ответы в книгах не имеют для вас никакого смысла.

Это очень похоже на изучение иностранного языка или умение плавать: одни книги не могут помочь. Вам нужно много практиковаться, тогда ваш мозг «получает это».

9000
источник
19

FWIW, способ, которым я действительно изучил Python, состоял в том, чтобы написать нетривиальное приложение для себя . На самом деле это была перезапись того же приложения, которое я ранее создал для изучения C (и C ++ позже), поэтому я был очень хорошо знаком с тем, какие виды обработки необходимо выполнить. Во время каждой (пере) записи я пытался использовать любые специальные функции, предлагаемые конкретным языком, который я использовал, или который я просто хотел опробовать.

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

Один очень полезный способ стать лучше на любом языке программирования - просто прочитать много других программ. Хороший способ сделать это в наши дни - использовать Google, как описано в этом ответе StackedOverflow . Это отличный ресурс, и вы часто будете читать «промышленный код», написанный профессиональными программистами и используемый в других реальных приложениях.

Обновить:

Так как 15 января 2012 г. поиск Google по кодам был прекращен, помимо возврата к обычным поискам в Google, есть нечто, называемое « Коллекция фрагментов кода», которое выглядит многообещающим. В ответах на этот (закрытый) вопрос упоминается ряд других ресурсов. Замена для Google Code Search? ,

Мартино
источник
5
Акцент на нетривиальном. Чтобы научиться делать сложные вещи, старайтесь делать сложные вещи.
Брайан Оукли
5

Просто продолжайте набрасываться на простые концепции. Сделайте маленькие программы, инкапсулирующие их концепции. В какой-то момент Вы достигнете вершины понимания, и новые вещи будут иметь больше смысла для вас. Я также держу каталог под названием Python snippets. Я считаю это полезным в качестве отправной точки в определенных концепциях.

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

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

Алан
источник
5

Если вы не уверены в базовых библиотеках Python или объектно-ориентированном дизайне (поскольку вы упоминаете, что не знаете, почему использовался «указанный» класс или «указанная» функция):

  1. Создание навыков в объектно-ориентированном дизайне действительно помогает вам продумать объектно-ориентированный дизайн.

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


Если ваша проблема в том, что вы не можете понять, как использовать Python, чтобы сделать что-нибудь интересное:

1) Начинающий Python: от новичка до профессионала разбирается в некоторых интересных вещах: графическом интерфейсе, написании собственного приложения для обмена файлами и т. Д. Мне также нравится стиль Hetland.

2) Вы упомянули книги О'Рейли, но программирование на Python почти полностью связано с приложениями, а не с синтаксисом. В нем есть много интересных приложений, которые сделают ваши творческие соки текучими. Это огромная книга (я думаю, ~ 1500 страниц), и 4e полностью посвящена Python 3, но определенно открывает вам глаза на то, как люди используют Python.

MikeRand
источник
+1 за ссылку на сайт С. Лотта ... Я никогда раньше такого не видел.
Геррат
4

Есть две книги по Python, которые я бы порекомендовал, и одна из них уже упоминалась @MikeRand:

  • Dive Into Python 3 - обязательная книга, которая охватывает вводные и некоторые более сложные темы.
  • Программирование на Python - ИМХО подходящая книга для перехода к очень продвинутым темам Python. Он также охватывает многие области, например (G) пользовательский интерфейс, системные приложения, веб-программирование и т. Д.

Обратите внимание, что последние версии обеих книг охватывают Python 3. Если вы работаете с более старой версией Python, ищите более раннюю версию книг. FTR, альтернативный вариант - это Python для разработки программного обеспечения (бывший «Как мыслить как компьютерный учёный: обучение на Python», упомянутый @ oscar-mederos), но большая часть его содержимого также является вводной (и в этом смысле я бы рекомендовал вместо этого Dive Into Python ).

sakisk
источник
3

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

Карл Билефельдт
источник
0

В дополнение к некоторым из упомянутых книг (особенно « Как думать, как компьютерный ученый» ), посетите сайт ActiveState's Python Recipes . Прочитайте некоторые вещи, которые вас интересуют, посмотрите на код, а затем выясните, как бы вы подошли к проблеме и чем это отличается от того, что в рецепте.

Питер Роуэлл
источник
-1

Это довольно странное предложение, но я оказался там, где я есть, задавая вопросы и наблюдая, как другие люди задают вопросы, и читая ответы. Итак, просматривая вопросы с тегами Python в Stack Overflow, или (как в моем случае) становитесь регулярными на #python на freenode.

Девин Жанпьер
источник
-3

Попробуйте книгу Уоррена и Картера Санде «Привет, мир! Компьютерное программирование для подростков и других начинающих» - так я узнал, что такое Python Scripting, или я слышал, что «Привет! Питон» Энтони Бриггса тоже фантастическая книга.

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

ryanb173
источник