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

    vt4a2h
    @vt4a2h
    Arlean Von-Neumann, Всё зависит от вашего менталитета и ценностей.

    Европа -- это социализм и уравниловка в общем и целом. Плюс проблема исламизации довольно ощутима. Хотите спокойно жить, не слишком много работать, воспитывать детей и пользоваться социалкой -- оставайтесь в Европе. К слову, переехать, например, в Германию для вас будет проще, чем в США.

    Хотите много работать, мало отдыхать, и много получать за свою работу -- попробуйте переехать в США. Вы будете зарабатывать намного больше денег как программист, чем в Европе. И в принципе-то всё сможете себе позволить. Вот только на социалку особо не рассчитывайте и на длинные отпуска (по крайней мере, сразу).

    Я не могу сказать, что что-то лучше, а что-то хуже. Везде есть как и плюсы так и минусы. Так что, выбирайте, то что вам больше подходит.
  • Качество работы штатного программиста. Как оценивать?

    vt4a2h
    @vt4a2h
    abmanimenja, Я ничего не говорил про возведение какой бы-то ни было практики в абсолют. 100% покрытие тестами -- это уже избыточно, хотя и возможно.

    Тестами стоит покрывать малоочевидные места и те места, где были словлены баги.

    А как вы планируете гарантировать корректность определённого инварианта для функциональности? Ведь именно для этого и нужны юнит, интеграционные и модульные тесты. Особо хорошо это видно, когда несколько команд работают над большим продуктом длительное время. Разумеется всякие проекты вроде одностраничников, "написали-забыли", "написали, но криво, и потом лучше больше денег за поддержку получим", я даже не рассматриваю; я над таким и не работал никогда. Кроме того, следует учесть, что небольшой проект всегда может получить развитие и стать большим.

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

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

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

    Есть тесты, разработчик быстро пройдётся и поправит то что поломал. Нет тестов... И как вы узнаете, что теперь инвариант не соблюдается? Отчёты тестировщиков, пользователей, или самостоятельно всё проверять?

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

    vt4a2h
    @vt4a2h
    Я бы очень сильно вам не рекомендовал работать в гос. структурах России. По многим факторам:
    1) Бюрократия
    2) Отстающие технологии
    3) Возможные проблемы с выездом в цивилизованные страны
    4) Привязка з/п к нестабильной валюте
    5) Всё очень строго: начало-конец рабочего дня, дресс-код, иерархия и т.п.

    Сразу скажу, что я сам не работал в таких структурах, т.е. личного опыта у меня нет. Однако же, общался с людьми и читал.
  • ВУЗ после 11-го?

    vt4a2h
    @vt4a2h
    Рональд Макдональд, Мне не слишком понятен ваш скепсис и попытка иронизировать, т.к. я считаю, что в контексте данного вопроса мы говорим переезде IT-специалистов, в частности программистов. Я не знаю ни одного случая, чтобы программист поехал работать, не по специальности. Я допускаю такую возможность, то эти случаи должно быть крайне редки. Ну а с учётом этого, в большинстве развитых стран, программист -- это представитель среднего класса, который может позволить себе достойную жизнь.

    Я не хочу сказать, что за границей всё отлично и что в России всё плохо. Однако же, явные плюсы в переезде в любую развитую страну есть, и их немало. Перечислять не буду, это довольно долго, но они все очевидные.

    Для себя я тоже выбрал уехать из России, о чём не жалею. Ну и работаю далеко не таксистом или уборщиком.
  • ВУЗ после 11-го?

    vt4a2h
    @vt4a2h
    Но диплом не заменит 5+ лет опыта. Парадокс.

    Рональд Макдональд, На самом деле, тут слишком много переменных, чтобы делать такие утверждения. Нет тут парадокса.
    Моё изначальное утверждение в том, что для получения рабочей визы/вида на жительство в некоторые страны, одним из формальных требований является наличие диплома о высшем образовании или n лет подтверждённого опыта работы по специальности.
  • ВУЗ после 11-го?

    vt4a2h
    @vt4a2h
    sim3x, как думаете, а в вузе учат, что такое TL;DR?
  • Как промоутить джунов в мидл разработчиков?

    vt4a2h
    @vt4a2h
    Василий Мельников,
    А вот как бы проверить технические скилы да еще и наиболее объективно / прозрачно.

    Ну допустим человека три независимо дают качественную оценку, и на основании этого принимается решение.
    Можно конечно и количественные оценки давать: пофиксли n багов уровня k, провёл m code-review и т.п. Только это всё как-то искуственно.
  • Как промоутить джунов в мидл разработчиков?

    vt4a2h
    @vt4a2h
    Василий Мельников, Сама по себе команда -- это слишком маленькая единица (5-8 человек обычно, большим количеством сложнее управлять одному), в рамках одной команды нас самом деле не слишком много путей для вертикального роста, разве что горизонтального. Я поэтому рекомендую разработать сначала более глобальную классфикацию, метрики, методики перехода и т.п.
  • Как промоутить джунов в мидл разработчиков?

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

    Сдуть не получится к сожалению, т.к. всё очень субъективно.
    + обычно это очень времязатратно, т.к. реально непростая работа и не для одного специалиста
    + это чаще всего приватная информация, которую нельзя разглашать

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

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

    vt4a2h
    @vt4a2h Куратор тега C++
    SerJook, Разумеется их там нет. Поэтому я и написал: "много чего вам всё равно придётся писать руками". Т.е. вам надо создать свои репозитории и/или написать сценарии сборки и загрузки всех зависимостей.

    И вот только после этого всё будет "само" скачиваться/собираться/устанавливаться.

    Если хотите лёгкой жизни в этом плане, то пишите на Rust. Но там свои трудности.
  • Как посчитать количество элементов в массиве?

    vt4a2h
    @vt4a2h Куратор тега C++
    Василий Мельников, ну второй вариант требует только 11го стандарта, насколько мне известно. std::array (который я и рекомендую использовать в данном случае) тоже только 11го стандарта требует.

    Касательно C++17, многие компании, в том числе и наша, его уже давно используют. Два года прошло с утверждения как никак. Да и все популярные компиляторы его поддерживают.
  • Зачем ставить фигурные скобки после вызова метода?

    vt4a2h
    @vt4a2h Куратор тега C++
    Anton Mashletov, так дело в том, что тут не надо смотреть конкретный код. Случаев немного на самом деле: или вы хотите использовать RAII каким-то странным способом или что-то оптимизировать на древнем компиляторе. Оба они сильно редкие и чаще всего этого можно избежать.
    Именно поэтому вас и попросили предоставить примеры кода, где вы считаете скоупы обоснованным решением.
  • Зачем ставить фигурные скобки после вызова метода?

    vt4a2h
    @vt4a2h Куратор тега C++
    Anton Mashletov, т.е. критическое мышление -- это для вас проблема? Очень странно, вы программист?
  • Объясните разбор файла mainwindow.h в QT по шагам?

    vt4a2h
    @vt4a2h Куратор тега C++
    mr-ZA, вам нужно сначала понять C++ на хорошем уровне. Без этого разработка с применением QtWidgets невозможна.
  • Зачем ставить фигурные скобки после вызова метода?

    vt4a2h
    @vt4a2h Куратор тега C++
    Евгений Шатунов, да, мне тоже интересно в чём там польза.
  • Зачем ставить фигурные скобки после вызова метода?

    vt4a2h
    @vt4a2h Куратор тега C++
    Anton Mashletov, не согласен. Это как минимум даёт приемущество в виде самодокументируюшего кода и делает его лучшим для восприятия засчёт декомпозиции. А просто скоупы выглядят ужасно в коде.
  • Проблема с деструктором при использовании конструктора копирования?

    vt4a2h
    @vt4a2h Куратор тега C++
    BadCats, Ну если это упражнение для понимания конструкторов копирования и управления памятью, то более-менее нормальное задание и требования.
    Главное потом в реальных проектах так не писать.
  • Правда ли, что в области высокопроизводительных приложений за Rust'ом будущее?

    vt4a2h
    @vt4a2h
    Rust действительно интересный язык, и учить его стоит, но ваша аргументация притянута за уши.

    Да. Потому что у компилятора Rust на руках больше информации о типах, об алиасинге, время жизни переменных вычисляется во время компиляции, и возможность писать многопоточный код, который не будет падать от кривых рук. Например, rayon позволяет творить вот такие вещи.

    Проблема кривых рук будет всегда. Что я не смогу получить deadlock или race condition на Rust? Да я думаю, что проще простого. Никакой ЯП этого не уберёт.
    Есть там какие-то высокоуровневые примитивы и библиотеки, ну и что? Во многих других языках они тоже есть. Этим никого не удивишь сейчас.
    На современном C++ писать ничуть не менее безопасно, чем на Rust. Просто учиться это делать придётся немного дольше. Хотя, Rust конечно же в большей степени замена C для системного программирования, а не C++, но всё-таки.

    Криптобиржи пишут на Rust (надежность)

    Да, кое-какие программные продукты, которые используют технологию blockchain используют Rust. Однако о какой вообще надёжности и надёжности чего идёт речь? Язык надёжен что ли или компилятор или библиотеки?

    Есть вакансии в Мск за 300к рублей в месяц на руки (доходность)

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

    В github Rust в 5-ке языков по популярности, а на SO это самый любимый язык (интерес)

    Много вопросов на SO говорит только о проблемах с обучением и неинтуитивном дизайне языка. Ну ещё и хайп, ведь каждую неделю какой-нибудь эксперт из 8го Б, который не научился пользоваться поиском и не владеет методами сбора и анализа информации будет предпринимать попытки поиска серебряной пули.
    Ну или очередной рубст-питонист-пхпшик попробует Rust... А ведь Rust решает проблемы, которых вообще в этих языках нет. Отсюда и непонимание, зачем вообще Rust и ещё больше вопросов о том, как его использовать. Просто басня Крылова "Мартышка и очки", вот это и показывает github и SO.

    https://www.techempower.com/blog/2018/06/06/framew... (производительность)

    Это вообще что, о чём и что должно показать? Любой синтетический тест вообще не показателен. Всегда можно исправить алгоритм, использовать оптимизации, переписать программу и т.п.
  • Как назвать переменную?

    vt4a2h
    @vt4a2h
    Jun06Man, По-моему, это было очевидно с самого начала. Совсем уж однозначного ответа не существует. Люди всегда выбирают тот термин, который больше всего соотвествует модели предметной области. Некоторые модель не правильно строят, некоторые не знаю языка, некоторые не знают определений... Всё это влияет на выбор имён. Я уже даже не помню сколько копий было сломано в спорах об именовании сущностей за всё время моей работы. Всё-таки это одна из самых сложных задач в программировании.

    Слово tag ничем не заменишь.

    На самом деле, в зависимости от контекста, можно много на что заменить. Что мне в голову сходу приходит: mark, sign, attribute... Открывайте английский словарь синонимов и вперёд. Выбирайте, что лучше всего отражает суть того, что вы моделируете.