• В каких IT профессиях джуну можно работать на удалёнке или фрилансе?

    за более менее человеческую плату(не обед для школьника)

    Джуны без опыта всегда работали за зп примерно как в маке, может даже меньше, тк предложение сильно превышает спрос.

    или фриланс

    Можешь ли ты работать на фрилансе - ты должен ответить сам. Тебе не нужно спрашивать мнение других, чтобы попробовать.
    Если ты всё ещё не делаешь этого - значит фриланс тебе в принципе не подходит.

    что джуны-программисты должны работать в офисе

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

    может быть за рубежом

    Чтобы работать за рубежом - ты должен либо превосходить большинство кандидатов в целевой стране, либо просить в разы меньше, чем твои конкуренты, но выполнять работу не хуже.
    Если у тебя ещё нет опыта - оба варианта не про тебя.
    Ответ написан
    Комментировать
  • Как создаются встроенные функции в python?

    @tshipenchko
    В основном built-in функции реализуются используемым интерпретатором Python. Скорее всего у вас используется CPython. Вот исходный код функции min
    Ответ написан
    1 комментарий
  • Имеет ли смысл хранить refresh-токены?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Refresh-токены хранят для проверки на повторное использование. При первом использовании ставится пометка, при попытке повторного использования блокируются все refresh-токены пользователя. При следующем обновлении с любого клиента данного пользователя потребуется полная аутентификация. Можно хранить не весь токен, а только uid токена и id пользователя.
    Ответ написан
    Комментировать
  • 1с программист. Какой обычно состав команды разработки?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Да почти так же. Один или несколько кодеров, тимлид, аналитик(и), спецы по БД. В простых случаях все упрощается вплоть до одного-двух программеров.
    НО: 1С-программист всегда немного бухгалтер (или что он там программит - складской работник, хыр...), потому что знать предметную область для него так же обязательно, как для сетевика уровни OSI/ISO
    Ответ написан
    Комментировать
  • Стоит ли углубленно изучать многопоточность, асинхронное и паралельное программирование?

    Хочется ответить цитатой:
    Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
    Ответ написан
    Комментировать
  • Как создать свою доменную зону?

    NeiroNx
    @NeiroNx
    Программист
    Корневые зоны очень дорого стоят. И просто так их вам никто не зарегистрирует.
    То что вы написали звучит как "Хочу собственную страну".

    Вообще для своей организации можно внутри какой хочешь домен завести - хоть сколько зон. Проблеммы начнутся когда вы захотите чтобы о вашей зоне узнали другие - вот тут придется оплачивать.
    Ответ написан
    1 комментарий
  • Какой курс по изучению технологий Python посоветуете?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Подыскиваю сейчас курс, да такой, чтобы можно было за какой-то срок полностью въехать в дело.

    Хотелось бы работать с бакендами, сайтами. Что-то в этом направлении.

    • Любой учебник по Python;
    • Учебник по СУБД (проектирование и sql);
    • Документация/учебник по фреймворку;

    Только так.
    Ответ написан
  • Как зациклить это действие?

    Vindicar
    @Vindicar
    RTFM!
    Цикл while?
    Не, серьёзно. Это основы языка. Открой учебник и читай.
    Ответ написан
    Комментировать
  • Может ли Раст полноценно заменить Джаву в сфере финансовых технологий?

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

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

    Vindicar
    @Vindicar
    RTFM!
    Лучше задайся вопросом, почему вообще у тебя str() от словаря?
    Веб-сервисы возвращают текст в формате json, который нужно декодировать через json.load() / json.loads().
    После декодирования ты получаешь собственно словарь, с которым можно работать.
    Короче, у тебя что-то напутано выше по коду, в том участке, который ты не показываешь. Покажи весь код.
    Ответ написан
    Комментировать
  • Практика очного собеседования для иногородних кандидатов?

    Такое иногда бывает.
    Я бы попросил у потенциального работодателя компенсацию поездки. (За билеты, проживание, и питание).
    ЗЫ: если два дня на поезде, то может оказаться сравнимой цена за самолёт.

    Если они не готовы на такое - значит отказ
    Ответ написан
    1 комментарий
  • Куда пропал вопрос?

    0xD34F
    @0xD34F
    Удалился вопрос на этом форуме

    Здесь не форум.

    у кого-то уже было такое?

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

    Модераторы, ответьте

    В ваших интересах не привлекать к себе внимания модераторов. Особенно подобным образом. Кстати, в правилах об этом прямо говорится - раздел 8.

    напишите пожалуйста причину

    Причину ищите у себя в почтовом ящике. Если, конечно, на момент удаления вопроса у вас было включено соответствующее уведомление.

    Или найдите ссылку на вопрос в истории браузера, откройте, вместо вопроса увидите причину удаления.
    Ответ написан
    Комментировать
  • Где найти курсы по СТАНДАРТИЗИРОВАННОМУ программированию?

    Их нет.
    А смысл задания заключается в том, что тебе нельзя использовать фичи из более новых версий языка. И при этом желательно использовать новые фичи, вместо каких-то старых подходов.
    Ответ написан
    2 комментария
  • Можно ли уточнить о вопросах перед собеседованием?

    Jacen11
    @Jacen11
    можно конечно, только никто не скажет
    смысл же в том чтобы опыт ваш узнать, а не как вы вопросы вызубрите, тут вам не школа универ, тут реальные знания проверять пытаются
    Ответ написан
    Комментировать
  • Ассемблер, почему дизассемблированном коде много ненужных операций?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Почему не переписать вместо этого
    add ebx,dword ptr [rbp+ECX*4+10h]

    Буквально так написать нельзя, потому что нет такого режима адресации в котором можно было бы использовать вместе Rbp (64-битный) и Ecx (32-битный). Можно было бы написать add ebx,dword ptr [rbp+rcx*4+10h], но для этого счётчик цикла должен был бы быть 64-битным, а он, как мы видим, 32-битный (int i). Т.е. ответ на вопрос "для чего это": для беззнакового расширения 32-битного счётчика цикла в регистр, который можно использовать для доступа к памяти.

    Другое дело, что из исходного кода очевидно, что при обращениях к памяти i не выходит из диапазона 0..9, так что разницы между ecx и rcx нет и не может быть. Возможно я что-то упускаю и у компилятора другое мнение на этот счёт, но может быть он просто туповат и не имеет кода который бы мог использовать эту возможность оптимизации, а может такая оптимизация и есть, но она не была включена во время генерации этого кода.
    Ответ написан
    Комментировать
  • Что быстрее SQL или Javascript?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    В общем, чтобы не издеваться над девушкой, объясним на пальцах.

    Во-первых, заголовок у вопроса чудовищно некорректный. Это все равно что спросить, "что быстрее - пылесос или стиральная машина?"
    Во-вторых, ответ на вопрос "производить ли обработку данных в БД или же запросить все данные в клиентское приложение и обрабатывать там" совершенно очевиден: обработку данных следует производить в общем случае только в БД. Она для этого и придумана. Чтобы обрабатывать значительные объемы данных.

    Да, js тоже "может" обрабатывать большие объемы данных.
    Но чтобы значительный объем данных обработать, его сначала надо передать, полностью забив канал между сайтом и базой
    Чтобы значительный объем данных обработать, его надо сначала проиндексировать. Причем делать это каждый раз, а не использовать уже имеющийся набор индексов
    Чтобы значительный объем данных обработать, надо иметь значительный объем памяти или упасть из-за её недостатка
    Чтобы значительный объем данных обработать в многопоточном режиме (а сайт как раз является многопоточной системой), все вышеперечисленное надо умножить на количество посетителей сайта - при каждом запросе перегонять весь массив данных, выделять память, индексировать, считать. Если же вы оставляете все данные в памяти приложения, то их тогда надо как-то синхронизировать с БД. То есть вы себе собираете кучу проблем на пустом месте.

    Несомненно, из любого правила есть исключения. И бывают ситуации, когда приходится считать в приложении.
    Но на вопрос в общем виде ответ будет совершенно однозначный. Не "может так, может сяк", а только в БД.
    Ответ написан
    9 комментариев
  • Как передать из функции значения в разные потоки?

    bingo347
    @bingo347
    Crazy on performance...
    Начну с того, что код представленный автором в комментах к вопросу имеет deadlock между мьютексом и recv() из канала и завершается лишь по тому, что мы не ждем фоновые потоки. Вариант без deadlock будет выглядеть так:
    fn test() {
        let mut channels = Arc::new(Mutex::new(Vec::with_capacity(PAR)));
        let mut joins = Vec::with_capacity(PAR);
        for _ in 0..N / PAR {
            for _ in 0..PAR {
                let mut channels = Arc::clone(&channels);
                joins.push(thread::spawn(move || {
                    get(channels.lock().unwrap());
                }));
            }
        }
        for j in joins {
            j.join().unwrap();
        }
    }
    
    #[inline(always)]
    fn get(mut channels: MutexGuard<Vec<mpsc::Sender<i32>>>) -> i32 {
        let (tx, rx) = mpsc::channel();
        channels.push(tx);
        if channels.len() == PAR {
            exec(channels);
        } else {
            drop(channels); // drop гварда отпускает мьютекс
        }
        rx.recv().unwrap()
    }
    
    #[inline(always)]
    fn exec(mut channels: MutexGuard<Vec<mpsc::Sender<i32>>>) {
        let mut i = 0;
        for c in channels.iter() {
            i += 1;
            c.send(1).unwrap();
        }
        println!("{}", i);
        channels.clear();
        // а здесь гвард дропнется сам
    }

    Вторая проблема в том, что все потоки выполняются по сути по очереди, так как ждут разблокировки мьютекса от других потоков, из-за чего многопоточка тут не дает никаких преимуществ, а лишь создает накладные расходы. Ради эксперимента я попробовал заменить мьютекс на еще один канал:
    fn test() {
        let (tx, rx) = mpsc::channel::<mpsc::Sender<i32>>();
        let mut handles = Vec::with_capacity(N + 1);
        handles.push(thread::spawn(move || exec(rx)));
        for _ in 0..N {
            let tx = tx.clone();
            handles.push(thread::spawn(move || {
                get(tx);
            }))
        }
        drop(tx);
        for handle in handles {
            handle.join().unwrap();
        }
    }
    
    fn get(sender: mpsc::Sender<mpsc::Sender<i32>>) -> i32 {
        let (tx, rx) = mpsc::channel();
        sender.send(tx).unwrap();
        rx.recv().unwrap()
    }
    
    fn exec(receiver: mpsc::Receiver<mpsc::Sender<i32>>) {
        let mut channels = Vec::with_capacity(PAR);
        loop {
            for _ in 0..PAR {
                let Ok(tx) = receiver.recv() else {
                    return;
                };
                channels.push(tx);
            }
            let mut i = 0;
            for c in channels.iter() {
                i += 1;
                c.send(1).unwrap();
            }
            println!("{}", i);
            channels.clear();
        }
    }
    Но особо это профита не дает, так как основной пожиратель перфоманса - switch context в ОС. Тысячи потоков делают только хуже. Запускать потоков сильно больше чем есть ядер - это вообще плохая идея. Просто ради интереса переписал еще раз на асинхронных каналах tokio:
    async fn test() {
        let (tx, rx) = mpsc::unbounded_channel::<mpsc::UnboundedSender<i32>>();
        let mut handles = Vec::with_capacity(N + 1);
        handles.push(tokio::spawn(async move { exec(rx).await }));
        for _ in 0..N {
            let tx = tx.clone();
            handles.push(tokio::spawn(async move {
                get(tx).await;
            }))
        }
        drop(tx);
        for handle in handles {
            handle.await.unwrap();
        }
    }
    
    async fn get(sender: mpsc::UnboundedSender<mpsc::UnboundedSender<i32>>) -> i32 {
        let (tx, mut rx) = mpsc::unbounded_channel();
        sender.send(tx).unwrap();
        rx.recv().await.unwrap()
    }
    
    async fn exec(mut receiver: mpsc::UnboundedReceiver<mpsc::UnboundedSender<i32>>) {
        let mut channels = Vec::with_capacity(PAR);
        loop {
            for _ in 0..PAR {
                let Some(tx) = receiver.recv().await else {
                    return;
                };
                channels.push(tx);
            }
            let mut i = 0;
            for c in channels.iter() {
                i += 1;
                c.send(1).unwrap();
            }
            println!("{}", i);
            channels.clear();
        }
    }
    и запустил в многопоточном рантайме в дефолтной конфигурации (количество воркеров == количеству ядер), работает быстрее в 19 раз.

    P.S. без I/O операций асинхронщина тоже создает ненужные накладные расходы, я ее здесь использовал только из-за простоты переписывания, лучше взять обычный thread pool с синхронными тасками.
    Ответ написан
    Комментировать
  • Где могут взять на удаленную работу разработчика игр на Unity?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    С разморозкой.

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

    Если ты из РФ - ты не нужен никакой зарубежной компании. Просто по факту "ты из РФ"
    Если тебе меньше 18 - ты не нужен вообще никакой компании, кроме тех, где кидают - потому что морок и проблем с трудоустройством малолеток столько, что государство квоту на лето устанавливает.
    Если у тебя нет опыта (а фрилансерство за опыт не идет) - ты не нужен вообще никакой компании независимо от возраста, потому что фрилансера очень трудно перевоспитать для работы в офисе (и чем больше у него опыта, тем труднее)

    Поэтому жди совершеннолетия и уже потом ищи что-то от геймерских контор.
    Ответ написан
    3 комментария
  • 1 гигабит интернет но торренты качат 30-40мб/сек, как увеличить скорость?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    О, тут на самом деле есть куча факторов: как правильно уже сказали - есть оборудование провайдера со своими ограничениями. Есть ограничения у вышестоящего провайдера или провайдеров, сети и линий связи. Есть маркетинг провайдера: вам могут выдать тариф 1Гбит, но по факту это будет остаток от гигабитной лини, что приходит на весь ваш дом (у меня был такой случай - через пару месяцев "обещаний" обновить оборудование ушел обратно на старого провайдера, который не зажилил поставить второй коммутатор на дом только для меня одного). Так что гигабит в ДС и на дальнем востоке - это два разных гигабита. 30-40 мегабайт скорости в торрентах на гигабитном тарифе - очень даже неплохо на самом деле.
    Ответ написан
    2 комментария
  • Как постичь искусство программирования?


    Ещё в студенческие годы баловался в Delphi и вёрстке, это было чертовски интересно.

    И зачем тогда себя мучать и пытаться залезть туда, куда вас вообще не тянет?


    Я пробовал начать с "Грокаем алгоритмы" и с книги Никлауса Вирта по алгоритмам, но мало что понял. Читаю и, как говорится, "Смотрю в книгу, а вижу фигу"...

    То что "грокаем алгоритмы" - это мусор, мы даже обсуждать не будем.
    Ещё видел в одном из ответов на похожие вопросы - нет никакого смысла пытаться изучать алгоритмы до того, как ты изучил какой-то язык.

    Это всё равно что пытаться изучать алгебру не зная арифметику и не зная, как выглядят цифры.

    Я с этим тезисом согласен.
    Ибо действительно ничего не сможешь понять.


    начал пытаться решать задачи на логику. Но такие задачи требуют смекалки и способность догадаться (что логично) до какого-то решения, оперируя данными.

    Никакой смекалки и догадок в задачах на логику нет. На то это и задачи на логику.


    искусством программирования

    Скорее придирка, но программирование и программная инженерия очень далеки от искусства.
    Называть программирование искусством - всё равно что назвать искусством покраску стен.


    В прошлом окончил ВУЗ по IT-специальности

    Оффтоп, но это показательный пример несостоятельности текущей системы образования.


    как развить абстрактно-логическое мышление?

    Школьная математика.


    Как изучить методику программирования?

    Решай хоть какие-нибудь задачи при помощи какого-нибудь языка программирования.
    Не торопись лезть на leetcode. Попробуй что-нибудь простое и чисто бытовое решить.
    Ответ написан
    1 комментарий