pstepchenko

7 марта 2016, Phuket, Thailand

# Понедельник 33 твита

Привет всем! С небольшим опозданием, данный аккаунт перемещается в солнечный Тайланд и с вами на этой неделе буду я @pstepchenko

10:51

По традиции представлюсь. Меня зовут Петя, мне 24 года, холост.На данный момент я уже полтора года живу и работаю в Тае

11:00

Занимаюсь я full-stack разработкой в компании aviasales.ru

11:01

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

11:03

Планирую поговорить с вами непосредственно о full-stack разработке, как я докатился до такой жизни и почему доволен, о переезде в Тайланд ->

11:06

@rubyunderhood о жизни тут, об устройстве и организации работы в авиасейл, о тревел бизнесе, а дальше как пойдет. Надеюсь, будет интересно!

11:10
@rubyunderhood Зачем full-stack? Ведь это две разные области: front и back.

.Я несколько лет занимался исключительно бекендом и в фулл стек пришел по нескольким причинам: --> twitter.com/AlexWayfer/sta…

11:22

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

11:26

2. Из-за нехватки фронтендеров в прошлой аутсорсинговой компании приходилось делать все самому, так как проекты должны запускаться.

11:27

3. Это интересный опыт, позволяющий окунуться в другую стихию, и после чего лучше проектировать свой api

11:29

Интересный факт: в aviasales нет разделения на front-end и back-end, разработчики стараются полностью делать все части проекта

11:36
@rubyunderhood А я вот наоборот, полностью забросил фронт и сфокусировался на back, потому как достали макеты, приятнее писать код ->

.Когда верстка наскучивает и превращается в рутину, я включаю какой-нибудь сериал и продолжаю с удовольствием twitter.com/AlexWayfer/sta…

11:38
@rubyunderhood в fullstack проблема в том, что на тебе все баги, даже если это делал не ты. Не удручает?

.Порой бывает. Нет ничего плохо в эти моменты поругаться и пошутить над багами, очень помогает расслабиться twitter.com/liberi_hominis…

11:44

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

11:46
@rubyunderhood а ты тоже проходил жуткое интервью по скайпу?Мне задавали кучу вопросов про сложность алгоритмов и реляционную алгебру,янесмг

Мое собеседование проходило около 20-30 минут. Чего-то сверхъестественного не было twitter.com/pimpmyhand/sta…

11:48

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

11:50
@rubyunderhood Смотреть сериал и верстать одновременно? Да ещё на работе? Серьёзно?

Вполне. Вывожу небольшим окошечком в углу, что бы не мешало, это как музыка, только больше концентрирует внимание twitter.com/AlexWayfer/sta…

12:56
@rubyunderhood какой стек технологий? Используете только rails? Применяете ли reactjs?
13:39
@rubyunderhood много ли у вас сотрудников?
13:39

Расскажу по порядку про компанию. В aviasales работают 120+ человек. Основная часть на Пхукете и мобильная разработка в Питере

13:42

Компания разделена на несколько команд: aviasales, hotellook, travelpayouts, jetradar, команды аналитики и гейтов. По 3-7 человек в каждой

13:56

У каждого продукта есть свой дизайнер, с которым на месте все придумывается и решаются вопросы по дизайну. Все дизайны в sketch

13:57

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

13:59

Стек технологий очень общирный и подбирается под конкретные задачи. Встречаются: ruby, python, elixir, go, es6, coffeescript, clojure

14:00

На прошлой неделе вышло две статьи про наши офисы:
asia-in-focus.com/aviasales
vc.ru/p/aviasales-of…

14:05

Также мы всегда рады гостям. Заходите знакомиться, если будете рядом!

14:07

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

15:20

Рабочий день у нас смещенный, начинается в 12 утра и заканчивается в 9 вечера. На первый взгляд может показаться неудобным, но это не так

15:21
Рабочий день у нас смещенный, начинается в 12 утра и заканчивается в 9 вечера. На первый взгляд может показаться неудобным, но это не так

До 12 можно успеть много важных делал, съездить по делам, покупаться на море и свободно успеть на работу twitter.com/rubyunderhood/…

15:23
До 12 можно успеть много важных делал, съездить по делам, покупаться на море и свободно успеть на работу twitter.com/rubyunderhood/…

Также можно тусить всю ночь, при этом успеть выспаться и протрезветь до 12ти twitter.com/rubyunderhood/…

15:24

Сейчас вспомнил что сегодня и завтра в России выходные, а мы работаем. А как у вас: отдыхаете или работаете?

15:26
Почитал @rubyunderhood , что-то захотелось в Aviasales работать…

У нас есть несколько открытых вакансий как на Пхукет, так и в Питер, завтра уточню и опубликую тут. stay tuned! twitter.com/poctek/status/…

15:51
@cssunderhood не могу согласиться, работа программиста это не время и не место где он сидит. И для бизнеса не время приносит деньги

Тут уже вопрос доверия сотрудникам и профессионализма руководства twitter.com/rubyunderhood/…

18:30

# Вторник 49 твитов

Доброе утро! Пока в центральной России раннее утро и выходной, у нас на часах 10:40 и я собираюсь пораньше на работу

3:40

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

3:40
Первый делом сегодня хочу поздравить с праздником прекрасную половину нашего сообщества

Желаю вам чистого и прекрасного как вы кода, доброжелательных коллег и увлекательных задач twitter.com/rubyunderhood/…

3:41
Первый делом сегодня хочу поздравить с праздником прекрасную половину нашего сообщества

Девушки, вы приносите красоту в наш темный нердовский мир и как бы мы порой не злились, мы всегда любим вас! twitter.com/rubyunderhood/…

3:42

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

4:10

А пока еще не все проснулись, расскажите как вы или вас поздравляют в вашей компании?

4:11
А пока еще не все проснулись, расскажите как вы или вас поздравляют в вашей компании?

В aviasales у девушек сегодня выходной, вчера мы им сказали теплые слова, подарили цветы, тортик, открытки -->> twitter.com/rubyunderhood/…

4:15
В aviasales у девушек сегодня выходной, вчера мы им сказали теплые слова, подарили цветы, тортик, открытки -->> twitter.com/rubyunderhood/…

а сегодня отправили в морской круиз на яхте с фруктами и шампанским twitter.com/rubyunderhood/…

4:16
@rubyunderhood получается микросервисная архитектура или монолит? Если первое, то что для транспорта?

Поисковой движок можно назвать микросервисной архитектурой. Он разбит на отдельные юниты, выполняющие свои задачи twitter.com/ajieks/status/…

6:24
Поисковой движок можно назвать микросервисной архитектурой. Он разбит на отдельные юниты, выполняющие свои задачи twitter.com/ajieks/status/…

Каждый юнит представляет собой midleware и вызываются в цепочке через exec twitter.com/rubyunderhood/…

6:24
Каждый юнит представляет собой midleware и вызываются в цепочке через exec twitter.com/rubyunderhood/…

Подробнее об этом можно посмотреть в презентации Бориса Каплуновского c highload2013 slideshare.net/profyclub_ru/5… twitter.com/rubyunderhood/…

6:28
@rubyunderhood python для чего используется?

Питона достаточно много: поисковой движок, агрегатор статистики, еще несколько утилит и сервисов в разных командах twitter.com/vanadium23/sta…

6:32
@rubyunderhood столкнулись с бедой, что данная схема не сильно маштабируется. Потом всё равно нужен сильный рулевой отдел

Если много команд работает над одним проект, то да, не подойдет. Если как у нас над разными, то хорошо подходит twitter.com/vanadium23/sta…

6:34
@rubyunderhood @c01nd01r @cssunderhood а я думала мотивация, это не про количество задач, а про качество кода

Мотивация и качество кода немного совсем разные вещи. Для мотивации значение играет совокупность факторов twitter.com/gaar4ica/statu…

6:36
@rubyunderhood @c01nd01r @cssunderhood Синхронизация команды на 5 минут помогает увидеть, что кто-то застрял с задачей, помочь её решить

Для синхронизации команды есть стендапы, к логированию времени это особо не относится twitter.com/gaar4ica/statu…

6:40
Мотивация и качество кода немного совсем разные вещи. Для мотивации значение играет совокупность факторов twitter.com/gaar4ica/statu…

Логирование времени делается чаще всего для плохих менеджеров или что бы рассчитывать погрешность оценки задач twitter.com/rubyunderhood/…

6:40
@rubyunderhood а что можете сказать про "фирменное блюдо"? vc.ru/p/kalinov-hr

Рекомендую, коронное блюдо шеф повара twitter.com/oleg_antonyan/…

6:45
@rubyunderhood поисковый движок на Питоне? -GIL не мешает-, кхм-кхм, скорости хватает? (:

Там торнадо во всей его красе twitter.com/vanadium23/sta…

6:46
@rubyunderhood да, но общие точки у проектов всё равно будут, где и понадобиться руководство

Обычно это две команды, что тоже не доставляет особых проблем twitter.com/vanadium23/sta…

6:47
@rubyunderhood py3k? Если да, то 3.4 или 3.5?

3.4 вроде сейчас, честно не силен в питоне и их различиях twitter.com/vanadium23/sta…

6:57
@rubyunderhood а как же общая шина данных, где пересечений команд может быть больше?

Абстрактные примеры, которые решаются по мере поступления, пока размеры компании позволяют не переживать об этом twitter.com/vanadium23/sta…

7:04
Вот вам фото моего домашнего рабочего места.
P.S. скидывайте свои ;) pic.twitter.com/66GwdvIJme

Дома и на работе twitter.com/cssunderhood/s… pic.twitter.com/D5sHyFswmK

7:21
@rubyunderhood @cssunderhood подскажи модель монитора Dell, пожалуйста?

Dell U2417H accessories.us.dell.com/sna/productdet… twitter.com/monogeeza/stat…

7:43

Сори, перепутал U2414H этот accessories.dell.com/sna/productdet…

7:45
@rubyunderhood Если не сложно, можете посоветовать на чем лучше сделать небольшой интернет-магазин? Желательно бесплатные программы.
7:48

.Так как мы в руби твиттере, то могу посоветовать spree, вроде хвалят, сам не работал с ним github.com/spree/spree

7:48
@cssunderhood @jsunderhood @rubyunderhood постоянно об одном и том-же: редакторы, здоровье, кто что жрет, у кого какое хобби... надоело
9:11
@antonfrolovsky @cssunderhood @jsunderhood @rubyunderhood в общем-то непонятно,что еще обсуждать.
9:11
@antonfrolovsky @cssunderhood @jsunderhood @rubyunderhood были ведущие с тех. беседами, но в тви это не читаемо

Так же думал перед началом ведения, попробую на этой неделе добавить познавательных моментов twitter.com/_sashashakun/s…

9:12
Так же думал перед началом ведения, попробую на этой неделе добавить познавательных моментов twitter.com/_sashashakun/s…

Но на самом деле, суть этого твиттера не в технических знаниях, а в живом общении с людьми из разных областей twitter.com/rubyunderhood/…

9:13

Как и обещал вчера, публикую вакансии для заинтересовавшихся работой у нас

10:40

Первая вакансия Fullstack developer(в основном ruby) в мобильную команду в Питер

10:41

Вторая вакансия Fullstack developer в продуктовую команду на Пхукет

10:41

Третья вакансия Fullstack developer(больше фронтенда) в самую безбашенную команду маркетинга в рунете на Пхукет

10:41

Четвертая вакансия Fullstack developer с любовью к big data в аналитическую команду на Пхукет

10:41

И пятая не для разработчиков, ищем сразу двух дизайнеров на Пхукет в Hotellook и в команду маркетинга

10:42
@rubyunderhood что на фронтенде используете?

По разному: es6, coffeescript, react, очень быстрая библиотека от нашего разработчика github.com/monkberry/monk… twitter.com/nemons/status/…

10:53
@rubyunderhood т.е. хамство и личные оскорбления - это норма в aviasales? без сарказма, правда интересно что внутри компании с таким лидером

хорошее чувство юмора норма для авиасейлс, за полтора года не был оскорблен twitter.com/oleg_antonyan/…

11:09
хорошее чувство юмора норма для авиасейлс, за полтора года не был оскорблен twitter.com/oleg_antonyan/…

Но если что-то делаешь откровенно плохо, то скажут сразу в лицо, все честно, никаких подоплек и обсуждений за спиной twitter.com/rubyunderhood/…

11:10

Самое лучше что есть в авиасейлс, это сплоченная команда. Это не просто коллеги, это друзья и семья, с которой живешь и развиваешься

11:13

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

12:05

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

12:05

Разработка ведется короткими недельными иттерациями, заканчивающимися как раз во вторник

12:06

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

12:06

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

12:06

После демо каждая команда проводит ретроспективу, на которой обсуждают минусы и плюсы прошедшей иттерации

12:07

Выносится по 3 основных минуса и 3 плюса, от минусов стараются избавиться, а плюсы закрепить

12:07

На этом этапе частенько меняются или дополняются планы на следующую неделю

12:07

А какие практики у вас в компаниях?

12:08

# Среда 25 твитов

Доброе утро, рубисты. Вчера я немного морально и физически устал, но вечерняя бутылка вина сделал свое дело и я снова в строю

4:50
Доброе утро, рубисты. Вчера я немного морально и физически устал, но вечерняя бутылка вина сделал свое дело и я снова в строю

Знаете ли вы какие-нибудь еще способы быстро привести себя в форму посреди недели? twitter.com/rubyunderhood/…

4:51
@rubyunderhood контрастный душ и физкультура
5:26
@rubyunderhood Забить на всё и лечь спать пораньше. Иногда после алкоголя не очень самочувствие, лучше избегать.
5:26

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

6:21
Сегодняшний день будет более технический. Попозже планирую обсудить с вами стандартные вопросы на собеседовании

Такие как: сложность алгоритмов, индексы в бд, вопросы про два сервера, реалтайм решение задач twitter.com/rubyunderhood/…

6:22
Сегодняшний день будет более технический. Попозже планирую обсудить с вами стандартные вопросы на собеседовании

Кидайте свои вопросы с собеседований, обсудим вместе twitter.com/rubyunderhood/…

6:23
Когда работаешь на чужбине и кто-то прилетел из России 😂 #aviasales pic.twitter.com/KuWAdhIT2t
7:59

Последнее время на swift стало появляться много веб фреймворка, что вы думаете об этом, есть желание попробовать?

8:13
@rubyunderhood Ruby упаси.

Почему? выглядит не плохо, не страдает проблемами руби twitter.com/AlexWayfer/sta…

8:18
Последнее время на swift стало появляться много веб фреймворка, что вы думаете об этом, есть желание попробовать?

Так же вдагонку тот же вопрос про crystal, там вообще похожий на руби синтаксис twitter.com/rubyunderhood/…

8:20
@rubyunderhood Какими, например?

В частности GIL, ну и если можно тут упомянуть, статическая типизация twitter.com/AlexWayfer/sta…

8:24

Новый сезон RubyNoName. И сразу интервью с @anton_davydov rubynoname.ru/posts/2016/S08…

11:08
@anton_davydov Все пишу в контексте @hanamirb, проблема rails-way в идиоте разработчике, у которого появляется иллюзия,что он что-то меняет.

Обожаю такие набросы twitter.com/luke_rubinchic…

12:40
@anton_davydov Опять rails-way? Попробуй написать что-то свое, не похожее на синатру/rails. Отказаться от rack, вот другой подход

Каким образом rack вообще относится к архитектуре и подходу? twitter.com/luke_rubinchic…

12:44
@rubyunderhood что думаешь о всяких движках вроде Spree Commerce ?

Их использование вполне оправданно, не всегда есть время писать все с нуля, часто нужно быстро начать продавать twitter.com/vladimtco/stat…

12:52
Их использование вполне оправданно, не всегда есть время писать все с нуля, часто нужно быстро начать продавать twitter.com/vladimtco/stat…

А вот уже после запуска, исходя из потребностей бизнеса, стоит решить, продолжать доделывать движок или переписать twitter.com/rubyunderhood/…

12:53

У кого есть опыт использования spree, что можете сказать о коде и удобстве разработки?

12:54
@rubyunderhood но зачем использовать именно его, ведь есть решения на том же php

Сложный вопрос, тут стоит отталкиваться от имеющихся ресурсов. например: какие разработчики имеются в компании twitter.com/vladimtco/stat…

13:06

Думаю spree ничем не уступает аналогичным движкам на php. Но при всей моей не любви к php, проектов на нем много и могу хорошо существовать

13:07
I'm looking a remote job (ruby, rails, hanami, sinatra).
My CV: davydovanton.com/cv.pdf

Please, RT! Thanks 🌟

13:33
I'm looking a remote job (ruby, rails, hanami, sinatra).
My CV: davydovanton.com/cv.pdf

Please, RT! Thanks 🌟

Расхватывайте специалиста, пока не утащили. Предлагаю устроить аукцион! twitter.com/anton_davydov/…

13:34
Dear Russian speaking developers, here’s a Ruby NoName Podcast episode about us! #hanamirb #ruby #webdev

twitter.com/rubynoname/sta…

13:39
@rubyunderhood минимальная ставка - два стакана пива, лол

Ставлю 3 стакана крафтового, кто больше? twitter.com/anton_davydov/…

13:40
@rubyunderhood К сожалению уступает, причем на порядок php-коробкам. Использовали Spree - подходит только для очень простых магазинов
13:46

# Четверг 72 твита

Я вчера говорил, что обсудим вопросы на собеседовании, но навалилось много работы. Работать - лучший способ не проходить собеседования

7:05

Начнем с алгоритмов. Если вы не устраиваетесь в google или etc, то глубокие знания алгоритмов вряд ли будут спрашивать

7:06

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

7:08

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

7:11

Что бы научиться оценивать сложность, могу порекомендовать цикл из 4х статей на хабре: habrahabr.ru/post/196560/

7:14

Этого вам хватит для прохождения обычных собеседований. Просто, не правда ли?

7:15

Стандартный вопрос: зачем это нужно, если для написания формочек не требуется?

7:21

Ответ простой: когда вы пишите свой код, вы должны представлять примерную сложность, это напрямую влияет на скорость вашего api и нагрузку

7:23

Недавно я встретил код простой проверки дубликатов заказа, со сложность n^5, который замедлял ответ примерно на 500ms

7:24
@rubyunderhood А что там с множественным наследованием в Руби? Слышал, что популярный вопрос при собеседовании

Отличный вопрос, записал в дальнейшие обсуждения twitter.com/pinyslutty/sta…

7:25
@rubyunderhood после прохождения и проведения с минимум полусотни собеседований такие рекомендации воспринимаются с улыбкой :)

Прекрасно это понимаю, про все тут не рассказать. Пишу тем, кто валится на таких базовых вопросах, таких очень много twitter.com/Fodoj/status/7…

7:39
@rubyunderhood везде (вообще везде) свои процедуры, вопросы, требования и подходы к проведению собеседований.

Расскажешь про свои собеседования? что спрашиваешь, что ждешь от кандидатов, может какие интересные случаи twitter.com/Fodoj/status/7…

7:41

Приведу ссылки для тех кто хочет глубже погрузиться в алгоритмы:

7:47

Большая и сложня книга, под простым названием: Алгоритмы algs4.cs.princeton.edu/home/

7:47

Осилить ее тяжело, есть отличный курс по ней на курсере coursera.org/course/algs4pa…

7:48

Еще одна отличная книга по алгоритмам: Introduction to Algorithms mitpress.mit.edu/books/introduc…

7:49

Таблица сложности различных алгоритмов: bigocheatsheet.com

7:51

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

7:52
@rubyunderhood Вот тут много алгоритмов ocw.mit.edu/courses/electr…
7:54
@rubyunderhood а можно пример? я ни разу не видел алгоритм сложнее n^3

Там просто были вложенные циклы из-за очень кривой архитектуры базы twitter.com/si_manana/stat…

8:28
@rubyunderhood если бы мне на собеседовании на веб-разраба начали задавать такие вопросы, я бы встал и ушел

Считаешь что веб разработчику не нужно знать алгоритмы? почему? twitter.com/ptico/status/7…

9:57
@rubyunderhood какие алгоритмы? Это как вопросы про паттерны. Зачем мне их помнить, когда я за 1 запрос в гугле узнаю все нужные детали?
10:08

.Даже не знаю как на это ответить, ниже приводил пример к чему это приводит

10:09
@rubyunderhood я бы сказал желательно. Но будем честны: кто из веб-разработчиков в последний раз реализовывал алгоритм сортировки?

Это из разряда зачем знать как работают гемы или та же рельса twitter.com/ptico/status/7…

10:45
@rubyunderhood это из разряда зачем знать как работает трансляция в байткод и asm-вставки. Не передёргивайте

Не согласен, когда пишешь код и делаешь кучу циклов, разработчик должен понимать сложность twitter.com/ptico/status/7…

11:02
@rubyunderhood это из разряда зачем знать как работает трансляция в байткод и asm-вставки. Не передёргивайте

Когда делает запрос в базу, то же должен понимать почему тормозит его запрос twitter.com/ptico/status/7…

11:02
@rubyunderhood мы сейчас здравый смысл обсуждаем или зубрёжку алгоритмов и коэффициента их сложности?

Здравый смысл и общее понимание. Одно из первых сообщений было про то, что глубокие знания нужны только в гугл и т.п twitter.com/ptico/status/7…

11:09
Впервые в @rubyunderhood подняли тему эффективных алгоритмов, а народ сразу швыряется какашками «ведь есть гугл!».

Рубистов не победить.

11:11
@rubyunderhood здравый смысл и общее понимание выясняется на собеседовании непринужденной беседой, знание алгоритмов тут не помощник

Подскажи, как примерно выглядит эта непринужденная беседа, из которой видно что человек понимает сложность? twitter.com/ptico/status/7…

11:17

Кто скажет сложность данного куска кода?
int j = 0;
for(int i = 0; i < n; ++i) {
while(j < n && arr[i] < arr[j]) {
j++;
}
}

11:18
@killthekitten @rubyunderhood чувак, если тебе нужно ебошить рельсовые контроллеры, хватит базового понимания цены операции

что такое базовое понимание цены операции по твоему мнению? twitter.com/ptico/status/7…

11:20
@rubyunderhood трудно сказать: человек приходит и мы с ним просто говорим, могу даже вискаря предложить для снятия стресса

Извини, но я не знаю как с помощью вискаря понять, что человек не напишет мне 5 вложенных циклов twitter.com/ptico/status/7…

11:26
@rubyunderhood для этого придумали испытательный срок и код ревью

Если можно это узнать задав несколько вопросов, не лучше ли тогда сразу отсеять? судя по тому что таких большинство twitter.com/mr_The/status/…

11:30
@rubyunderhood O(n)?

И сразу правильный ответ. Я рад что есть такие люди в нашем сообществе twitter.com/barmidrol/stat…

11:35
@rubyunderhood Крайне высока! Расстрелять...нет, переписать!
11:37
@AlexWayfer @rubyunderhood ко мне, например :) aejis.eu

Если хотите выпить вискаря и поговорить в непринужденной обстановке о программировании, приходите сюда twitter.com/ptico/status/7…

11:43

Так же не забывайте про @moscowrb, там всегда можно провести приятную беседу за стаканчиком

11:45
Если хотите выпить вискаря и поговорить в непринужденной обстановке о программировании, приходите сюда twitter.com/ptico/status/7…

А если хотите хорошую зп и интересные задачи, приходите к нам на собеседование, там спросят про сложность алгоритмов twitter.com/rubyunderhood/…

11:51

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

11:57
@rubyunderhood А не O(n^2)? Я не спец, но два вложенных цикла напрягают.

Внутренний цикл не будет выполняться, так как arr[j] всегда меньше arr[i] twitter.com/AlexWayfer/sta…

12:01
@rubyunderhood а есть ли этап программирования алгоритма\задачи на доске?

Нет, такого у нас нет на собеседовании. Считаю это не правильным twitter.com/nick_jastix/st…

12:09
@rubyunderhood а есть ли этап программирования алгоритма\задачи на доске?

Если хочется посмотреть как человек пишет, то стоит дать тестовое, примерно с тем, что ему придется писать на работе twitter.com/nick_jastix/st…

12:19

контрибьютинг в опенсорс на корню решает это

12:21
@rubyunderhood я смотрю слухи про хамство в авиасейлс не преувеличены

Извини если задело, просто хотел пояснить, что есть не только формочки и на собеседовании спросят сложность twitter.com/ptico/status/7…

12:25
@rubyunderhood а с чего ты взял что у меня только формочки и низкие зарплаты?

зря заменшил твит, это было что бы не терялась цепочка. Совершенно не знаю ваших задач. Видно слишком грубый смм twitter.com/ptico/status/7…

12:34

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

12:36

Перепутал. переменная j не инициализируется для каждого n, следовательно внутренний цикл будет выполняться не более n раз, сложность O(2n)

12:45

Константы в сложности опускаются, следовательно итоговый ответ O(n)

12:46
@AlexWayfer @rubyunderhood у нас люди спокойно пилят всякие face recognition или криптографию, хотя про алгоритмы я их никогда не спрашивал

Очень интересно, а что за проекты в которых используете face recognition, если не NDA? twitter.com/ptico/status/7…

12:52

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

13:05

Все написанное ниже, было про базовые понятия того зачем эти алгоритмы нужны и базовые знания сложности

13:05

Это то, что обычно разработчики понимают на интуитивном уровне

13:06

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

13:07
@rubyunderhood системы слежения и репорта инцидентов, плюс работа с подозреваемыми. В общем все что связано с CCTV

У вас очень интересная работа и всем, кому надоели типичные задачи, могу посоветовать придти к вам на собеседование twitter.com/ptico/status/7…

13:08
@rubyunderhood системы слежения и репорта инцидентов, плюс работа с подозреваемыми. В общем все что связано с CCTV

А на чем разрабатываете эти системы? twitter.com/ptico/status/7…

13:09

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

13:16
@rubyunderhood у конкретно этого проекта огромное количество задач, поэтому микросервисы разные. Ruby, нода, немного java (к сожалению)
13:19
@rubyunderhood кстати насчет джавы: там полная жопа в связи с отказом браузеров от неё, а видеозахват из операционной системы html5 не умеет
13:19
@rubyunderhood поэтому если кто подскажет альтернативные варианты взаимодействия браузера с OS – буду благодарен
13:19
@rubyunderhood В смысле "константы в сложности опускаются"? O(2n) вполне более реальный ответ, как кажется.

В подсчетах сложности всегда много нюансов: на разных процессорах требуется разное количество инструкций twitter.com/AlexWayfer/sta…

13:20
В подсчетах сложности всегда много нюансов: на разных процессорах требуется разное количество инструкций twitter.com/AlexWayfer/sta…

Так же разные языки компилируются в разный код. Поэтому многое опускается и сравнивают по факту только рост функций twitter.com/rubyunderhood/…

13:22
@rubyunderhood не опускается, оно в принципе не учитывается. в контексте Big-O это даже не должно упоминаться, ибо это теоретическая вещь.
14:22
@rubyunderhood не опускается, оно в принципе не учитывается. в контексте Big-O это даже не должно упоминаться, ибо это теоретическая вещь.

да все так, 2n операций, но сложность O(n). @ivanenok правильно сказал об этом twitter.com/ivanenok/statu…

14:44
@rubyunderhood что скажешь по поводу парного программирования реальной задачи из бэклога? По-моему отличный способ узнать кандидата в бою.

Отличный вариант, только тут проблема в том, что кандидат не знаком с вашим проектом и ему нужно сперва разобраться twitter.com/freemanoid321/…

15:00
@freemanoid321 @rubyunderhood не работает такой вариант, так как человек не шарит в проекте, а потом ему (часто) именно это и предъявляют

Можно сперва рассказать все моменты которых будет касаться таск и отвечать на вопросы не связанные с кодом таска twitter.com/anton_davydov/…

15:08
@rubyunderhood можно взять задачу не завязанную на бизнес логику, плюс знающий человек рядом и может посказать (парное программирование)

При удаленном собеседовании тяжелее, но частично решается tmux-м twitter.com/freemanoid321/…

15:09
@rubyunderhood какая зарплата? Хорошая для всех разная.

что бы не соврать, завтра уточню и скажу twitter.com/dr_lexa/status…

15:23
@freemanoid321 @rubyunderhood Если API сделано не энтузиастом на коленке, а крупной компанией, то обычно всё ок

У всех сильно разное api и разной стабильности, часто с этим сталкиваемся twitter.com/AlexWayfer/sta…

15:29
@rubyunderhood скоро будем переходить на MS SQL Server?

Немного запоздавший ответ. А есть хоть какой-то смысл в этом? twitter.com/nick_jastix/st…

16:05
@rubyunderhood Так и не увидел обсуждения о множественных наследованиях в Руби

Много времени ушло на обсуждение алгоритмов. Завтра поговорим про индексы в постгресе и миксины в руби twitter.com/pinyslutty/sta…

16:15
@rubyunderhood Ну некоторые интерпрайзы можно было-бы перетащить в линух.
Есть у меня к примеру одна СКУД которую бы я с удовольствием)
16:16
А кто нибудь юзает парное программирование? Есть тут XPшники? :) Думаю, что эта практика - большая редкость...

мы частенько в команде используем на сложных и больших тасках, что бы лучше разобраться и не зашиваться twitter.com/backendsecret/…

18:31

# Пятница 21 твит

@rubyunderhood ребята, может кому-то нужен в Минске Junior RoR разработчик? Очень уж нравится этот фреймворк)
2:10

Добрый день. Сегодня мы обсудим еще пару вопросов на собеседованиях: множественное наследование в руби и постараемся добраться до индесов

9:59

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

10:01

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

10:02

Обычно, задающие этот вопрос, хотят услышать в ответ что наследования нет, но есть extend/include и рассказ про них

10:03

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

10:04

Но на самом деле это не совсем верный ответ, тут давайте углубимся в то, как ruby хранит методы

10:05

Объекты в ruby не хранят свои собственные методы. Вместо этого создается айгенкласс, который хранит их методы

10:07

Встречаются разные названия айгенкласса: метакласс, синглтон-класс и т.п.

10:08

Таким образом методы экземпляра класса хранятся в самом классе, а методы класса(класс в руби то же объект класса Class) в айгенклассе

10:09

Айгенкласс добавляется в цепь наследования объекта и выталкивает класс Class выше по цепочке вызова

10:10

Так же с объектами класса: добавленные методы в объект хранятся не в объекте, а в айгенклассе этого объекта

10:12

Таким образом когда вы делаете include модуля, то добавляете методы модуля объекту, а extend делает include для айгенкласса объекта

10:13

Сплошным текстом это может быть не совсем понятно, поэтому приведу литературу по данной теме

10:14

Хорошая книга Metaprogramming Ruby amazon.com/Metaprogrammin…

10:15

На русском есть пару статей с примерами и иллюстрациями на хабре:
habrahabr.ru/post/143990/
habrahabr.ru/post/143483/

10:15
@rubyunderhood Мне было достаточно в своё время 4 курсов rubymonk.com, считаю интереснее книг (два из них как раз про мета)
10:22
@rubyunderhood Там очень интересное повествование, плюс онлайн-интерактив (серверная интерпретация), для знакомства самое то
10:28
@rubyunderhood extend можно и для экземпляра сделать, тогда изменится только он.

Да, все так же, создастся айгенкласс хранящий его методы twitter.com/ajieks/status/…

10:29
@rubyunderhood @ptico надо как минимум знать сложности всех методов, что используешь повседневно
11:15
Кто хочет попробовать поконтрибутить в опенсорс, велкам:
cc @rubyunderhood twitter.com/gitlab/status/…
18:39

# Суббота 13 твитов

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

9:03

Лучше посмотрите очень хорошее выступление Олега Бартунова и Александра Короткова с highload vimeo.com/105424016

9:04

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

9:05

Очень хороший старт для людей, неосведомленных в данной теме. Данного материал вполне хватит для прохождения большинства собеседований

9:08

Подводя итоге обсуждения собеседований: хочется что бы работодатели спрашивали на собеседовании, то что будет использоваться в работе

10:23

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

10:24

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

10:25

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

10:42

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

10:45

Остров raya/racha pic.twitter.com/4YY3Aigpve

10:48

Парк в Бангкоке pic.twitter.com/4rhSzwi7yJ

10:48

Провинция Краби pic.twitter.com/HGRQzFvzr1

10:56

Национальный парк Khao Sok pic.twitter.com/u9sXEOo5in

11:00

# Воскресенье 46 твитов

@rubyunderhood в чем подготовить документацию на API, чтобы потом можно было запускать некую тулзу, которая валидирует по ней имплементацию?
7:18
@rubyunderhood а youtrack пробовал?

Пробовал пару лет назад, не очень понравился. Не люблю всю бюрократия, я за максимальную простоту в разработке twitter.com/RNaumetoff/sta…

7:21

Давайте немного помечтаем и поговорим о том, что такое работа мечты

7:47

Для меня не сильно важно, какой офис и условия, гораздо важнее над чем и с кем работать

7:47

С детства прихожу в восхищение от компаний которые меняют мир или делают какие-то сложные вещи доступнее для людей

7:48

Наверное желание менять мир вокруг себя и привело меня в разработку

7:49

Сейчас я занимаюсь продвижением и упрощением онлайн покупки билетов в Азии и мне это очень нравится

7:50

Когда-нибудь в будущем, я хотел бы приложить свою руку к таким проектам как SpaceX или к разработкам искусственного интеллекта

7:50

Ведь делая потрясающие вещи, от которых сам приходишь в восторг, с удовольствием приходишь на работу и никогда не бывает прокрастинации

7:51

А что для вас работа мечты или может какая компания?

7:52
@rubyunderhood я ещё не понял, что есть работа мечты, но почитав сегодня @abroadunderhood, я понял где я хочу быть через несколько лет

Что тебя так привлекло и разожгло желание переезда? twitter.com/TheSunwave/sta…

8:01
@rubyunderhood это та, которую готов делать бесплатно ☺️
12:15

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

14:34

У большинства из нас бывают депрессии, выгорания и тяжелые периоды. Об этом и как с этим бороться писали уже множество раз

14:36

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

14:37

Я говорю об этом в сообществе разработчиков, потому что среди нас это сильно распространённое явление

14:39

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

14:40

Лично я знаю 2х людей с психическими расстройствами среди разработчиков, вряд ли это просто случайность

14:41

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

14:42

Вам стоит задуматься и возможно обратиться к психологу в следующих случаях:

14:43

1. У вас циклично повторяются периоды хорошего и плохого настроения без объективных на то причин

14:44

2. Бывает такое что все в порядке и у вас резко пропадает настроение, вам кажется что вы худший человек на свете, что вы никому не нужны

14:44

3. У вас периодически пропадает интерес ко всему, хочется одиночества и много спать

14:45

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

14:46

В таком случаи желательно обратиться к специалисту, особенно если вы сами не можете с этим справляться

14:47

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

14:49

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

14:50

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

14:51

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

14:53

Возможно в эти моменты им нужна помощь, но сами они не могут это понять и занимаются самолечением, от которого может стать хуже

14:54

Данную тему очень хорошо осветил на своем примере Greg Bauges на rubyconf 2013, по ссылке перевод и сам доклад habrahabr.ru/post/260249/

14:55
@rubyunderhood по традиции напишу. я с такой штукой столкнулся и вылетел с работы, а потом не мог прикасаться к коду в течении 3 месяцев

Как получилось вернуться к работе? twitter.com/DimaSharikov/s…

15:00
@rubyunderhood и как? Тебе помог психолог?

о себе ничего точно сказать не могу, есть признаки, но к психологу не обращался twitter.com/shuvalov_anton…

15:37
@rubyunderhood просто немножко странно советовать психолога если сам не пробовал. Уэльбек бы не одобрил. Только рефлексии, только хардкор!

Я выпадал из жизни на пару месяцев, за это время переругавшись с большинством друзей и потеряв свою любовь twitter.com/shuvalov_anton…

15:55

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

15:55

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

15:55
@rubyunderhood думал о сабже и пришел к тому, что лучше работать с разрабами, у которых простая мотивация. У звезд на кону слишком много

Не думаю что это сильно зависит от амбиций. Нестыковка реальности и желаний все же немного другое и более частое twitter.com/shuvalov_anton…

15:58
@rubyunderhood я работал в компании, гда оффер давали людям, которые знают, что такое шаблонизатор, и зрелость разрабов как людей была уныла
16:15
@rubyunderhood у меня были задачи, которые удовлетворяли амбиции, но окружение меня бесило и я выглядел там чванливым высокомерным мудаком
16:15
@rubyunderhood я поменял работу, изменил требования к другим делегированием ответственности. Ремунерация теперь — развлечения и алкоголь.
16:15
@rubyunderhood тем не менее мне до сих пор сложно говорить о программировании — это чаще напоминает мне фаллометрию, а меряться мне не нужно
16:15

У меня уже наступила ночь и на этом я с вами прощаюсь. Если заинтересовал и хотите продолжить общение, подписывайтесь на меня @pstepchenko

17:21
@rubyunderhood вот ощущение такое, что тут ты пишешь исключительно про мальчиков

😅 Так и есть, с девушками все сложнее, вряд ли я могу что-то советовать twitter.com/gaar4ica/statu…

19:06
@rubyunderhood с девушками, проще иметь под рукой другую девушку, которая сможет быть индикатором адекватности первой. Все просто 😊
20:15

other