• Ждать ли в российском IT фидбэк на себя после собеседования?

    terrier
    @terrier
    Написал лишь эти два сообщения,

    Вот вам совет потрясающей силы из тех, что как правило не дают бесплатно: позвоните той hr-ке, с которой общались.
    "Здравствуйте, это Марвин-джан, мы с вами общались в пятницу по поводу фидбека на собеседование. Есть какие-нибудь новости?".
    Морально приготовьтесь к тому, что если интервьюер ей фидбека еще не дал, она вас подвесит, скажем до среды, ну так позвоните в среду.

    Отвечая на конкретный вопрос:
    является ли у нас в IT фидбэк нормальной практикой

    Я не видел еще чтобы на прямой запрос фидбека отказывали, а вот затягивать и не реагировать на письменные сообщения люди могут долго, конечно.
    Ответ написан
    Комментировать
  • Сhar *x = "xxx" - динамически выделенная память?

    terrier
    @terrier
    В коде выше память выделяется динамически?

    Нет, не выделяется. Вам отдается указатель внутрь одного из элементов массива request.envp. Собственно поэтому вы и не должны изменять этот результат.
    Ответ написан
    Комментировать
  • Можно ли трудоустроиться программистом в РФ без военного билета?

    terrier
    @terrier
    ТК РФ Статья 65. Документы, предъявляемые при заключении трудового договора
    Если иное не установлено настоящим Кодексом, другими федеральными законами, при заключении трудового договора лицо, поступающее на работу, предъявляет работодателю:
    - документы воинского учета - для военнообязанных и лиц, подлежащих призыву на военную службу;

    без документов можно устроиться только "по-черному". В крупную компанию (что за желтая, кстати - 1C? Тинькофф?) не получится.
    Ответ написан
  • Что нужно исправить в этом коде, чтобы из глаз не шла кровь?

    terrier
    @terrier
    Давайте подумаем вместе:
    - Разумно ли добавлять к строке по одному символу с точки зрения производительности?
    - Можем ли мы решить задачу за один проход по итоговому массиву, а не за два в худшем случае как у вас сейчас?
    - Знаем ли мы заранее длину итоговой строки?
    - Можем ли мы в C++ создать строку заранее заданной длины?
    - Есть ли в современном C++ способы пройтись по строке и трансформировать ее не используя явно дополнительные сущности типа индексов?
    - Можем ли мы сделать так, чтобы программа работала для динамически задаваемых входных данных, а не для вкомпиленных?
    Кроме того - у вас серьезная ошибка в этой строчке:
    newStr[i] = newStr[i]+1;
    перечитайте условие.
    Ответ написан
    Комментировать
  • Обновление нескольких моделей go pg bulk update time.Time?

    terrier
    @terrier
    Попробовал запустить ваш код с обновлением нескольких моделей - вроде все нормально работает.
    А залогируйте, какой SQL-запрос генерирует go-pg и покажите нам.
    У меня получилось
    UPDATE "objects" AS "object" SET "start_at" = _data."start_at", "body" = _data."body"
                    FROM (VALUES ('2019-05-16 21:14:19.579398+00:00:00'::timestamptz, 'body', '1'),
                              ('2019-05-16 21:14:19.579398+00:00:00'::timestamptz, 'body', '2')) 
                                      _data("start_at", "body", "id") WHERE "object"."id" = _data."id"

    и все проходит.
    go-pg, кстати, свежей версии?
    Ответ написан
  • Веб сайт/сервис на golang для разбора практик написания кода, есть ли?

    terrier
    @terrier
    Здесь.
    Код понятен, хорошо документирован, на все написаны тесты. Проекту уже 9 лет, прошел проверку временем. Откровенно плохие практики встречаются редко.
    Ответ написан
    2 комментария
  • В чём преимущество функций над методами контейнеров?

    terrier
    @terrier
    Ну, прямо сразу мы получаем возможность вызывать std::size() еще и для C-массивов, кроме стандартных контейнеров.
    Также, для нестандартных контейнеров, доступа к коду которых нет, всегда можно добавить свободные функции begin(), end(), size() , в отличие от методов.
    Ответ написан
    Комментировать
  • Требуется ли Object(std::wstring&&) с точки зрения оптимизации?

    terrier
    @terrier
    Нет, не нужен. Второй конструктор покрывает оба случая -
    - приходит rvalue - делаем один move ( без копии )
    - приходит lvalue - делаем копирование + move
    Ответ написан
    6 комментариев
  • Есть ли курсы, где обучают как обучать программистов?

    terrier
    @terrier
    Ну, есть, конечно.
    Например.
    Ответ написан
    Комментировать
  • Как мировая практика подсказывает проверять на уникальность при вставке строк в таблицу БД?

    terrier
    @terrier
    может какие то подводные камни

    Ну, есть конечно.
    Допустим вы проверяете из приложения, есть ли табельный номер в таблице. Находите, что нет и пытаетесь следующим запросом вставить строчку. Но между запросами такая строчка уже появилась и вам все равно надо обрабатывать исключение.
    Поддержание консистентности данных - задача базы, никаких велосипедов тут изобретать не надо.
    Ответ написан
    Комментировать
  • Переквалификация из Java в C++?

    terrier
    @terrier
    Добрый день!

    Привет!

    Возможно ли вообще осуществить такой переход и обойтись "малой кровью" без сильной "просидке" по зарплате.

    Ну, это, очевидно зависит от текущей зарплаты. В целом, где-то, в пределах -20% можете рассчитывать, если сейчас вы толковый программист на Java в схожей области.

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

    Нормально.

    Может стоит написать для портфолио что-то в качестве демонстрации навыков (если да то что конкретно)?

    Ну, довольно очевидно, что для позиции C++ на серверах нужно написать сервер. HTTP-сервер, например. Простейший можно написать за вечер, улучшать и дорабатывать можно бесконечно.

    Какие могут быть тестовые задания - например если попросят написать клиент сервер то использовать POSIX или boost::asio.

    Вам скажут, или вы сами спросите.

    Так же интересно что при собеседовании спрашивают,

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

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

    В реальной жизни самое важное - успешно задачи решать. Все вполне реально, удачи!
    Ответ написан
    1 комментарий
  • Как построить изучение С++ после С#?

    terrier
    @terrier
    освоить язык за пару недель велосипедостроения?

    Нет.
    Ответ написан
    Комментировать
  • Можно ли написать AAA-игру на языке программирование Си?

    terrier
    @terrier
    Можно ли написать AAA-игру на языке программирование Си?

    Ну, гм, в принципе, конечно, да - Quake 1/2/3, например, написаны на C. Но сейчас для такого рода игр стандарт де-факто - C++
    Ответ написан
    2 комментария
  • Как извлечь информацию из wal файла Postgresql?

    terrier
    @terrier
    Если там был wal_level=logical
    , то XLogMiner.
    Ответ написан
    Комментировать
  • Что делать в случае триггера PostgreSQL cache hit ratio too low?

    terrier
    @terrier
    А почему вас это беспокоит?:)
    Ну, да, у вас больше данных, чем "положено" достается из кэша файловой системы, вместо кэша постгреса. Конкретно эту метрику можно исправить, увеличив размер shared_buffers, но на производительности это в лучшую сторону не скажется ( и может стать хуже ).
    Если же вы видите проблемы с производительностью, то нужно диагностировать и исправлять именно их ( начните с проверки индексов ), а не метрику.
    Ответ написан
    Комментировать
  • Ошибки при компиляции проекта C++ на linux (makefile)?

    terrier
    @terrier
    vector<DateTime> time;
    template argument for «template class std::allocator» uses local type

    До С++11 нельзя было использовать локальные типы в параметрах шаблона. Вижуал студио вам, видимо, подставляет в параметрах сборки проекта "собирать с последним стандартом" или что-то типа того. Под линуксом, в makefile пропишите -std=c++11 в параметрах компиляции, это включит поддержку фич из этого стандарта.
    ( следующие ошибки как раз из-за того, что нам не удалось правильно объявить этот вектор).

    нет декларации «rand» в этой области видимости

    rand объявлен в хедере cstdlib, который нужно подключить

    unsigned __int16 m_bytesCount = 0;
    function2.cpp:35:9: ошибка: нет декларации «m_bytesCount» в этой области видимости

    __int16 - это некросплатформенный способ объявлять типы фиксированной ширины. Кросплатформенный - подключить cstdint и использовать int16_t и т.д.
    Ответ написан
    1 комментарий
  • Как составить план обучения по C++?

    terrier
    @terrier
    У отуса - это план обучения джуна с каким-то уже коммерческим опытом до миддла. А идея запихнуть себе в голову весь C++ еще до начала коммерческого опыта - не очень осмысленная.
    Пожалуй, лучше бы освоить основы языка в объеме книги Страуструпа ( но не обязательно именно по ней ), плюс добавить git, почитать какие-нибудь статьи по производительности и типичным ошибкам и идти устраиваться джуном. И уже тогда набивать шишки, изучать паттерны/антипаттерны и т.д.

    1) Нужен ли ментор? Так ли его присутствие помогает прогрессировать?

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

    Написать бота - нормальная идея, к тому же вам нужен будет какой-то код, чтобы показать на собеседовании. Писать что-то большое не надо, по первости это будет лапша из плохого кода, на котором особо не научитесь.
    Ответ написан
    Комментировать
  • Современный C++ для программиста C#?

    terrier
    @terrier
    Есть небольшой опыт общения с плюсиками в универе и пет-проектах.
    ... 10+ летней давности

    Ну, то есть вам с нуля. Окей, если исключаем Страуструпа, то пятое издание хорошей книги Липпмана проапдейтили до C++11.
    Представить себе какую-то одну статью, которая научила бы современному C++ с уровня пет-проектов до сколько-либо приличного сложно.
    Ответ написан
    Комментировать
  • Что делать с include-ами?

    terrier
    @terrier
    Ну, в C++ так не делают.
    Вставлять результаты дефайнов в "#include" явно запрещено, хотя, может быть, было бы и полезно.
    Если вам это действительно сильно нужно - используйте предварительную кодогенерацию, пройтись скриптом по исходникам и подменить какой-нибудь "$placeholder$" на определенную some_const_name должно быть несложно.

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

    Нет, пока жив C++, жив и препроцессор.
    Ответ написан
    1 комментарий
  • Актуальна ли карьера автоматизатора тестирования?

    terrier
    @terrier
    Ну, вы, в принципе, все понимаете, автоматизатор тестирования - это сейчас весьма узкая специализация. Тут есть плюсы и минусы. Если попробовать трезво прикинуть, то, с точки зрения именно карьеры и будущего для автоматизатора
    плюсы
    - вам эмоционально ближе
    - карьерный рост быстрее. Команды автоматизаторов в целом меньше, программистом вы начнете джуном снизу большой пирамиды, а стать старшим автоматизатором несложно, если всего автоматизаторов, например двое.
    - традиционно проще двинуть в менеджмент из тестирования
    - по идее, эта область должна расти

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

    Ну, вот и смотрите.
    Ответ написан
    Комментировать