• PriorityQueue сортируется по приоритету, как исправить?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    PriorityQueue - это куча, а потому она не гарантирует порядок при обходе, только порядок при извлечении элемента:
    while (!queue.isEmpty()) {
        System.out.println(queue.poll());
    }

    P.S. Так queue.stream().forEach(System.out::println); делать не надо вообще никогда и ни с какими структурами данных.
    P.P.S. Почитайте Java Style Guide.
    Ответ написан
    Комментировать
  • PriorityQueue сортируется по приоритету, как исправить?

    zagayevskiy
    @zagayevskiy Куратор тега Java
    Android developer at Yandex
    Потому что метод stream() так же как iterator() не гарантирует траверс в порядке очереди. Метод poll для этого есть.
    Ответ написан
    Комментировать
  • Для чего нужны спецификаторы доступа в C#/Java и др. подобных языках?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    class KvadrUr
    {
        public double a, b, c, D, x1, x2;
        public void CalcD()
        {
            D = b*b - 4*a*c;
        }
        public void Calc()
        {
            double d  = Math.Sqrt(D);
            x1 = (-b + d)/(2*a);
            x2 = (-b - d)/(2*a);
        }
    }
    KvadrUr ur = new KvadrUr();
    ur.a = 1;
    ur.b = 2;
    ur.c = -3;
    ur.CalcD();
    ur.Calc();
    Console.WriteLine(ur.x1 + " " + ur.x2); // правильный ответ
    ur.c = -4;
    Console.WriteLine(ur.x1 + " " + ur.x2); // неправильный ответ - теперь дискриминант неверный!

    Если сделать переменную D приватной (и вызывать CalcD внутри Calc), то это эта ошибка возникнуть не может.
    То есть, ограничение доступа к членам класса помогает уменьшать вероятность ошибки.
    Ответ написан
    Комментировать
  • Для чего нужны спецификаторы доступа в C#/Java и др. подобных языках?

    Djaler
    @Djaler
    Сеньор-помидор
    Чтобы чётко разделять внутреннюю реализацию и внешнее API
    Ответ написан
    Комментировать
  • Для чего нужны спецификаторы доступа в C#/Java и др. подобных языках?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Модификаторы помогают организовать работу с кодом. Избавить от потенциальных проблем неправильного использования кода, особенно малоопытными программистами. Иногда работаю с PHP, модификаторов типа internal очень сильно не хватает, приходится извращаться, чтобы другим работать с кодом было удобно; чтобы не было возможность залезть туда, куда не нужно и нарушить логику работы; чтобы на поверхности все выглядело проще, чем есть на самом деле.

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

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

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Количество элементов между двумя крайними одинаковыми элементами, включая их самих.
    Ответ написан
    Комментировать
  • Как понять условие задачи?

    @RidgeA
    Нужно найти максимальное количество элементов между двумя одинаковыми элементами в массиве.

    "span", в данном случае, скорее всего переводится как "интервал"
    Ответ написан
    Комментировать
  • На каком языке можно сделать фоновые процессы?

    saboteur_kiev
    @saboteur_kiev Куратор тега Windows
    software engineer
    1. На любом языке можно сделать фоновый процесс.

    2. Что значит пример антивируса? многие антивирусы работают как обычные программы - запустил, просканировал, закрыл.

    3. Почитайте, что такое службы в Windows и как создать свою, например командой sc
    https://windowsnotes.ru/cmd/sozdanie-sluzhby-v-windows/
    Ответ написан
    1 комментарий
  • Какие посоветуете материалы для изучения Android development?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Изучать надо как раз по книгам. Начать можно с "Head First. Программирование для Android" Гриффитсов, а углубить чтением "Android. Программирование для профессионалов" Харди и Филлипса.
    Ответ написан
    9 комментариев
  • В какой последовательсти изучать материал?

    @spaceatmoon
    Я бы сделал так. Соблюдая последовательность.

    0. basic linux - apt, man, ls, cd, --help, mk, cp
    1. python + Алгоритмы и структуры данных
    2. linux - scp, ssh - только на базовом уровне, больше не надо
    3. python + mysql
    4. git - за один вечер, смотрите последний скринкаст Ильи Кантера
    5. linux - lamp server, можно вместо apache nginx взять, он проще и лучше, но лучше оба попробуйте
    6. Паттерны проектирования
    7. js - я так понимаю что-то уже знаете. Подучите ES6
    8. docker - эта технология не имеет смысла, если вы не знаете основ, поэтому только последним.
    Ответ написан
    1 комментарий
  • В какой последовательсти изучать материал?

    @sqrdeer
    Full-Stack JavaScript Developer
    Паттерны проектирования и язык в котором ты собираешся их применять обычно не принято разделять.
    Врятли до миддла за год возможно это все подтянуть, особенно если ты будешь учить питон с нуля и не имеешь нормального представления о алгоритмах и структурах данных. Опять же смотря, что ты подразумеваешь под миддлом. У всех представление о знаниях миддлов, джунов и сеньерах разнятся. Вести такую статистику обучения довольно удобно в trello. И миддла от джуна в первую очередь отличает большая практика в тех направлениях, которыми он занимается.
    Ответ написан
    Комментировать
  • Что нынче должен знать php junior без опыта?

    @Imrahil
    Учитесь отвечать технически на технические вопросы. Именно такие будут задавать на тех. собесе.
    Уверенно понимайте (!=заучите) ООП и особенности его в Php.
    Структуры данных.
    Тестирование, достаточно базовых юнитов.
    Изучите гитфлоу.

    Думаю для джуна этого хватит. И конечно следуйте совету выше)
    Ответ написан
    1 комментарий
  • Что нынче должен знать php junior без опыта?

    vetero4eg
    @vetero4eg
    Frontend
    Отвечайте на все вакансии, на которые хоть немного подходите, на ваш взгляд. И на те, на которые не подходите - тоже отвечайте, если это хотя бы где-то близко. Показывайте примеры, старайтесь получить обратную связь (тут как повезет). Просите тестовое задание, попадите пару раз на собеседование и быстро поймете, где чего не хватает. А где-то может и сразу хватит. Вакансии очень часто пишутся ... скажем не корректно.
    Ответ написан
    1 комментарий
  • Ошибка в Android Studio, проблемы с JDK?

    iLLuzor
    @iLLuzor
    Java, Kotlin, Android Developer
    Поставьте JDK 8. С 9 и 10 не будет корректно работать
    Ответ написан
    Комментировать
  • Куда поступить - Филология (английский язык и литература) или Информатика и вычислительная техника?

    sim3x
    @sim3x
    Трудно ли будет в будущем устроится фронт энд разработчиком с образованием Филолога ?
    ваш диплом не будет приниматься во внимание

    На фронтенд идут после того как хорошо освоят жс и фронтенд фреймворк
    Верстка - не фронтенд
    Ответ написан
    Комментировать
  • Куда поступить - Филология (английский язык и литература) или Информатика и вычислительная техника?

    @spaceatmoon
    Трудно ли будет в будущем устроится фронт энд разработчиком с образованием Филолога ?

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

    Я бы лично не стал поступать на филолога. Лучше репетитор.

    Я Самоучка, поэтому поступать на IT технологии не хочу.

    Откуда вы такие берётесь?) Я конечно понимаю, что вузы ничего не дают, но лучше все же выбирать то что нравится, а не то что надо. Вы так любите литературу, что не прочь взять её в нагрузку, а не изучение computer science, которая вам полезней и ближе не хотите ибо шибко умный?
    Ответ написан
    1 комментарий
  • Какие знания нужны, чтобы создать такой продукт под android?

    ApeCoder
    @ApeCoder
    Надо знать, как писать UI под андроид, из каких компонентов состоит UI, рекомендации по визуальному дизайну .

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

    у каждого пользователя есть своя страница,


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

    можно писать сообщения в ЛС либо в общий чат,


    - каким образом работают оповещения на Android
    - соответствие российскому законодательству об организаторах распространения информации

    присутствует карта города, на которой


    - Выбрать поставщика картографической информации (google, yandex, bing), ознакомиться с лицензией

    отмечены какие-либо места с фотографиями,


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

    также есть некая база с определёнными фотографиями/текстом, доступные всем.


    - какие требования по быстродействию
    - как осуществляется модульное и нагрузочное тестирования
    Ответ написан
    Комментировать
  • Что значит базовая математика для программиста?

    @ivodopyanov
    NLP, python, numpy, tensorflow
    Я ЕГЭ не сдавал, но школьная математика - это игра в песочнице по сравнению с нормальной, вузовской математикой. Непременно уткнётесь в эту стену после первых пары-тройки лет в IT, как только потребуется разбираться с оптимизацией чего-нибудь, например.
    Ответ написан
    Комментировать
  • Что значит базовая математика для программиста?

    Beshere
    @Beshere
    Разработчик
    Надо усвоить:

    1. ВУЗовские учебники по высшей математике: матрицы, линейная алгебра, вектора.

    2. Лафоре: Хэши, деревья, O(n)

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

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

    5. ВУЗовский учебник по мат.логике, чтобы знать вещи типа !(a&b) = a||b

    6. ВУЗовский учебник по вычислительной математике: метод наискорейшего спуска и т.д.

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

    Удачи!
    Ответ написан
    1 комментарий
  • Что является основной причиной говнокода?

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

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

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