Задать вопрос
  • Возможно ли устроиться программистом с общим образованием?

    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 лет
    Ответ написан
    Комментировать
  • Активность в приложениях?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Обратиться на сервис freelance.habr.com и заказать там.
    Ответ написан
    Комментировать
  • У кого есть план обучения на Data Science?

    @dmshar
    А зачем вам? Какой Data Science, если вы не умеете сами ответить на этот вопрос?
    Но если вдруг в вашем городе уже отключили Googlе, то помогу вам. Вот вам планы:
    https://nuancesprog.ru/p/11226/
    https://www.kdnuggets.com/2021/05/guide-become-dat...
    https://www.kdnuggets.com/2021/02/data-science-lea...
    https://www.analyticsvidhya.com/blog/2020/11/14-mu...
    https://tproger.ru/curriculum/data-scientist-curri...
    https://www.kdnuggets.com/2020/05/beginners-learni...
    https://apps.ucu.edu.ua/en/data-science/curriculum...
    https://medium.com/sciforce/a-laymans-guide-to-dat...
    https://dev.by/news/kak-izuchit-data-science
    И интересно, какой ответ вы ожидаете получить на вопрос " КАК вы изучали"? Т.е. вы знаете десяток разных методов и не можете выбрать один из них для себя??

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

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    if cursor.execute( f"SELECT id FROM user WHERE id = {members.id}" ).fetchone() is None: # Если нет id то заносим в таблицу
    - это вы не в таблицу заносите, это х***ей страдаете. Почему бы вам не спросить у того дауна, у которого скопипастили код?

    Решение одно - избавьтесь от f-строк, и возможно, жизнь наладиться.

    Было бы классно, запилить на тостере фильтр, например, если в вопросе встречается словосочетание f"SELECT - банить и юзера по ip, и перенаправлять его к профессору хауди!
    Ответ написан
    2 комментария
  • Возьмут ли на работу в 19 лет?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Не нужно спрашивать случайных людей в интернет.

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

    Важно не только то, что ты изучал HTML, а и например то, что тебе дали задачу а ты ее ПОНЯЛ и ВЫПОЛНИЛ, а это между прочим далеко не всем доступно.

    Так и тут - на какую работу тебя брать? На работу для знающих HTML и основы js? Где такая работа?
    Важно не то, что ты знаешь, а что требует тот, кто платит деньги.

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

    HemulGM
    @HemulGM Куратор тега Python
    Delphi Developer, сис. админ
    Учись, гугли, изучай
    Ответ написан
    Комментировать
  • Чему учит Марк Лутц?

    @Spargwy
    20 годиков. Голанг баккенд девелопер
    Но полистав pdf-файл этой книжки я не смог найти ни одного куска кода, который был бы для меня не понятен.

    Нихрена ты не понимаешь - тебе так только кажется.
    Ответ написан
    Комментировать
  • Product manager с нуля, насколько реально?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Джун продукт менеджер? нет такой специальности.
    Ты либо ведешь продукт, либо не ведешь. Даже помощник продукт менеджера должен быть в теме.

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

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

    c3gdlk
    @c3gdlk
    Ментор в http://rubyboost.ru/
    имхо, не тратьте деньги на курсы. Книга по канбану ,книга по скраму, книга по agile и идите на стажировку.
    Тратите баксов 50 на платные Jira, ADO, pivotaltracket и еще бесплатно trello и разбираетесь во всех их кнопках которые сможете натыкать.

    И Вы на голову будете выше всех остальных кто ломится в стажировку. Стажировка - не работа. Просто халявный способ войти в айти и надо обойти таких же халявщиков

    пол года назад примерно на пикабу видел рекламу курса какой-то популярной конторы на менеджера. Они там сквиз замутили, типа как бы ты, как менеджер, поступил в данной ситуации. Забавно, но там либо не было правильного ответа, либо нельзя было ответить однозначно. Все вопросы были говно. Вот и как после этого доверять таким курсам.
    Ответ написан
    2 комментария
  • Как устроиться django-developer без опыта коммерческой разработки?

    Jacen11
    @Jacen11
    очень хреновое резюме. Причем многие выражения в любом случае нельзя использовать. Много мало того что ненужной воды, так еще и выставляет тебя в худшем свете!

    КАК ПРИШЁЛ К DJANGO
    да всем насрать как. Могут иногда на самом собесе спросить чтобы начать разговор

    Из стоящих работ к сожалению могу предоставить код своей незавершённой социальной сети.
    тут и сожаление, и незаконченный проект. Заранее показываешь что ты дно, да еще и согласен с этим. Не незавершенный проект, а продолжающий развиваться. А еще лучше не говорить об этом. Кто посмотрит поймет что не закончил, кто не посмотрит не решит что ты рукожоп

    Данный проект я начал создавать, чтобы проверить на что я способен это всё же интереснее, чем просто создавать сайты-блоги, визитки и тд. Я не завершил его по причине острой необходимости в подработке( начал писать на php об этом говорится в разделе СОПУТСТВУЮЩИЕ НАВЫКИ).
    очень интересно. На самом деле нет. Прям автобиографию написал. У hr сотни резюме, эта писанина им не нужна и не интересна. Они ищут человека с определенными навыками, не более.

    В проекте "социальная сеть" начал применять паттерн MVC, но не везде отрефакторил код.
    Твой проект скорее всего никто не посмотрит, а если посмотрит увидит МВС, но ты сразу признался что работаешь через жопу

    То что ты там дальше понаписал записывается так
    git, web-socket, django-channels, docker + redis.

    Postman
    впервые вижу это как некий плюс. Все в курсе что это и умеют пользоваться, если нет, то пяти минут хватит разобраться

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

    если что-то не знаю то гугл в помощь и без проблем нахожу решение
    это ты братану расскажешь, а не в резюме. Неформальная речь, очевидные вещи, не интересно hr. Кадровику надоело читать, выкидывает не дочитав

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

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

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

    также почерпал много информации
    ахахах, великий черпий) много проблем с языком, если не знаешь, попроси того кто знает русский отчитать

    Я быстро разбираюсь во всём новом
    это уже давно стало позорным клише в резюме

    Вообще можно объяснить почему неправильно буквально каждое предложение, но я уже устал.

    Вывод
    Это беспонтовое резюме от школьника, который не то что питон, русский знает на 3. Такое сразу идет на помойку. Любой выпускник универа или свитчер инженер сходу будет предпочтительнее. Посмотри как другие люди составляют резюме и сделай так же
    Ответ написан
    Комментировать
  • Как стать бэкэнд разработчиком без высшего образования?

    Просматривая вакансии я заметил, что у самых интересных (вакансии от банков с шестизначным окладом, дмс и прочим), обязательным требованием идет техническая вышка. Неужели без вышки в нормальные компании путь закрыт?

    Буквально недавно в банк с шестизначным окладом собеседование проходил - про образование только на 5-минутном интервью в самом начале спросили. Ну и в общем то с самого начала карьеры ни разу отсутствие вышки не было преградой.

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

    Если твоих знаний будет хватать только на работу фронтом в микростудии - да, это и будет твой потолок.
    Ответ написан
    Комментировать
  • Куда развиваться Python разработчику (не для поиска первой работы)?

    @PkQDark
    А с чего ты за пол года решил, что ты ограничен?) Основываясь на своем личном опыте, я сейчас понимаю, что первые два года вообще не понимал, что делаю, хотя тогда я так не думал:) А развиваться надо не в технологии, а а направлении, если хочешь заниматься вебом, то занимайся им. Разбери в деталях как работает все mvc. Как можно реализовать одно и тоже на django, flask, fast api и aiohttp, если тебе зачем то захотелось разобрать несколько фреймворков. Разберись как работает фронт, выучи react, angular, vue. Разберись в деталях асинхронности, что бы слова async и await, не вызывали у тебя вопросов. Изучи как работает многопоточность в питоне (херово), и что вообще такое GIL и зачем это надо. Разберись с другими протоколами, как минимум с веб сокетами. Копни глубже в архитектуру и проектирование и изучи хотя бы все основные патерны и антипатерны, научись писать код согласно SOLID. Копни глубже в питон и разберись как работают метаклассы и в чем их суть. Залезь в детали разных CI/CD и деплоймент процессы, разбери как минимум докер, кубкрнетс и/или ансибл. Копни глубоко в тестирование и разберись со всеми деталями юнитов, интеграционных, ацептанс, перформанс текстов. Закопайся в детали баз данных, что бы вообще хорошо понимать SQL, что бы вопросы чем where отличается от having, или в чем разница между postgres и mysql вообще не вызывали проблем. Опять же понимание транзакций и уровня изолированности транзакций. Понимание и умение использовать NoSQL базы, и как минимум знать где и какие применяются. Понимание где и зачем нужна микросервисная архитектура. Если вдруг ты действительно все это понял и разобрал за пол года, то я искренне тебе завидую и готов помогать и подсказывать куда развиваться и что изучать. Если что сам senior python developer / release manager, в крупной международной компании:)
    Ответ написан
    Комментировать
  • Зачем используют Django и Python, разве не удобнее сразу все сделать через Node.js и javascript фреймворки?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Бекенд - это не язык. Это понимание соответствующих технологий работы с базами данных, кешированием, работы со структурами данных, протоколами, технологиями, алгоритмами, построением архитектуры и связыванием с внешними сервисами и прочее...
    А поскольку это охватывает очень большой пласт проблем - и произошла специализация.

    А Python разработчики имеют дело в основном только с бэкенд - и понятия про фронтенд у них будут на уровне dummy html, css, bootstrap.

    Угу... При таком подходе - с чего вы взяли тогда что у фронта будут достаточные знания о работе бекенда? Раз по-вашему бекендер только в dummy html может, - а фронтендер сразу с ходу сможет оптимизированные запросы к БД к примеру писать? )))) Если ваш фронтендер настолько крут - то в принципе незнание языка не помеха, поскольку язык - только инструмент.
    Ответ написан
    3 комментария
  • Динамически добавить elif ветки в функцию?

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

    Vindicar
    @Vindicar
    RTFM!
    # HELP
    bot.remove_command("help")
    @bot.command(command/help.py)
    
    # PROFILE
    bot.remove_command("profile")
    @bot.command(command/profile.py)

    У меня такое чувство, что ты не вполне понимаешь что такое декоратор и как им пользоваться.
    Да и конструкция вида command/profile.py не является синтаксически корректной в питоне.
    Подучи основы языка. Вот кроме шуток.
    Марк Лутц, "Изучаем Питон", 4е издание.
    Потом вернёшься к боту, и уже не будешь спотыкаться на таких пустяках.
    Ответ написан
    Комментировать