• На каких языках программирования лучше писать десктоп?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    на чем вам удобнее, на том и пишите.
    если вы ни там ни там, экосистемы и языка не знаете, то можно попытаться оценить библиотеки, фреймворки, которые специфичны вашему приложению, предположу что на джаве для десктопа получше есть темы, но не факт.
    предположу что десктоп это скорее всего под виндовс, а это скорее всего лучше на с$ делать.
    Ответ написан
  • Как можно измерить (оценить) выгоду от перехода с Waterfall на SCRUM?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    >Задач множество, каких-то типовых нет.
    если задачи уникальные, то все ваши планы по разработке - очковтирательство.

    >переход всей разработки на SCRUM, только после того , как мы сможем на цифрах показать выгоду
    ваше мышление еще не готово переходить на гибкие методологии.
    Многие вещи в цифрах не считаются.
    Вам предлагают посчитать в цифрах следующее: идти в магазин ориентируясь на местности или идти в магазин с закрытыми глазами по карте которую вы нарисовали у себя дома, при этом вы никогда не ходили до этого в магазин и вообще не знаете есть ли он там.
    По плану и там и там одинаково эффективно вы должны дойти, а в реальности с закрытыми глазами вас через 15 минут пути машина собьет, или вы просто шею сломаете зайдя не туда.
    ========
    Суть в том чтоб за 2 года запланированной разработки, не прийти в помойную яму вместо магазина.
    Попытаться все спланировать и посчитать итог работ - это опять из ватерфола, вы живете в недетерминированном мире в котором вы НЕ можете все вокруг посчитать и проконтролировать, вы либо это принимаете и начинаете по другому мыслить и действовать (на основе обратной связи) , либо дальше занимаетесь очковтирательством.
    П. С.
    бизнес не любит неопределенности, любят гарантии и точные ответы - поэтому заказчик будет все равно ТРЕБОВАТЬ чтоб ему в очки втирали дичь, по поводу обьемов работ и сроков, это основная проблема внедрения гибких методологий, привычка и не желание людей по другому мыслить.
    Ответ написан
  • Что такое нейронная сеть, и можно ли ее заменить формулами?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    Ну к сожалению в угоду массовой культуре выбрано название, которое никак не отражает ни что это на самом деле ни как это работает. Нейронов там никаких и близко нет, есть логистический классификатор, который якобы работает как "нейрон" (что конечно даже близко не так, он простую формулу считает, работа же нейрона в миллиард раз сложнее), ну и набор таких логистических классификаторов называется нейронной сетью.
    Работу такой сети не только можно заменить формулой, она и есть формула. При обучении мы лишь подбираем коэффициэнты в этой формуле таким образом чтоб она давала, как можно более подходящие для нас результаты.
    Ответ написан
  • Как планировать спринт, если во время спринта всплывают критичные баги от пользователей?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    делить разработчиков - ничем не обоснованная мысль - вы не сможете грамотно сбалансировать нагрузку между ними, всегда будет часть разработчиков простаивать - всегда будут кто-то кто медленнее или быстрее будет делать часть работ, больше делений, больше таких вещей.
    опять же уверен, лучше всего баги править тому кто делал этот функционал, ему по крайней мере не надо объяснять что там и как работает.
    ========
    По поводу спринтов и фикса багов.
    Баги будут всегда, начните разрабатывать продукт предполагая что во всех узлах и модулях уже есть баги (так оно на самом деле и бывает), это сразу поменяет подход к разработке - перейдя на схемы в которых продукт работает независимо от сбоя и багов в отдельных модулях.
    В итоге вы получите всегда рабочий продукт независимо от багов, в котором вы можете в любой момент начать отдельные спринты по повышению качества его работы (снижению уровня багов).
    В текущем спринте вы работает только над текущими поставленными задачами - это закон (ничего другого не берете). Срок спринта фиксирован - что успели то успели, все остальное переносится или на другой спринт, или вообще выкидывается.
    В этом вся суть, иначе какой вообще смысл в этих спринтах если вы просто там сидите и над какими-то багами из прошлых этапов ковыряетесь.
    Ответ написан
  • Какую архитектуру и фрейморк выбрать для реактивного приложения на джаве?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    1. Для реактивного подхода да важно.
    У вас нет зависимого состояния в случае отдельного сбоя в отдельном узле, можете легко восстановить работу узла, без особых заморочек, это часть подхода.
    2. Для производительности на отдельный запрос - асинхронные вызовы всегда хуже. Мы делаем запросы асинхронными не для того чтоб выжать максимум из одного запроса. Асинхронность открывает путь к параллелизации (раз нет зависимости, запросы могут быть выполнены в любом порядке, в том числе и параллельно), такие запросы повышают отзывчивость системы (интерфейса), лучше распределяют нагрузку.
    3. Работа с коллбэками - всегда было то еще удовольствие, композиция функций конечно более предпочтительна.
    ----------
    для создания реактивной архитектуры традиционно - akka, play, kafka (все это с джавой работает в том числе)
    Ответ написан
  • Стоит ли подписывать такого рода NDA договор?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    можете смело подписывать, у этих ребят нет никаких реальных вариантов с вас в России взыскать эти 5К, в чем бы вы не были "виноваты".
    Ответ написан
  • Почему в IT так много индусов?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    отсутствие вариантов для заработка, нищета.
    типа Белоруссия - только в 100 раз больше по населению.
    соответственно на фрилансе индусов больше чем белорусов раз в 100.
    Ответ написан
  • Быть проф-верстальщиком или всего понемногу?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    развивайте в первую очередь то за что вам платят прямо сейчас, остальное по остаточному принципу.
    хотя на фрилансе гуру не нужны, нужны люди которые решают поставленные задачи, в рамках бюджета)
    Ответ написан
  • Какие есть технологии, методики или инструменты для упрощения валидации и обработки данных на Front-end и Back-end?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    Один из подходов (достаточно успешный), использовать единую кодовую базу со статической типизацией.
    В которой одна и таже кодовая база (модель данных например), переиспользуется как на бэке, так и на фронте.
    Для этого или бэкенд на ЖС набирается (нода), или Фронтэнд (ЖС), генерируется из языка на бэкенде.
    Такой подход позволяет очень быстро создавать прототип и его быстро переделывать, при этом можно сделать бесшовную связь бэкенда с фронтэндом без необходимости описывать апи.
    Конечно в итоге вы получаете сильно связанный код, который по-хорошему потом все равно переписать надо, однако для прототипирования самое то.
    Ответ написан
  • Можете оценить уровень кода?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    объем выполненных работ впечатляет (желающих в никуда столько работать, не так много) -> соответственно как тестовое задание, безусловно вы справились успешно.
    По поводу улучшений есть множество моментов - но они упираются примерно в одно - избыточность.
    например очень большой размер некоторых классов, очень большое количество оберток, черезчур много проверок, много не нужных скобок, оберток и тд.
    Вот например у вас множество переменных нулом инициализированы (возможно это такой стандарт в с$, я не сильно знаком)
    При этом много где стоят геттеры без проверки на нул, в значения инициализированных нулом. Конечно во многих местах есть эта проверка, и это создает излишнюю избыточность в коде, возможно если бы вы сразу инициировали какими-то значениями по умолчанию (или сделали отложенную инициализацию до того как будет что-то известно про эти переменные), можно было бы избежать и ошибок, и лишних оберток.

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

    П. С.
    есть одна тонкость, в том что те кто делают тестовые задания - никогда их не проходят)
    У нормальных разработчиков все эти типовые наброски уже в различных вариациях есть, они просто ссылаются на то что у них есть, нормальный разработчик не будет тратить на такое бесполезное занятие время, такое только джуны делают, а джуны как правило не нужны.
    Ответ написан
  • Нужен ли слепой 10-ти пальцевый набор?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    Не только использую 10 пальцев для печати но работаю на индивидуальных раскладках для русского и английского чтоб оптимизировать комфорт и скорость. Использую сотни шорткатов в приложениях, использую программирую клавиатуру для работы с макросами которые вшил в саму клавиатуру и тд и тп.
    Вы большую часть жизни проводите за компьютером, ну не ужто увеличение качества и комфорта от работы не имеет значения?
    -------
    я уверен каждый постепенно к таким вещам приходит, для кого работа за компьютером это часть жизни.
    Вы в начале этого пути, сделайте усилие и выучите пару десятков клавишь, это не сложно.
    Ответ написан
  • Как делать глубокий рефакторинг ПО, если нельзя останавливать разработку?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    Сложность, запутанность кода -> одно из естественных следствий развития проекта.
    Как держать сложность в разумных предлах - об этом все эти ООП, SOLID, микросервисная архитектура и тд.
    Но суть везде схожая -> разделить один запутанный код на независимые части (функциональные блоки, модули, микросервисы), которые проще понять, проще развивать, переиспользовать, переделывать, или вообще заменять другими модулями.
    Ответ написан
  • Как грамотно реализовать портфолио backend-разработчику, чтобы заинтересовать заказчика?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    Внешняя подача продукта это еще не все, хотя конечно существенно.
    Можно показать производительность ваших решений, возможность вашего бэкенда выполнять сложные задачи в реальном времени, "моментальное" реагирование на запросы пользователей, параллелизация задач, отказоустойчивость - способность сервису работать даже несмотря на баги или отказы в отдельных модулях.
    это очень важные параметры которые может оценить заказчик, само собой пытаться залазить бэкэндщиком на рынок разработки лэндингов, блогов на вордпресе или интернет магазинов на джумле - для вас должно быть табу там ценность толкового бэкенд разработчика стремится к нулю. Не стоит позиционироваться на тот рынок где вы не нужны и не можете иметь никаких преимуществ.
    Еще в портфолио укажите про ваши "доменные знания" в предметной области, это тоже очень ценится.
    Ответ написан
  • Как вы думаете какие IT-специальности имеют самый низкий порог вхождения, и наоборот самый высокий?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    тестировщики классически считались самым простым для вкатывания.
    в HR (внутри айти компаний) так вообще филологи идут, о каком вообще пороге вхождения может быть речь?
    ну верстальщики тоже очень простая для вкатывания тема.
    По поводу машинного обучения, уровень сложности через чур переоценен - тотже геймдев или системное программирование повыше сложностью будет.
    однако если задача по быстрому вкатится и денег по-легкому срубить, то айти уже давно не та сфера.
    таксистом проще заработать, ну или на отделочных работах (штукатурить, обои клеить и тд) -> там уж точно проще быстрее и выхлоп больше.
    Ответ написан
  • Где лучше всего искать со-основателя из области IT для моего стартапа?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    место поиска значения не имеет, результат будет тотже самый как вы и описали.
    Видимо нужно сильнее продумать чем вы можете заинтересовать толкового специалиста.
    Доля + зарплата вполне себе типовая схема. Только за долю или только за зарплату толкового специалиста тоже не привлечь. Должно совпадать множество факторов
    Ответ написан
  • Какие хорошие курсы по анализу данных вы знаете?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    Нет никаких таких "продвинутых курсов", нужно тупо годами заниматься темой, разбирать задачи, создавать решения и тд.
    Все курсы что есть примерно одинаковые, про одно и тоже, так же например как и по программированию, или там математике.
    это вещи в которых нет разночтений, не имеет значения на каких курсах тебе рассказывают как например "делятся дроби", это все равно везде будет одинаково.
    Ответ написан
  • Как в Jetbrains продуктах сделать так что бы я сразу в коде видел где латиницей написано, а где кириллицей?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    как вариант используйте в с шрифт в котором нет поддержки кириллицы, вместо нее какая-нибудь не читаемая хрень (таких полно из зарубежных шрифтов), тогда возможно будет более заметно.
    Ответ написан
  • Что включает в себя Agile сервис?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    >какой-то Agile
    :)))))
    Эджаил это не сервис - а философия/ценности.
    Сервис - скорее всего "планировщик задач".
    Что нужно сделать -> выкинуть маркетинговый мусор из головы, самостоятельно определиться что вам нужно, за вас никто этого не решит и заняться этим.
    Нужен планировщик задач? ну выберите себе подходящий. Полно бесплатных вариантов - если надоело платить.
    Ответ написан
  • Можно ли сделать «умный дом» по настоящему умным?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    Сделать можно, как вы заметили нужен более менее единобразный интерфейс подключения и схемы работы с оборудованием. Постепенно либо производители к этому прийдут, либо появится один производитель который предложит простые и понятные и не дорогие схемы работы.
    Плаг энд Плей - как на ПК. типа включил и система (главный сервер) всех видит, предлагаются автоматически варианты взаимодействия с новым оборудованием.
    Ответ написан