ПоискПочтаКартыМаркетНовостиСловариБлогиВидеоКартинки
Войти

Работа в Яндексе

Разработчик C++

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

Требования:

  • опыт разработки на C++;

  • знание параллельного и многопоточного программирования;

  • знание классических алгоритмов и структур данных.

Условия:

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

    Подробнее об условиях работы в Яндексе

    Продемонстрируйте свои знания

     

    Перечислите все проблемы, которые вы видите в данном коде:

    class Foo
    {
    public:
        Foo(int j) { i=new int[j]; }
        ~Foo() { delete i; }
    private:
        int* i;
    };
    
    class Bar: Foo
    {
    public:
        Bar(int j) { i=new char[j]; }
        ~Bar() { delete i; }
    private:
        char* i;
    };
    
    
    void main()
    {
        Foo* f=new Foo(100);
        Foo* b=new Bar(200);
        *f=*b;
        delete f;
        delete b;
    }
    

    Какие из следующих стандартных контейнеров позволяют найти в них элемент (по его значению) за O(ln(n))?


    Есть приложение, написанное на C++ под Linux, производительность которого необходимо серьезно улучшить. Расскажите, как можно найти его «узкие места», и какие инструменты вы станете для этого использовать.


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

    namespace FMOD
    {
        class Sound
        {
            //Класс для хранения звукового потока
            public:
                //загрузить звук из файла
                Sound(const std::string& filename);
     
                //скорость потока
                double bitrate() const;
     
                //полезные методы
                ...
        };
     
        class SoundCard
        {
            //Класс для работы со звуковой картой
            public:
                //полезные методы
                ...
                //воспроизвести звуковой поток через звуковую карту
                void Play(FMOD::Sound* sound);
        };
    } //end of namespace FMOD
     
    class MediaPlayer
    {
        //Наш медиа-плеер
    public:
        MediaPlayer()
        {
            soundCard = new FMOD::SoundCard(параметры инициализации);
            //Инициализируем остальные ресурсы
            ...
        }
     
        ~MediaPlayer()
        {
            for (std::list<FMOD::Sound*>::iterator it = playlist.begin(); it != playlist.end(); ++it)
                delete *it;
            delete soundCard;
            //Освобождаем остальные ресурсы
            ...
        }
     
        //Загрузка нового звуковой файл в плейер
        void Open(const std::string& filename)
        {
            playlist.push_back(new FMOD::Sound(filename));
        }
     
        //Воспроизведение звука
        void Play(const FMOD::Sound* sound)
        {
            soundCard->Play(sound);
        }
     
        //Другие полезные методы
        ...
     
    private:
        FMOD::SoundCard* soundCard;
        std::list<FMOD::Sound*> playlist;
    };
    

    Аргументируйте преимущество вашего подхода.


    Расскажите нам о себе

     
    Пожалуйста, укажите, где вы живёте

    Пожалуйста, укажите код города

     
    ОтправитьОчистить

     

     

    Мы постоянно растем и ищем талантливых людей

    У нас хорошая компания не только для обсуждения работы

    Коротко о Яндексе

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

    Стажировка

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

    Памятка

    Кто такой менеджер проектов Яндекса и как им стать

     

    Если вы опытный специалист и хотели бы работать в Яндексе, но не нашли для себя подходящей вакансии, не отчаивайтесь, а напишите нам. Вдруг мы договоримся?

    ruRu