Python
Programming
Comments 65
+5
Изучил пайтон. Кодил 1.5 года на Пайтоне. Изучил Java. Теперь пишу и на том и на том — выбор технологии на чем сделать ту или иную задачу крайне необходим. Не надо останавливаться только на Пайтоне, изучайте связки и придерживайтесь парадигме ABC (Always Be Coding)
+1
А я так и делаю (не останавливаюсь то есть), просто не могу учить сразу два языка программирования — надо было сделать выбор.
P.S. Спасибо за ссылку про ABC.
+6
Я думаю, что не правильно говорить «я изучил этот язык». Это не несёт никакого смысла. Вы можете прочесть документацию и пару книг, но это не является гарантом правильного и красивого кода на этом языке. Это скорее состояние постоянного совершенствования нежели статичная веха.
И вот тут начинаются сложности, каждый раз я думаю «блин, я знаю язык лучше, чем вчера. но надо совершенствовать свои навыки!», и с таким подходом очень сложно уделять время нескольким языкам, особенно параллельно. Всё время есть ощущения незавершенности дел (как будто бросил изучение на полпути и ушел учить другое).
+1
Поддерживаю.
Особенно когда новички кидаются, то на одно, то на другое.
Я сам недавно начал изучать Python, но также мне хочется изучить и Java.
Но в обозримом будущем, я решил для себя углублятся и шлифовать пока только Python.
И выбирать возможные пути развития внутри самого питона.
Благо язык не маленький и не игрушечный, предоставляет уйму возможностей и вариантов «билда своего чара», будь то: разработка GUI, WEB, Client-Server, BigData и тп. и тд.
Притом не гнушаюсь просматривать материалы по некоторым другим языкам например Ruby, Java…
Особено когда идет сравнение/разбор парадигм, best-practices, патернов/идиом нескольких языков.
Вот допустим не плохое видео (начинается с 16й минуты):
-32
Прошу без обид.
Извините, но в итоге Вы не выучили ни одного нормального языка. Что python (да, это классный язык, но костыльный, хотя он все имеет место быть), что java (тут просто нечего сказать, кроме как то, что это быдло-язык)
Я искренне советую Вам изучить c++, а затем haskell. Оба они сделаны грамотно и полезны.
Просто понимая утройство ОС, понимаешь, что динамическая типизация и jit — это огромный костыль. Да, создатели питона — гениальные програмисты языка, но компиляторов — у них большие проблемы с миропониманием.

Искренне прошу извинить, если обидел кого.
+1
Я знаю, что получу минусы, но это мое мнение, не для этого ли нужны комментарии, что бы его высказывать?
И я попросил прощения, если обидел кого.
+2
В этом вы правы, безусловно. Просто, на мой взгляд, тема чрезвычайно скользкая, чтобы говорить столь однозначно «изучите c++ и haskell».
+9
Если вы не хотите кого-то обидеть, то лучше не «искренне просить прощения» в конце ругательного поста, а просто не использовать обороты типа «быдло-язык».

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

Позволю себе не согласиться с утверждением «c++ сделан грамотно». Или согласиться, но с оговоркой: грамотно, если исходить из требовавшейся совместимости с с. А если рассматривать с++ как вещь в себе, то уж в нём костылей-то хватает.

А ещё точно не соглашусь с тем, что динамическая типизация — костыль. Это же просто другая идеология, имеющая свои преимущества и недостатки.

И в довесок.
Если не ошибаюсь, у пайтона один создатель по имени Гвидо. Искренне уважаю его, но не до такой степени, чтобы писать о нём во множественном числе.
UFO landed and left these words here
0
А чем плохо писать торрент-клиент на Питоне? Сетевые библиотеки там не в пример высокоуровней плюсовых. Производительность? Большую часть времени клиент будет в основном потоке ждать UI-сообщений, а в фоновом — ждать окончания операции на сокете.

На плюсах надо писать всякие штуки, которые активно грузят проц, или где нужна параллелизация (что, как правило, совпадает с предыдущим).
UFO landed and left these words here
0
Ну так и скрипт будет потреблять много ресурсов.

Просто по нынешним меркам, те 10-20 мегабайт оверхеда, которые уходят на всякие высокоуровневые штуки (кстати, запущеный питон в REPL-режиме кушает всего 2 Мб) на современных десктопах — это несерьезно.

Вот на мобильных устройствах, там да, памяти куда меньше, да и процы слабенькие — а время отклика в тач-интерфейсе имеет куда большее значение.
0
На питоне тоже парочку (или больше?) написать успели. Ни там, ни там идеал не достигнут. Впрочем, по моему нескромному мнению, он ни в одном торрент-клиенте так и не достигнут, независимо от языка лежащего в основе.
UFO landed and left these words here
+11
В свою очередь возмущусь столь оскорбительным выбросом по отношению к Java. Да, jit — это в некоторой степени костыль, но зато он предоставляет достаточную абстракцию от железа, что часто на практике важнее, чем работа на низком уровне и ручное управление памятью. Это очень ускоряет разработку и освобождает мозги программиста для работы над более полезными вещами.
+4
Пишите весь софт сразу на ассемблере, чего уж там. Будете понимать не только устройство ОС, но и железа, а компилятор — это огромный костыль.
+1
Я об этом не думал, но можно и так сделать. Хотя смысла я особого не вижу.
+3
Ну тогда через год-другой ждем анологичную обновленную статью-архив вышеперечисленных хабов. :)
+9
А ведь когда-то у Хабрахабра была собственная вики, пополняемая сообществом.
0
Все хорошо, но для обучения с нуля не хватает системности. На отдельных статьях далеко не уехать. Тут в идеале курс пройти, их сейчас много разных. Например, курс по Python / Django: digitov.com/course/programming-python-django-courses
0
На мой взгляд, именно с уроков от Google и нужно начинать. Дальше уже можно углубляться в ту область, которая больше по душе — «наукоёмкие» вычисления (numpy + scipy), веб (django, flask ...), игры или что-нибудь еще.
И искать уроки/материалы/курсы именно по использованию этих батареек.
+1
Мое первое знакомство c питоном началось именно с гугловского класса.
Я бы сказал что это не идеальный полноценный курс для обсалютных новичков.
Сразуже после него я начал курс на Codecademy. Вот он и дал мне толчок для дальнейшего развития. Пройдя его, я стал считать именного его своим первым настоящим курсом по питону.
Да там конечно не сильно углубляются во многие детали. Но для новичка, что бы резко вложить ему в голову такие элементы языка как «на тебе переменая, список, if, for, while» — самое оно. Проходится буквально за пару дней.
А потом пошли десятки замечательных топиков на stackoverflow. самостоятельный разбор таких элементов как декораторы, генераторы, углубление в классы.
Ну и в конце концов отшлифовал все тремя дополнительными MOOCами:
Learn to Program: The Fundamentals
An Introduction to Interactive Programming in Python
Introduction to Computer Science and Programming Using Python
0
Да. Про абсолютных новичков согласен.
Просто топикстартер сказал, что он хотел выучить «еще один язык» :)
+4
После продолжительного метания между ними и сопутствующих нытья и долбежки головой о стену (у меня с новыми языками всегда так — сомнения, раздумья, проблема выбора и т.д.)

для меня, например, большая проблема придумать для себя задачу, причем ту, которую интересно выполнить

Урряаа, я не один такой! :D
0
Вот бы еще кто нибудь подробную карту нарисовал, с модулями, классами и их методами и свойствами. Знаю что можно это на самом питоне реализовать, но я еще не проникся его функциональностью.
0
для меня, например, большая проблема придумать для себя задачу, причем ту, которую интересно выполнить
Решение есть! Проект Эйлер — набор математических задачек, берите и решайте :)
0
У меня таких сайтов с десяток в закладках) Бесконечно решать математические задачки довольно скучно. А вот добиваться неких прикладных целей — это да.
+1
присоединяюсь к просьбе поделится списком задачников.
У самого такая же проблема придумать себе задачу для решения.
Через некотрое время после того как заканчиваются задачки на курсах или еще где — начинает падать мотивация.
+6
Вроде все собрал, хотя мог что-нибудь и не заметить :)

Русскоязычные:
codeforces.ru
acm.timus.ru
russiancodecup.ru/tasks — примеры задач с Russian Code Cup

Англоязычные:
www.topcoder.com — no comments :)
uva.onlinejudge.org — знаменитый сайт по онлайн-контестам
www.puzzleup.com — проект похожий на «Проект Эйлер»
www.hackerrank.com — также похож на «Проект Эйлер»
www.careercup.com — тут даны примеры задач с интервью, но, в целом, подойдет, чтобы размять мозг
www.geeksforgeeks.org — похож на предыдущий
learn.hackerearth.com — также есть примеры интервью с задачами, плюс где-то в Resources есть задачки
www.interviewstreet.com/recruit2 — челленджи. Минус сайта — он платный, но есть trial-период
codercareer.blogspot.ru — примеры задач
www.shyamsundergupta.com/canyoufind.htm — задачи на стыке математики и программирования
www.primepuzzles.net — аналогично предыдущему
www.azspcs.net — оптимизационные задачи комбинаторного хар
+1
Онлайн проверки и badges & levels это все пустяки и не очень важно. А важно то, что можно посмотреть множество вариантов решения этой задачи другими людьми, это интересно и полезно.

0
Взялся изучать python, но в силу некоторых обстоятельств остановился на уровне создания парсеров. Теперь есть возможность продолжить — и тут такой пост. Спасибо, жаль нет кармы плюсануть. Еще и комменты с задачниками, курсами, их бы в пост, для полноты картины. Странно, что родной тутор никто не вспомнил The Python Tutorial
UFO landed and left these words here
UFO landed and left these words here
UFO landed and left these words here
+1
Проблема подобных задач в том, что искусственность подобных ограничений очень выпирает — и часто тривиально обходится.

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

# a, b - списки на вход, ab - результат
ab = sorted(a + b)
ab = [x for x, y in zip(ab, ab[1:] + [None]) if x != y]
UFO landed and left these words here
+4
Я изучал питон с книги Марка Лутца — Изучаем Python и остался очень доволен.
+2
А я изучал по книжке «Hacking Secret Ciphers with Python» (доступна в pdf). Тоже рекомендую.
+1
Я так же, а потом заметил, что эту книгу еще и перечитывать полезно. На разных этапах развития в ней находишь интересные для себя вещи, которые до этого пропускал мимо. Книга довольно основательная.
UFO landed and left these words here
+1
А было бы вам интересно изучать python через игру? Есть движок, вам нужно написать алгоритм поведения игрового объекта и посоревноваться с другими учениками. Вот так например habrahabr.ru/post/164229/

за подборку спасибо — в закладки :)
0
За подборку — пожалуйста :)
По поводу игры — возможно да, но только все ж не с пчелками ИМХО. Ничего против них не имею, но хотелось бы чего-нибудь более серьезного.
+1
Хм, не понял. У пчел все серьезно — классы и объекты, наследование, событийно-ориентированная парадигма, задача коммивояжера. Концентрируясь на игре, ученик решает сложные задачи на самом деле.
0
Даже спустя столько лет статья остаётся актуальной!
Автору респект!
Only those users with full accounts are able to leave comments.  , please.