• Что значит Junior/Middle+?

    xez
    @xez
    TL Junior Roo
    "Плюс", видимо, значит "чуть больше чем мидл", "уже не мидл, но еще не сеньер". С джуном - аналогично.
    Формальных никаких признаков нет, все эти грейды - чистая условность и могут сильно различаться в разных компаниях.
    Ответ написан
    Комментировать
  • Что не так с кодом?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    Фунцию вызвать нужно

    send_content()
    Ответ написан
    Комментировать
  • За сколько реально стать Jr ASP.NET Developer?

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

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

    Dr_Elvis
    @Dr_Elvis Куратор тега Python
    В гугле забанен
    random.choice
    Ответ написан
    Комментировать
  • Как решить ошибку IndexError: list index out of range?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Очевидно в user_channel_status нет элементов с индексом 60 и 70. Решить проблему можно проверкой длины списка.
    Ответ написан
    Комментировать
  • Есть код питон. Как исправить?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Для начала отложить ботописательство и изучить python.
    Например, по книге Марк Лутц - Изучаем python. 5-e издание.
    Без знания основ вы, каждый раз как будет выскакивать ошибка, будете бежать в гугл/сюда/на stackowerflow с подобными вопросами.
    Конкретно по вашему вопросу - в указанной книге пятый раздел первого тома полностью посвящен модулям, на отсутствие которого ругается интерпритатор.
    Ответ написан
    Комментировать
  • Изучаю java 3 й месяц, прошу помочь советом куда двигаться и можно ли начать искать стажировки или пока рано?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Прежде всего замечу, что вы зря бросили работу, так как для поиска новой время ну очень неподходящее. Кроме того стоит заметить, что решение задач на codewars - бесполезная трата времени. Лучше пишите какие-нибудь реальные программы. И наконец, ответ зависит от личной обучаемости, которая у всех разная, и того, как именно вы учитесь. А то вдруг вы третий месяц видео-уроки на YouTube смотрите, тогда дальше можно и не продолжать.
    Ответ написан
    Комментировать
  • Как в новом потоке запустить асинхронную функцию?

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

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    По списку городов, очевидно же
    Ответ написан
    2 комментария
  • Насколько реально нужен консул девопсу?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Никто не заставляет использовать docker, systemd, ansible и вообще какие угодно системы оркестрации и оптимизации. Необязательно делать шаблоны конфигов или кластерные конфигурации сервисов, необязательно использовать библиотеки настраиваемого логгирования, возиться с балансерами и реприцируемыми базами. Но люди это делают, значит, смысл всё-таки есть?

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

    Консул - это тоже инструмент. Вряд ли хоть кто-то использует его возможности целиком и полностью, тем более что никто не заставляет. Кому-то достаточно того, что у него все сервисы зарегистрированы в одном месте и из коробки имеют автоматическое DNS-имя вида NAME.service.consul. Кто-то использует kv-хранилище для хранения параметров, а кто-то хранит в нём секреты и целые конфиги, настраивает токены с различными acl и скрещивает всё это с consul-template. Вообще, необязательно использовать именно консул, есть и другие инструменты для подобных задач. Например, zk/etcd.

    Консул чаще используют совсем не с ансиблом, а с инструментами оркестрации, в которых сервисы могут расширяться и сворачиваться, перезагружаться и мигрировать. Скажем, пусть у нас есть условный сервис rabbitmq на три ноды. Тогда у нас может быть три контейнера rabbitm{1..3}, при запуске они регистрируются в консуле скриптом запуска вместе с проверками, а далее consul отдаёт их все три в виде имени rabbitmq.service.consul. Если какой-то из них вдруг упадёт, consul оперативно это обнаружит и исключит из DNS проблемный узел. Если вдруг управляющий всем этим администратор или автоматическая система оркестрации посчитает нужным добавить новые узлы или перенести их куда-то ещё в кластере, то consul также отразит все нужные изменения. При этом использующее rabbitmq приложение должно будет знать только адрес rabbitmq.

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

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

    Vindicar
    @Vindicar
    RTFM!
    n = print(item['name'])
    В-первых, ничего не выводит куда?
    Во-вторых, print() выводит данные в стандартный вывод, обычно в консоль. В дискорд через неё ничего не послать.
    Во-третьих, print() всегда возвращает None. Так что n всегда будет None, и присваивание не имеет смысла.
    В-четвертых, почему не использовать нормальный обработчик команд из discord.ext.commands.Bot? Он тоже позволяет реагировать на сообщения, в придачу к остальным полезностям именно для бота. Это при условии, что ты хочешь именно реакцию на сообщение и не согласен обойтись обычной командой.
    В-пятых, если ты не уверен, что такое print(), почему ты пытаешься писать ботов?

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

    saboteur_kiev
    @saboteur_kiev Куратор тега Windows
    software engineer
    С малых лет увлекался компьютерами. В школьные годы ходил на курсы «Сергис».После 9 класса отучился в колледже Бонча. После колледжа поступил в университет (закончить не смог из за семейных обстоятельств, в ближайшее время собираюсь перепоступать).

    Никому не интересно. Тут нет ИТ опыта.

    С компьютерами как эникей-сисадмин начал работать в судах

    У многих понятие эникей-сисадмин это тот, кто меняет мышку и переустанавливает софт. То есть продвинутый юзер.

    У моменту увольнения из был Консультантом(и ИО начальника отдела информатизации и статистики)
    Управлял отделом (пусть и маленьким)

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

    Занимался всем (ремонт компьютеров, мелкий ремонт мфу, обновление и настройка по на пк и серверах)

    Ну вот. Что это за ремонт?
    Я понимаю, когда под "чинил мфу" ты бы написал "менял печку, перепаивал конденсаторы на платах". А так, среднестатистический эникейщик под ремонтом принтеров и МФУ обычно вытаскивает забитую бумагу и сдает картриджи на перезарядку.

    Я попал на время становления ИАЦ по этому на нас испытывали многое по
    И у нас было больше свободы и доступа в отличии от других судов
    Я многому научился за годы работы там

    Какая полезная и понятная информация.

    Позже я устроился на завод «младшим сисадмином»
    Позже стал начальником отдела
    И в итоге являюсь Инженером ТЗИ

    Какая полезная и понятная информация.

    За время своей работы я поднимал доменные, файловые сервера

    Создавал свой домен с нуля, или что такое "доменный сервер"?
    Что такое файловый сервер - просот расшарил папку на диске (сейчас может даже блондинка сделать), или ставил Novell Netware?

    Обновлял и правил 1с на серверах

    Что сюда входит? Обновлял темплейты отчетов? Писал код? Или просто по инструкции обновлял? Во многих компаниях обновление делает либо сам бухгалтер, либо отдельно выделенный человек. ЧТо делал ты - неясно.

    Тянул сеть и худо-бедно настраиваю микротики
    Поднял сеть видеонаблюдения на трассире
    Разобрался и привёл в порядок систему турникетов и шлагбаумов perco
    Позже прошёл обучение в perco (хотя по факту я уже все знал к тому моменту из того чему они учили)

    Ну хоть что-то конкретное. Но опять таки, микротики можно настраивать по-разному. Система турникетов и шлагбаумов - сам проектировал или просто оптимизировал уже имеющееся? (Скорее всего там очень простые настройки)

    Работал с поставщиками и менеджерами

    Так все это делают в конторах где нужно покупать какую-то технику.

    И по факту организовал пусть не идеальную, но стабильную работу на отдельно взятом заводе
    Я если чего-то не знаю то гуглю/ищу знакомых/техподдержку которые могут ответить на мои вопросы
    Да у меня есть пробелы в знаниях
    Я этого не скрываю
    Я слаб в теоретической части и я это понимаю
    По факту со многими вопросами приходилось разбираться на ходу

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

    Я пытался откликнуться на вакансии младших системных администраторов, эникеев в крупных и средних компаниях, но мне приходит отказ или просто игнор

    Так а требования совпадают с резюме?

    Соответственно прошу помочь статьями/объяснением как правильно создать резюме и как подать себя

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

    Вот после прочтения, я понятия не имею, сможешь ли ты поднять домен с нуля. Сможешь ли ты вайфай настроить с бесшовным соединением в частном доме чтобы добивало на 100-200м и не пускало соседних кидди-хакеров в локалку. Сможешь ли корпоративную почту хотя бы настроить или какой-то мониторинг организовать. Умеешь ли в скриптинг хоть на чем-либо.

    Нет информации никакой.
    Ответ написан
    Комментировать
  • Возможно ли устроиться программистом с общим образованием?

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

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    IndentationError: unexpected indent
    Может, для начала, питон подучите?
    Про отступы в любом нормальном учебнике буквально в первой главе по практике должны говорить.
    Ответ написан
    Комментировать
  • Как обратиться к пункту из словаря?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Ответ очевиден, если немного подумать логически:
    cmd['communication']['hello']
    Ответ написан
    1 комментарий
  • Я сделал Code Review, может быть я где-то ошибся или у вас есть что добавить?

    @Sing303
    Опишу, как бы комментировал я
    public sealed class DataProvider : IDisposable
    {
        // nit: Предложил бы названия firstValue, secondValue либо более осмысленные, если возможно
        public extern int LongRunningCalculation(int value, int value2);
        public extern void Dispose();
    }
    
    // nit: сразу бы хотелось видеть уровень доступа и sealed (если класс не планируется наследовать)
    // Class2 - дать нормальное имя
    // { - перенести на 2ю строку по рекомендациям code style от microsoft (если не принято иных)
    class Class2 {
        // Синхронизация не нужна, если убрать метод Init, а Create вызвать в статическом конструкторе
        private readonly object _sync = new object();
        
        // _ht - дать осмысленное название
        // Судя по использованию, value может быть int`ом. Не зачем иметь лишний boxing и проверки на тип
        // _ht статический, значит к нему могут быть обращения из разных потоков, лучше сделать его ConcurrentDictionary
        // Прям сходу не могу сказать, но, возможно, использовал бы какой то другой тип Dictionary <key, key, val> (самописный или существующий), кажется, так было бы быстрее чем массив в ключе
        private static Dictionary<int[], object> _ht; 
    
        // nit: хотелось бы имена со смыслом
        public int GetValue(int index, int index2)
        {
            // Лишний метод, удалить. Create вызовем в static конструкторе
            Init();
            // Если ключ у нас объект, то необходимо реализовать IEqualityComparer для этого Dictionary (иначе не понятно как по нему искать)
            var key = new[] {index, index2};
            // Проверка на тип не нужна, Dictionary сделаем типа int
            if (_ht.ContainsKey(key) & _ht[key].GetType() == typeof(int))
                // приведение типов больше не нужно
                return ((int)_ht[key]);
            // nit: else не обязателен
            else
                // int не может быть null, будет ошибка, вернуть либо default, либо возвращаемое значение должно быть int?
                return null;
        }
    
        // Метод удалить, вызовем Create в статическом конструкторе без lock
        public void Init() 
        {
            if (_ht == null)
                lock (_sync)
                    Create();
        }
        
        // Нет смысла делать метод public, сделать private
        public static void Create() 
        {
            // nit: и так видно какой тип создаём, можно использовать var
            // Обернуть в using
            DataProvider provider = new DataProvider();
            
            // Тут следует инициализировать значение _ht, т.к. ранее оно нигде не создаётся
            // Не забыть передать реализацию IEqualityComparer в конструктор
            
            // nit: хотелось бы видеть использование фигурных скобок (если не принят иной code style)
            // nit: вместо int можно var
            // i и j, похоже, несут какой то смысл, можно попробовать придумать нормальное название (иначе не понятно почему 100 и 12, их можно в константы класса)
            // nit: возможно можно использовать Parallel.ForEach
            for (int i = 0; i < 100; i++)
                for (int j = 1; j <= 12; j++)
                    _ht[new [] { i, j }] = provider.LongRunningCalculation(i, j);
        }
    }

    А переписал бы так (если не убирать массив в dictionary)
    public interface IDataProvider : IDisposable
    {
        int LongRunningCalculation(int firstValue, int secondValue);
    }
    
    public sealed class DataProvider : IDataProvider
    {
        public extern int LongRunningCalculation(int firstValue, int secondValue);
        public extern void Dispose();
    }
    
    public sealed class DataProviderService
    {
        public DataProviderService(IDataProvider dataProvider)
        {
            _dataProvider = dataProvider;
        }
    
        private static readonly ConcurrentDictionary<int[], int?> _calculatedCache = new ConcurrentDictionary<int[], int?>(new CalculatedEqualityComparer());
        private readonly IDataProvider _dataProvider;
    
        public int? GetValue(int firstValue, int secondValue)
        {
            var isNotSupportedValues = firstValue > 100 || firstValue < 0 || secondValue < 1 || secondValue > 12;
            if (isNotSupportedValues)
            {
                return null;
            }
    
            var key = new[] { firstValue, secondValue };
            if (!_calculatedCache.TryGetValue(key, out var result))
            {
                result = _dataProvider.LongRunningCalculation(firstValue, secondValue);
                _calculatedCache.TryAdd(key, result);
            }
            
            return result;
        }
    }
    Ответ написан
    5 комментариев
  • Где можно узнать о всех виджетах и их методов по PyQt5?

    @dmshar
    Мне вас искренне жаль. Официальная документация вам не подходит ибо слишком сухо.
    Да и описания виджетов там - наверное специально от вас - спрятали
    https://doc.qt.io/qt-5/gallery.html
    Найти самостоятельно книги или источники в интернет - тоже не можете, наверное у вас в городе отключили Гуугл. Помогу:
    https://www.amazon.com/Introduction-Python-Program...
    https://www.pythonguis.com/pyqt5-book/
    https://ru.pdfdrive.com/pyqt-Создание-оконных-прил...
    https://ru.pdfdrive.com/python-3-и-pyqt-5-Разработ...
    https://docplayer.com/26121670-Pyqt-5-dlya-lingvis...
    https://build-system.fman.io/pyqt5-tutorial
    https://www.pythonguis.com/tutorials/pyqt-basic-wi...
    https://habr.com/ru/company/skillfactory/blog/599599/
    https://www.tutorialspoint.com/pyqt/pyqt_basic_wid...
    А самостоятельно поискать и найти 257 реализации игры в крестики-нолики наверное просто не хватает времени. Все приводить не буду, но вот некоторые:
    https://blog.emptyq.net/a?id=00013-be7e3c74-e0b6-4...
    https://www.youtube.com/watch?v=EZGzCQa_PBI
    https://www.geeksforgeeks.org/tic-tac-toe-game-usi...
    https://github.com/pisceswolf96/PyQt5-Tic-Tac-Toe
    Надеюсь, что осилив хоть часть приведенной информации написать игру для вас труда не составит.
    Ответ написан
    Комментировать
  • Какую фриланс биржу выбрать?

    opium
    @opium
    Просто люблю качественно работать
    Да нет таких увы, вы опоздали на 20 лет
    Ответ написан
    Комментировать