Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 5
×
Senior Software Developer в EPAM
  • EPAM или SoftServe? что бы вы выбрали?

    Не работал в СофтСерв.
    В ЕПАМ все зависит от проекта как и в прочих аутсорсинговых компаниях.
    Некоторые многочисленные (по числу людей) проекты выглядят вобще как чистый аутстаффинг и в этом случае даже если проект у такого заказчика закрывается, команда незаметно оказывается уже на другом проекте этого-же заказчика (в некоторых других компаниях команду «отпускают»). Также есть механизмы внутренней ротации — не понравился один проект — моут предложить другие. Опенспейс — вопрос спорный, например если 4 команды работают над одним продуктом — это хорошо или плохо если они все находстся в одной комнате? Но тут опять-же все зависит от проекта, даже офис :).

    Підтримав: Vitaliy Prokopenko
  • «Требуются люди с нестандартным мышлением»

    Но зачем требовать изврат там, где ожидается стандартный подход?
    Я такое обычно называю «Трюк», существуют случаи когда это тот самый золотой гвоздь на котором все держится. С другой стороны применение оных должно быть сильно ограничено и особенно если их применение не дает явного преимущества.
  • Самое странное собеседование

    Я рассматриваю несколько другой случай, когда страна не Украина и когда ручка/фломастер исключительно в руках собеседуемого. Причем есть еще вариант — Б, когда прямого контакта ни с кем нет, а есть задание из 10-20 строчек текста, час времени на его решение и все. Причем начинается со слов — продакшин код, с комментариями и так далее + длинное сопроводительное письмо в конце (итого на написание кодаостается ну минут 20-30 это при том что обычно на подобный кусок кода уходит где-то 2 часа времени).

  • Самое странное собеседование

    Совершенно не понятно, что в таких случаях от тебя хотят (как раз зашел в этот топик чтобы понять, что на эту тему думают остальные).
    С одной стороны продакшин код обычно подразумеват код+тест (у нас обязателен test coverage не менее 85%, то чего тесты это 70%+ всего кода).
    Особенно забавно, когда пытаешся все сделать как обычно: начнем с TDD — какой набор тестов должен проходить на требуемом коде.... и тут все куда-то начинают прятаться по углам. Хотя это шикарный способ уточнить требования.
    Второе не понятно — как публика собирается читать мои каракули и стоит ли использовать сокращения (для ускорения написания). В современных IDE применение длинных слов совершенно не проблема. Например, написать на доске фломастером 3 раза expectedValuesArrayIndex (стиль кода, в котором комментарии, обчно, не требуются) для меня несколько напряжно (IDE угадает это слово с 1-2букв). Я уже не говорю про final/private/static к каждой переменной которуя я не собираюсь менять...
    Непонятно как поступать с редкими альтернативными случаями в программе. Например, у нас принято всегда проверять правильность параметров переданных в функцию. Стоит ли писать this.x = Preconditions.checkNotNull(x,"Parameter x cannot be null«); Или рассматривать случай кгода в фукнцию попадает Character из китайского алфавита (т.е. его нельзя привести к byte), пустой массив, null. Случай применения логгера тоже не понятен.
    Следующее не понятно — это обертки. Например, нужно использовать 2х мерный массив в Java. Писать код инициализации долго, не писать — могут сказать, что работать код не будет так как массив не инициализирован (ясен перец — мне IDE такого сделать не позволит «по определению» — т.к. еще на этапе редактирования напишет, что массив не инициализирован и более того, половину кода инициализации напишет за меня :)).
    Немного не понятно, что делать если алгоритм не простой, а ну очень хотят чтобы ты писал код (т.к. это прямо заявленная цель собеседования — посмотреть на твой код). Например — требуется написать программу прохода конём по всем клеткам звездообразного шахматного поля размером 9×13. Если ты с этим никогда не сталкивался — само обсуждение алгоритма и уточнение, что от тебя хотят, может занять большую часть времени (т.е. кода на доске точно не будет). Также тут-же не понятно, что делать с удобными обёртками и требованиям про продакшин код (в случае если ты все-же пишешь на своем компьютере код и есть ограничение во времени) — сделать удобный хелпер класс, который существенно упрощает ввод данных в тест, или собирать входную модель «как есть» (с нулевой читаемостью и нулевой поддерживаемостью, зато вложиться в срок).

    Итого — что, собственно, ожиается от собеседуемого когдатребуется написание кода (а — на доске, б — на время но на своем компе)?

    Підтримали: anonymous, Oksana Chuiko, palauth
  • Люминесцентные лампы в офисах

    К сожалению от люминисцентных ламп оизбавиться в современных офисах почти не реально.
    С другой стороны ничего не мешает поставить обычную лампу как дополнительную на свой стол.
    В свое время поговорили с руководством компании про освещение и каждый (порядка сотни человек) при желании теперь может поставить себе на стол за счет компании лампу. Более того, было предложено 3 лампы на выбор (люминисцентная 2 варианта и галогенная). Я себе выбрал (люминисцентную) лампу с цоколем E27 — в него можно вкрутить как обычную лампу накаливания 40Вт так и светодиодную лампу. У меня сначала были светодиодные лампы, но после того как загадочным образом 2 сгорели — вкрутил обычную накаливания 40Вт и забыл про проблемы со светом.
    Уверен, что можно проблему решить как самому лично так и с привлечением компании.

    Підтримали: Darya Nazarkina, anonymous
  • SSD: поделитесь впечатлениями

    Стоит ли покупать — да стоит.
    Часто ли заметен прирост — у меня не особенно, поясню почему.
    Машина обычно «живет» в режиме сна. Памяти поставлено 4ГБ. Другими словами все нужные файлы уже скешированы в памяти. Кеш браузера отключен. Посему к диску машина обращается редко. Большинство операций выполняется с 100% CPULoad (то есть нет I/O Wait, что и требовалось). Так — 80% времени.
    С другой стороны, например, установка апдейтов Windows. Есть 2 инсталляции — старая на HDD (Vista) и Win 7 (на SSD, так как виста с SSD работать не умеет). Установка апдейтов на SSD происходит в разы бустрее, чем на HDD.
    5% ситуаций — загрузка/выгрузка из гибернации происходит значительно быстрее.

    В случае с ноутбуком шикарно вместо CD-ROM ставится второй винчестер (15УЕ за CD CADDY + 8УЕ за корпус с USB для вынутого DVD-ROM).

  • Сеньоры и лиды, которые боятся коммитить в VCS

    Кстати, сталкивался с подобной ситуацией, когда требовалось за 1 коммит (и вообще без коммита) получить полнстью рабочую программу. При этом, разумеется, результат (патч) можно было получить только после 10-20 прогонов сборки на CI.

  • Сеньоры и лиды, которые боятся коммитить в VCS

    Для начала нужно правильнее формулировать проблему. Уверен, что те, кто отказывается, мыслят (по своему) рационально. Видимо есть нечто, что не очевидно.
    Например, у нас типичная причина отказа что-то коммитить это:
    — любой день 18:00 (так как после коммита нужно дождаться выполнения ВСЕХ тестов это +1час и если что-то пойдет не так — то к полуночи уйдешь домой). Кроме того, работающие с нами люди в другом часовом поясе будут ну очень рады увидеть красный билд утром (в наше время это 4 утра).
    — любой день — человек не прогнал у себя на машине все необходимые тесты. Хуже, когда публика «посмелее» коммитит без прогона тестов и потом никто костей собрать не может.

    — транк который скоро уйдет в релиз. Любые радикальные изменения, мягко скажем, не желательны. Иногда даже некоторые баги фиксить не желательно (т.к. софтина уже протестирована, на это ушла эдак неделя и твой коммит череват перетестированием всего приложения (я имею ввиду теорему про чётное число ошибок в программе)). Вот и получается, что локально изменения есть (например, новая фича), а бранч (тег) с релизной версией еще не создали, получается и коммитить-то некуда :).

    Кстати, упоминалось, что они ждут апрува от QA — есть причины? QA по поводу этого что говорит? Нет Application-Level тестов или достаточного покрытия тестами дабы быть уверенным в чем то?

  • Работа во время кризиса-2 (результаты опроса)

    > щось незрозуміло з тими хто 8+ років досвіду вийшло...Вполне логично. Допустим “небольшая” конторка, в ней народ получал до кризиса приблизительно по 12−15кГрн белыми. Потом курс рванул куда-то. По новому курсу это почти в 2 раза меньше и как раз это порядка нынешних 2$k. Но остается вопрос — раньше кормили-то вобщем-то не плохо. Да и те самые 2$k это похоже на нынешнюю среднюю “темпиратуру по больнице”.Так как публика во многом консервативна и к “броуновскому движению” не относится — просто наблюдают за тем, что вокруг происходит так как пока “на жисть” хватает. Кроме того, бегать искать работу (вместе с “броуновским движением”) в период массовых увольнений (а именно сейчас такое наблюдается во многих не ИТ компаниях) дело не благодарное. Как только внешние рекуртеры активизируются (весна наступит или лето — удобнее будет ходить на собеседования) — или контора отреагирует или останется без грамотных разработчиков. Так что кривая обязательно выровняется.Поведение кривой можно назвать словом “лояльность к компании”.

  • Мой путь

    Андрей Церкус 8.05.2009 в 01: 22Тестирование — вопрос цены. Все решаемо. В крайнем случае наймом 10.000 китайцев.> Всегда интересовал вопрос — как написать юнит-тест кода, который занимается тем, что позиционирует в js div-ку в том месте, где сейчас находится > мышь.> И будет ли он надежным.Распознавание образов. Драйвер «мышки».> И еще вопрос — как написать юнит-тест какого-то куска кода, который работает с громадным числом вариаций входных данных, а выходные зависят в том числе и от глобальных переменных — времени, ввода пользователя в процессе выполнения преобразования.Локализацией и изоляцией (от неконтролируемого воздействия) подсистем через четкие интерфейсы с подменой реализаций на этапе тестирвания. Одна из подсказок — если что-то зависит от времени — текущее время должно быть параметром передаваемым в такую функцию. Кроме того, должен быть централизованный «источник времени» который на этапе Юнит тестирвания можно подменять (через какой-нить синглтон). Разумеется никаких слипов в программе быть не должно.Вторая подсказка — есть дата-драйвен тесты (мне они нравятся больше всего). Кода тест пишется один, но он просто занимается конвертацией CSV (+ каталога файлов, если надо) файла во входные и ожидаемые входные параметры (строка = 1 тест, строк много). Код есть жесткая функция с жесткими входными параметрами и жестким результатом выполнения (который в тесте сравнивается с ожидаемым). В этом слечае тест может быть обязательным атрибутом самой конфигурации системы (например, хранимой в СУБД). Тот, кто меняет (в СУБД) конфигурацию — отвечает и за прогон теста (зачастую с удовольствием).2СанЁк БаглайКакую-нить технологию, как убедить публику не пользоваться дебагом наработать удалось? Все кивают головой, но после этого убивают часы на тыкание в одну кнопку..., а в сочитании с глубоким нежеланием писать юнит тесты... так как проще ввести данные через пользовательский интерфейс (и тыкать помто в одну кнопку находясь в дебаге) чем написать простейший Юнит тест...Есть второй вариант псевдо юнит тестов — когда файл с тестом и сам тест в нем — один, человек руками меняет входные параметры, прогоняет тест и смотрит (глазами) результат (часто в дебаге).Есть идеи?

  • Мой путь

    2 СанЁк Баглай> А у тебя как с этим, есть КПД? Плохо. Точнее 5−10%.Первый уровень — КруизКонтроль с запускаемыми тестами. Просто можно «капать» на мозги, что у большинства модулей тесты есть.Способ увиливания — делается пара малозначимых тестов и дальше про тесты забывают.Второй способ увиливания — эта подсистема слишком сложная и в ней слишком много изменяемых параметров. Причина — люди не хотят думать «как это тестировать». Просто не хотят. Не верят.Третий способ увиливания — ты такой умный, куда уж нам до тебя. И это после того, как человеку в паре пишеш ЮнитТесты. Показываеш. Человек соглашается, но тесты поддерживать отказывается.Четверый способ (часто спровоцированный проджект менеджером и отфонарным эстимейшином) — нехватка времени и желание сделать все как можно быстрее. Да, написание тестов требует времени и интеллектуальных усилий. Программа без тестов пишется быстрее (на 20%), а время, затрачиваемое на её дальнейшую поддержку, просто не фиксируется. Возникает иллюзия «экономии времени». А так как ошибки, при таком подходе, обычно, находятся случайно — достоверно не известно сколько их сделано.Впрочем проблема эта лежит совершенно не в ЮнитТестах, Нормальных Требованиях и в качестве кода. Проблема зажата между минимальной з/п, бюджетом разработки и трудности соизмерения производительности и эффективности.Быть производительным и эффективным не выгодно, особенно при незначительных различиях в з/п. Просто тех, кто тянет, больше грузят.

  • Зарплаты программистов в Киеве выросли на 40%

    Anton Naumovчто работник не имеет морального права вести переговоры с работодателем даже являясь одним из ключевых сотрудников — полностью поддерживаю, надо просто сразу увольняться всем тимом если Вас не устраивает отсутствие кофеварки не кухне:) причем без объясения причины (так как это тоже переговоры):), кстати я тоже считаю, как и Вы, правильным что надо прочитав резюме только на собеседовании начинают орать: «Какое вы имели право присылать нам свое резюме, если вы нигде не работали! ». Так себя ведут истинные крутезные проджект менеджеры, но люди почему-то не понимают их великих идей и обходят такие компании стороной:). #67#Lisander просто забудьте про эту компанию. Я сталкивался и с еще более вопиющим непрофессиоализмом — когда собеседование вообще было не подготовленным (было назначено только место и время). При этом публика получила резюме лично из моих рук (т.е. своего отпечатанного экземпляра у них небыло), Публика показывала меня инопланетянину который вообще про эту страну НИЧЕГО не знает (в частности про нашу систему образования и рынок труда) и пыталась меня попросить МОЕЙ ручкой, в коридоре (слава богу не на корточках), заполнить тесты (листов 20) из которых они бы узнали дебил я или нет. Это было единственное собеседование в жизни, которое я не прошел... чисто морально. К такому следует относиться с юмором:). Хотя парню который все это устроил надо отдать должное, он хоть извинился.

  • Зарплаты программистов в Киеве выросли на 40%

    2 Anton Naumov смотря что считать опытом, часто берут 24 летнего парня с 3 годами Java при этом человек с 8−15 годами только разработки (не багфиксинга) на C++/Unix... (не буду перечислять, слишком длинный список) + 1 год Жава просто «не соответствует позиции». Причем «не соответствует позиции» на уровне ХР, то есть до проджект менеджера такое резюме даже не доходит (т.к. 1 < 3). Вопрос про системную проблему, то есть аутсорс, чтобы управлять огромным числом людей, вынужден содержать специальную бюрократическую прослойку которая не отличает XPath от C++ и не имеет ни малейшего представления насколько этот сотрудник полезен заказчику. Кроме того, быстрый рост компании черват введением в руководство несовсем компетентных ПМ.фрилансерский хлеб — речь идет о вещах совершенно разных категорий. Вы предполагаете фриланс в смысле удаленная работа. Я говорю про людей с гиганской квалификацией, которые работают в офисе вместе с обычными девелоперами. У конторы просто нет денег, чтобы содержать человека с такой квалификацией на полную ставку (допустим, 200−300 евро в час). Это может быть администрирвание Оракла или оборудования Циско (явные яркие кандидаты) или написание компьютерного кода на Жава:). Поэтому их держат временно. В США это, кажется, называется «консультант», в Германии это «фрилансер».

  • Зарплаты программистов в Киеве выросли на 40%

    Да, тут полностью согласен с высказанным предположением, что со временем компании будут больше ориентироватся на полный цикл разрработки, со всемы вытекающими последстиями рисков и прибылей. — то есть продуктовые конторы за толковых программистов будут предлагать больше денег. Выбивание верхушки (технически грамотной) из аутсорсинговых компаний ухудшит качество предоставляемых услуг. Более того, в некоторых компаниях (допустим BMW), для которых действительно дороги их сотрудники практикуется правило «*2»:). Проблема в том, что в аутсорсинговой компании ценность сотрудника зачастую крайне абстрактна. И высказывание типа: таким, чтобы даже аутсорсинговая компания, боялась тебя потерять, потому как их прибыли — это грамотный сотрудник в рамках этого типа компаний мягко скажем наивно. Объясню почему.Допустим Вы сотрудник компании А.Компания Б договорилась с компанией А по поводу цены за девелопера ХХХХX.Реально господин девелопер Д приносит компании Б доход в сумме... ХХХХХХХХХ (то есть работает как фрилансер за з/п в половину девелопера).При этом компания А относится к содруднику Д как к девелоперу с з/п ХХХX и в случае если он хочет ХХХX++ или боже упаси выступает с предложениями по улучшению жизни или устранению дефектов управления в компании — его проще уволить. При этом следует обратить внимание, что компанию А просто не интересует квалификация содрудника Д так как сотрудник Д был нанят сотрудником компании Б (или менеджером С) и о ценности этого сотрудника может судить только компания Б или догадываться менеджер С. То есть далеко не так много людей понимают насколько Д может быть ценен, кому и в чем именно (это могут знать только Д1, Д2, Д3... если они вообще друг с другом хоть иногда разговаривают...).Хороший пример — в аутосрсинговых компаниях в резюме смотрят на технологии, а не на знание предметной области и не на опыт работы:)

  • Зарплаты программистов в Киеве выросли на 40%

    Технически предел роста есть. Вопрос только про темп роста.Его можно даже точно сказать — учитывая, что программисты и ИТ-шники могут достаточно свободно находить работу за пределами страны — будет выравнивание З/П с западными. При этом, разумеется, сегмент аусторсинга отомрет как не прибыльный — смогут выжить только продуктовые компании. Отомрет он как массовое производство вебсайтов за копейки или игр для мобильных телефонов (см. предложения работодателей за 2005 год). В данном случае надо будет сказать ОГРОМНОЕ спасибо аутсорсинговым компаниям за проделанную работу по подготовке специалистов и рекламе Украины как страны с квалифицированным ИТ (слова «дешевым», обратите внимание, нет). В данном случае они ухитряются за уровень ниже чем з/п обычного девелопера за ставку нанимать практически фрилансера.При этом произойдет сегментация на фрилансров и «девелоперов» с практически двухкратной разницей в доходе (отстствует слово — зарплата).По моим личным наблюдениям это вполне логично, так как результат работы отличного фрилансера на порядок лучьше чем среднего кодера, который в течении многих лет поддерживает что-то дико древнее.Относительно кадрового голода — очень точно сказано что «население растёт, а количество ума остаётся постоянной величиной» — причем я добавлю, что некоторые страны решают проблему недостатка ума за счет других, где он почему-то не востребован должным образом.Второй момент может быть более интересным — я думаю, что доход фрилансера на украине будет даже БОЛЬШЕ чем в европе. Причем предпослка к этому: желание людей переехать скажем из Парижа в Киев и из Киева в Париж. Насколько я знаю нашего брата, обратно на родину, не заманиш никакими пряниками. То есть надо будет приглашать товарищей не из стран бывшего СССР со всеми прибамбасами (т.е. з/п БОЛЬШЕЙ чем во франции). Последний процесс я вроде-бы уже тоже наблюдаю:) и это тебе не пригласить кого-то из Львова, чтобы он САМ себе квартиру на задворках Киева снял:) Там просят за счет конторы 3 комнаты в центре города... и никто этому ничего сделать не может.

  • Уявна криза aутсорса, як воно є тут і там

    В одной упоминавшейся тут embedded компани проходил собеседование.Предложили работу. Работа ну очень интересная, должность довольно таки ответственная, НО мне в другой компании за программирование на Java простым сеньером предложили на 20% больше, причем БЕЛЫМИ. Это при том, что работа (Java) на порядок проще. При таком раскладе выгодно забыть про то, какого класса бывают печатные платы и зачем нужны режимы подавления шумов в контроллерах при работе с АЦП, кодирование сигналов на физическом уровне и программирование драйверов уровня ядра операционной системы.А вот при отличном понимании ассемблера и принципов работы сети на канальном уровне в Java не пугает НИЧЕГО. Препроцессора в Java разве что не хватает:).Пока ситуация с оплатой не изменится в embedded стоит разве что дома играться... тем более Freescale и друзья уже сползают в программирование при помощи средств IDE Eclipse:). Следующий очевидный шаг — Java машина в embedded... кстати это именно про марсоходы:).

  • Уявна криза aутсорса, як воно є тут і там

    cencio: речь шла про конкретный проект. 100% рисков проекта не имеют никакой технологической основы. Реализация не подозревает никаких сложных алгоритмов. Все ошибки можно исправить в кратчайший срок (это тебе не 6 слойная печатная плата со сроком доставки в эту страну минимум неделю).eugene_n: вопрос про то, что как бы эмбедед более сложное чем прикладное программирование и должно лучше оплачиваться является уже давно чуть ли не религиозным. Одни держатся «на вере в светлое будущее», другие уже живут в «светлом будущем» получая бОльшую з/п. По поводу нанять/уволить — если тебе нужна обезьяна которая тыкает кнопки, то это делается проще простого. Если тебе нужен реально толковый человек, то их количество существенно ограниченно по чисто эвалюционно-биологическим причинам без относительно специальности и платформы. Это особенность человеческой популяции как вида. В данном случае речь идет о перераспределении этого очень небольшого числа людей между технологическими направлениями. После того как направление покинут все толковые специалисты — оно умрет. Кроме того, есть типично американская поговорка «Если ты такой умный — то покажи свои деньги».flyman: — сочувствую. Видимо Вам таки крайне противопоказан аутсорсинг. Более того, Вас, с точки зрения аутсорсинга, нужно еще и наказать (не то, что бонусы выплатить) — тот сервис, что Вы попытались организовать для своего кастомера стоит на порядок дороже и требует существнно больше ресурсов = заключения договора на бОльшую сумму. Так как непосредственное руководство не очень понимает чего Вы там написали в вижине (и, к сожалению, не всегда в состоянии понять) оно пропустило возможность заработать «мимо рта». Разумеется, кастомер был просто счастлив и, возможно, сам лично отказался от услуг китайцев:), а так как за уже оговоренный фиксед прайс (в котором, кстати, явно не оговаривалось, что вы будете заказывать печатные платы и комплектующие) реализовать проект может не получиться... Вы еще и можете стать причиной провала проекта + срыва своей драгоценной нервной системы хроническими овертаймами (как бывает со всеми ответственными и увлеченными людьми:)). С точки зрения людей мыслящих категориями — срок, деньги и степень счастья заказчика — Вы — абсолютное зло:), причем вдаваться в причины — почему Вы — зло никто, обычно, не намерен.

  • Нехитрый вопрос на собеседовании или как не попадают в стартапы

    +1 за вариант $a = ’hgfedcba’; С точки зрения производительности и потребления памяти равных ему нет. С точки зрения решения в рамках «процесса» равных ему тоже нет так как — собеседование это частная задача которая выполняется однократно и поэтому не требует документирования, длительного сопровождения и, соответственно, решения в общем виде. Здача не стояла в виде «напишите функцию которая...».

  • Linux под Windows

    2 eugene_n

    Бог его знает, что у него за железка. Я в свое время сталкивался с USB железками в которых фирмаре не хранилось, а хранилось на Windows машине и загружалась в девайс при инициализации USB девайса. В линуксе такое запускать удавалось с «кульбитами» (копированием части файлов из виндовс в линукс). Но когда есть VMWare — проще Линукс запускать в VMWare. Тем более обычно нужны обе оперционки одновременно (особенно если веб девелопмент и нужени IE, Opera, FF,... + Mahjong:)).

  • Linux под Windows

    vmware tools ставить пробовал?
    Кроме того, после установки этих тулс обычно ничего не происходит так как надо выполнить программу конфигуратор (кажется называется vmware-tools.pl).
    Это программулина ставит правильную конфигурацию X сервера и кой чего еще. Дальше после перезагрузки в икс сервере можно будет выбрать любое удобное разрешение (мне нравится 800×600, у ноута тоже родное 1280×800).
    Кроме того под Линуксом (кстати который линукс?) в /etc/init.d должен появиться стартовый скрипт который эти тулс поднимает и опускает.
    Как сипмтом правильно настроенного линукса есть вплывание в X-Windows мышки из виндовса и обратно (мышка не залипает в окне VMWare).

    Кроме того, VMWare сервер обычно перестает писать слева внизу в статусной строке, что VMWare тулс не установлены.

← Сtrl 12 Ctrl →