• Стоит ли работать в тех поддержке?

    @rPman
    Лучшее начало карьеры в IT для неуверенных - отел тестирования. Во первых, такие есть только у компаний с определенным размером, во вторых, это подразумевает контакт с разработчиками (хотя что я говорю, крупные компании могут сделать одиноким и похоронить любого человека в толпе опенспейса) и главное, при правильном подходе будешь вращаться в той самой квинтэссенции того с чем работают программисты - отладка кода и поиск багов.

    Развиваться нужно только самому, это основа любого IT-шника, такова особенность отрасли. Конечно, может повезти, и компания может 'оплатить' какое то из направлений твоего развития, но вероятность что это совпадет с твоими желаниями околонулевая.

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

    Области, которые настоятельно рекомендуется заглянуть - обязательно базы данных, автоматизация работы с типовыми пользовательскими задачами (вот по простому - файлы надо переименовать кучу, или в документе провести подмену чуть сложнее чем А на Б и т.п.) сразу пощупаешь и скриптовые адские языки типа bash/cmd/powershell и устаревшие visual basic script, и заглянешь в c# при наличии потребностей, между прочим простой офисный клерк, умеющий автоматизировать свою работу на уровне документов уже ценен.

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

    Обязательно изучи все что сейчас вокруг использования ИИ (chatgpt), не как разработчик этих ИИ а как пользователь, понимание что такое промпт, какие задачи можно решать с их помощью и какие глупо, какие недостатки и чем они обусловлены - это мейнстрим, и отставать тут не рекомендуется, плюс ИИ сам по себе неплохой помошник в обучении (с осторожностью!).
    Ответ написан
    4 комментария
  • Стоит ли работать в тех поддержке?

    xez
    @xez
    TL Junior Roo
    Существует такое деление: разработка и эксплуатация.
    Разработка - это разработка, собственно, а так же системная аналитика, тестирование, продуктовая разработка.
    Эксплуатация - это системное администрирование, поддержка, хелп-деск и т.д.
    И в эксплуатации и в разработке есть развитие.
    Например, в эксплуатации можно устроиться «поднимать трубку», за тем на вторую-третью линии, оттуда в сисадмины/дба/сети/безопасность/девопс куда уж занесет ну и менеджмент конечно.
    В разработке растут по грейдам, а там либо в менеджеры, либо в архитекторы/евангелисты.

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

    На ваш вопрос ответ такой: вам нужно самостоятельно определиться что вам интереснее, чем вам хочется заниматься. Если душа лежит в разработку - нужно как можно раньше именно ей и заниматься. Рост экспертизы в эксплуатации даст вам минимальное преимущество в дальнейшем трудоустройстве.
    Если же нравится «в эксплуатацию» - тоже классно; продолжайте карьерный путь, наращивайте экспертизу.
    Ответ написан
    2 комментария
  • Как вывод команды help в терминал передать в переменную?

    Vindicar
    @Vindicar
    RTFM!
    help() выводит doc-string переданного объекта. Обычно этот doc-string лежит в атрибуте __doc__.
    Так что можно сделать куда проще, чем подсовывать что-то вместо stdout:
    help_text = getattr(obj, '__doc__', None)
    В help_text будет None или строка документации.
    Ответ написан
    Комментировать
  • Как в название одной переменной внести значение другой переменной?

    Vindicar
    @Vindicar
    RTFM!
    Это можно сделать, но в 99% случаев это не нужно делать. Во-первых, пользователь может ввести строку, которая не является корректным идентификатором. Во-вторых, появляется риск нечаянно перезаписать переменную, которую мы не хотели трогать.
    Вместо этого следует использовать словарь (dict), где ключ - имя "переменной", а значение - её содержимое. Это куда более контролируемо.
    Нет, я хочу выстрелить себе в ногу, и санитары меня не остановят!

    Функция globals() возвращает словарь глобальных переменных, а locals() - словарь локальных.
    При этом эти словари - не копии, а, можно сказать, оригиналы. Добавишь в них новый ключ - появится новая переменная. Вот пример в интерактивной консоли питона:
    Python 3.11.7 (tags/v3.11.7:fa7a6f2, Dec  4 2023, 19:24:49) [MSC v.1937 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> l = locals()
    >>> l['x'] = 1
    >>> x
    1
    >>>

    Ответ написан
    Комментировать
  • Как работают рекурсии?

    Vindicar
    @Vindicar
    RTFM!
    Raddzor788,
    Где хранятся все эти значение 1,2,3,4, ведь у моего 'x' нету же звездочки(*х), чтобы собрать столько аргументов.

    Твой x - это несколько разных x. Потому что есть такая вещь как области видимости. Обычно есть область видимости функции (локальная) и глобальная область видимости скрипта. Если функция не видит нужного имени в локальной области - она ищет в глобальной. Если не видит и там - ищет в __builtins__.
    0. По умолчанию есть глобальная область видимости скрипта.
    1. При вызове func(1) создаётся локальная область видимости (скажем, А), в ней создаётся имя x, указывающее на 1.
    2. Отработало условие 1 < 4.
    3. Вызывается func(2). При этом создаётся НОВАЯ локальная область видимости Б (потому что новый вызов функции), в ней создаётся имя x, указывающее на 2.
    4. Отрабатывает условие 2 < 4.
    5. Вызывается func(3). При этом создаётся локальная область видимости В, в ней создаётся имя x, указывающее на 3.
    6. Отрабатывает условие 3 < 4.
    7. Вызывается func(4). При этом создаётся локальная область видимости Г, в ней создаётся имя x, указывающее на 4.
    8. Условие 4 < 4 не отрабатывает. Происходит вызов print(x) - имя x находится в текущей локальной области Г, выводится ассоциированное с ним значение 4. Отрабатывает print(4), происходит возврат из функции, область видимости Г уничтожается.
    9. Происходит вызов print(x) в предыдущем "слое" рекурсии. Текущая локальная область видимости В - в ней имя x связано со значением 3. Отрабатывает print(3), происходит возврат из функции, область видимости В уничтожается.
    10. Происходит вызов print(x) в предыдущем "слое" рекурсии. Текущая локальная область видимости Б - в ней имя x связано со значением 2. Отрабатывает print(2), происходит возврат из функции, область видимости Б уничтожается.
    11. Происходит вызов print(x) в предыдущем "слое" рекурсии. Текущая локальная область видимости А - в ней имя x связано со значением 1. Отрабатывает print(1), происходит возврат из функции, область видимости А уничтожается.
    12. Мы вышли из всех слоёв рекурсии. Мы находимся в теле скрипта и работаем только с глобальной областью видимости.
    Ответ написан
    Комментировать
  • Как найти работу после курсов по фронтенду?

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

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

    @rPman
    Ни одна нейросеть на базе gpt не умеет напрямую работать со страницами в интернете.

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

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

    И главная проблема - ограничения на размер контекста. Большие объемы текста тупо не помещаются 4к..8к токенов это тот объем, в пределах которого сети работают хорошо, но чем больше размер контекста (даже если заявлены 16к или 32к) начинаются борьба компромисов, качества и стоимости. Может так получиться что вместо работы со всей информацией сразу, ее делят на части (еще одна проблема по анализу исходной страницы), а затем, набирая вопросы из текущего контекста (та еще задачка) задают их последовательно для каждой, собирая ответы в итоговый контекст и ее уже используют для дальнейшей беседы. Плюс есть еще алгоритмы саморизации. Плюс еще неплохо сюда multishot пристроить, с примерами.

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

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

    vabka
    @vabka
    Токсичный шарпист
    Получил оффер от одной компании (банка) с неожиданно большой суммой, чуть ли не x2 от запрошенной

    Вероятно ты просто запросил сильно ниже рынка / стандартной ставки.
    Что за банк?
    Что за должность?

    Например, все этапы собеседований HR пыталась ставить близко друг к другу.

    А зачем растягивать?

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

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

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Почему при парсинге страницы с погодой выдает None?

    Выберите то, что Вам больше понравилось:
    - requests парсит первый ответ сервера, а там сайт на реакте с динамической загрузкой части контента.
    - Запрос отправляется без заголовков и Вас блочит примитивная защита.
    - Вы попадаете на капчу, т.к. request видно издалека.
    Ответ написан
    Комментировать
  • Как вывести цифры числа в порядке слева направо?

    @AWEme
    Retard Soft Inc.
    Через реверс цифр в числе
    n = 59621113332281337
    tmp = 0
    
    while n > 0:
        tmp = (tmp * 10) + (n % 10)
        n //= 10
    n = tmp
    
    while n > 0:
        print(n % 10, end=" ")
        n //= 10

    Через степени
    import math
    
    n = 59621113332281337
    power = math.floor(math.log10(n))
    rank = 10 ** power
    
    while n > 0:
        digit = n // rank
        print(digit, end=" ")
        n -= digit * rank
        rank //= 10
    Ответ написан
    Комментировать
  • Миддл без юнит тестирования?

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

    wataru
    @wataru Куратор тега Математика
    Разработчик на С++, экс-олимпиадник.
    Оператор - вообще любая штука, которая как-то действует на объекты. Она ставит каждому входному элементу некий рузультирующий элемент. Функция, короче. Квадратный корень среди чисел, логарифм там же, поворот объектов на плоскости на 30 градусов по часовой стрелке, отражение относительно прямой - это все операторы.

    Линейное преобразование - это конкретный тип операторов, который действует на элементы R^n и характирезуются тем, что они обладают свойством линейности (F(x+y) = F(x)+F(y), F(kx) = kF(x)).

    Матрица - это математический объект.
    Между матрицами и линейными операторами есть взаимнооднозначное соответствие. Домножение на матрицу - это линейное преобразование. Любому линейному преобразованию можно поставить в соответствие матрицу (посмотрев, как оно преобразует базисные вектора). Поэтому часто можно в литературе встретить, что матрицу называют оператором и наоборот.
    Ответ написан
    2 комментария
  • Что технически(какие it решения, технологический стек) нужны для создания ии ,который сможет на основе жалоб ставить диагноз?

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

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    X0 - сумма кредита
    Xi - остаток после i-го платежа
    p - месячная ставка десятичной дробью
    E - ежемесячный платёж

    X1 = X0 * (1 + p) - E
    X2 = X1 * (1 + p) - E = X0 * (1 + p)2 - E * ((1 + p) + 1)
    X3 = X2 * (1 + p) - E = X0 * (1 + p)3 - E * ((1 + p)2 + (1 + p) + 1)
    Видим, что
    Xn = X0 * (1 + p)n - E * ((1 + p)n - 1 + (1 + p)n - 2 + ... + (1 + p) + 1)
    При кредите на n месяцев Xn = 0
    X0 * (1 + p)n - E * ((1 + p)n - 1 + (1 + p)n - 2 + ... + (1 + p) + 1) = 0
    X0 * (1 + p)n = E * ((1 + p)n - 1 + (1 + p)n - 2 + ... + (1 + p) + 1)
    X0 = E * ((1 + p)n - 1 + (1 + p)n - 2 + ... + (1 + p) + 1) / (1 + p)n
    X0 = E * (1 - (1 + p)n) / (1 - (1 + p)) / (1 + p)n

    E = 10000
    n = 12
    p = 1.5% = 0.015
    X0 = 10000 * (1 - 1.01512) / (1 - 1.015) / 1.01512 = 109075,05
    Ответ написан
    Комментировать
  • Сети или Linux? Какие курсы окончить в первую очередь?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Сети, если в них не углубляться, вещью в себе не являются. Администрирования линукса без понимания фундаментальных сетевых вещей не бывает. Так что я за второй вариант.
    Ответ написан
    Комментировать
  • Какие базовые вещи из IT для backend можно изучить или хотя бы сформировать базовое понимание по ним за несколько часов в неделю?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    нужно не изучать а поработать.
    Написать рестфулл веб сервис с использованием ООП и чистой архитектуры, поработаьт с реляционной базой данных.
    А то, что ты "изучил" без реальной практики - ничто.
    Ответ написан
    2 комментария
  • Какие есть фриланс-направления в разработке?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Для вас ответы не будут иметь смысла. Вы ищете как бы не работать и получать деньги. Как бы не учиться и получить квалификационную профессию.
    Фриланс бывает ОЧЕНЬ и очень разнообразным. Но прибыльный фриланс начинается с высокого уровня сеньорности. Когда ты можешь сделать практически все.
    К этому моменту направления могут быть какие угодно, включая ентерпрайз.
    Ответ написан
  • Возможно ли влиять на продуктивность программиста извне?

    vabka
    @vabka
    Токсичный шарпист
    Раз руководителю не нравится продуктивность сотрудника, то тут два варианта:
    1. Завышенные ожидания руководителя
    2. Действительно недостаточная продуктивность

    С первым всё понятно, а вот у недостаточной продуктивности есть два варианта:
    1. Сотрудник преднамеренно недорабатывает
    2. Сотруднику что-то мешает

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

    В любом случае вам нужно собраться в одном месте втроём с этим руководителем и новым сотрудником и разобраться.
    Ответ написан
    Комментировать
  • Возможно ли влиять на продуктивность программиста извне?

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

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Для Python 3.10 и выше
    def squareEquation(a, b, c):
      match a, b, c:
        case 0, 0, 0:
          return 'All numbers', None
        case 0, 0, _:
          return 'Empty set', None
        case 0, _, _:
          return -c / b, None
      d = b * b - 4 * a * c
      r = -b / 2 / a
      i = (abs(d) ** 0.5) / 2 / a
      if (d < 0):
        return f'{r} - {i}i', f'{r} + {i}i'
      if (d == 0):
        return r, None
      return r - i, r + i
    Ответ написан
    1 комментарий