• Нужно ли обязательно сдавать физику для программиста?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    С только информатикой сильно снижается разнообразие направлений, куда можно поступить. Вот провалил ты информатику, а физику кое-как сдал неплохо - такое бывает...
    У моего сына в этом году именно так было.
    Сидел зубрил информатику 2 года, а физику за 2 месяца до ЕГЭ учебник открыл. Изумился, как мало он в физике знает...
    И сдал математику и русский норм, физику на 86, а информатику на 78... и поступил в МГУ на мехмат.математику - это, конечно, не программирование, но ИМХО неплохой старт - если что, в бигдейта найдет себе место...
    А если бы только информатику зубрил, а физику не сдавал бы - сейчас бы, наверно, готовился к следующему ЕГЭ (у него еще год есть до армии).

    Так что - физику сдавай, не сомневайся.
    Ответ написан
    Комментировать
  • ВУЗ в неподходящем возрасте, работа, паника. Как быть?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Рассматривать для себя ЗАОЧНУЮ ФОРМУ КАТЕГОРИЧЕСКИ НЕ ХОЧУ, попросту там нет нормальных и хоть чуточку перспективных специальностей

    ОЧЕНЬ, ОЧЕНЬ мало интересных профессий, на которые можно устроиться просто окончив отечественный ВУЗ.

    А поэтому:

    Вариант №1) Поступаю в вуз, заканчиваю и нахожу работу по профессии (маловероятно, но всё же).

    Вариант 3
    Поступаете в вуз, добавляете самообразование и со второго-третьего-четверого курса ищете работу по профессии, устраиваетесь. А в Вузе переводитесь на заочку.
    Ответ написан
    2 комментария
  • Как попасть на интервью или как найти работу Python junior/intern разработчиком?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    1. Если устраиваешься на работу в русско-язычную компанию, то и резюме должно быть на русском.
    2. Ты устраиваешься на работу программистом, а не деплоером приложений на хероку. Это хорошо, что твои приложения где то запущены, но работодателей интересует твой код, его и показывай.
    I like people, not only books. In my childhood I figured out that I should think about how
    other people feel, this led to desire to be a psychologist but after playing with computers I
    discovered that programming can solve so much more.

    Чет вообще в голос. Без обид, паста крутая. Какое она отношение имеет к твоим профессиональным качествам?
    3. Это хорошо, что ты перечислил книжечки, которые ты прочитал, но они должны быть ни как не в пункте твоих знаний.

    Из твоего резюме понятно только то, что ты умеешь чета там на хероку заливать, прочитал несколько книг и философствуешь на уровне пьяного одноклассника. Из 160 заявок 2 отклика с таким резюме - предел мечтаний. Посмотри в интернете примеры резюме, их куча.

    P.S. Зашел в git... Убери "Junior Python developer" и как минимум "Git" и "Flask" из навыков. Видно, что ты даже документацию Flask не осилил, вероятнее всего и с Django такая же ситуация.
    P.S.2. Если ты по гайдам с sqlalchemy разобрался - это не означает, что есть смысл пихать PostgreSQL в список навыков.
    Ответ написан
    Комментировать
  • Где почитать про разработку под фитнес браслеты?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    Тебе нужно понимание работы BLE (Bluetooth Low Energy).
    А вообще, для твоей задачи лучше всего подойдёт библотека Gadgetbridge, там есть поддержка большого зоопарка браслетов.
    https://gadgetbridge.org/
    https://github.com/Freeyourgadget/Gadgetbridge
    P.S. Никогда не ищи в поисковиках на русском языке проблемы, связанные с программированием. Только на английском!
    Ответ написан
    Комментировать
  • Как программисту отдыхать и организовать распорядок дня?

    @Oligophren
    Сертифицированный разработчик Terrasoft BPM'online
    У меня всё поменялось когда стал работать на удалёнке - времени в разы больше остаётся даже с овертаймами, т.к. не нужно никуда ехать. Стабильно гуляю или бегаю перед работой и после, а иногда даже и в обед. В эпоху ковида удалёнку стало найти проще, так что у вас есть все шансы жить полной жизнью без смены профессии.
    Ответ написан
    Комментировать
  • Как программисту отдыхать и организовать распорядок дня?

    @podde
    самый младший сисадмин
    Не вините себя. У вас объективно очень много времени уходит на дорогу.
    Совершенно серьёзно думаю, что в такой ситуации надо попробовать поговорить с руководителем на предмет хотя бы частичной (пару раз в неделю) удалённой работы. А лучше попробовать вообще выпросить удалённый режим.
    Если нет – пробовать искать другую работу (поближе к дому или удалённую).
    Ну, действительно, по пять часов в день на дорогу – это не дело.
    Ответ написан
    Комментировать
  • Какой минимальный размер Ethernet-кадра и почему?

    vvpoloskin
    @vvpoloskin Автор вопроса, куратор тега Компьютерные сети
    Инженер связи
    Минимальное значение фрейма для обычного Ethernet равно 64 байта. Это известная вещь. Но вокруг этого образовалось множество легенд и домыслов.

    Такой размер фрейма идет еще с Ethernet I, это было сделано для корректной работы алгоритма CSMA/CD. Напомню, в общей среде передачи для устранения коллизий (это когда одновременно несколько устройств будут передавать по одному и тому же проводнику одновременно сигнал) в Ethernet для каждого устройства отводится свой слот времени на передачу. То есть одно устройство должно отправить, а другое - принять, за определенный тайм-слот (да, это механизм Time Division Multiplexing). На это у нас влияет физика в виде ограничения на скорость распространения света. Примем следующую формулу:

    2*L = C * t
    t = S/Bandwidht
    L = C * (S/Bandwidth)/2,
    
    L - максимальная длина среды (провода)
    t - время на прохождение сигнала
    S - размер кадра
    C - скорость распространения сигнала в среде (скорость света умноженная на коэффициент задержки сигнала в среде)


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

    Конкретные расчеты приводить не буду, но для 10М Ethernet дистанция получается 5,12 км, а для 100М - 512 м, для 1000М - 51,2 м. Это при 64 байтах. Уменьшаем размер фрейма - получаем расстояние в 2 раза меньше (уменьшаем же по степеням двойки).

    Умные люди подумали, что для 1000Base-T максимальное теоретическое расстояние в 51 метр слишком мало и сделали рекомендацию - минимальный размер кадра для 1000Base-T увеличить до 512 байт. При этом расстояние получилось около 409,6 м.

    Все это был вольный пересказ ответа на стек-овер-флоу .

    Теперь как это было реализовано. Формат кадра для 10/100М Ethernet представляет следующий вид:

    5f87fc50751a7834877318.png

    Pad-добиваем нулями до минимального размера кадра. Делается это на MAC-уровне (читай, на L2, привет, модель OSI).

    А для 1000Base-T уже добавляем еще и поле Carier Extension. Причем из интересного, в отличие от Pad Field, оно уже забивается не нулями, а специальной последовательностью символов, генерирующихся на PHY уровне (опять привет, модель OSI).

    А для 1000Base-T уже добавляем еще и поле Carier Extension. Причем из интересного, в отличие от Pad Field, оно уже забивается не нулями, а специальной последовательностью символов, генерирующихся на PHY уровне (опять привет, модель OSI).

    5f87fcbf6c5aa609536799.png

    Такой минимальный размер кадра в 512 байт верен только для режима half-duplex Gigabit Ethernet с включенным CSMA/CD. При full-duplex он не добавляется. Иначе было бы невозможно строить линии на сотни километров через DWDM или даже спутник. Но минимум в 64 байта все же остается. Мне кажется, это не стали убирать из-за того, что куда уж меньше (64 байта - 14 байт на заголовки - 2 на FCS, а дальше уже внутренние заголовки надо вычитать…). Можете поэксперементировать хоть даже на виртуалках между виртуальными интерфейсами - фрейм добивается нулями. Подробнее со структурой посмотрите здесь.

    Кроме того, значения значения в поле Type/Length согласно IANA должна быть представлена максимальная длина фрейма 0x0000-0x05DC (пусть этим сейчас никто и не пользуется, сейчас в большинстве случаев здесь будет 0x8000 - IPv4, ну или что-то другое с VLANами, если снимать дамп с транкового порта). Собственно, это причина, почему на коммутаторах максимальное значение L2 MTU равно 1500 байт.

    Пытливый читатель спросит, зачем использовать full-duplex в 1000Base-T, ведь там всегда сигнал передается в одну сторону по своим двум парам, в обратную - по другим. Ответ - для того, чтобы использовать гигабитные хабы. Когда вы используете хаб, уже по двум своим парам могут побежать пакетики от двух хостов. Другой вопрос, что в природе таких, наверно, не существовало.

    Если вы задумаете, зачем сейчас об этом думать, то есть и другие современные технологии с множественным доступом к одной среде. Например, всем известный wifi. И там также работает алгоритм CSMA/CD (только его вариация - CSMA/CA, там посылается отдельный типы фреймов RTS/CTS. Но, как говорится, это уже совсем другая история, о которой в деталях можно почитать по ссылке.
    Ответ написан
    1 комментарий
  • Как зайти во внутреннию сылку сайта и парсить от туда данные?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    public class readAllLinks {
    Названия классов должны начинаться с заглавной буквы. Прочитайте про name convention

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

    Вы просто открыли главную страницу сайта и выбрали ВСЕ ссылки (тег а).
    Elements links = doc.select("a");

    Теперь вопрос как мне переходить по всем ссылкам сайта и забирать только информацию товара?

    Я бы сделал следующим образом. Вместо того, чтобы собирать все ссылки, я бы собрал ссылки на разделы (категории).

    5f7f96bf48139905711369.png
    Вот, селектор
    #categories .sub-menu-item .sub-menu-link
    Далее собираете их в какой-нибудь List

    Далее итерируете по этому списку и переходите по ссылке, также как и здесь
    doc = Jsoup.connect(url).userAgent("Mozilla").get();

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

    Страница каталога товаров имеет пагинацию.
    Например, https://al-style.kz/catalog/mobilnye_telefony/
    5f7f97fc965ae322761133.png

    Смотрим, как работает пагинация
    https://al-style.kz/catalog/mobilnye_telefony/
    https://al-style.kz/catalog/mobilnye_telefony/?PAGEN_1=2
    ?PAGEN_1={pageNum}

    По факту к урл добавляется query param, который инкрементируется, а значит после того, как мы перешли на страницу категории, мы для каждой категории добавляем этот параметр и инкрементируем его значение до тех пор, пока страницы не закончатся. В зависимости от сайта можно по-разному проверять есть ли страница или нет.
    Например, проверить просматривется ли или существует ли тот или иной блок.

    Далее на каждой странице находим блоки (карточки товара).
    Вот, селектор:
    .elements .element
    5f7f99505660f300295427.png

    Находим селектор ссылки и сохраняем тоже в отдельный List
    .elements .element .link
    После того, как постранично прошлись по категории и собрали список всех ссылок карточек товара итерируем по этому списку и также открываем эти ссылки.

    Т.е. страницу самого товара - например, https://al-style.kz/catalog/mobilnye_telefony/mobi...

    Ну а дальше остается собрать данные при помощи в селекторов, сохранить в pojo (например, Product ) и экспортировать куда-нибудь.

    Для экспорта в xlsx можно использовать Apache POI
    Ответ написан
    2 комментария
  • Зачем нужны функциональные интерфейсы в java?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Функциональный интерфейс - это не что-то техническое, что реализуется в языке или виртуальной машине. Это просто абстракция, которая была в Java всегда.

    Java задумывалась как исключительно объектно ориентированный язык, поэтому функций в ней никогда не было и нет. Всё поведение располагается в методах. Но для обработчиков событий, например, нужно только поведение, но не состояние, поэтому объект "оборачивающий" метод бесполезен. Обычно обработчик выглядел так:
    someButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            someTextField.setText("Кнопка нажата");
        }
    });

    ActionListener имеет функциональный интерфейс. То есть интерфейс с одним методом, как бы заявляющий "я не класс, я функция".

    В Java 8 просто появились способы более удобно работать с функциональными интерфейсами - в языке появились лямбды, у виртуальной машины появились средства, позволяющие генерировать из лямбд классы с функциональным интерфейсом, а в стандартной библиотеке появился пакет java.util.function, содержащий набор универсальных функциональных интерфейсов, позволяющих передавать и возвращать лямбды между методами в коде разных разработчиков.
    Ответ написан
    1 комментарий
  • В какой вуз пойти на программиста в Москве?

    paran0id
    @paran0id
    Умный, но ленивый
    Лучшие программисты, которых я знаю, заканчивали МИФИ и МФТИ.
    Ответ написан
    Комментировать
  • В сфере IT для новичков нет перспектив?

    Lucian
    @Lucian
    https://t.me/MakeFreelance
    Кто ищет — тот найдет. Если отправив резюме в 100 компаний вы не найдете работу, пришлите мне пруфы со скриншотами, я вас возьму.

    Из сотен откликов, годных резюме — пара штук. Из километрового списка технологий — клиенту нужны 1-2. Это делается для чтобы расширить поиск потенциальных кандидатов, но работает в обратную сторону.

    P.S. Автор вопроса явно неадекватен, не советую с ним иметь дела.
    Ответ написан
    2 комментария
  • Как и кому ябедничать на пользователей, нарушающих пункт правил 6.4. (накрутка)?

    TosterModerator
    @TosterModerator Куратор тега Тостер
    Модератор Хабр Q&A
    Спасибо, что уделили время, чтобы обратить на это наше внимание! Мы приняли необходимые меры.
    Ответ написан
  • Красный диплом или опыт работы?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Если выбор "красный диплом на всю жизнь" или "неоплачиваемая стажировка, которая, возможно, выльется в 0.5 года опыта работы" то выбор очевиден - диплом.

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

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

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

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

    @Vitsliputsli
    Смотря на какую должность претендуете. В любом случае про лень говорить не стоит, про "стеснительного интроверта" можно, если не на руководителя претендуете, и не в такой формулировке, можно сказать, что есть проблемы в коммуникациях, но в таком случае хорошо бы сказать как работаете над преодолением. Сказать об этом можно, т.к. это и так будет видно по вам на собеседовании.
    Такое спрашивается, больше для оценки адекватности, и что кандидат понимает, что нужно развиваться и постоянно работать над своими недостатками.
    Вообще, собеседование - это субъективная вещь, из разряда "нравится/не нравится", поэтому нет никаких хороших ответов.
    Ответ написан
    Комментировать
  • Программирование деформирует человека как личность?

    glaphire
    @glaphire
    PHP developer
    У Вас был существенный дисбаланс в жизни (ничего помимо работы), я не согласна с теми, кто говорит что "разработка это не Ваше", скорее нужно пересмотреть приоритеты в жизни. Психолог может помочь, если Вы действительно созрели копаться в себе. Люди не выгорают, когда все их внутренние потребности закрыты, кому-то это закрывает кодинг, а кому-то спорт, путешествия, семья... Но это не значит, что нужно бросать разработку, просто подобрать работу покомфортнее) Говорю частично из своего опыта
    Ответ написан
    1 комментарий
  • К чему стоит подготовиться перед собеседованием с руководителем?

    t_q_l
    @t_q_l
    Интересная личность
    1. Узнать как можно больше о компании, в которую вас собеседуют. В ходе собеседования делать акцент на тех вещах, в которых компания заинтересована/ценит.
    2. Подготовить 1-2 "true story" о ваших выполненных проектах/задачах, которые бы могли объяснить (или ввести в заблуждение) руководителю то, как вы работаете в реальных условиях.
    Ответ написан
    Комментировать
  • Есть какой-нибудь гайд о том как собрать java файлы в бинарник?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Можно с помощью jlink создать дистрибутивную версию программы, включающую в себя JRE. Это стандартный, официально рекомендуемый подход, но получится не один exe'шник, а каталог с множеством файлов и bat'ником для запуска программы.

    Настоящий exe'шник можно сделать с помощью утилиты native-image, входящей в Graal, но далеко не все java-программы для этого подойдут.
    Ответ написан
    Комментировать
  • Как действительно поможет ООП в реальной программе?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Перечитал все курсы пересмотрел видео

    Странно, что не помогло!

    00013r4b.png
    Ответ написан
    Комментировать
  • Изменение английских букв «с», «а», «е», «у», «к», «o», «p», «x» на русские в составе слова?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Красивое и быстрое - обычно антогонизмы. Быстрое решение будет StringBuilder с указанием прогнозируемого размера результирующей строки в конструкторе. Это будет почти самое быстрое решение. Но оно будет иметь явный цикл. А это некрасиво. Красивое-же содержит просто вызов StringUtils.replace(....) или нечто в этом роде. Но не факт что оно - самое быстрое.
    Ответ написан
    Комментировать
  • Как стать Java Middle Developer?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Во-первых, само разграничение на джуна, мидла и сеньора очень условное. Я видел примеры того, как сеньор из одной компании не тянул на джуна в другой. Обусловлено это может быть как разным уровнем требований к профессионализму сотрудника, так и степенью соответствия области знаний сотрудника области деятельности компании. Экосистема Java очень объёмна, даже в её пределах знать всё тяжело.
    Во-вторых, объективно оценить себя самостоятельно невозможно. И даже оценка со стороны тоже может быть не показательна, как я уже писал выше, в разных компаниях разные нормы. И серьёзность компании не показатель. Я видел супепрофессиональные отделы в региональных продуктовых магазинах и частных клиниках и видел огромные ИТ-службы полностью состоящие из профанов в федеральных банках и транснациональных торговых сетях.
    Решаются эти две проблемы относительно просто - смело претендуйте на большее. Естественно, вас попросят подтвердить ваш уровень. Если смогли, вы ему соответствуете. Если нет, готовьтесь лучше. И чем большему количеству людей вы сможете доказать свой уровень, тем более он объективен.
    Что касается развития и целей для дальнейшего роста, мозг развивается, если его напрягать. Нужно всё время практиковаться, всё время изучать что-нибудь новое, всё время искать дополнительные способы применить свои силы. Я часто слышу, что в маленькой компании нет возможности развиваться - это неправда. Как раз в кровавом энтерпрайзе приходится делать годами одно и то же и работать с махровым легайси, без возможности что-либо изменить без полугодового согласования экономического обоснования изменения. Маленькие компании на много более гибкие в выборе технологий и методов работы. К тому же, всегда есть возможность завести пет-проект. Чтобы выбрать технологий для пет-проекта, найдите все вакансии java-программистов на нескольких работных сайтах, отсортируйте по зарплате и в списке требований топовых позиций найдите то, чего не знаете. Потом повторите подобную операцию с фрилансерскими биржами.
    Ответ написан
    Комментировать