Задать вопрос
  • Как избежать вездесущего agentic coding и остаться в IT?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Но похоже, что сегодня писать код руками больше не модно.

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

    Я бы мечтал в C/C++ или даже Embedded, но боюсь что такого старпёра никто не возьмёт.

    Глупости. Если конечно старпёр не приходит с инфантильной позицией "переучивайте меня".
    Ответ написан
    6 комментариев
  • Какие алгоритмы, языки и математические области реализованы в приложениях доставок - для курьеров двух типов, а так же для заказчиков?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Напрямую никакие алгоритмы не реализуются, используются готовые решения. Например, для поиска ближайших заказов может использоваться PostGIS и ему подобные. Для построения наиболее выгодных маршрутов графовые базы или графовые расширения для реляционных СУБД. Для кросс-селлинга библиотеки машинного обучения, типа Apache Mahout. И т.д. и т.п. И естественно, что всё это работает на бэкенде, в мобильном приложении нет вообще ничего - это просто тонкий клиент, делающий rest-запросы при нажатии пользователя на кнопки. Бэкенд в большинстве случаев написан на Java или Go.
    Ответ написан
    Комментировать
  • Какая литература для изучения электроники подойдет новичку?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Шкворень, электроника шаг за шагом.
    Ответ написан
    1 комментарий
  • На чем писать Java Desktop приложение?

    JavaFX - если нужен красивый интерфейс и анимации
    Swing - для простых интерфейсов
    Ответ написан
    1 комментарий
  • Переменные на кирилице?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Многие языки позволяют любые имена писать любыми символами юникода, но использование этой возможности считается плохим тоном, а в корпоративной среде обычно явно запрещено.
    Ответ написан
    Комментировать
  • Про асинхронность & многопоточность & мультипроцессинг в программировании?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Многопоточность
    Седой и строгий
    С терминологией в этой области у многих путаница. Ситуацию усложняет то, что одни и те же термины могут по-разному использоваться в разных контекстах и разных средах. Например самый общий термин "асинхронность" в общем смысле синоним многозадачности, то есть одновременного выполнения произвольного количества задач. Но часто под "асинхронностью" подразумевают мультиплексирование неблокирующихся сокетов в цикле событий. Конкурентность в контексте выполняемой работы - это одновременное выполнение разных задач. Параллельность в том же контексте - это одновременное выполнение одной задачи на разных данных. В контексте же того, как задачи выполняются, первое может означать, что асинхронность выполнения задач лимитировано конкурентным доступом к некому общему ресурсу, например процессору, а второе - возможность задач выполняться независимо друг от друга, например на разных ядрах. Запускать асинхронные задачи можно различными способами:
    1. В отдельных процессах, что обычно называют мультипроцессингом, и это как раз то, что делает Celery;
    2. В отдельных потоках, что называются многопоточностью;
    3. В сопрограммах или легковесных потоках, управляемых циклом событий, что часто называют асинхронностью, как я уже писал.
    4. На GPU;
    5. На разных машинах, что обычно происходит в распределённых системах.

    Первый вопрос мой состоит вот в чем: в асинхронном коде задачи как бы не выполняются абсолютно параллельно. Они выполняются по очереди, просто не приостанавливая главный поток, как в синхронном коде. А вот многопоточные и мультипроцессорные программы действительно выполняются параллельно (? или не совсем ?).

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

    xez
    @xez Куратор тега Java
    TL Junior Roo
    На сколько я знаю, на сегодняшний день у раста проблемы с интеграциями. Брошеные либы, зависимости от версии и платформы и вот это все... (я рад бы ошибаться, возможно, г-н Василий Банников меня поправит).
    В джаве же есть спринг-бут, который умеет интегрировться хоть с чертом лысым, при этом поддерживается, развивается, выходят новые версиии...
    В большом энтерпрайзе это важно.

    Ну и у джавы, нерешаемых проблем довольно мало, чтобы от нее отказываться. На рынке есть много персонала разной квалификации, JVM - прекрасная, развивающяяся платформа.
    На расте же писать никто не умеет (по сравнению с джавой), не понятно какие у технологии перспективы, есть вышеуказанные проблемы. Чем он может заинтересоваться большой бизнес?
    Производительностью? Так и jvm достаточно производительна, во-первых, а во вторых, есть куча приложений, для которых никакой хай-лоад и никакое лоу-латенси не предусмотренно...
    Ответ написан
  • Может ли Раст полноценно заменить Джаву в сфере финансовых технологий?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Нет. У них разные области применения. Java проектировалась именно как предельно простой и лёгкий для восприятия язык, максимально препятствующий выстрелу в ногу. Никогда этим параметрам не будет соответствовать язык одновременно пригодный к системному программированию. И это не учитывая тот фактор, что инвестиции в переписывание всего финтеха с Java на Rust потребуются больше, чем планетарный ВВП.
    Ответ написан
    4 комментария
  • Что можно смотреть/слушать во время учёбы?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    сложно себя заставить начать или читать продолжительное время

    Воля развивается только тренировкой.

    Была хорошая рекомендация включать хорошо знакомый сериал в новом окне/на втором мониторе параллельно с обучением.

    Это плохая рекомендация. Вы снизите концентрацию и либо станет ещё сложнее изучать, либо сформируется иллюзия компетентности.
    Ответ написан
    Комментировать
  • Как создать sql песочницу?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега SQL
    Седой и строгий
    Проще всего создавать отдельную схему под каждую песочницу.
    Ответ написан
    Комментировать
  • Программирования учат или применяют?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Решил прокомментировать, с точки зрения своего опыта (я в отрасли уже более 22-и лет). Знание без понимания - это как раз то, чем страдают почти все выпускники курсов и немало выпускников ВУЗов. Обучение - это не копирование знаний в память, как на флешку - это наращивание новых связей в мозге и перестраивание существующих. Поэтому это долгий процесс, требующий многократного применения знаний. Однако, практика без теории - это тоже плохая идея, так как несистемное обучение создаст в голове хаос и замедлит профессиональное развитие. Пользуйтесь поиском, этот вопрос задавали здесь уже много раз, рецепт эффективного обучения можно найти среди ответов.
    Ответ написан
    1 комментарий
  • Использование Thread в Django приложении?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    Django разрабатывался синхронным и в конкурентной среде взрывается.
    Ответ написан
    Комментировать
  • На каких фриланс биржах искать заказы?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    На фрилансе шансы на успех исчезающе малы, без хотя бы мидлового опыта, полученного в офисе.
    Ответ написан
    3 комментария
  • На каких фриланс биржах искать заказы?

    Starina_js
    @Starina_js
    full-stack web dev
    Вы из РФ? Сейчас ситуация такая, что несколько бирж закрыты для РФ.

    Вот какие работают
    https://fl.ru - самая большая по заказам. Больше всего заданий там генерируется
    https://freelance.habr.com - меньше, но задания в большинстве своем более сложные
    https://freelance.ru - много тоже заданий
    https://kwork.ru/ - фриланс, только такого, магазинного плана. Немного другой подход к покупке фриланс услуг

    Какие сейчас отпали:
    freelancehunt.com , weblancer.net, зарубежная upwork.com

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

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

    p.s На биржах может быть проверка личности по документам, это нормально, взамен дадут спец. статус подтвержденного.
    Ответ написан
    4 комментария
  • Не работает def?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    IndentationError: unexpected indent
    Что в фразе "неожиданный отступ" вам непонятно?
    Ответ написан
    2 комментария
  • Почему при подсчете количества строк в SQLite3 выводится не число, а 0x0000009E9DC70E30>?

    Vindicar
    @Vindicar
    RTFM!
    1. Ты получил объект-курсор. У него нет строкового представления, поэтому пр ивыводе он отображается по умолчанию - <Cursor object at адрес-объекта-в-памяти>
    Чтобы получить выбранные данные, нужно вызывать методы fetchone() или fetchall().
    2. Если ты делаешь запрос к БД, который возвращает данные (неважно какие), получить их придётся как описано выше. Что это за данные - сами строки, какая-то агрегатная функция, или еще что - не важно. Даже если выполнишь запрос вида SELECT 123;, всё равно результат придётся вытаскивать через fetchone()/fetchall().
    3. SUM(id) вернёт тебе сумму всех идентификаторов строк в таблице, а не количество строк в ней. Используй COUNT(*).
    Ответ написан
    Комментировать
  • Является ли правильными такие связи / foreign keys (древовидная структура) в базе данных?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Для иерархических данных в БД эффективнее использовать nested sets.
    Ответ написан
    Комментировать
  • Что такое Python Core?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Комментировать
  • Как вывести метки в радиусе 10 метров от меня?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Ответ написан
    Комментировать