6

Путь развития в Python - от ученика до гуру

1

Описание проблемы:

Здравствуйте, сообщество StackOverflow!

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

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

Что я НЕ хочу спрашивать:

  • Не хочу знать, как БЫСТРО выучить Python.
  • Не интересует, какой лучший способ познакомиться с языком.
  • И не интересует "волшебный трюк", который решает всё.

Что я хочу узнать:

Какие шаги вы бы рекомендовали "практиканту" Python, чтобы он мог постоянно развиваться и постепенно становиться экспертом в этом языке?

Я вижу таких людей здесь, на StackOverflow, и их навыки вызывают восхищение. Прошу вас поделиться вашим мнением и рекомендациями.

Формат ответов:

В ответах мне хотелось бы увидеть что-то вроде следующего:

  • Прочитать это (например, уроки по Python), обращая внимание на определённые детали.
  • Программировать столько-то часов или решать столько-то задач.
  • Затем прочитать эту книгу, но на этот раз уделяя внимание этим моментам.
  • Решать реальные задачи.
  • Далее перейти к чтению Y.
  • Обязательно понять эти концепции.
  • Программировать еще X времени.
  • Вернуться к основам или продолжить изучение...

Заключение:

Мне действительно важно узнать ваше мнение о том, на что стоит обратить внимание на разных этапах, чтобы непрерывно расти и развиваться в программировании на Python (с соответствующими усилиями, конечно). Если вы пришли из определённой области, расскажите о пути, который вы считаете подходящим в этой сфере.

Заранее спасибо за ваши советы!

5 ответ(ов)

0

Посмотрите эссе Питера Норвига о том, как стать мастером-программистом за 10 лет: http://norvig.com/21-days.html. Я бы поставил на то, что это справедливо для любого языка программирования.

0

Вот ваш код, переведённый на русский язык в стиле ответа на StackOverflow.com:

def начинающий():
    прочитать(введение_в_питон)
    экспериментировать(интерпретатор)
    прочитать(руководство_по_python)
    экспериментировать(интерпретатор, модули_файлы)
    смотреть(pycon)

def мастер():
    обращаться(основное_руководство_по_python)
    обращаться(PEPs/языковая_справка)
    экспериментировать()
    читать(хороший_python_код)  # Например, twisted, другие библиотеки
    писать(базовая_библиотека)   # заново изобрести колесо и сравнить с существующими
    if есть_интересные_идеи:
        выступить(на_pycon)

def гуру():
    pass  # Не квалифицирован для комментариев. Возможно, стоит решить проблему GIL?

Если у вас есть дополнительные вопросы, не стесняйтесь их задавать!

0

Я дам вам самый простой и эффективный совет, который только можно представить: кодируйте.

Вы можете стать лучше в использовании языка программирования (что подразумевает его понимание) только за счет кодирования. Вам нужно активно наслаждаться процессом, вдохновляться, задавать вопросы и находить на них ответы самостоятельно.

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

Когда мне становится скучно за компьютером, я открываю свою среду разработки и начинаю кодить. Записываю идеи, которые кажутся интересными и сложными. Сокращатель URL? Почему бы и нет, я смогу это сделать. О, я научился преобразовывать числа из одной системы счисления в другую в процессе!

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

0

Если вы занимаетесь научными исследованиями с использованием Python (что, похоже, вы и делаете), то вам необходимо изучить научные библиотеки. Для меня в этом контексте важными являются:

  • numpy
  • scipy
  • matplotlib
  • mayavi/mlab
  • chaco
  • Cython

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

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

0

Google недавно выпустила онлайн-курс по Python (в смысле "курс обучения"). Вы можете ознакомиться с ним по следующей ссылке:

http://code.google.com/edu/languages/google-python-class/

Я понимаю, что это не полностью отвечает на ваш вопрос, но я думаю, что это отличное место для начала!

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь