
Евгений
05.03.2017
20:47:28
Начать можно хоть с бекенд python(django), хоть с iOS swift/obj-c, хоть с js front/back
вроде джуниор без опыта как раз будет 40-50 получать
джанга уже нах никому не нужна
ios надо

Google

Евгений
05.03.2017
20:47:28
да ну ее впизду
js надо тогда учить чтобы четка
за нее еще платят
Потом из тестировщика в девопсы
нада новое учить пиздатое
а не старье всякое
Потом в погромисты
Потом в ПМ
джанго не старье
проект то развивается
Потом обратно в дворники :(
джанго нинужно имхо
Я питон за пару часов выучил (именно синтаксис, язык до сих пор познаю по необходимости). Перед реальной работой очень желательно набраться опыта самостоятельно на real-world-like проектах.

Google


Евгений
05.03.2017
20:47:28
Если совсем опыта нет, и времени тоже нет, начинай с фронтенда. Html, css, js.
Там можно очень быстро научиться делать хоть что-то.
Блин, за месяц ты все равно нихера не научишься нормально программировать. Но на фронтенде ты сделаешь больше, чем на бэкенде, а именно сверстаешь хоть какую-то страницу вместо программы, которая читает числа Фиб рекурсией за целый месяц.
Я лично сначала выучил Джаву. Три месяца от нуля в программировании до знания Java stdlib (без коллекций, мапов и многопоточности). Потом я взялся за Питон.
На Питоне я реально писал бэкенд. На Джаве - 200 строк, но я ни разу не жалею, потому что оно в меня вдолбило ООП, которое мне сейчас надо при работе со Свифтом.
Да. На js + php, как все правильные хипстеры.
Правильные хипстеры даавно на ruby сидят, попивая свои любимые напитки.
Я бы рекомендовал начинать с Кернигана и Ричи, если знаешь, что такое переменная, функция, дабл-флоут-инт и тп. Если не совсем нуб, короче. Потом уже к джаве - это классика ООП, который тебе понадобится 90%. Только не поймите меня неправильно, не начинайте писать на джаве и на спринге.
Начинать надо на си, чтобы иметь представление о том, как работает железо.
Я учил по full java 8 reference. Такая книга на 1500 страниц. Первые 400 прочитал каждое слово.


Nikolay
05.03.2017
20:47:41
посмотри, как работает imap_unordered() в gevent
вот что-то такое и должно быть в нормальной реализации
вроде в 3.6 сделали
иди играй в checkio.org

CthUlhUzzz
05.03.2017
20:48:16

Nikolay
05.03.2017
20:48:37
с помощью ensure_future делаю таски, сую в список, и на него делаю gather

Rocket
05.03.2017
20:48:53
так это ортогональные понятия
Делают то тоже самое. Gather тебе собирает много корутин в одну фючу. И из неё ты можешь достать результаты. Если хочешь. Ensure тебе дает на выход более сложный механизм.

Nikolay
05.03.2017
20:49:35
а gather явно ждет завершения всех воркеров

Google

Rocket
05.03.2017
20:50:01

Nikolay
05.03.2017
20:50:06
ну хотя да, я понял, о чем ты
больше он ничего не делает
возвращает фьючер на нее, да

Rocket
05.03.2017
20:51:35
Обе возвращают фючу

Nikolay
05.03.2017
20:51:53
один возвращает на одну корутину, второй - на список
да, в этом смысле они похожи
но мне надо не фьючер на список, а итератор по результатам по мере готовности

CthUlhUzzz
05.03.2017
20:52:53
Очереди есть

Rocket
05.03.2017
20:52:57

Nikolay
05.03.2017
20:53:18
Очереди есть
понятно, что это можно реализовать с примитивами, будет как в поточном программировании

Rocket
05.03.2017
20:53:28
Вот он уже может возвращать результаты по мере готовности

Nikolay
05.03.2017
20:53:42
прикол в том, что в gevent, как я уже сказал, есть imap_unordered() :)
а тут нет

Rocket
05.03.2017
20:54:11

CthUlhUzzz
05.03.2017
20:54:52
Похоже, кстати
Wait for the Futures and coroutine objects given by the sequence futures to complete. Coroutines will be wrapped in Tasks. Returns two sets of Future: (done, pending).

Nikolay
05.03.2017
20:55:26
а, ты про это? https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.wait

Google

Rocket
05.03.2017
20:55:59

CthUlhUzzz
05.03.2017
20:56:12
asyncio.wait()

Rocket
05.03.2017
20:56:26
https://docs.python.org/3/library/asyncio-task.html#asyncio.wait

Nikolay
05.03.2017
20:57:22
а все, нашел
да
ну, это не совсем то
он просто возвращает управление, когда либо одна закончена, либо все
а мне надо итератор по результатам
грубо говоря, у меня есть set() из корутин и мне похрен на их порядок и когда какая закончит
я просто хочу получать результат сразу же, как он приходит

Admin
ERROR: S client not available

Nikolay
05.03.2017
20:59:31
я могу это сделать через asyncio.queue, да
но сахару бы

Rocket
05.03.2017
20:59:45

Nikolay
05.03.2017
20:59:56

Rocket
05.03.2017
21:00:13

Nikolay
05.03.2017
21:00:36
он не возвращает итератор
он возвращает два тупла
я могу его еще раз вызвать на втором тупле, да
в цикле

Google

Nikolay
05.03.2017
21:01:20
тогда это будет примерно то, что я хочу

Igor
05.03.2017
21:01:32
вы так много итераторы обсуждаете
пускай здесь полежит

Rocket
05.03.2017
21:01:53
?

Nikolay
05.03.2017
21:02:05

Igor
05.03.2017
21:02:31
ахахахах

Rocket
05.03.2017
21:05:13

Nikolay
05.03.2017
21:05:32

Rocket
05.03.2017
21:06:06

Eldar
05.03.2017
21:07:32

Nikolay
05.03.2017
21:07:36
это будет что-то в духе:
def imap_unordered(tasks):
pending = tasks[:]
while pending:
done, pending = asyncio.wait(pending, return_when=asyncio.FIRST_COMPLETED)
for task in done:
yield task
нет, не так
ща
падажжи ебана

Rocket
05.03.2017
21:09:16

Nikolay
05.03.2017
21:09:20
поправил
но не, это херня
ибо мы делаем список в памяти каждый раз
а мне бы imap

Eldar
05.03.2017
21:10:05

Rocket
05.03.2017
21:10:08
Список тасков, но не результатов.
Так что все хорошо