Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 30
×

Як Python Developer роботу на $6000 шукав

В мене для вас насправді 3 свіжих історії пошуку роботи Python. Як це відбувається :)

Історія 1. Python $6000 (UPD: вже $10000 інший офер), upper intermediate, багато років досвіду, екстраверт.

Пошук зайняв 4 тижні. Провів 20 відео-дзвінків, дуже виснажує. Зазвичай на кожну вакансію 2-3 етапи — англ, рекрутер, тех.інтерв’ю. Спочатку шедулив по 4-5 дзвінків на день, потім по 1 або перерви.

Прийняв перший же офер $6000. Ще декілька вакансій були в разгарі етапів співбесід — повідмовляв.

Тестових не робив принципово.

Де шукав:

  • linkedin, просто користувався, не ставив «open to work», 60 рекрутерів написали, ще 3 він написав
  • djinni пасивний пошук, написало десь 20, тут вийшов основний двіж і тут був офер
  • angel.co, відгукнувся на 5, тиша
  • glassdoor, на декілька відгукнувся, тиша
  • stackoverflow якось малі зарплати, до 5k

Є відчуття, що можна було і на 7-9k шукати, але нема сил ще 2 місяці по співбесідам ходити. На деяких відмова була по стеку, дехто намагався ціну збити. Десь 70% технічних пройшов успішно.

UPD: через місяць пішов у відпустку і поставив на Джині $10000 «щоб не писали», отримав 4 пропозиції, 1 офер — прийняв :) проект — жорсткий легасі в ентерпрайзі

Історія 2. Python $3500, pre intermediate, багато років досвіду, інтроверт.

Мало поставив, бо слабка англійська. Пошук заняв 4 дні нон-стоп мітапів. Провів десь 16 відео-дзвінків на 10 вакансій, дуже виснажує (більше 5 в день не ставте).

Отримав 3 офери: $3500, $4000, $4500 (на джині стояло $3000, самі більше запропонували після співбесіди). Обрав той що на $3500 бо сподобалася компанія — українська, були курси англійської та підходить по духу те, що будуть робити. На $4500 був суровий легасі. Наступним етапам співбесід повідмовляв.

Тестове було одне маленьке.

Де шукав:

  • djinni пасивний пошук, не відгукувався, відповідав тім хто прийшли. Написали десь 20, зразу відмовив тільки топ галерам та російським компаніям.

Історія 3. Python $6000, upper intermediate, 4 роки досвіду, інтроверт, хотів конкретну технологію.

Пошук зайняв 2 тижні. Провів 16 відео дзвінків, дуже виснажений. Я його тяжко пушила на активні дії :D Дуже хороший, але дуже інтроверт. Допомогла зробити цікавішим резюме та профіль на Джині.

Прийняв перший же офер $6000.

Де шукав:

  • djinni включив в активний пошук, вибрав фільтр у вакансіях «від $5500» та бажану технологію, було лише 5 + 5 цікавих вакансій, відгукнувся на 6, ще 2 з них самі написали одразу. Загалом тут було десь 20 листувань, половині відмовив (відмовив: Росія, Ізраіль, не ті технології, топ галери). Офер отримав тут.
  • linkedin — тут було близько 300 контактів, але все без бажаної технології або зразу прощалися після фрази про зп $6000, якось багато шуму і все вхолосту.
  • skyworker — 3 вакансії: з них 1 відмовив, 1 згодився а далі тиша, 1 були співбесіди, трохи не підійшов за стеком і досвідом.
  • angel.co — відібрав десь 7, на 4 відгукнувся, тиша
  • ще одна цікава відома компанія, що підходить по стеку — відвалилася на лінкедині (рекрутер не зрозуміла про стек), я компанію потім догнала через знайомих, але це було перше технічне інтерв’ю, хвилювався і не пройшов
  • ще одна цікава відома компанія, що підходить по стеку — не можу вмовити туди податися напряму після попереднього фейлу :) і не готовий проходити багато етапів співбесід

UPD: потім наздогнав ще другий офер на $6000, але зостався з першим

---

Що мені в цих історіях не подобається:

Кандидати швидко втомлюються проходити відеодзвінки з екзаменами та знайомствами. Десь 10 ще норм, до 20 вже всі хочуть втекти і це припинити. Не знаю, що з цим робити. Софт-скіли, рівень англійської, підтверджені технічні скіли — було б добре десь шарити. Але ті кому він підійшов, вже не будуть про це розповідати, а одразу наймуть.

Але в реальності, для зміни місця, і в IT і в інших індустріях потрібно десь 50-100 контактів у середньому, комусь треба і 200-400.

[реклама]

В резюме та профілі люди не пам’ятають свої ачівки. Це саме цікаве для роботодавців — які проблеми і як вирішували. Тому я зробила сервіс achievki.io, приходьте до мене трекати свої ачівки :)

Якщо додасте 2 ачівки, можу 15 хвилин проконсультувати по вашому резюме або профілю на Джині (попит на ваші технології, що саме цінне, скільки може бути пропозицій).

Окремий топік про проект ачівки — dou.ua/forums/topic/35468

👍ПодобаєтьсяСподобалось9
До обраногоВ обраному4
LinkedIn

Найкращі коментарі пропустити

Я навіть як інтерв‘ювер більше однієї співбесіди на день не стягую :)
Тут все-таки треба темп підбирати обережніше.

Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Истории успеха которые мы все так долго ждали

А які тепер ЗП на ML сеніора? 2тис$ ?

Та не, я не заметил что ЗП вообще просели, просто немного тяжелее работу найти.

У двох історій потім було продовження :) дописала апдейти у топік.
У 3 історії на $6000 потім зразу прилетів ще один офер на $6000, але зостався з першим.
А у 1 історії через місяць пішов у відпустку, і поставив на Джині $10000 «щоб не писали», отримав 4 пропозиції, 1 офер — прийняв :) проект — жорсткий легасі в ентерпрайзі.

А у 1 історії через місяць пішов у відпустку, і поставив на Джині $10000 «щоб не писали»..

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

Теж python developer. 4 роки досвіду, фіг його знати чи strong middle чи senior, по скілах ніби як senior, за винятком відсутності досвіду з хмарами.

Роботу не шукаю, але як в LinkedIn пишуть, завжди питаю скільки готові платити і т.д — а раптом буде щось дуже солодке.

Так от, переважно пропонують позиції з виделкою 5-6 k USD. Вчора запропонували 3.5, коли я посміявся, що це суттєво нижче ринку, рекрутер відповів, що у них назначена співбесіда з кандидатом з соліднішим досвідом, який просить 4.5к.

Цікаво, це мені до того пропонували виделку вище середніх чи вчора попав на не найщедрішу компанію? Схиляюсь до першого варіанту.

Ні, це була мала локальна компанія.

Andersen?

П.С. Соррі, не стримався. ;-)

Всё зависит от бюджета проекта, очевидно. Я откликался на предложения с хорошим бюджетом, и мне уже в нескольких местах отказали, говорят, в более скиловых кандидатах, чем я, недостатка нет. Т.е. про перегретость рынка пищат те, кто предлагает в среднем 3-4к gross-net, в зависимости от жадности.

Цікаво, це мені до того пропонували виделку вище середніх чи вчора попав на не найщедрішу компанію? Схиляюсь до першого варіанту.

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

на ачивках, кроме сердечек, надо еще какой-то знак неодобрения

нууу неееет :))
это ж zero toxic place
safe place
growth place
надо тока поливать и подбодрять :)
можно лично спросить или ответить :)

То до поливання потрібні добрива, а які добрива хороші? Правильно, екологічні, які є результатом життєдіяльності, навіть у яблокофонів є відповідний смайлик.

Є відчуття, що можна було і на 7-9k шукати, але нема сил ще 2 місяці по співбесідам ходити

Какие мы нежные)))

вже сходив у цьому році на 20 співбесід? ;)

За 9к я зайца в поле загоняю)
Смешно же
Сидишь себе в тепле в добре с чайком, знай только кекай с собесов)
Ещё и 7-9 намайнить можно.

ну так вперед! :) потом мне анонимно расскажешь — я еще один топик напишу :))

За 9к я зайца в поле загоняю)

так идите в зайчатничество — зайцем на 2 фултайма :)

Так на двух же меня загоняют.
Ну что вы в самом деле)))

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

да кто ж тебе поверит на ачивку

Понятно, просто получить эти

TOEFL, IELTS

сильно геморно и стоит денег.
И уровень там по серьезней, чем обычное бла-бла от синьоров.
Надо что-то такое лайтовое более.

нет конечно кроме случаев когда они конкретно прямо нужны как документальные бомажки в наборе требований

Або маючи сертифікат буде більше вибір доступних проєктів

Надо что-то такое лайтовое более.

FCE блин :)

Надо что-то такое, чтобы усилий было примерно как на 1-2 интервью,
и потом 20 раз использовать, такой эффект.

Ну оно какое-то такое и есть, 2 интервью по полотора часа- плюс-минус

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

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

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

сильно геморно и стоит денег.

в эпидемию сильно упростилось за

TOEFL

146% я проверял за IELTS думаю та же ж история всё сдаётся онлайн хоть и не сколько weird типа на камеру ни кому не входить не выходить но в целом doable

Курва, так і знав, що 5к це недостатньо, щоб витратити 200ує на сертифікат

А сколько часов? А сколько стоят эти часы?)

The total test time is 2 hours and 45 minutes. IELTS

5k/160=31

Так без подготовки, это как выкинуть эти деньги или что-то реально набрать?

я норм говорю по-английски

Же

Така впевненість зазвичай у людей, що претендують на C1, нє?

Так IELTS/TOEFL что проверяет, умение говорить?
У тебе он есть, и какая оценка?

я норм говорю по-английски

Это значит что 100% интервью с проверкой английского я прохожу.
Но кумарит это делать раз за разом.

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

www.ielts.org/...​est-takers/how-to-prepare

У тебе он есть, и какая оценка?

Нема

Но кумарит это делать раз за разом.

Цього варто позбутись

Цього варто позбутись

Зачем?)

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

Но кумарит это делать раз за разом.

есть такое моё любимое что теперь рассказываю как анекдот по случаю проходил «интеврью» с поляками и вот дошло до места «с проверкой английского» и они такие уже было даже спросили «а давайте» но тут запала трывожна мовчанка в ходе которой я был слега ошарашеный потому что я то как раз польского не знаю а они таки успели это тоже сообразить но было именно что «нияково» ))

ЗЫ: из собственной практики могу посоветовать не проходить собеседования в Родине вообще и «вопрос проверки американского» отпадает в принципе работает я проверял ))

Ну посоветуй где найти с родины с/с++ не в родине.
А то на всяких фриланс сайтах часто даже плюсы в пробелы превращаются (даже в глассдоре)

Я в 1999-му знайшов. І не раз.

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

исходя из постановки сабж вопроса

и «вопрос проверки американского» отпадает в принципе работает я проверял ))

я полагаю что на его месте должна быть америка )) а исходя из технических возможностей реализации

найти с родины не в родине

видимо их должен связывать интернет ))

ЗЫ: ну ок а как бы б ты ту же ж самую задачу решал бы б

не проходить собеседования в Родине вообще и «вопрос проверки американского»
где найти с родины не в родине

находясь уже не посредственно по месту американского как не иностранного ?

проверяют умениче читать / писать / слушать / говорить, 4 раздела :)

не
проверяют то, что текущему представителю касты HR кажется важным.

Я, правда, по английскому, не получал отказов. Но если честно то, что у меня проверяли иногда вообще не коррелировало с тем, что понадобится.

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

При эйчар интервью это все равно превращается в лотерею. До сих пор существуют люди, которые чуть ли не советского разлива иностранный проверяют.

если свежий со школы или универа то более чем реально если просто без практики специфики «раскажите за картинку» хатуль мадан ага ага тогда сложнее но можно компенсировать тренированными мозгами но и всё равно без тренированного подвешенного языка не пройти

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

youtu.be/JAEnv1PvBvw

ЗЫ: здесь ещё надо учитывать тонкий момент что отечественное собеседование это вовсе не уровень экзамена тоефл это такой чистый мгимо который легко сбивается чисто технически верными ответами «расскажите об себе» «ну я люблю выпить пива...» и понеслась потому что эта тема «определить ваший уровень американского» и чисто технически совершенно всё равно что ты там заливаешь абы только понятно было и синтаксически достоверно и главное ни кто не требует сложносочинённого уровня и риторики уровня йеля )) просто потому что сам не может даже кино смотреть а всё «общение иностранного» будет «айм дьюти тудэй» на стендапе т.е. читай вообще любой уровень тоефл иелтс технически бес полезный именно по сабжу

ЗЫ: здесь ещё надо учитывать тонкий момент что отечественное собеседование это вовсе не уровень экзамена тоефл это такой чистый мгимо

Вот прям сформулировал мою мысль. Только запятых бы побольше.

Кстати, сложносочиненные — это, обычно, «красный флаг». Мы очень сильно этим грешим, но на деле стандарт международного общения — формулировать максимально кратко и понятно. Из всех времен в английском в работе используется только треть (примерно).

По необходимости не так давно (сентябрь) сдавал IELTS Academic без подготовки, сдал на С1 (7.5), показалось очень легко, было впечатление, что при подготовке можно на С2 без особого напряга выйти, но это не точно

ты сирёзно думаешь в Родине тебя с сертификатом не спросят «а поговорить для проверки на собеседовании» (я тут даже знака вопроса не ставлю в виду чистой риторичности обоих вопросов)

Я підколював з приводу «я норм говорю по-английски» тестів

Незалежні тести покажуть реальний стан справ

А так, чому взагалі співбесіду не сприймати як «безкоштовне» тренування?

терпеть не могу эти проверки от наших соотечественников

так не имейте дел с нашими соотечественниками-рекрутерами, ищете работу на иностранных источниках

У .NET такая специфика, сложно найти какие-либо вакансии внешние, хотя иногда пишут и сами, но поток не велик.

тогда воспринимай как ни чего личного просто бизнес )) водка ведмеди бабалайка

Провів 16 відео дзвінків, дуже виснажений.

От якби ще рекрутери не любили так балакати. Я штук 7 дзвінків з рекрутерами провів за останні кілька днів. До техінтерв‘ю ще навіть не дістався, а вже виснажився.

тільки не здавайтеся рано! :) на нинішньому ринку десь 15-20 до оферу, але що б добре різних роздивитися, або щось дуже специфічне хочеться знайти, або на дуже високу зарплату — то може бути і 50-200

в основному хочуть чарівника тут на рейт трейні там

... тому десь тебе не може дочекатися найкраща пропозиція, до якої ти не дійшов... :)))
бо приймав першу прийнятну пропозицію :)

А скільки на ній платять?
Чи чим вона краща?

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

Ну от зазвичай то усе є балачки, щойно починається предметна розмова з цифрами.

:)) ну це ж можна дізнатися:
— на співбесіді,
— погуглити про компанію,
— розпитати людей звідти

хм, ну тут ми не можемо зпрогнозувати скільки їх усього, хоча якщо сил хватає на 15-20, то тоді подивитися на перших 7 і відмовляти, якщо наполягають швидко вирішити,
а далі погоджуватися на першого кращого

Задача саме про

ми не можемо зпрогнозувати скільки їх усього
оча якщо сил хватає на 15-20, то тоді подивитися на перших 7 і відмовляти, якщо наполягають швидко вирішити

Або написати свої потреби відкрито, можливо навіть написати мінімальну зп (total compensation, «маладой каллєктів» і тп), за яку будете розглядати вакансію
Таким чином можна відрізати якусь частину вакансій ще на рівні з hr

1...5 — офферы. Но я цену не заламываю. Формируется от базы — дальше есть моменты, кому-то будет дороже.

класна тема, продовжуй писати. Додай, будь ласка, рекламу спочатку наступний раз, щоб розуміти взагалі про що мова

так я свідомо рекламу після корисного контенту знизу.. :))

Це те, що мені здається найважливішим при пошуку роботи-співробітників — перелік проектів, рішень, інтеграцій (те, що я хочу щоб люди трекали на ачівках).

На роботі є 2 типу роботи — з inside knowledge (багфікси, маленькі фічі, історія проекту, користувачі) та з outside knowledge (підключення інтеграцій, нові окремі фічі на нових тулзах).
Та частина, що з outside — вивчення теми займає багато часу, і нею можна ефективно ділитися.

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

Ммм... ну я питон люблю, да, но c# и java пока не уходят.

Спрос можно порассматривать тут:
djinni.co/analytics/by-category

Там 2 таблицы, можно посортировать по последнему полю, если кликнуть по заголовку колонки. Кандидатов на вакансию и предложений на кандидата.

Боюсь, с динамической типизацией и соответствующей культурой кодирования, проект на питоне даже до миллиона строк не доживет.

ты неправильно боишься, питон это высокоуровневый язык который позволят сабмитить функции в качестве аргументов (язык третьего уровня?). С учетом того что монолиты больше не в моде, для таких языков миллион строк это как бесконечность.

сабмитить функции в качестве аргументов

прямо как С?

ты неправильно боишься, питон это высокоуровневый язык который позволят сабмитить функции в качестве аргументов (язык третьего уровня?)

Лямбды подвезли в Питон ?

про Мадженту читали недавно на доу?
Писана на php
И тьма плагинов под нее — на нем же.
думаю суммарно в экосистеме Мадженты уже точно больше миллиона строк.
И заметьте — этот код писан не просто разными командами, а разными компаниями.
А бизнес — доверяет этой экосистеме.

а тормоза — в базе данных, если о быстродействии речь

статическая типизация появилась вовсе не по причине какого-то там надежного программирования
просто оказалось что транслятор с ЯП в маш код с стат типизацией написать намного легче.
ну чтобы маш код был эффективен во время исполнения.

это потом, набежали академики и стали рассказывать что можно применять математические средства доказательства корректности программного кода
ну и IDE да, обычно лучше подсказывают, когда ЯП с стат типизацией

Хотя, писал я и на С и на Джаве, а сейчас на js, а перед на php — VS и NetBeans (для php) очень даже круто научились подсказывать и для ЯП с дин типизацией

то есть стат типизация — имеет весьма отдаленное отношение к надежности, качеству кода
иллюзию да, создает.

но как не раз встречал, и даже у одного широчайше известного гуру программирования
«Чем старше я становлюсь, тем больше я люблю ЯП с дин типизацией»

дело вкуса конечно.
и конечно
парадокс Блаба (это условное название гипотетического языка программирования средней сложности), позволяет сделать следующий вывод:
некто, отдающий предпочтение одному конкретному языку программирования, будет знать, что он более мощен, чем другие, но не будет знать, что он менее мощен, чем все остальные.
Причина в следующем: чтобы создать программу на определённом языке, надо думать на этом языке. Отсюда и вытекает парадокс:
типичные программисты «удовлетворены любым языком, которым им пришлось пользоваться, потому что тот диктует им, как они должны думать о программах»
ru.wikipedia.org/...​стической_относительности

Ну вот сейчас ковыряю тесты на питоне — и часто где-то вылазит, что или None проскочил, или тупл вместо элемента данных, или обратился к члену по неправильному имени.
Может, конечно, у современных программистов для этого всего тулзы есть, которые перед запуском проверяют код, но в С++ такое компилятор ловит. И это удобно.

Ну и да, миллион строк во всей инфраструктуре — это одно, а несколько миллионов строк исходников Хромиума — это другое. Не плагины, а само ядро приложения в миллионы строк.

и часто где-то вылазит, что или None проскочил, или тупл вместо элемента данных

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

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

в целом — правильный ЯП должен обеспечить возможность аннотирования типов для стат анализа.
но — не навязывать их.

Ну и да, миллион строк во всей инфраструктуре — это одно, а несколько миллионов строк исходников Хромиума

одной командой писать проект легче, чем — разными командами.
для Хромиума выбран не вид ЯП, а вид — компилятора :)

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

а само ядро приложения в миллионы строк.

ну так сама Маджента, надо погуглить сколько строк кода уже имеет :)
там конечно используется и тайп хинтинг php и Psalm какой-нить
и код пахнет Джавой. Но — все равно быстрее пишется даже на таком «строгом» php, чем на Джаве

споры и путаница из-за того что путают — ЯП и свойства его транслятора и экосистемы

p.s.
погулил, статья от 2017 года
В Magento 2 — 1,357,121 строк PHP кода и 2,449,066 строк всего
SugarCRM содержит 2,149,457 строк

и учтите, что семантическая мощность у PHP сродни С++ной.
На Джаве было бы больше строк.

А, ещё забыл упомянуть
Часто говорят что стат типизация упрощает рефакторинг.
Только вот вопрос — а зачем тогда тесты писать?
А если такой уровень покрытия тестами для кода на дин яп — то как — ошибки типов не отловятся попутно?

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

А он 10 минут может длиться

Вот тут и проблемма :)
Но в целом поддерживаю. Отсутствие статичной типизации раздражало в скриптовых языках ужасно.

ты пишешь в прошедшем времени....
Теперь уже перестало раздражать? :)

Теперь из скриптовых пишу на тайпскрипте, там все с типизацией более-ли мение удалось, хоть и без гарантий :)

А компилер сразу бы сказал что где криво.

Аналізатори коду в редакторі це зроблять до того

Тест має відпрацьовувати моментально

Це end-to-end тест бази даних, а не юніт тест.
От те, що база стільки часу мотузить метадані — то трохи стрьомно.

end-to-end

Таке можна і на ніч ставити

Помилки іменування чи інші «очевидні» має зловити юніт чи щось сильно нижче за e2e

От те, що база стільки часу мотузить метадані — то трохи стрьомно.

Думаю, що то було перебільшення чи там тестів на пару Мб хтось написав

Помилки іменування в тесті. Звичайно, база не на пітоні писана. А от тест — на пітоні. І щоб в ньому помилки позбирати, доводиться кілька раз запускать прогон тесту.

Думаю, що то було перебільшення чи там тестів на пару Мб хтось написав

Там вся information_schema теститься. І фіг її заповниш, коли не запустити усякі бекапи, ребаланси ті інші важкі операції.

І щоб в ньому помилки позбирати, доводиться кілька раз запускать прогон тесту.

Тоді не завадить логування ввімкнути на debug

Там вся information_schema теститься

Як варіант, зробити дамп БД актуальний для даного коміта і не робити міграції

Яка міграція? Я движок бази тестую.

движок бази
І щоб в ньому помилки позбирати, доводиться кілька раз запускать прогон тесту.

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

Ну от маємо юзера user1 з правами grant all on db1.*
І маємо юзера user2 з правами grant all on db2.*
Нехай user1 створить процедуру db1.sp1()
Якщо user2 хоч десь в якійсь таблиці метаданих в себе бачить цю процедуру sp1() - це помилка (security issue) движка бази. Ця помилка не буде ексепшном, не буде крешом. Все нормально пробіжить, але коли кастомер таке побачить — то може послати на, чи засудити. Бо десь в тій процедурі може буть щось секретне, чи пароль який, чи назва його приватного покупця.
От для таких речей пишуться end-to-end тести — перелопатить купу таблиць під різними юзерами й впевнитись, що ніхто нічого зайвого там не знайде.

Я б одразу пішов дивитись як постгрес (марія) це робить

Як варіант — подивитись чи можна виділити тести, що роблять тільки read, під них зробити схему

Тест робить select * на таблицях інфосхеми. Але ті таблиці треба заповнити. Наприклад, є таблиці, що показують, які запити зараз заблоковані. Чи там список поточних бекапів. Чи помилки завантаження даних в базу з файлів.
І от щоб в тих таблицях хоч щось було, і перевірити, що оце щось не бачить хто не треба, доводиться робить важучі операції з базою. Та й статистика в таблиці з кластера теж не миттєво збирається. От і буде 10 хвилин тесту. А коли на кожен тип пермішна завести окремого юзера — то може й годину бігтиме.

доводиться робить важучі операції з базою

1) сама база же не на пайтоне написана?

2) почему не сделать заготовку данных один раз и тестить на ней, а не запускать заполнение каждый раз заново?

потому что в information_schema (метаданные базы) как раз самые интересные таблицы: например, есть таблица запросов, которые сейчас залочены транзакциями из других запросов. Ударение на слово «сейчас».

Ударение на слово «сейчас»

теперь понятно

Якщо user2 хоч десь в якійсь таблиці метаданих в себе бачить цю процедуру sp1()

это в какой базе такое возможно?

Вище я задавав подібні питання і Денис на них відповів
dou.ua/...​rums/topic/35471/#2279524

увидел только ответ, что база не на пайтоне написана;

но вот — что за база — неизвестно;

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

Не получить чужие данные, а узнать о существовании объектов, созданных другим юзером. Не критично, но не очень красиво.

узнать о существовании объектов, созданных другим юзером.

все-равно — неожиданно :)

Да в любой, в которой не протестили.
Думаю, тут тоже, если поковырять, можна много найти dev.mysql.com/...​hema-table-reference.html

А бизнес — доверяет этой экосистеме.

logical fallacy
В бізнесу може не бути вибору або йому просто не дадуть вибирати

а тормоза — в базе данных, если о быстродействии речь

В попередньому топіку кривий плагін на пхп срав запитами в БД
БД помирала
Хто винуватий в тій ситуації?

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

А які плагіни зручні для другого Пітону? Я взяв PyCharm, але з плагінами не робирався.

другого Пітону

Прикопуйте вже xD

PyCharm, але з плагінами не робирався.

Там «вбудований» і включений за замовченням
Його з головою має вистачати

Якщо потрібно в CI, то треба дивитись, що є під потрібну вам версію
Дивіться в pip на
flake8
— pylint
— pyflakes

realpython.com/python-code-quality

Прикопуйте вже xD

 А коли на ньому дофігіща тестів бігає?

Там «вбудований» і включений за замовченням
Його з головою має вистачати

Не ловить. Чи його десь вмикати потрібно окремо.

А коли на ньому дофігіща тестів бігає?

2to3
Це рано чи пізно треба буде зробити

Не ловить

Не ловить взагалі нічого чи щось специфічне?

Чи його десь вмикати потрібно окремо.

По дефолту ввімкнено
ctrl+alt+s
Inspections

Не ловить взагалі нічого чи щось специфічне?

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

Та я вже той тест доб’ю якось руками, й повернуся в С++ з компілером...

Передивився налаштування — воно ввімкнене. Навіть кілька разів щось пропонувало цікаве, на зразок переробити стовпчик my_list.append() на просто список з аргументами в квадратні дужки. Але використання невірних методів чи типів геть не ловить.
Дякую за підказку в будь-якому разі!

чтоб начало ловить, надо ему сообщить о типах в заголовках функций.
Сам он не пытается догадаться.

Ну вот это и грустно.

Так язык же нетипизированный. Может вы уже в следущей функции вместо инт строчку кинете.
Искусственный интелект еще не подвезли, да.

Ну типа же PyCharm и CLIon все так долго хвалят.

Нормально он подсказывает. Экономит кучу времени особенно на рефакторинге. Хотите, чтоб ограничивал типы — пишите типы, по другому никак. В C++ они написаны, потому там чекает.

Ну тогда теряется скорость писания.
Чукча же писатель, чукча не читатель.

В бізнесу може не бути вибору або йому просто не дадуть вибирати

просто расскажут, что это единственный вариант за его деньги :)

А зачем много строк?
Надо писать лаконично :)

А с питона обычно переписывают на Го.

питон даже ноде не видится конкурентом.

Скажи, вот я вижу разницу между Ассемблером и С++. Вижу разницу между С++ и Джавой или Шарпом. А какой такой прорыв совершил Питон, чтобы на нем можно было в 10 раз быстрее кодить ?

Он реально удобен. Вот тупо удобен и все.

По сравнению с Си ? Может быть.
А что по сравнению с Шарпом ?

Возвращает «о», которое посредине )) Ну по факту это работа с индексами в синтаксисе [start:end]

Да понял я. Есть такое.
docs.microsoft.com/...​oposals/csharp-8.0/ranges
Честно ни разу не було необходимости попробовать.

Чуствую из тайпскрипта будут языковые фичи переезжать в сшарп теперь по расписанию.

Slicing? Вроде подвезли в одной из последнийх версий шарпа. Могу ошибаться.

не поверишь — "foo"[1:2]
начиная с 8 версии docs.microsoft.com/...​oposals/csharp-8.0/ranges

ХЗ, мне вот это «программирование оступами» четт не сильно зашло.

А я седня исправил баг в тесте, просто уменьшив отступ для 10 строк)))

Это что?
Проблема была в том, что контекст менеджер, запускающий квери к базе в сабпроцессах, по методу stop() сигнализировал сабпроцессам остановиться, а join() на них делал внутри __exit__(). Как известно, __exit__() дергается движком при закрытии блока кода with уменьшением отступа в коде.
Вот в моем случае квери, запущенные через

with ParallelQuerie as par:
    par.start()
    do_parallel_test()
    par.stop()
    do_normal_test() # The old queries will be joined in background to save run time
продолжали несколько секунд бежать и конфликтовали с кверями к базе из другого теста, который позже запустили. Типа нестабильный результат теста.
Пофиксилось так:
with ParallelQuerie as par:
    par.start()
    do_parallel_test()
    par.stop()
do_normal_test()  # The old queries are now joined before this line
Это что?

автоформат для

просто уменьшив отступ для 10 строк)))

Це була помилка в логіці

Візуально краще ще додати пусту строку після закінчення блоку

І чого .start() не запхнути в __enter__?

Бо зараз код більше схожий на try-finally написаний з with

Ну помилка в логіці, котра зафіксилася зменшенням відступу для десяти рядків коду.

І чого .start() не запхнути в __enter__?

То я напочатку думав, щоб доганяти хвости отих паралельних субпроцесів одночасно з початком виконання другого тест сьюту. Тому окремо зробив методи start() та stop(). А виявилось, що коли на серваку щось тормозить, тести заважають один одному. Таке. Як воно зараз виглядає — то можна було б запхати їх до __enter__() та __exit__().
Але прикольно, коли бага фікситься відступом.

Але прикольно, коли бага фікситься відступом.

Meh
Те саме було в часи коли руками треба було скобочки рахувати і в правильному місці визов функції в алгоритмі втулити

Візуально краще ще додати пусту строку після закінчення блоку

в питоне отступ 4 пробела, тоесть 4 или 8 но никак не 10

а что где то можна програмировать и линтеру пофиг на отступы ?

У нас нет линтера, питон проект один из проектов большого зоопарка :-)

и джаваскрипт и джава линтеры проверяют читабельность кода по количеству отступов.

У нас нет линтера, питон проект один из проектов большого зоопарка :-)
А какой такой прорыв совершил Питон, чтобы на нем можно было в 10 раз быстрее кодить ?

Та можно и в 100 раз быстрее... Просто фигня получается.

Пруфы нам нужны пруфы Билли.
Например на шарпе текст из файла читается вот так.

var str = File.ReadAllText(path):

На питоне уже пишут силой мысли ?

І на шарпі це «гарна практика» читати весь файл?

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

Це питання про гарні практики

Якщо зробити гарно не вимагає додаткових зусиль — це треба робити

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

Ну йо-майо
Гарні практики, це коли ваш код не падає від читання файлу, який повинен бути 1б, але хтось в іншому місці не використав гарні практики і фігнув туди 1Гб

Гарнно — це код якій відповідає вимогам, якщо вимога парсити файли розміром в гектари є, то треба писати інакше и С# надє купу інструментів для цього, і це вже звосім інша тема.
Не гарно — займатись перформансом колі про це не було нічого в вимогах до проєкта.
Текстовий файл з гектаром данних?! Можна приклад? Уся державна бібліотека? Логи debug в стилі «я покакав» за місяць в одному файлі?
Сорян але файли розміром у гектар і більше це трохі інша тематика.

код якій відповідає вимогам

З цього я роблю висновок, що вимога, щоб код не падал чи не віджирав купу рам — не є обов’язковою

І що мінімальні рухи по написанню коду є

займатись перформансом

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

По хорошему ты должен всего лишь задать вопрос в/на митинге/джире/письме будут ли там эти самые гектары или нет и не колупать мозги ни себе ни другим со своим перформансом.

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

З цього я роблю висновок, що вимога, щоб код не падал чи не віджирав купу рам — не є обов’язковою

Конечно не обязательно. Тебя менеджер попросил прочитать, распарсить, обработать, записать нужное в другой файл. Этот скрипт будет запускаться от силы 2 раза. Убивать время на тюнинг такого — за такое надо писдить.

dou.ua/...​rums/topic/35471/#2279397

І ваш нецензурний підхід, я також зрозумів
не переживайте

Ні, ну от буває, що прога грохнулась, коли їй згодували здоровий дамп в .csv без символів переносу рядків. Але то радше виняток.

Ну как я писал выше — достаточно задать вначале вопрос -«там будут толстые и жирные файлы? Если да то какой размер? и так далее по другим параметрам», если да, то расширяешь скоуп стори или писать новую и делаешь что надо.
Вообще файлы в гектар это еще подумать про транзакционность операции?Она нужна? Это чтение или вставки или мердж? Какие данные вставлять, как хэндлить ошибки на уровне одной строки? Их же там миллионы! И откат транзакций, нужен или нет? Это ж наверное еще аснихронно нужно, а у нас вэб например? Что тогда? Это апдейт/мердж? Откуда данные идут?

Гектары в фале на сервере это всегда просадка по перформансу для харда и сети на чтение и закачку выкачку такого файла, а если упадет выкачка или закачка сорца или результата? А если упадет по середине процессинга? Снова по новой или восстанавливаем процесс процессинга, тут вообще сложно станет :-)

Балк инсерт? А шо с базой в этот момент? Лочим нах таблицу и ждем пока туда миллионы строк зальются? Лок таблицы ложит другие запросы которые требуют завершения этой операции.

А что если два одинаковых файла процесятся?...Ну вобщем там гора вопросов как фиче и это тянет даже на целый эпик.

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

Ну как я писал выше — достаточно задать вначале вопрос -«там будут толстые и жирные файлы? Если да то какой размер? и так далее по другим параметрам», если да, то расширяешь скоуп стори или писать новую и делаешь что надо.

Кому задати таке питання? Комусь з мієлофоном? Це працює коли в замовник Ванга.

Вообще непонятна тут суть дискуссии. В хорошем коде который расчитан на все случаи жизни ,должна быть развилка. Чтото типа если файл меньше 64кб то читать его в один присест. Если больше, то порциями. Связано это с тем, что чтение в один вызов маленьких блоков будет всегда быстрее чем тоже чтение с дерганьем порций со всем стеком хранилища данных. В банальном механическом винчестере, выгодней прочитать блок скопом, чем прочитать маленькую часть, дать головке винчестера уйти читать другую дорожку, а потом заставить головку винчестера вернуться на вашу дорожку, читать следующую порцию в секторе. Ровно тоже, только менее выражено, происходит и с ссд дисками и даже с озу.
Поэтому вот этот черно-белый мир, «мне бабушка сказала файлы всегда читать порциями» он честно говоря не понятен и я бы сказал даже наивен.

Такие вопросы задаются стори/продукт оунеру, обычно или сеньором или тим/тех лид или архитектор.
Какой мелофон и Ванга? Упрлс штоль?

Такие вопросы задаются стори/продукт оунеру, обычно или сеньором или тим/тех лид или архитектор.
Какой мелофон и Ванга? Упрлс штоль?

Так продакт овнер може не продумати, що туди файл можут запулити на пару порядків більше. Це зараз маленькі файли, а в майбутньому може змінитися бізнес логіка. І це добре якщо розмір точно вказаний десь в документаціях. А може ж просто на стендапі ти запитав, тобі відповіли -> потім стався фейл -> продакт овнер прикриває свій зад і каже, що нічого такого не казав/ти не зрозумів/мав на увазі, що в більшосіт випадків файли будуть на пару рядків. Це ще простий варіант.

Простіше потім пофіксити баг, якщо він з’явиться, аніж писати уберфічу, що ніколи не знадобиться.
Keep it Simple, Stupid

Як і що _спрощує_ одномоментне зчитування файла в пам’ять?

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

Бубен писал за работу с хардом, но ты и тебе подобные, дальше продожаете повторять мантру «чтения файлов по кусочкам».
Сколько можно уже этот бред форсить?

Я писал выше о том какие нюансы при работе с большими файлами бывают и чтение кусочками это мизер из того что потом вылезет.

Ви описали проблеми
— відсутність локального кешу великого файлу завантаженого по мережі
— відсутність у вашій СУБД транзакцій
Якщо вирішити ці два питання, то інші не виникнуть

за работу с хардом

Посилатись на бубна xD

Мде

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

Кэш? А шо память уже не экномими? :-)))

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

Еще раз — ты не шаришь, потому не лезь со своими оптимизациями.

Бубен упомянул актуальную штуку про чтение хардом информации и переключении между секторами, что тут не так?
Мамкены оптимизаторы такое не умеют потому и не надо?

Таке
Знову ж посилання на некваліфікованих — ну так собі аргумент

Що з рам і oom-killer у шарящіх

Мамкены оптимизаторы

?

Чи у вас по пару тб одразу стоїть?

Какое посылание? Мамкен оптимизатор не знает что переключение у ххд между секторами жрет много времени из-за механики железа? Ну пойди в гугль штоле.
Засунуть гектрный файл в кэш а потом оптимизировать чтение этого файла? Аплодисменты! :-)

Що з рам і oom-killer у шарящіх «мамкены оптимизаторы» ?
переключение у ххд между секторами жрет много времени из-за механики железа

Хто гарантував, що файл буде розміщений одним блоком?
Кеш хдд?
Кеш ОС?

Засунуть гектрный файл в кэш а потом оптимизировать чтение этого файла?

Нагадую, що ви пропонуєте цей же файл, роздути і покласти в рам

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

Хто гарантував, що файл буде розміщений одним блоком?

Ты совсем поехавший? Никто и не гарантировал этого.

Я предлагаю сначала определить будет ли там большой файл

Можно не определять, а просто использовать
File.ReadLines
docs.microsoft.com/...​nes?view=netframework-4.8.
Теже яйца в одну строчку без файлстримов и прочей дичи.

contents=open(filename).readlines()

Ты знаешь размер файла ?

А ти?

with open('path/to/file', 'r') as fd:
    str = fd.read()

Похоже Питон жёстко проиграл. Этот говнокод ближе к Си а не к нормальному высокоуровневому языку.
Переходим к 2й фазе, Linq запросов.
Как выбрать из коллекции всех юзеров с именем Vasya и отсортировать по возрасту.

list.Where(u => u.Name == "Vasya").OrderBy(x => x.Age);

типа lines = open(path).readlines() это сразу с разбивкой на строки

list.Where(u => u.Name == "Vasya“).OrderBy(x => x.Age);

sorted([u for u in users if u.Name == “Vasya”], key=lambda x: x.Age)

Усложним пример. Монада. Вернуть всех детей у всех Vasya в коллекции
list.Where(u => u.Name == "Vasya").SelectMany(x => x.Childs);

Как на Питоне ?

Расскажите мне кто-то, что такое монады.
Сегодня уже пытались объяснить, получилось похоже на фильтры в линуксовом шелле.
list(itertools.chain(*[u.Children for u in users if u.Name == «Vasya»]))

монады и «flatten» коллекций это одно и то же, как я понял. Сам бы никогда не подумал, что SelectMany это оказывается монада

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

(фигня какая-то), сорри

Нет, это теория категорий. Вся здесь суть убрать ифы и лишние форы и оперировать обьектами балково. Ибо ифы в любом языке от лукавого. Любой иф это исключение. А исключение это потенциальная ошибка в коде.
Это позволяет абстрагироватся от говнокода и оперировать не штучными обьектами, а категориями обьектов. Тоесть один стакан карандашей, коробка карандашей или один карандаш на столе, могут быть приведены к общему знаменателю, коллекция карандашей. И когда у тебя будет задача, например, искать синий карандаш на столе, то монада сможет это делать просто в одну простую операцию, независимо от того во что упакован каждый карандаш.

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

Так там for_each() шаблонный, что ему подсунешь, на том и побежит. Это была великая задумка стандартной библиотеки.
Шаблонные алгоритмы и контейнеры со стандартным интерфейсом. Любой алгоритм бежит на любом контейнере, реализующем нужный интерфейс. Прям как в Питоне. Почти.
А контейнеров с несколькими типами данных вперемешку тогда еще не завезли (да и сейчас, наверное, они кривые в С++).

[c for u in list if u.name == “vasya” for c in u.children]

Скажи лучше, как на C# из этих детей выбрать все возможные комбинации по три, т. е. аналог itertools.combinations(children, 3). (Всяческие перестановки и комбинации очень полезны в тестах, когда надо проверить всевозможные варианты.)

Так в твоем стиле

open(’path/to/file’, ’r’).read()

Тоже сработает. Просто в питоне принято использовать with.

Це більше про те щоб не слідкувати за закриттям файлового дескриптора і не робити обгортки на випадок помилок

Але то тому трейні бубну важко пояснити

А питон тоже закроет его как только оно выйдет из зоны видимости(тоесть в этом примере — сразу).

*Коли вийде і коли GC прийде і порахує

к.м.к. во всех ну или «во всех массовых» языках у которых GC есть у них тоже есть типа питоновского with | close или сишарповского using | dispose

Тіки от в пітоні в перших же мануалах спочатку розказують, як правильно робити, а потім варіанти як можна

Я тащусь от
File.ReadAllLines
Оно еще вкуснее. Возвращает все строчечки в массив
docs.microsoft.com/...​nes?view=netframework-4.8

Тобто в меморі покладеться не просто строка, а строка в обгортці

Пам’ять жиж гумова

Оно для того чтобы взять лог за сегодняшний день например и в одну строчку вычитать все линии. Удобно. Для экономии памяти есть другие 1000 и 1 возможностей работы с файлами.

Пам’ять жиж гумова
лог за сегодняшний день например

Тобто у вас настільки маленькі добові логи, що там ніколи не буває по пару Gb

І неявна поведінка — це ок

var str = File.ReadAllText(path):

І іменування масиву як str — це ок

Ясно
Ви на двох тут нормально зашкварили шарп

var str = File.ReadAllText(path):

эта штука вычитавает одну строку, а эта штука

var strArr = File.ReadAllLines

вычитывает в массив строк
И не спрашивай почему var, а не let или const

Файлы в неск Гб это всегда гемор, у нас(на одном из многих проектов) логи пишутся на каждый день в отдельный файл. Вообще для логирования есть куча тулов/апликух типа сирилог или как он там и ему подобные, где сделано куча перделок типа фильтрация по энвам, сервисам, датам и типам эксепшенов и даже по юзерам у которых там четт падало если не наноним запрос...етц, а логи в неск Гб это для садо мазо что-то.

сирилог

это штука прям классная внатуре. чуть сложнее в чем-то, но классная

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

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

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

xD
Звісно-звісно

Але погана практика читання всього файлу, який ще й без спросу кидається одразу в массив — це рекомендована практика?

Да, это рекомендованная практика для небольших текстовых файлов.

dou.ua/...​rums/topic/35471/#2279274

Тут нічого не було про

небольших

_

І іменування масиву як str — це ок

Як просто вас злити просто цитуючи ваші ж слова

Если мне один раз нужно будет файл на 4Гб обработать, я не буду еба*ся со стримами а просто вычитаю в одну строку C#, обработаю в linq и забуду. И пофиг что это будет операция на секунд 50 и выжрет всю раму.

Що станеться після

выжрет всю раму.

?

_
Який оверхед дасть linq?

Що станеться після

выжрет всю раму.
?

бросит OutOfMemoryException возможно. Это еще надо постараться.

Який оверхед дасть linq?

Смотря как им пользоваться и что вообще делать, сколько проекций городить например.

Это еще надо постараться.
И пофиг что это будет операция на секунд 50 и выжрет всю раму.
Але погана практика ч

Плохая практика — это под вопросом с примером на шарпе «а есть ли подобный функционал в Питоне?», доколупываться к тому, что нет проверок на размер файла в примере функционала.

По контексті розмови, ви мали б зрозуміти, що я натякав на читання файлу по строкам
І мова про текстовий формат з \n
І якщо читати і обробляти по строкам, то не треба читати весь файл в пам’ять

Але мені доповіли, що dou.ua/...​rums/topic/35471/#2279397

В контексте разговора ты должен был понять, что Бубен спрашивает «Возможно ли в питоне прочитать текст из файла одним вызовом? В шарпе можно вот так (пример бубнового кода)».

Например на шарпе текст из файла читается вот так.
var str = File.ReadAllText(path):
На питоне уже пишут силой мысли ?

Но вместо того, чтобы ответить (что снизу и попытались сделать): «Да, можно вот так» или «Нет, нельзя» ты начал срач о корнер кейсах чтения больших файлов в память и практиках. Но каким образом

І на шарпі це «гарна практика» читати весь файл?

отвечает на вопрос

«Возможно ли в питоне прочитать текст из файла одним вызовом? В шарпе можно вот так (пример бубнового кода)»
Але мені доповіли, що

В разрезе вопроса Бубна правильно ответили. Не понимаю что тебя смущает.

В контексте разговора ты должен был понять, что Бубен спрашивает «Возможно ли в питоне прочитать текст из файла одним вызовом? В шарпе можно вот так (пример бубнового кода)».

Це ваша інтерпретація

ты начал срач о корнер кейсах чтения

best practice

отвечает на вопрос

і відповіддю на моє питання було — лінк на відео з матом на рфіянській

Це ваша інтерпретація

То есть в твоей интерпретации Бубен спрашивал о best practice, раз ты начал педалировать эту тему?

best practice

Какое отношение эти best practice имеют к вопросу Бубна?

і відповіддю на моє питання було — лінк на відео з матом на рфіянській

А какой реакции ты ожидал на свой офтопик?

Какое отношение эти best practice имеют к вопросу Бубна?

Зі всього обміну думками, я зрозумів, що це риторичне питання
І так, мені стидно, що з топіків Бубна я це не зрозумів це раніше

і що

best practice

це

офтопик

xD

І так, мені стидно, що з топіків Бубна я це не зрозумів це раніше

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

best practice

не попали в

офтопик

относительно заданого вопроса.

Ну так питонский файл сам по себе является последовательностью строк.

for line in open("/some/file"): do_something(line)

Но можно и readlines(), если сильно хочется сразу сформировать список.

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

Еще один мамкен оптимизатор нанобайтов? :-) Чего ж тогда сразу не на ассемблере файл парсить ? :-)

еще один суровый украинский программист ))) на этом наше обсуждение заканчивается )))

Ни одному нормальному программисту не прийдет в голову открывать файл и целиком грузить его в массив.

Во-первых, File.ReadAllText открывает и читает целиком _текстовый_ файл. Вторым аргументом задается его кодировка. Улавливаешь разницу ? Как у читателей файлов порциями с юникод и ютф-8 кодировками ? Напомню в ютф-8 (который дефакто стандарт) один символ может кодироваться как одним так и двумя байтами. Тоесть выровнять порции невозможно. Вполне может прилететь чтение «половины символа»

используя почти английский язык

Вот если честно не понятен упор питона на английский язык.
Приведу пример.
Будет ли «x equal left bracket one plus one right bracket» читаться лучше чем «х = (1+1)» ?
А в питоне похоже даже простой и лаконичный синтаксис лямбды ухудшили английским языком. В шарпе ничего лишнего x => x + 1

Ни одному нормальному программисту не прийдет в голову открывать файл и целиком грузить его в массив.

Я так всегда делаю для логов с железа в эмбедеде

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

слышал что счас 90 процентов интервью в фанги идет на питоне и жаваскрипт.

тут не про разницу которую ты видишь, тут про троицу качество-стоимость-скорость проектов. И в этом питон выигрывает у джавы.

Кандидати швидко втомлюються проходити відеодзвінки з екзаменами та знайомствами. Десь 10 ще норм, до 20 вже всі хочуть втекти і це припинити.

У меня 3-5, дальше хочется прекратить так как сильно устаю.

Особенно надоедают вот эти «давайте расскажу вам про компанию» — и дальше 10 минут птичьей трели без остановки, если не записал опорные вопросы — могу забыть спросить о чём-то важном.

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

Малоизвестные компании для меня — потенциальные лауреаты ёбаного айти.

Только почему-то большие, там, топ тематика ;-)
Не все маленькие плохие, но многие маленькие откровенно днище, а еще некоторые маленькие заметно лучше больших ;-)

ИМХО, большие по-настоящему там давно не фигурируют. Какие-то частности в виде отдельного сотрудника/офиса — да, но при тысячах людей этого не избежать.

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

Ну там есть отзыв на одну из контор, которая меня уволила во время отпуска. Как «ненадежного сотрудника». Вот почитав отзыв, понимаю, почему все так долго переглядывались, когда один из директоров говорил, чтобы мне зарплату выплатили после увольнения. Оказывается, там обычно кидают.
Резюме: надо фильтровать базар. Есть отзывы, как на корпоративе проблевались, а есть — что контора судится со своими программистами за распространение порно с рабочего компа, на котором ось предустановлена конторой (кстати, крупный аутсорсер).

Я навіть як інтерв‘ювер більше однієї співбесіди на день не стягую :)
Тут все-таки треба темп підбирати обережніше.

...а то можна вигорiти ще на этапах спiвбесiд, та в перишй робочий день звiльнитися

Як можна вигоріти на співбесіді, аж не захочеться працювати, уявити важко. Хіба що пожежа в офісі...

angel.co, відгукнувся на 5, тиша

Бесполезный сайт.

Ну выглядел сначала очень привлекательно — стартапы из Silicon Valley... :) но глухо

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

Подтверждаю: с клиентами из Израиля работать изнурительно и некомфортно.
Не рекомендую.

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

Дискриминацию по принципу «гой» или «свой» уже отменили?
youtu.be/ZWd6Zw78cDM?t=1924

Хз. Явно сильно лучше чем бразильцы и итальянцы. Там никакой дискриминации но нельзя добиться даже ответа да-нет.

Израиль — супер эффективное государство с развитой, супер технологичной экономикой. С моей точки зрения, одно из самых мощных и влиятельных в современном мире

Более влиятельное даже, чем Турция, Россия или Германия в геополитических, финансовых и экономических вопросах.

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

Вообще, когда в 2008 работал на израиль через аутсорсера — там очень хорошо принимали в командировки. Но, может, это зависит от коллектива — в эмбедеде там старшее поколение, и многие смотрят как на племянника)

Ось ще приклад відвертого антисемітизму youtu.be/UUZQDp9mvgA?t=39

Загалом мені байдуже хто людина по національності та віросповіданню, головне щоб людина була людиною, адекватною. Але мене цікавлять історичні процеси минулого та істинні причини конфліктів, тому доводиться інколи слухати / читати нецікавих мені персонажів.

В українських православних священиків ніколи не чув щось подібне, але навпаки.

Якщо компанія та її керівництво порядні та професійні в своїх стосунках з підрядниками та співробітниками, то яка різниця хто і звідки?

Нормальні люди, шо у ІТ працюють таких серйозно не сприймають. Ну уявіть розповідає дядько аналогічне про українців, чи слов’ян, як ви до нього поставитеся? Ті євреї, що у ІТ працюють — розумні люди і принаймні не виставляють таке напоказ. Скоріше вони дивляться на усе із т.з. бізнесу та грошей, там вони можуть бути жорсткі. Ну і ті із якими я працюю і взяв два контрофери (лол) — не вірю, шо і близько такі. Крім сісадміна, але для сісадмінів усі крім них гої.

В кожному народі є свої ультра-націоналісти, фашисти та шовіністи.

Але тут питання чи засуджують публічні адекватні та чесні ізраїльтяни своїх ультрасів та шовіністів (фашистів) в їх ставленні до інших народів?

Бо ідеологічний шовінізм там однозначний та доволі прямий.

Шовінізм — це доволі поширене, дикунське явище по всій Європі та світу. Він є в росіян, турків, японців, німців, поляків та інших народів світу.

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

В українській релігії та національній традиції дійсно немає дискримінаційних концептів у стосунках з іншими народами.

Ну, якщо пам’ятати про Проскурівську різню та історію погромів в цілому, то ні, якось не дуже унікально.

Особенно радует сдвиг по выходным. Хоть один день в неделю не задалбывают.

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

я работал на галере с ними, нормальные, в принципе, ребята, но что их в пятницу на работе не было — это было бесценно

В пятницу короткий день обычно.

у них был выходной, но работали в воскресенье

6000 з багато років досвіду — це щось з минулої декади.
В реальності коли ви на кандидата випускаєте від 50 до 400 відеодзвінків з клієнтами — то очевидно, що не змогли правильно його оцінити. Просто додайте +$2000, й дзвінків стане менше. І продовжуйте додавати, доки кількість не стане комфортною.

Мені здається, для початку діалогу потрібні ключові технології в резюме та пройти людину-фільтр рекрутера і англійську.
А для найму — це просто чи сподобалися менеджеру або техліду один одному на інтерв’ю, чи можуть вони уявити сумісну продуктивну роботу, чи добре один одного розуміють.

Скільки не копалася в даних, скільки не читала чужі дослідження з джоб-сайтів, рекрутерських агенцій, matching сервісів — там ніде нема корелюючих факторів.
Саме корелююче було для успішної співпраці — чи люди вчилися в одному університеті або працювали в одній великій компанії раніше з тими, хто вже в команді, тобто culture match.

Ключові ж на те, щоб не спілкуватись, коли їх нема? Відповідно, усі сотні дзвінків у вас вже після фільтру за технологіями. Аргумент не дійсний.

Успішна співпраця та працевлаштування — геть різні речі. З останнім в мене широкий досвід, та ніколи не йшов до знайомих керівників.

Так двусторонній матчінг опису вакансії та резюме

багато таких реалізацій, але не працюють (я не зустрічала), лише за основними фільтрами,
типу: Python, від 2 років досвіду, англійська від intermediate, зп до $4000

Я вже як бачу в вакансії табличку з роками по скілам
Стараюся обходити. Найчастіше індуси і їм подібні

Там часто запрос на молодых и наивных, со всеми соотвествующими плюшками — низкая зп, лычки всесто повышения зп, овертаймы и прочие попытки менджмента прогибать. Взрослые, естественно, при таком цырке не стесняются слать на три буквы и не «приживаются» в «семейных, дружных» коллективах :-)

Підписатись на коментарі