• Стоит ли учить JS или Java если поступаешь на Software Engineering?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Немецкий главное изучить не забудьте. Чехия -- бедная страна. Планируйте переезд в Германию/Швейцарию как отучитесь.
    Ну а про математику не стоит забывать -- это база вашего мышления.
    Ответ написан
  • Будет ли удалён std::move?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Нет.
    Ответ написан
    Комментировать
  • Почему отсутствуют подходящие комплекты в Qt?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Вам нужно:
    0) Начать пользоваться английской версией всего. Русская локализация на самом деле ужасна.
    1) Перейти на вкладку "Профили Qt" и добавить корректный профиль (если там его уже нет, если есть, то перейти к шагу 3). Для этого нажмите "Добавить" и укажите путь к qmake.exe из установленной версии Qt. Для этого, скорее всего надо ещё и установить отдельно Qt.
    2) Нажать "Применить"
    3) На вкладке "Комплекты" указать добавленный профиль Qt.
    4) Нажать "Ok".
    Ответ написан
    Комментировать
  • Заочное или очное(прикладная информатика)?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Я вам рекомендую получить образование в Европе (что сильно проще) или в США. Это решит все ваши проблемы одним сразу: и из России уедите, и образование в нормальной среде получите, и можно будет реально тратить время на учёбу, и работу гарантировано найдёте. В европейские институты довольно просто поступить на самом деле, можно и стипендию получать + это обычно ничего не стоит, т.е. образование бесплатно. Разумеется надо английский знать и сдать соответствующие тесты (в том числе и по-английскому). В некоторых странах бакалавриат только на родном языке, поэтому возможно придётся предварительно на языковые курсы съездить для поступающих (а вот это не бесплатно).

    PS
    Ну и я тут слышу мнение диванных аналитиков, о том, что программистов и так очень много и они не востребованы. Это конечно же в корне не верно, достаточно просто посмотреть на рынок, ну или с людьми поговорить из этих стран.

    PPS
    К слову, США и Норвегию сравнивать не стоит. Это очень разные страны и по организации общества, и по менталитету, и по оплате труда программистов, и по количеству вакансий. Если вы не поклонник социализма, то США сильно выигрывает по всем остальным пунктам.
    Ответ написан
    Комментировать
  • ВУЗ после 11-го?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Стоит ли сидеть дома и заниматься саморазвитием?

    Да, но обязательно

    Или отдать предпочтение ВУЗу?

    ...параллельно с этим. Дело в том, что одно другого не исключает.

    На мой взгляд университет необходим, потому что:
    1) Фундаментальные знания (которые именно составят базис для дальнейшего самосовершенствования)
    2) Возможность стажировок
    3) Возможность обучения по обмену в других странах
    4) Возможность переезда для обучения в другие страны, допустим после первого курса или в магистратуру
    5) Знакомства
    6) И да, теоретические знания и практические навыки разработки ПО
    7) Диплом, который полезен, как минимум для того, чтобы уехать работать в другую страну

    Но:
    1) Это должен быть нормальный университет в Мск или Спб.
    2) Всё что я перечислил можно получить и без обучения в университете, но у вас должна быть отличная мотивация и понимание что реально нужно. Пункт (7) ещё и от страны зависит, везде требования разные, но обычно 5+ лет опыта могут заменить диплом.
    Университет существенно это облегчает, если реально учиться, практиковаться самостоятельно и не забывать о стажировках.

    Важно помнить, что обучение в университете, ничего не гарантирует, равно как и самостоятельно обучение. Есть множество примеров успехов и неудач в обоих случаях. Всё зависит в основном от человека и удачного стечения обстоятельств: можно и со степенью кандидата наук клепать лэндинги, а можно и без образования возглавлять R&D отдел в компании уровня гугл.
    К сожалению, ситуацию, близкую к первой, я наблюдал чаще, чем близкую ко второй... Но это зависит от многих факторов. На мой взгляд, основная причина этого: непонимание что и зачем ты делаешь. Это одна из причин того, что в России рекордное количество людей со степенями в юриспруденции/экономики и т.д., работают, скажем, на ресепшене.
    Ответ написан
    6 комментариев
  • Работа в Лондоне через языковые курсы?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Да, можно так сделать и ходить по собеседованиям. Потом компания вам визу сделает и переведёт, если вы хороший специалист.
    Процесс это долгий, поэтому вам, скорее всего, придётся вернуться на родину и ожидать его завершения там.
    Ответ написан
    Комментировать
  • В чем разница перегрузки функции и перегрузки операции?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Второго определения не существует.
    Ответ написан
    2 комментария
  • Возможно ли улучшить пример LSP?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Тут есть проблема: во втором примере оба класса наследника абсолютно одинаковые. Т.е. пример ничего не показывает.

    Хорошим примером неправильного использования будет когда, например, один наследник кидает исключение, а другой нет. Ну и правильного, когда это не так. Ну или там усиление precondition покажите. Можете ещё показать проблему с бросанием разных типов исключений.
    Ответ написан
    Комментировать
  • Как промоутить джунов в мидл разработчиков?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Сначала вам необходимо подготовить максимально полную классификацию, кто есть кто в вашей компании. Например, абстракный джун обладает такими-то скилами, реашет такие-то задачи и т.п. Мидл, умеет и знает всё тоже самое, что и джун + что-то ещё по каждому из пунктов + возможно дополнительные пункты. Начиная со старших разработчиков уже должно быть прописано, как сотрудник влияет на бизнес и т.п.

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

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

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

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Смотрите в сторону любого менеджера зависимостей вроде Conan или vcpkg. У конана точно есть интеграция с CMake. Только учтите, что много чего вам всё равно придётся писать руками. Управление зависимостями -- это головная боль в C++, т.к. язык очень старый. Обычно у всех компаний есть свои велосипеды для этого.

    С помощью связки CMake + Conan реально получить то, что вы хотите.

    Следующим шагом будет создание установщика для уже скомпилированной программы, который будет устанавливать программу на компьютер пользователя. Тут всё ещё хуже на самом деле :) Но это уже другой вопрос.
    Ответ написан
    2 комментария
  • В чем разница между указателями в си?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Есть понятие стека. Стек небольшого размера: на нём большие объекты лучше не выделять. Поэтому необходима ещё и куча -- там выделяют память с помощью malloc.

    Помимо этого, в первом и втором случае различается время жизни объектов. Объект, выделенный на стеке живёт до конца области видимости (до закрывающейся фигурной скобки обычно). Объект выделенный в куче живёт пока его явно не удалят (с помощью метода free, который вы забыли вызвать). Т.е. такие динамически выделенные объекты ещё и удобны, если вам надо передать сам объект и/или управление его временем жизни в другую часть программы.

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

    PS
    По C лучше K&R читайте.
    Ответ написан
    Комментировать
  • Как посчитать количество элементов в массиве?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    std::size(mas)
    или
    std::distance(std::begin(mass), std::end(mass))

    Но лучше std::array использовать вообще. У него есть метод size.
    Ответ написан
    3 комментария
  • Правда ли, что в области высокопроизводительных приложений за Rust'ом будущее?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Насколько в среднем Rust уступает по скорости С/С++?

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

    Сможет Rust ли в будущем стать быстрее С/С++?

    ...и опять же не корректный вопрос.

    Скорость же написания программы или её выполнения зависит от программиста, который пишет код и от многих других факторов, но не от самого языка программирования.
    Ответ написан
  • Проблема с деструктором при использовании конструктора копирования?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Тут есть ещё более глобальная проблема, чем просто не выделение памяти в конструкторе копирования: использование char*. Вы же пишете на C++, а не на C с классами. Используйте std::string для sea_name. Вы увидите, насколько проще, короче и безопаснее станет ваш код.
    Ответ написан
    3 комментария
  • Какой язык и тулкит выбрать для написания GUI под Linux?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Тут и выбирать особо не из чего (если вы не web-мартышка): Qt.
    Линукс использовать наоборот надо.
    Ответ написан
    5 комментариев
  • В чем ошибка (работа с памятью, деструкторы)?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    У вас же C++, т.е. можете использовать вектор для хранения элементов без необходимости явного выделения памяти:
    #include <vector>
    
    // double* _coords;
    std::vector<double> _coords;
    
    // _coords = new double[N];
    _coords.resize(N);

    Ну и деструктор можете не писать.
    Ответ написан
    Комментировать
  • Как создать CheckBox по клику?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Попробуйте вызвать self.checkbox.show() после создания объекта (self.checkbox = QCheckBox("hello", self)).
    Ответ написан
  • Почему не получается записать в поле структуры переменную типа string?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Потому что поле Info представляет из себя массив строк, а не одну строку. Т.е. вы по факту пытаетесь записать значение переменной одного типа в переменную другого типа. Допустим такой код уже должен скомпилироваться:
    t->Info[0] = Inf;
    Это означает: присвоить первому элементу массива Info значение переменной Inf. Правда я не уверен этого ли вы хотите. Возможно вам нужно просто сделать переменную Info обычной строкой, а не массивом и тогда ваш код тоже будет работать.
    Ответ написан
    Комментировать
  • Как назвать переменную?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Да тут вариантов не много. Переменная, которая хранит тип лицензии должна называться licenseType.
    Ответ написан
  • Самые неожидаемые вопросы на собеседовании?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Или я может что-то не понимаю и пошли новые веяния? И типа нужно садиться и заново зубрить все основы программирования?

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

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

    И да, к собеседованиям надо готовиться. То что у вас 5-7-10-15 лет формального опыта не значит вообще ничего. Тут играют роль только знания, умения, навыки и уровень решаемых задач/возможность решать задачи определённого уровня.

    Очень интересует какие еще бываю вопросы на собеседованиях?

    Это очень расплывчатый вопрос. Всё что угодно из того, что я написал в первом абзаце + специфические знания, например, по профильному стеку технологий, которым вы владеете. Часто ещё и социальные навыки проверяют, но это уже в основном на позиции выше мидла.
    Ответ написан
    3 комментария