• Основа основ: какие инструменты нужны и что надо знать чтобы написать программу?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Тут в коментах понакидали, я немного разложу для понимания.
    Сегодня программирование это не 1 область, типа " - хочу в программирование - вам вот в эту дверь".
    Условно ее можно разделить на несколько подвидов, переход из которых в смежную будет сопровождаться некоторыми трудностями, особенно для новичка, по этому с направлением нужно определиться на берегу, или по крайней мере вовремя остановиться если увидели что это направление - не ваше.

    1) Веб разработка. В свою очередь делится на 2 поднаправления: фронтенд - все что отрисовывается и обрабатывается на клиенте (то есть проще говоря в браузере), и бэкенд - все что относится к работе со стороны сервера. Фронтенд, как это ни странно, ограничен в языках более всего, тут только яваскрипт или что-то типа тайпскрипта, которое по итогоу в яваскрипт "компилируется". Бэк в этом плане более разношерстный, тут можно практически все использовать, но мэйнстрим это пхп, питон, ява, сишарп, руби-рельсы. Первые два в основном используют студии вебразработки, вторые два - в основном энтерпрайз, последний уже больше экзотика.
    2) Геймдев. Как ни странно, тоже делится на 2 поднаправления: казуалки/мобилы и большие триплА проекты. В первом случае это сишарп + юнити (да, это не язык, а инструмент, но без него стек не полный), в редком случае что-то экзотическое. Во втором это скорее всего си++ и какой-то фреймворк, а-ля анриал или вулкан.
    3) Энтерпрайз. Тут стандарт де факто - ява. Как вариант Сишарп, но гораздо реже.
    4) Десктоп приложения. Простенькие консольные можно писать практически на чем угодно, более-менее обладающее интерфейсом тербует соответствующих gui библиотек, по типу Qt, gtk, ну и соответственно языков типа ява, си++, сишарп... Хочу заметить, что направление это весьма дохлое, в плане того что именно приложения для широких масс в последнее время практически не выпускаются, уступая место вебсервисам или мобильным приложениям, которые тоже не ахти какие рынки занимают...
    5) Мобильная разработка. Зверь редкий, так как под мобилы больше игры делают. Именно разработка приложений достаточно узкий сегмент, ну и опять же - делится на разработку под андроид и под айфон. В первом случае языком разработки будет Котлин(в девичестве Ява), под айфон соответственно будет Свифт. Есть решения кроссплатформенные, по типу флаттера, но это не всегда подходит, так как некоторые функции под конкретную платформу будут недоступны.

    Короче, определяетесь с направлением, пробуете, не нравится - берете следующее, с языками так же. По тому "в чем писать" определяться стоит по запросу "среда разработки для %языкнейм%"
    Ответ написан
    2 комментария
  • Как версионировать на начале разработки?

    @rPman
    Оба варианта.
    Номер версии меняется с каждым релизом, даже если это багфикс.
    Но релиз может содержать сразу несколько фич так и одну.

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

    ThePyzhov
    @ThePyzhov
    iOS Ninja
    Побитовые операции работают с переменными целочисленного типа.
    Если логические переменные сравнивают целиком две переменные, то побитовые сравнивают биты.
    Например: a = 11 (в двоичной системе счисления это 1011), а b = 15 (это 1111). Тогда a & b вернет 11 (1011) (т.к. 1 и 1 = 1, 1 и 0 = 0, 1 и 1 = 1, 1 и 1 = 1). Но если a | b, тогда вернет 15 (1111) (1 или 1 = 1, 1 или 0 = 1, 1 или 1 = 1, 1 или 1 = 1).
    Вот тут все очень неплохо показано на картинках.
    Ответ написан
    5 комментариев