• Программирования учат или применяют?

    Newto
    @Newto
    Добрый день. Я перечитал все ответы выше, а так же комментарии к ним. Решил прокомментировать, с точки зрения своего опыта(я занимаюсь разработкой уже более 15-ти лет). Для удобства чтения я буду писать по пунктам.

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

    2) Методика "объяснение и практика". Вы пишете, что "при таком способе мне приходится одно и тоже глазами несколько раз пробегать чтобы запомнить". Это, с моей точки зрения, в корне не верно. Ибо то, что вам объясняют, не нужно "пробегать глазами" несколько раз, что бы запомнить. Это вообще не нужно запоминать если это не те самые "стандарты"; это нужно осмыслить и понять. После того, как к вам придёт понимание как это работает, зачем и почему это надо -- вы сможете это использовать, осмысленно, в собственном коде.

    3) Платные курсы. Курсы ныне очень разные. Кто-то просто, простите, гребёт бабло на этом всём. А кто-то преподаёт с душой, хорошо и понятно рассказывая. Поэтому платный курс -- это хорошо, но только тогда, простите за тавтологию, когда это хороший курс. Читайте отзывы о курсе, советуйтесь с теми кто его уже прошёл(в идеале) и тогда уже решайте, тот ли этот курс, что даст вам необходимые знания.

    4) ВУЗ. Более 10-ти лет назад, у меня в подчинении, в вебстудии, работал PHP джун. Он доучивался в МГТУ имени Баумана. И он не знал ничего. Совсем. Мне приходилось объяснять ему простейшие вещи, типа что значит иструкция "$a += $b;". Сам же я учился в ВУЗе малоизвестном, на факультете "прикладная информатика в экономике" и наш преподаватель информатики, на первом курсе, на вопрос что значит в коде программы на языке C++ инструкция "с++" ответил, что это "так язык называется". Однако, вскоре ко мне начали ходить сокурсники, с просьбами "а напиши программку". И происходило это потому что я сам загорелся программированием, купил книжки, установил всё что нужно было установить на компьютер и начал "творить волшебство", как это мне тогда виделось, с горящими глазами. Короче говоря не нас учат ВУЗы, а мы учимся в ВУЗах или учимся без них. Тут уж как пойдёт.

    5) Ну и последний, самый важный, с моей точки зрения, пункт. Это Интерес. Если вам интересно программирование, вам нравится разбираться, что-то делать самостоятельно, а не только тогда когда кто-то поставил задачу, то у вас все получится. И как именно это всё учить у вас вопроса, в конце концов, не возникнет. Разбирайтесь, ковыряйте, вникайте и всё будет. Единственное что -- очень желательно, что бы перед вашими глазами были хорошие примеры. Потому что я, в свое время, тоже разбирался, учился и вникал, "гладили по голове", как писали выше в комментариях к одному из ответов, меня уже мои наниматели, потому что я все делал быстро и без ошибок, т.е. работало все так, как было нужно клиентам веб-студии, собеседование в которую я тогда прошел без каких-то проблем. Но вот мой код тогда был, откровенно говоря, тем, что сейчас называется "говнокодом". Потому что некому было мне показать как писать есть хорошо, а как есть плохо.

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

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    bytes = 'b'.encode('utf-16le')
    print(bytes[0]) # 100
    print(bytes[1]) # 0
    Ответ написан
    Комментировать
  • Как посчитать стрит флеш без одной карты на флопе?

    vabka
    @vabka
    Токсичный шарпист
    1. В колоде 52 карты.
    2. При этом две карты у тебя на руках.
    3. Стрит флеш - это когда карты идут по порядку и все одной масти.
    4. Тк у нас девятки, то мы ждём, что будут такие наборы:
    - 6, 7, 8
    - 7, 8, 10
    - 8, 10, J
    - 10, J, Q
    Всего 8 благоприятных исходов

    Сколько всего возможно исходов?
    Нам нужно посчитать, сколько всего уникальных наборов по 3 карты можно получить из колоды в 50 карт.
    Операция, которая даст нам это количество название "сочетание из 50 по 3"
    И равняется оно C(50,3) = 50! / (3! * (50 -3)!)

    Делим 8 на С(50,3) и получаем примерно 0.0408%
    Ну и шанс, что последняя карта соберёт нам стрит флеш равен 4.25% (2/47)
    Ну и если самая самая последняя карта, если предыдущая не дала нам благоприятный исход - 2/46 ~ 4.3%

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

    Vindicar
    @Vindicar
    RTFM!
    Анонимность - штука многогранная.
    Для начала, что значит "со мной"? Кто есть "я"? Другая учётка на этом же сайте? Айпишник из российского диапазона? Учётка в соцсетях? Физлицо Вася Пупкин, паспорт-серия-номер-выдан? Ответы будут очень разные.
    1. Какие данные сайт требует для работы? Можно ли по этим данным тебя идентифицировать?
    Грубо говоря, если для реги нужен телефон, и сайт не работает с российским сегментом, то VPN не поможет, если у тебя нет зарубежного номера.
    2. Какие данные отдаёт твой клиент? Например, куки, localStorage, эксплоиты для анализа истории, инфа от логинов в соцсетях, и тому подобные вещи. requests и другие клиенты-либы ничего такого не отдают, если специально их не настроить. В случае с селениумом есть browser fingerprint, но он тоже ломается при желании.
    3. Что сайт знает о твоём IP адресе? Принципиально ли ему вообще это знание? Одно дело, если сайт требует/не допускает айпишники из определённого диапазона. Другое - если там ограничение на число запросов с одного IP. Третье - если ему вообще пофиг на IP и он пытается идентифицировать юзера иначе.

    Короче, выводы простые.
    1. без конкретики тут говорить не о чем.
    2. Однострочник import sdelaj_mne_kruto не прокатит.
    Ответ написан
    Комментировать
  • Законно ли превращать видео на YouTube в текст и создавать для этого скрипт? Не нарушает ли авторские права?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Создавать скрипт можете без проблем. Использование видео ограничено лицензией на это видео. Видео в общественном достоянии можете использовать без ограничений, опубликованные по лицензии CC BY требуют указания автора исходного видео, по стандартной лицензии Youtube вам необходимо получить согласие правообладателя на создание производного произведения (текста).
    Ответ написан
    3 комментария
  • Возможно ли найти неоплачиваемую стажировку?

    plustilino
    @plustilino
    https://younglinux.info
    Я в шоке, что комментаторы тут предлагают за стажировку доплачивать тому, кто будет стажировать, а не тому, кто будет стажироваться. Прям все шаблоны порвали.
    Вроде как стажировщикам тоже платят. А тут человек готов даже бесплатно.

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

    @dmshar
    Вообще-то задача распространенная, можно сказать абсолютно традиционная. Ничего сверхестественного:
    https://machinelearningmastery.com/imbalanced-clas...
    https://towardsdatascience.com/imbalanced-data-in-...
    https://machinelearningmastery.com/tour-of-evaluat...
    https://newtechaudit.ru/algoritm-balansirovki-klas...
    https://www.analyticsvidhya.com/blog/2023/01/pract...
    https://alexanderdyakonov.wordpress.com/2021/05/27...
    https://towardsdatascience.com/how-to-deal-with-im...
    forum.disser.ru/index.php?act=attach&type=post&id=2340
    https://dataaspirant.com/handle-imbalanced-data-ma...
    Тут есть все - и теория, и алгоритмы и реализации (как правило - на Python). Далее - по ссылкам. И совет - хотите изучать Мachine Learning - начните с освоения методов поиска информации. Хотя-бы в Гуугле. Все лежит на поверхности!
    Ответ написан
    4 комментария
  • Как реализовать зачет урока в реляционной базе данных?

    Все уровни выше users_on_lessons называются денормализацией - хранить эти данные необязательно, их можно вычислить из других по цепочке связей.
    "Правильно" в данном случае не существует, вы выбираете на каждом конкретном проекте между скоростью и консистентностью. Храните денормализованные данные? Тогда придётся обеспечивать их связность, чтобы не оказалось, что в users_on_lessons пользователь привязан к одному топику, а в users_on_topics к другому. Храните только "жёсткие" данные? Тогда будьте готовы считать нужное.

    Я в данном случае не вижу необходимости в денормализации в том виде, в котором вы её реализовали. Курсов относительно немного (а пользователь всегда работает только с одним из них в момент времени), в каждом курсе относительно немного глав, в главе немного топиков, в топике немного уроков. Посчитать по уроку где там пользователь в этом дереве совсем не сложно прямо на клиенте, а ведь ещё у нас есть возможность кешировать данные.
    Ответ написан
    2 комментария
  • Как спарсить текущую погоду в зависимости от месторасположения юзера?

    vabka
    @vabka
    Токсичный шарпист
    1. Зачем парсить, если существует куча сервисов с API?
    2. По geoip или как-нибудь ещё узнаешь локацию пользователя, и сопоставляешь со страницами на сайте.
    Например если пользователь в Алматы, то парсишь https://www.gismeteo.kz/weather-almaty-5205/
    А если в Астане, то парсишь https://www.gismeteo.kz/weather-astana-5164/
    Ответ написан
    Комментировать
  • Как сделать так, чтобы данные, которые я пишу в тг бота, заполняли сперва первую строчку в таблице postgre?

    Vindicar
    @Vindicar
    RTFM!
    Почитай хотя бы про основы реляционных БД.
    У каждой таблицы должен быть первичный ключ - иными словами, такое поле/комбинация полей, которая будет уникальной для каждой записи.
    Тогда алгоритм будет такой: спрашиваешь пользователя, какую запись он хочет редактировать, запоминаешь её ключ, затем переходишь в режим редактирования, где поочерёдно спрашиваешь значения столбцов.
    Подразумевается, что ты знаешь, как сделать сценарий, чтобы бот последовательные сообщения обрабатывал по-разному. Если не знаешь - читай, как реализуется finite state machine (FSM) в выбранной тобой библиотеке.
    Ну и да:
    data = message.text.strip()
    cur.execute(f"INSERT INTO {tableName} ({column_name}) VALUES ('{data}')")

    Это - готовая SQL инъекция. И если вставку tableName и column_name еще можно оправдать (хотя ты их тоже не проверяешь на допустимость), то данные так вставлять нельзя. Есть правильный способ.
    Ответ написан
    Комментировать
  • Существует ли дистрибутив линукс готовый к работе в домене из коробки?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Примерно любой дистрибутив, в котором можно сделать условный apt/yum/etc install realmd sssd.
    Ответ написан
    7 комментариев
  • Что за ошибки в Ubuntu?

    @AlexVWill
    Ничем не опасно, эта фигня у многих появляется, у меня в том числе. Забей или через редактирование конфига Grub просто скрой вывод ошибок при загрузке, они всеравно в логе тоже видны.
    Ответ написан
    Комментировать
  • AttributeError: 'NoneType' object has no attribute 'get_text'. Как решить?

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

    vabka
    @vabka
    Токсичный шарпист
    Использовал для этого телеграмм-бота от одного сервиса.

    Вообще это уже сильно пахнет скамом, так что я бы уже тут задумался.

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

    Сильное заявление, которое невозможно проверить.

    симка для аккаунта телеграмма куплена с рук (уже была верифицирована);

    Очень опасное занятие. Если симка для аккаунта создана в рамках корпоративного тарифа - "организация" имеет очень много контроля над ней. (Не буду утверждать, что доступно даже чтение смс, тк не знаком с возможностями)

    с использованием программы AmneziaVPN

    Вообще пахнет паранойей, но лучше её из исходников собирать. Не думаю, что тут она виновата.

    Вообще я ставлю на следующие варианты:
    1. Кто-то просто взял в руки твой телефон (или куда там у тебя ещё телеграм установлен)
    2. Владелец симки смог увидеть твои входящие смс и при этом знал заранее твой пароль от телеграма, либо смог его подобрать, либо смог сменить пароль, имея доступ к твоей резервной почте.
    3. Кто-то смог получить удалённый доступ к устройству, где установлен твой телеграм и ты залогинен.

    Проверь историю входов в аккаунт и активные сессии. Проверь, что ты знаешь обо всех активных сессиях и никто посторонний не имеет доступа к ним (это не какой-нибудь публично доступный компьютер, например)
    Ответ написан
    3 комментария
  • Где ошибка в строке запроса к PosgreSQL?

    @Akina
    Сетевой и системный админ, SQL-программист.
    В запросе, использующем более одной таблицы, все имена полей должны указываться как минимум с алиасом таблицы.

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

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    Если надо с чатиком, то нужна какая-то серверная часть. Серверную часть можно написать и на python, например, используя фреймворк django, но php или java какие-нибудь могут быть популярнее. Плюс какие-то базы данных там наверняка понадобятся, так что надо знать SQL. Клиентскую часть надо писать на разных языках в зависимости от платформы.
    Если это веб-приложение, то нужны javascript, typescript или scala. Плюс надо использовать один из сотни фреймворков, иначе задолбаетесь все с нуля писать. Ну и html c CSS надо знать, для оформления страницы.
    Если это приложение для смартфонов, то java или C++ + немножко java на андроиде, objective-c или swift на айфонах.
    Если это для винды приложение, то можно С++, java или python.
    Ответ написан
    Комментировать
  • Как отчистить глобальное окружение python?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Разобраться, как работают виртуальные окружения. Создавать их для каждого проекта, активировать и из них производить установку библиотек посредством pip для данного проекта.

    Что касается «глобального интерпретатора», то это тот, папка которого указана первой в системном path.
    Ответ написан
    Комментировать
  • Как отчистить глобальное окружение python?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    В свойствах проекта для каждого проекта устанавливается интерпретатор. Если пакеты вы ставите из пичарма, то они будут ставиться в окружение выбранного интерпретатора. Создайте виртуальное окружение (можно прямо из окна настроек пичарма) и ставьте пакеты в него.
    Ответ написан
    Комментировать
  • Как показать работодателю реализованные проекты?

    php666
    @php666
    PHP-макака
    нужно приложить портфолио из реализованных проектов
    не надо в такие места идти просто. это изначально неадекватное требование для программиста, который как правило работает в команде и даже если репозиторий будет публичный, весь код представляет собой смесь работы разных людей. никто не будет вытаскивать из репы твои коммиты и смотреть, что ты там делал.

    скорее всего hr-ы тупо скопипастили текст вакансии, но от этого не легче, это первый звоночек, что компания "рога и копыта" и какие hr, такой и остальной персонал
    Ответ написан
    Комментировать
  • Как будет выглядеть этот Go код на Python?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    import socket
    import ssl
    
    def test_connection(address):
        certs_return = ""
        context = ssl.create_default_context()
        context.check_hostname = False
        context.verify_mode = ssl.CERT_NONE
    
        try:
            with socket.create_connection((address, 443), timeout=10) as sock:
                with context.wrap_socket(sock, server_hostname=address) as ssock:
                    cert = ssock.getpeercert()
                    for (issuer, entry) in cert['issuer']:
                        certs_return += "{}={}\n".format(issuer, entry)
        except Exception as e:
            certs_return = "0"
    
        return certs_return
    Ответ написан
    2 комментария