Программирование, Путешествия, Покер

Последний пост:9 апреля
673
Статистика
Всего постов
2047
447,291 просмотров
Новых постов
+0
1,15 в день
Лучшие посты автора
21.12.2019 +193
13.07.2019 +153
03.01.2020 +111
23.09.2019 +110
07.06.2016 +102
Лучшие посты читателей
vsobakekot +88
EEM +64
illiria +59
-Ovechkin- +57
Gosha190 +49
Самые активные читатели
1 18 19 20 21 40 103
  • Цитата
    Какого рода помощь нужна? Уже вижу некоторое несоответствие между требованиями к кандидату-стажёру по ссылке и содержанием тестового задания. В требованиях ни слова про знание методологии тестирования, а тестовое задание (в тексте которого, кстати, есть орфографическая ошибка) предполагает наличие определённых знаний.
    Можем продолжить обсуждение здесь (вдруг кому-то ещё пригодится и ТС не возражает) или в личке

    Помощь нужна в правильном и полном решении тестового задания (сегодня узнал что в первую очередь при приёме к себе они оценивают именно задание).
    Это основное. Также хотелось бы получить какие-то наставления до начала стажировки. Если можешь помочь, то пиши в вк, или скайп: paradise9015, ну либо сюда в личку.

    Я тоже заметил ошибку в задании, даже две. Интересно, стоит ли говорить им об этом на собеседовании?) Вроде как с одной стороны некорректно, а с другой, может они специально их сделали.

    Большая благодарность всем за книги/курсы. Мне порекомендовали еще одну книгу, которую здесь не упоминали

    kti10.pdf (918.31 килобайт) Кол-во скачиваний: 287

    2/3
    Ответить Цитировать
    0
    Это сообщение пока никто не оценил.
  • Сегодня сделал небольшую предварительную рассылку своего резюме по интересным мне компаниям. Решил не стесняться и поставил желаемую зп в 1,5 раза больше нынешней (why not?) и постарался максимально подробно и красиво расписать свой опыт и достижения. Также немного пошаманил с сопроводительным письмом, такой текст сделал базовой версией (которую адаптировал под конкретную компанию, делая акцент на нужные вещи)
    Цитата
    Здравствуйте,
    В данный момент я нахожусь в поиске интересных проектов и возможностей для дальнейшего развития, и Ваша вакансия мне очень интересна. Буду очень рад пообщаться.
    Я занимаюсь серверной разработкой на Java уже 2 года, а также в качестве хобби преподаю Java для начинающих.
    Без проблем общаюсь на английском, помимо этого разговариваю на испанском и немецком.
    Более подробная информация в моем резюме.

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

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

    --------

    Цитата (digitalmind @ 3.5.2017)
    Интересно, стоит ли говорить им об этом на собеседовании?) Вроде как с одной стороны некорректно, а с другой, может они специально их сделали.

    Я думаю что точно стоит, но не в формате "я у вас тут ошибку в задании нашел", а скорее "мне в глаза бросилась неточность в этом моменте...", поскольку всегда есть шанс что возникло недопонимание.
    171/756
    Ответить Цитировать
    6
  • Привет, начинаю читать твой блог, респектище за ссылки в 1м посте :) Отпишусь когда осилю все 19 страниц))
    1/13
    Ответить Цитировать
    0
    Это сообщение пока никто не оценил.
  • Частично выложу ответ из лички.

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

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

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

    И ещё, один из важных навыков тестировщика - это умение выстраивать коммуникации - задавать много вопросов, внятно излагать свой взгляд и т.д. (этот софт скилл для тестировщика намного важнее, чем для разработчика). Мне лично после 4 лёт онлайн-покерной карьеры прокачка этого навыка давалась не очень легко. В общем, к этому надо быть готовым. Есть, конечно, места, где технической части намного больше, чем общения, но для работы в этих местах нужен хороший технический бэкграунд.
    15/33
    Ответить Цитировать
    4
  • Сводки с полей.
    Сегодня получил ответ от всех компаний.
    Одна (alm works) отфутболила с дефолтным ответом.

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

    С третьей (Одноклассники) около получаса общались по телефону и назначили техническое собеседование на следующий четверг. Заниматься популярной социальной сетью тоже довольно интересно. Правда, у них есть и определенные минусы в виде отсутствия организованности в командах, насколько я понял из разговора. Также один коллега переходил туда из нашей компании, но спустя месяц-другой ушел оттуда по непонятным причинам.
    Собеседование будет по джаве (тут я спокоен) и по алгоритмам. Вот они вызывают определенные опасения, т.к. практики написания и использования их в работе у меня не было, а на сайтах типа codeforces я не сижу ночами. В теории я могу про все это рассказать, а вот практику придется в срочном порядке подтягивать. Для этого, в частности, есть этот гитхаб репозиторий, который буду тщательно изучать завтра и в среду.
    Очень не в тему, как выясняется, поездка в Ригу. Уезжаем завтра вечером после работы, а приезжаем в среду утром, а потом сразу на работу. Маловато времени на подготовку.
    172/756
    Ответить Цитировать
    5
  • В Азию не хочешь? Денег - х2 или х3 от российских. Пиши, если, что.

    P.S. еще требуются фронты и пхп\го девелоперы - пишите.
    1/3
    Ответить Цитировать
    0
    Это сообщение пока никто не оценил.
  • Цитата (paparatnik @ 6.5.2017)
    В Азию не хочешь? Денег - х2 или х3 от российских. Пиши, если, что.

    Не знаю, не думал о такой перспективе.
    У азии есть свои минусы.
    Напиши более конкретно, пожалуйста.
    173/756
    Ответить Цитировать
    0
    Это сообщение пока никто не оценил.
  • И, если можно, про Азию не в личке, а тут - мне тоже интересно.
    3/20
    Ответить Цитировать
    4
  • По личным причинам не могу писать в паблике название конторы, всем в личку разошлю подробности, сорри.
    2/3
    Ответить Цитировать
    0
    Это сообщение пока никто не оценил.
  • Сходил на собеседование в "Одноклассники".
    Что удивило - собеседование состояло в прохождении теста по джаве и написании пары программ в текстовом редакторе. И все это время я сидел в гордом одиночестве в переговорке.
    Вторая вещь, которая удивила - слишком простые задания. 10 джавовских вопросов решились минут за 10, программы я писал значительно дольше, но все равно вышло на удивление просто.
    Офис, по первому впечатлению, не очень понравился.

    Завтра в 17 пойду в другую компанию.

    Вопросы, которые были (ответов не выкладываю, кому интересно - попробуйте сами или пишите в ЛС).
    1. Что выведет в консоль следующий код: System.out.println( 9/10 );
    2. В каком соотношении друг с другом состоят интерфейсы Collection, List, Set и Map?
    3. Какие методы надо реализовать для того, чтобы класс можно было использовать в качестве ключа в HashMap?
    4. Какой интерфейс надо реализовать для того, чтобы класс можно было использовать в качестве ключа в TreeMap?
    5. Что выведет данный код?
    String a = "ab";
    a.substring(1);
    System.out.println( a + "c");
    6. Какая реализация интерфейса List будет работать в среднем быстрее для каждой операции ниже (независимо от других), если в листе очень много элементов?
    -- add(0, "asd")
    -- get(50000)
    -- remove(0)
    7. Какая реализация Map будет работать в среднем быстрее для следующих операций?
    -- put(Integer, Object)
    -- get(Integer)
    -- remove(Integer)
    8. Какое минимальное количество сравнений необходимо, чтобы найти элемент (или убедиться что его нет) в отсортированном массиве чисел на 1000 элементов?
    9. Задача на многопоточность, выбрать найти корректные реализации генератора уникальных значений. Много кода слишком, подробно не расписываю. Вкратце, проверка знаний по корректности операций, атомарности и happens-before.
    10. Есть таблица tt с тремя колонками интами (с1, c2 и с3). В нее очень часто гоняют следующие запросы "select * from tt where c1 > ?" и "select * from tt where c2 = ? and c3 between ? and ?"
    Какие индексы стоит сделать для этой таблицы, чтобы это работало быстрее?

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

    Задачи следующие.
    1. Написать приложение, которое выводит минимальное число фибоначчи, которое больше некоего числа N (задается из командной строки)
    2. Написать приложение, которое выводит в консоль все простые числа от 2 до N включительно, отсеивая их с помощью решета Эратосфена.
    Второе я точно сделал неоптимально, делая перебор делителей. Отстой, короче.
    174/756
    Ответить Цитировать
    8
  • Это на senior'а задания?
    3/13
    Ответить Цитировать
    0
    Это сообщение пока никто не оценил.
  • AfgansTea, нет, вроде как на обычного миддла.
    Но вообще я бы такие вопросы джуниорам давал.
    175/756
    Ответить Цитировать
    1
  • Вчера как раз разбирал решение задачи про вывод простых чисел с помощью решета Эратосфена.
    Только на javascript.
    sieve.gif


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

    И как вообще считаешь, надо начинающему программисту математическую подготовку улучшать?
    Слышал, что надо дискретную, лябда-исчисления, теорию множеств и логику
    1/14
    Ответить Цитировать
    0
    Это сообщение пока никто не оценил.
  • Цитата (big-noise @ 12.5.2017)
    И как вообще считаешь, надо начинающему программисту математическую подготовку улучшать?

    Ну, лишней она не будет, но умение писать хороший код и решать проблемы ценится куда выше.
    Цитата (big-noise @ 12.5.2017)
    Слышал, что надо дискретную, лябда-исчисления, теорию множеств и логику

    Я не слышал :) Вообще, если где-то нужна математика на серьезном уровне, то берут отдельного математика.
    Цитата (big-noise @ 12.5.2017)
    Посоветуй, как такой скилл качать? Только разбирая решения подобных задач?

    Качать как и все другое - через практику и изучение альтернативных путей. Со временем основные трюки запоминаются и становится проще решать типовые задачи.
    176/756
    Ответить Цитировать
    4
  • Про решето Эратосфена.
    Были какие-то доп условия или ты придумываешь реализацию на основании своего понимания, что будет правильно?

    Я решил, что делать "в лоб", проходя по числам от 2 до N каждый раз для нового простого числа и отмечая его кратные слишком "затратно" для больших N и сделал все в один проход.
    Код под спойлером.

    import java.util.ArrayList;

    public class Sieve {
    public static void main(String[] args) {
    class Pair {
    int prime;
    int multiple;
    }

    int currentNumber = 2;
    ArrayList<Pair> primes = new ArrayList<>();

    long N = 1000000;
    long root = Math.round(Math.sqrt(N)) + 1;
    boolean isPrime;
    while (currentNumber <= N){
    isPrime = true;
    for (Pair pair : primes) {
    if (pair.prime < root) {
    while (currentNumber > pair.multiple) {
    pair.multiple = pair.multiple + pair.prime;
    }
    }
    if (currentNumber == pair.multiple) {
    currentNumber++;
    isPrime = false;
    break;
    }
    }

    if (isPrime){
    Pair newPair = new Pair();
    newPair.prime = currentNumber;
    newPair.multiple = currentNumber << 1;
    primes.add(newPair);
    currentNumber++;
    }
    }

    for (Pair pair: primes){
    System.out.println(pair.prime);
    }
    }
    }

    В итоге простые числа до миллиона программа вывела за пару минут. До ста тысяч -- за считанные секунды.

    Пояснение:

    В списке содержатся пары (простое число, его кратное). Кратные увеличиваются по мере надобности. Для каждого следующего числа мы увеличиваем кратные меньше его, проверяя, совпало ли оно хоть с одним из кратных. Если нет -- найдено новое простое число.
    Проверка на корень сделана чтобы не гонять лишний раз простые числа, чьи кратные будут встречаться ранее.
    Сообщение отредактировал goba - 13.5.2017, 0:00
    2/8
    Ответить Цитировать
    0
    Это сообщение пока никто не оценил.
  • Цитата (goba @ 12.5.2017)
    Были какие-то доп условия или ты придумываешь реализацию на основании своего понимания, что будет правильно?


    Никаких доп. условий, все как я описал в начале.
    По коду есть несколько вопросов:
    1. Зачем тебе нужен какой-то локальный класс и создание его объектов? Не вижу в этом смысла.
    2. Зачем так много циклов? (у тебя 3 вложенных)

    Я сейчас быстро воспроизвел свое решение, которое написал на собеседовании.
    Сделал несколько предположений, которые подтвердила статья на вики про решето.
    1. Нет смысла проверять четные числа.
    2. Нет смысла проверять все делители, только те, что меньше sqrt (текущее число)
    3. Нужна структура данных, которая сохраняет порядок ввода (чтобы в случае итерации по ней мы всегда начинали с меньших чисел)
    4. Двойку добавлять сразу в список простых сразу нет смысла, т.к. деление на 2 смысла не даст, проверяемые числа (п.1) будут только нечетными. Условию задачи это не противоречит, потому что требуется вывести список чисел (но не сказано что по порядку). Т.е. ее добавляем уже после всех вычислений.

    Результатом вышел следующий код (ссылка на pastebin для тех кому там удобнее смотреть):

    public class Sieve {

    public static void main(String[] args) {
    // assume here is a check of command line arg
    long bound = 10_000_000;
    Set<Long> primes = new LinkedHashSet<>();
    long startTime = System.currentTimeMillis();
    for (long start = 3; start <= bound; start += 2) {

    long root = (long) Math.sqrt(start);

    boolean isPrime = true;
    for (Long l : primes) {
    if (l > root) break;
    if (start % l == 0) {
    isPrime = false;
    break;
    }
    }
    if (isPrime)
    primes.add(start);

    }

    primes.add(2L);

    System.out.println(primes);
    System.out.println("Duration: " + (System.currentTimeMillis() - startTime) / 1000.0 + " seconds");
    System.out.println("Primes found: " + primes.size());
    }

    }


    Для 10 миллионной границы результат такой:
    <список чисел, который я опустил>
    Duration: 4.803 seconds
    Primes found: 664579
    177/756
    Ответить Цитировать
    1
  • Чёт непохоже на решето Эратосфена :)
    8/30
    Ответить Цитировать
    0
    Это сообщение пока никто не оценил.
  • БоевойСлон, ну, по дороге домой после "собеседования" мне тоже пришла такая мысль.
    Впрочем, пофиг, написал как написал. Меня это собеседование разочаровало. Довольно глупо искать профессионалов джавы и так тратить их время. Потом еще после раздумий обнаружил ошибку в одном ответе на вопрос теста.
    Шансы на то, что продолжу общение с одноклассниками, не очень велики. Также есть пример одного из знакомых, который, поработав там пару месяцев, ушел оттуда "из-за бардака".

    Вчера сходил на еще одно собеседование. Компания американская, проект пилит свою IDE на базе эклипса, зарплаты от 2к. С ними, скорее всего, тоже завяжу.

    Когда я пришел за 10 минут до назначенного времени, мне сообщили, что случилась накладка и предыдущий кандидат еще не ушел. Я подождал, и меня пригласили внутрь. Меня очень удивило увиденное - небольшая комната в 15 кв. метров, стоит один обычный стол с несколькими стульями и 3 дешевых компьютерных. За одним из них сидит мужик, который по виду напомнил мне препода в универе. Его мне представили как Сергея, директора компании. В углу стоит стандартная большая бутыль для воды, а также чайник и пара пачек чая. Компы с убогими самсунговскими мониками. В общем, вся обстановка навеяла мне ностальгию о славных временах, когда я сдавал лабораторные работы в универе. По всей видимости, у них банально нет ни одной переговорки, да и в целом вся обстановка выглядит очень провинциально, если так можно выразится. Очень странно видеть такое в компании, предлагающей такие зарплаты сотрудникам. Как говорится, встречают по одежке.

    По джаве меня даже спрашивать не стали, узнав что я сдал сертификацию Java 7 Professional на 93%. Поговорили про преподавание джавы, мой опыт разработки плагинов для эклипса, многопоточность и т.п. штуки.

    В конце, когда я начал задавать дефолтные вопросы про повышение квалификации, удобства на рабочем месте и т.д., то в ответ почти всегда слышал "все решается". Другими словами, никаких политик в этом отношении нет, что очень печально.
    Ну и простились на том, что мне обещали дать тестовое задание. Отношение к ним у меня отрицательное, делать его скорее всего не буду.

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

    Впрочем, завтра буду рассылать резюме в другие компании. Одну из них посоветовал читатель блога, а еще попробую в JetBrains отправить резюме, снабдив его сопливым сопроводительным письмом :) Мало ли, вдруг смогу их заинтересовать.

    P.S. Вакансию из азии, про которую писали выше, я тоже смотрел. Сейчас это совсем не вариант, да и про условия релокации у них ничего не написано.
    178/756
    Ответить Цитировать
    6
  • Я тут подумал на досуге и понял, что перемудрил. Хотел типа "оптимизацию" сделать. А по факту ведь памяти с запасом хватает чтобы втупую решето Эратосфена сделать.
    Просто заводит массив булей и храним true для составных, false для простых чисел:

    public class Sieve {
    public static void main(String[] args) {
    int N = 100000000;
    //false = prime, true = composite number
    boolean numbers[] = new boolean[N];

    long root = Math.round(Math.sqrt(N)) + 1;

    long startTime = System.currentTimeMillis();
    for (int currentNumber = 3; currentNumber < root; currentNumber = currentNumber + 2){
    if (!numbers[currentNumber]) {
    for (int i = currentNumber * 2; i < N; i = i + currentNumber) {
    numbers = true;
    }
    }
    }

    int primeCount = 1;
    for (int number = 3; number < N; number = number + 2){
    if (!numbers[number])
    primeCount++;
    }
    System.out.println("Primes found: "+primeCount);

    System.out.println("Duration: " + (System.currentTimeMillis() - startTime) / 1000.0 + " seconds");
    }
    }


    Работает за 0.132 сек для 10 000 000 чисел. Нашлось тоже 664579 простых =)
    3/8
    Ответить Цитировать
    1
  • Цитата (goba @ 15.5.2017)
    А по факту ведь памяти с запасом хватает


    goba, да, википедия тоже говорит что это самый быстрый способ. Но есть небольшой нюанс, что максимальный размер массива в джаве это Integer.MAX_VALUE, или 2^31 - 1.
    Другими словами, использовать массив можно только имея гарантии того, что граница не вылезет за пределы инта.

    Цитата (goba @ 15.5.2017)
    А по факту ведь памяти с запасом хватает

    При определенных условиях)
    Сообщение отредактировал strkk - 16.5.2017, 12:08
    179/756
    Ответить Цитировать
    0
    Это сообщение пока никто не оценил.
2046 постов
1 18 19 20 21 40 103
5 человек читают эту тему (5 гостей):
Зачем регистрироваться на GipsyTeam?
  • Вы сможете оставлять комментарии, оценивать посты, участвовать в дискуссиях и повышать свой уровень игры.
  • Если вы предпочитаете четырехцветную колоду и хотите отключить анимацию аватаров, эти возможности будут в настройках профиля.
  • Вам станут доступны закладки, бекинг и другие удобные инструменты сайта.
  • На каждой странице будет видно, где появились новые посты и комментарии.
  • Если вы зарегистрированы в покер-румах через GipsyTeam, вы получите статистику рейка, бонусные очки для покупок в магазине, эксклюзивные акции и расширенную поддержку.