Задать вопрос
  • Актуальна ли на данный момент Desktop разработка на C# WPF?

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

    Почему веба сейчас так много?
    Потому что веб дал возможность доставлять на клиента исполняемую логику очень быстро. Не нужно ничего ставить, просто заходишь на сайт. При этом, обеспечивается ПРИЕМЛЕМЫЙ уровень user experience. Это всё ещё и кроссплатформенно.
    Вот на мобилках веб во многих случаях не даёт столь же хороший UX, поэтому там пышным цветом цветёт разработка "нативных" приложений. Забавно, не так ли? Ну и на мобилках изначально были созданы каналы быстрой доставки приложений - Магазины. Очень важно, что это было сделано изначально, и к этому все сразу привыкли.

    Так что там с десктопом?
    Я считаю, он остался для того софта, который обычно относят к категории проф. инструментов (тут согласен с Dmitry Roo ). Тяжелые редакторы вроде After Effects, CAD-системы, ну и тулы для разработчиков. Если так подумать, десктопный софт и раньше был в основном для специалистов и профессионалов, как и вообще стационарный компьютер. Просто раньше те, кто сейчас читает новости на смартфоне, читали их в бумажной газете, а пиццу заказывали по телефону.

    Иными словами, это не десктопа стало прям в 10 раз меньше, это просто НЕпрофессиональных пользователей стало в десятки раз больше, как и кейсов непрофессионального использования техники - для заказа пиццы, для общения в мессенджере и т.д. И это всё закрывается в том числе мобильной и веб-разработкой. (с другой стороны, почему Телеграм такой ох*енный? Ну например потому, что его десктоп написан НЕ на вебе. И он просто отлично работает, а не тормозит по 20 секунд при запуске как Скайп)

    А что с WPF?
    Конечно именно эта технология потеряла в популярности. Основная причина очевидна - отсутствие кросс-платформенности. Да, Винда все ещё имеет сильные позиции на десктопе, но всё-таки уже перестала быть нерушимой. Одних макодрочеровюзеров вон сколько. Линукс уже не такой страшный (хотя конечно это все ещё 1-2% от всего десктопа). Да и вообще, когда на вебе платформа по сути одна - это Хром (я обожаю Firefox, но такими темпами через лет 10 он точно сдохнет, как это не прискорбно), то видя это десктоп-разработчики жутко бомбят (я в том числе) и требуют себе такого же удовольствия. Поэтому вместо WPF нынче интересны Avalonia и Platform UNO (это если на дотнете).

    С точки зрения Винды есть WinUI, но это опять таки платформозависимая есть. Она для тех, кому интересна только Винда, или у кого есть бабки поддерживать нативно все нужные платформы.
    Ну и соглашусь с ответом Василий Банников , он хорошо описал границы десктопа на сегодняшний день.

    А вообще, я жду когда WebAssembly наберёт ещё больше силы, и границы между вебом и десктопом просто сотрутся. Нет ничего такого в HTML и тем более JS, чтобы на них всё на свете переписывать. Это делается только по одной причине - см. выше про скорость доставки логики на машину клиента. И текущая популярность веба как платформы для приложений (именно платформы, а не информационной сети) - это по причине того, что Гугол всех победил производительностью браузера, и все подсели на Хром как на платформу - дешёво, доставляется ОЧЕНЬ быстро, работает ДОСТАТОЧНО быстро, покрыты сразу все устройства.
    Ответ написан
    2 комментария
  • Профессии в которых используют SQL?

    sloboda
    @sloboda
    Java QA Automation
    Список вакансий со знанием SQL - ежедневно у меня агрегатором с HH приходит - по Москве более 700.
    И это могут быть позиции от менеджеров по продажам до архитекторов сложного софта.
    И уровень знаний требуется разный.

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

    Еще бы хорошо знать и уметь, как разворачивать и переносить БД, читать ошибки, отслеживать и оптимизировать время выполнения запросов и т.д. и т.п.
    Ответ написан
    Комментировать
  • Можно ли стать бизнес-аналитиком самостоятельно?

    sloboda
    @sloboda
    Java QA Automation
    Можно.
    Для построения плана обучения используйте следующие ресурсы:
    - Возьмите планы обучений платных курсов. Изучайте разделы самостоятельно.
    - Послушайте на YouTube примеры собеседований. По вопросам сформируйте себе план обучения.
    - Обратитесь к ментору на одной из платформ менторов - для построения плана обучения.
    Ответ написан
    1 комментарий
  • Как подключить express в HTML файл?

    Starina_js
    @Starina_js
    full-stack web dev
    Эм, не очень понятен вопрос. Express является фреймворком для разработки серверных приложений на языке JavaScript, который работает на Node.js. Вы не можете подключить Express напрямую в HTML файл

    Чтобы делать нужные вам вещи, вам нужно через javascript на фронте обращаться к серверу , который как раз написан на Express

    <button onclick="connectToDatabase()">Подключиться к базе данных</button>
    
      <script>
        function connectToDatabase() {
          fetch('/connect')
            .then(response => response.text())
            .then(data => {
              console.log(data); // Вывод ответа от сервера в консоль
            })
            .catch(error => {
              console.log('Ошибка при подключении к базе данных:', error);
            });
        }
      </script>


    В данном примере мы обращаемся к странице / роут - /connect
    Этот роут слушает Express и на запрос отвечает / что-то делает

    // index.js (серверное приложение с использованием Express)
    const express = require('express');
    const app = express();
    
    // Функции для подключения к базе данных
    // ...
    
    // Обработка GET-запроса на /connect
    app.get('/connect', (req, res) => {
      // Вызов функции подключения к базе данных
      // ...
    
      // Отправка ответа клиенту
      res.send('Подключение к базе данных выполнено успешно');
    });
    
    // Запуск сервера на порту 3000
    app.listen(3000, () => {
      console.log('Сервер запущен на порту 3000');
    });
    Ответ написан
    Комментировать
  • Публикация файловой базы 1C?

    @LollyFox
    1. В поисковике множество решений с публикацией на ОС Windows, но это требует лишних вложений в лицензию. Есть ли тонкости при публикации в Debian/CentOS?

    Для этих случаев есть PostgreSQL. Инструкции должны быть, на сайте у 1С в поддержке точно были.

    2. При публикации базы нужно ли докупать на машину с веб-сервером многопользовательскую лицензию? Или тонкие клиенты смогут подцепиться со своей однопользовательской?

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

    3. Можно ли опубликовать базу на машине с лицензией, а затем перенести её на другую машину (без лицензий 1с) простым копированием?

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

    P.S.
    9ГБ для файловой базы уже серьезно, можно дождаться, что база в какой-то момент перестанет запускаться.
    Советую подумать о переходе на SQL или о свертке базы.
    У 1С есть лицензия на Сервер МИНИ до 5 одновременных сеансов в режиме 1С:Предприятие + 1 сеанс в режиме конфигуратора по вполне разумной цене - 14400 руб.
    Ответ написан
    2 комментария
  • Как подключить PostgreSQL к Power Bi?

    Шифрование настраивается в самом постгресе:
    https://postgrespro.ru/docs/postgresql/15/runtime-...

    UPD: похожий вопрос на форуме MS с похожей проблемой.
    https://community.powerbi.com/t5/Service/PostgreSQ...
    Пишут что должен быть включен SSL и при этом сертификат должен быть заверен доверенным центром сертификации, а не самоподписанный.
    Ответ написан
    Комментировать
  • Хватит ли для моей сети?

    @TheBigBear
    СтарОдмины мы
    Пробовал только на CRS125-24g-1s-rm делать сеть, постоянная загрузка под 100%
    не забывайте что CRS310 позиционируется как коммутатор а не роутер, хоть и умеет им быть
    Ядром сети должен быть именно RB а не CRS
    У меня
    RB3011UIAS-RM как роутер, DHCP сервер, DNS для гостевой, разделение сети на гостевую и основную, VPN сервер, CAPsMAN и TheDUDE
    CRS125-24g-1s-rm как коммутаторы и переведенные в режим AP роутеры HAP AC LITE как двухдиапазонные WiFi точки доступа и доп коммутаторы в кабинетах где протянут только один кабель
    Всё летает
    Ответ написан
    4 комментария
  • Как уменьшить количество таблиц-справочников с тремя-четырьмя строками?

    @rPman
    тут несколько подходов, я трогал каждый из них и все они имеют право на существования
    1. оставь как есть, я рекомендую, пусть будет 100500 таблиц справочников (если проблем с именами нет ну и отлично), fk-индексы все это свяжут а инструменты анализа базы данных помогут с этим работать (автоматические query builder с мышевозекательным интерфейсом) и база будет сама следить за тем что идентификаторы справочников не противоречивы
    недостатков я не могу придумать, кроме может быть сильно разросшейся структуры, когда то давно я слышал что некоторые базы данных при увеличении количества таблиц начинают хуже работать но как я понимаю это если их будет десятки тысяч а не десятки и сотни.. может быть резервное копирование такой базы или ее репликация будет проходить чуть медленнее или еще хуже, организационно репликация может быть настроена на не рассылку ddl модификаций, в этом случае создание нового справочника будет задавать работу еще и админам, что нежелательно.

    2. противоположный, использование одной таблицы key-value для нескольких разнородных справочников (id, value, table_name), в 99% случаев можно использовать один сиквенс (одну последовательность идентификаторов), вам же не обязательно чтобы разные справочники начинали счет своих строк с одного и того же числа 1.
    Недостаток - база данных теперь не сможет контролировать что вы используете непротиворечивый идентификатор (можно в запись одного справочника указать номер из другого), хотя несуществующий так же нельзя будет указать (и будут работать delete cascade), так же удобной автогенерации sql не будет. Структура будет проще, так же интерфейс редактирования таких справочников может быть один вместо кучи форм и добавлять новые справочники будет сильно проще (хотя с точки зрения разработки нет особой разницы, один insert ты написал или create table перед этим)

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

    Лично я третьим подходом в чистом виде не пользовался, но у меня был набор скриптов, которые из справочников в базе данных формировали код с инициализацией констант и их именами для приложения (сами справочники приложением редактироваться не могли) и был соблазн перевести эту часть базы из 'оперативной' в 'для разработчика', так как справочник это что то - отвечающее за отображение информации, но не за бизнеспроцессы (ну примерно как языковые файлы для приложения, не хранить же переводы строк интерфейса тоже в базе, ну так и справочники смогут работать как часть этого интерйфейса и тоже может требовать перевода).
    Ответ написан
    4 комментария
  • Чем различаются версии Postgres 13, 14, 15?

    В документации же русским по белому написано:
    PostgreSQL 15 содержит много новых возможностей и улучшений, в том числе:
    • Поддержка SQL-команды MERGE.
    • Выборочная публикация содержимого таблицы в рамках логической репликации с возможностью указывать списки столбцов и фильтры строк.
    • Больше возможностей для использования сжатия и поддержка сжатия Zstandard (zstd). В том числе реализована возможность сжатия на стороне сервера при создании копии с помощью pg_basebackup.
    • Поддержка структурированного вывода журнала сервера в формате JSON.
    • Улучшения производительности, в частности, оптимизация операций сортировки в памяти и на диске.

    https://postgrespro.ru/docs/postgresql/15/release-...


    PostgreSQL 14 содержит много новых возможностей и улучшений, в том числе:

    • Хранимые процедуры теперь могут возвращать данные через параметры OUT.
    • Реализованы описанные в стандарте SQL параметры SEARCH и CYCLE для общих табличных выражений.
    • Операцию обращения по индексу теперь можно применять не только к массивам, но и к любому типу данных, для которого она имеет смысл. В этом выпуске такие операторы добавлены для типов jsonb и hstore.
    • Диапазонные типы были дополнены мультидиапазонными, позволяющими представлять несплошные диапазоны данных.
    • Проведена большая работа по улучшению производительности параллельных запросов, обработки многопоточной нагрузки, секционированных таблиц, логической репликации и процедуры очистки.
    • Изменения в индексах-B-деревьях теперь обрабатываются более эффективным методом, уменьшающим замусоривание индексов.
    • Процедура VACUUM автоматически становится агрессивнее и пропускает несущественные операции очистки в случае приближения базы данных к моменту зацикливания идентификаторов транзакций.
    • Расширенную статистику теперь можно собирать по выражениям, что позволяет получить лучшие планы для сложных запросов.
    • Библиотека libpq теперь поддерживает конвейерную передачу нескольких запросов, что позволяет ускорить получение результатов через сетевые соединения, которым свойственны большие задержки.


    https://postgrespro.ru/docs/postgresql/14/release-14
    Ответ написан
    Комментировать
  • Что из себя представляет должность администратора баз данных?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    являясь собственно DBA последние сколько-то там лет...

    Основная рутина:
    - внесение изменений схемы данных без даунтайма собственно приложения
    - выполнение каких-то массивных операций над данными (удалить половину данных из полутеррабайтной таблички, например)
    - исследование проблем производительности со стороны базы
    - решение в целом проблем на серверах баз, не только производительности
    - текущее сопровождение: бекапы, репликация, переезды с одних серверов на другие, настройка новых серверов, минорные обновления базы
    - major обновления базы
    - заведение пользователей и организация прав доступа
    - консультации разработчикам "как лучше сделать"
    - консультации "так это работать не будет, придётся менять"
    Ответ написан
    Комментировать
  • Что нужно знать чтоб стать Джуном в бэкэнде python?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    То же самое, что и раньше - Лутца вплоть до 37-й главы и руководство Django. Но надо понимать, что конкуренция среди джунов огромная, так что за место придётся бороться с людьми, которые могут отлично знать SQL, теорию реляционных баз данных, принципы работы сетей, алгоритмы и шаблоны проектирования, могут свободно чувствовать себя в консоли Linux, могут разбираться в виртуализации, уметь тонко настраивать сервера, разбираться в железе и т.д. и т.п.
    Ответ написан
    1 комментарий
  • Является ли чтение Readonly свойств объекта нарушением инкапсуляции?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Если объект возвращает DTO как представление самого себя

    Как? DTO это объект, который просто описывает некую модель данных и не имею поведения (Wikipedia). Ладно, с этим всё равно, едем дальше

    нельзя менять свойства объекта из вне, это могут делать только методы объекта

    Ну это уже смотря на логику... К примеру, наведу пример из .Net, возьмите стандартный класс от Microsoft по типу Console (Класс для работы с консолью). Там же есть свойства, по типу BackgroundColor, Height, Width и т.д. Изменение размеров окна является нарушением инкапсуляции?

    То представление инкапсуляции, что вы имеете, оно опирается только на наличие модификаторов доступа public и private. Является ли инкапсуляцией наличие модификаторов доступа? Нет, потому что не было бы описано 100500 книг и статей по поводу двух модификаторов доступа. Инкапсуляция - это, в первую очередь, целостность объекта, т.е., что объект может взаимодействовать сам с собой через внутренние методы (По типу того, как вы описали).

    Но неужели объект не может меняться снаружи, или он не может меняться через публичные свойства? Если бы это было запрещено, то в конвенциях к ООП писалось бы такое ещё и жирным шрифтом, что: "НЕЛЬЗЯ ДЕЛАТЬ СВОЙСТВА ПУБЛИЧНЫМИ".

    Для примера, есть такой языка как C++ (Думаю, что вы слышали). Там, в отличии от более продвинутых языков программирования, нет большей части упрощающего функционала (Синтаксического сахара, называйте как хотите). Весь объект строится из полей и методов (С различными комбинациями модификаторов доступа). Есть ли там инкапсуляция? Да. Запрещены ли там публичные поля? Нет.

    машина машина должен решать задачи по перевозке водителя,

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

    Класс который содержит поля - является структурой данных (без поведения). класс который содержит и структуры данных (т.е. свойства) и поведение является объектом.

    Любой класс является классом. Конкретная реализация описания класс является объектом. Структура данных (Вообще модель данных) является самым простым типом класса. Если у класса есть методы для описания поведения, то он всё равно остаётся объектом некого класса. Как выше написал уже Владимир Коротенко :
    dto являются легчайшими объектами взаимодействия с бд, они просто по своей сути не могут содержать в себе логики


    мы хотим при оплате добавить еще какое-нибудь поведение, поверх стандартного

    Наследование, ещё один принцип ООП. Если полностью закрытый класс даже для наследования (sealed) значит тут уже как не крутись, у вас ничего не получится, как бы вы не ХОТЕЛИ УСОВЕРШЕНСТВОВАТЬ функционал. Значит так задумано вышестоящим разработчиком/ами

    но как без знания объекта это сделать

    Для этого есть документации. Задумайтесь, на сколько часто вы закрываете свои классы от наследования, когда пишете код?

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

    Будете. Будете делать всё что вам скажут, абсолютно.
    Ответ написан
    2 комментария
  • Является ли чтение Readonly свойств объекта нарушением инкапсуляции?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Давайте представим объект и DTO которым пользуется объект. Если объект возаращает DTO как представление самого себя, например методом showStruct(): DTO будет ли это являться нарушением инкапсуляции?

    Я понял ваш вопрос. Смотрите. Философия ООП базируется на том что все действия с объектом должны быть санционированы языком или средой выполнения. Например в Java есть техника рефлексии которая позволяет много чего делать например менять приватные поля. Это часто используется в Mock/Mockito и я часто про это говорю. Мокито - фактически взламывает инкапсуляцию. Но это всех устраивает потому-что "тестить нуна!".
    В Java также есть технология сериализации-десериализации которая обеспечивает сохранения состояния объектов на диск или передачу их в сеть для дальнейшей работы (например пользовательская сессия прыгает между нодами кластера). И это действие (сериализация) полностью санкционировано средой и языком. Всех это устраивает. Хотя с моей точки зрения - этож капец взлом. Но зато в Java вы никогда не сделаете down-casting объекта одного типа к типу другого если иерархия этого не позволяет. Этого делать нельзя ... ну потому что это точняк нарушение ООП. И нельзя найти никакой санкции на такое странное действие. Вот в языке С++ например вы можете жонглируя указателями взглянуть в любую память своего процесса или потока и прочитать любой байт или word/dword. Что можно сделать в PHP из подобного? Я не знаю. Но новерное что в PHP много механик которые не позволяют делать хакинг когда. Вот. Поэтому ООП и считается философией программирования а вовсе не тюрьмой. Вобщем код надо писать по правилам языка и среды а не "хачить". И лучшие практики ООП они как раз стоят именно на этой идее. Кроме того - не существует единого ООП - а есть просто разные его реализации в разных языках. Короче вы не найдете самого-самого-ООП-шного языка.

    А вообще если это опнсорц - ну сделайте себе форк и меняйте что хотите в исходниках.

    И Еще пример. если объект не будет возвращать никаких данных о себе, то тогда как придерживаться принципа OpenClosed?

    Про что вообще OpenClosed? Это - расширенная трактовка ООП в части SOLID (вторая буква О).
    Означает что если вы хотите внести изменение в класс - то вы его наследуете. Например
    class BMWX5 extends BMW { .. }
    Мы ничего не нарушили. Мы не меняли свойств BMW. Мы создали новый класс BMWX5 где есть изменные методы. Оригинальный BMW мы не трогали. Все - в правовом поле.
    Ответ написан
    6 комментариев
  • Конкуренция в автоматизации тестирования. Эксперт в технологиях тестирования или lead QA?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Начнем с первого вопроса:
    Я бы вообще не смотрел вакансии где написано "ручной тестировщик", а искал вакансии где написано "тестировщик" и необходимы навыки автоматизации, или обозначено "тестировщик-автоматизатор". Т.е. понимаете, что если фирма в голове у себя считает что тестировщики делятся на ручных и неручных то вам с такой фирмой не по пути. Вы там в лучшем случае наберете нужное количество лет профессионального опыта, чтобы свалить оттуда без сожаления при первой возможности.

    И нe смотрите на конкурренцию, смотрите на свои интересы. Нужно заходить с сильной позиции. Люблю тестировать, дотошный, целеустремленный, упорный, люблю технологии, быстро учусь, и т.п по списку. Если им такой не нужен то они себя лишают хорошего сотрудника или сотрудника на вырост. Так им и надо. Следующий.

    Второй вопрос:
    Может так случиться что применения всему спектру навыков на проекте не найдется. Так что сильно заморачиваться изучением чего-то сильно отстоящего от мейнстрима вероятно не стоит. Но ознакомиться на уровне чтобы понимать о чем и зачем это - стоит. И чем шире спектр осведомленности, тем лучше. Меня например спрашивали на собеседовании, знаю ли я JMeter, сказал знаком, знаю зачем он, пользоваться не приходилось, если надо научусь. И мне много-много чем не приходилось пользоваться о чем я знаю. И это нормально. Сегодня человеку умственного труда важно научиться учиться. И быстро адаптировать свои навыки под новые требования. Гибкость бьет всё. Гибкий кадр это джокер-карта в руках проект-менеджера.

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

    Что касается перехода в менеджеры, у меня был момент когда мне предложили перекинуться в разработчики либо пойти в тест-менеджеры. Но я понимал что из крепкого тестировщика-автоматизатора превращаться в нуба разработчика не комильфо. А тест-менеджер, это куча отчетности, а тестировать будут другие. А мне нравится тестировать. Поэтому не пошел ни туда ни туда. А остался дальше тестировщиком-автоматизатором. И оказалось что это дерево растет пока растешь ты.
    --
    Надеюсь попал своими ответами в ваши вопросы хотя бы на 7/10 :)
    Спрашивайте еще, пишите в личку если что, я на хабре есть, а может еще в моих старых комментариях чего-то найдете полезного.
    Ответ написан
    Комментировать
  • Что должен знать Middle+ разработчик Go?

    opium
    @opium
    Просто люблю качественно работать
    так ты ж мидл мы у тебя должны спрашивать
    Ответ написан
    Комментировать
  • В каком направление двигаться начинающему системному администратору?

    @TheBigBear
    СтарОдмины мы
    Для начала определитесь - стагнация или потеря интереса к профессии
    Даже в рамках одной конторы можно интересно и с пользой для дела получать знания
    Вот навскидку:
    Поиграйтесь с VLAN, разделение сети на сегменты, поднятием MESH
    Поставьте и настройте Zabbix, натравите на мониторинг сети
    Подберите на свой вкус программу инвентаризации и учета (например, GLPI)
    Найдите удалённую подработку
    Самое главное - это чтобы было интересно
    Ответ написан
    Комментировать
  • Как использовать питон в сборе и анализе данных финансисту?

    @mgearr
    Есть очень большой смысл использовать питон для анализа данных, но для этого желательно владеть техническим английским без словаря, потому что почти вся документация - на инглише

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

    Самые популярные прибамбасы для расчётов на питоне называются pandas и SciPy. Ещё надо рисовать графики. Инструментов для рисования - вагон и маленькая тележка, но для начала можно глянуть в сторону Plotly. В самом простом варианте графики рисуются в одну строчку кода

    Для чтения из 1С надо настроить читалку данных, но это, в общем, несложно, тоже, скорее всего, 1-2 строчки, причём, не меняющихся

    Всё это безобразие надо где-то запускать, делать быстрые прикидки, проверять гипотезы. Специально для таких целей разработана невероятно удобная среда - Jupyter Notebook. Написал формулу и тут же увидел результат

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

    Сами выборки и рисование, по мне, делаются проще, чем на экселе (у экселя язык запросов, по мне, совершенно инопланетянский). Пример графика численности населения из штатной документации Plotly. Я немножко упростил для наглядности и добавил комментарии:

    data_canada = px.data.gapminder().query("country == 'Canada'") # выборка по Канаде
    px.bar(data_canada, x='year', y='pop') # собственно рисование


    В отличие от Excel, на питоне нет визуальных конструкторов запросов. Все выборки делаются ручками с клавиатуры. Зато сколько-то сложные расчёты делать в разы удобнее, чем в ёкселе. И наоборот: простые графики как раз-таки удобнее рисовать на ёкселе
    Ответ написан
    2 комментария
  • О каких IT специалистах говорят, когда речь идет о дефиците кадров?

    php666
    @php666
    PHP-макака
    Откуда миф о нехватке кадров?

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

    Начнём с последних - реклама курсов. Создаются курсы по IT с целью заработать деньги, а их реклама говорит, что ну НЕ ХВАТАЕТ айтишников, ну нет и всё! А зарплаты - сотка с порога.
    Хотя почему их не хватает, кто это сказал, где статистика, графики, отчёты? Этих отчетов НИКТО и НИКОГДА не видел.
    Касательно упомянутого автором веба: я начинал свой карьерный путь в начала 2003 года. Тогда уже были форумы по программированию, люди обсуждали, как заставить javascript работать в IE и NetscapeNavigator. Это было 20 лет назад почти. Как думаешь, за 20 лет сколько людей вкатилось в сферу программирования? Десятки тысяч стали полноценными специалистами.

    Теперь относительно работодателей. У айтишников с незапамятных времен был такой фетиш - "да ты не знаешь бибилотеку Н? - Ну ты и лох" - образно говоря. Чем больше знал айтишник - тем он был круче, чем другие. Это был своего рода выпендрёж одних айтишников перед другими.
    Но это было давно, опять же, лет 20 назад. За последние 20 лет индустрия рванула вперед настолько, что каждая технология, каждый ЯП оброс массой технологий-сателлитов. Для работы фронта нужно знание JS и каких-то там библиотек. Для работы с PHP требуют в вакансиях знания как минимум ТРЁХ фреймворков, не говоря о сопутствующих библиотеках, знания ОС unix/linux, DevOps, СУБД/высокие нагрузки, кэши-редисы, умение это все грамотно применять и т.д. Работодатели видят, что айтишник - это такой весьма покладистый тип личности, которого хлебом не корми, а дай что-нибудь поучить в свободное от работы время (ну а зачем зашуганному ботанику свободное время, пусть сидит дома фреймворки изучает). Вот работодатели и начали задирать планку и жаловаться, что "специалистов не хватает".
    Да, сумасшедших гениев, кто знает целые вереницы технологий, намного меньше, чем обычных ребят, которые исполняют свою зону ответственности. А поскольку работодатели хотят сэкономить, то ищут этого фантомного чудо-программиста, который должен, по их мнению, работать за три отдела. Не находят и жалуются, что "специалистов не хватает".

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

    Вклад в этот миф о нехватке спецов вносят сами разработчики. Сидел такой Петя, кодил 5 лет уткнувшись в монитор, потом его руководитель увольняется и, о чудо, Петя становится НАЧАЛЬНИКОМ отдела аж из пяти программистов. И вместо того, что бы делать свою работу хорошо, у Пети формируется синдром вахтера и Петя начинает задавать весьма заковыристые задачки на собеседовании, заставлять кандидата писать в режиме реального времени код, дает ему тестовое задание на 2 недели. А когда кандидаты сливаются, начальник-Петя, решает, он самый умный, а "спецов не хватает". Хотя проблема не в спецах, а в идиоте-Пете, который самоутверждается через свою должность главного формошлепа.

    И что самое главное. Кому в РФ нужны айтишники? Бизнесу. В первую очередь.
    Бизнесы развиваются в ногу со временем.
    Взять в пример бизнесы 2010 года - что они делали? Свои веб-сайты, пилили какие-то свои наколенчатые решения.
    Что делают бизнесы 2022 года? Идут на ВБ и Авито, покупают готовые продукты.
    Время расставляет всё по местам, происходит оптимизация.
    Что бы твою продукцию покупали больше не надо держать ИТ-штат для поддержки сайта, для этого есть ВБ.
    А с учетом последних событий бизнесы будут неминуемо сокращать расходы.

    Айтишники были в последние годы слишком дорогим удовольствием для бизнесов, айтишные аппетиты реально стали чем-то запредельно наглым, когда видишь, что Маша 25 лет с 2 годами опыта хочет 250 000 рублей.
    Бизнесы в нынешних условиях неминуемо будут сокращать траты и условные Маши, которые вчера хотели 250 000 за JavaScript скоро будут работать за 50, тк таких Машек с каждым годом всё больше и больше.
    Ответ написан
    5 комментариев
  • Будут ли перспективы работы в IT в будущем?

    Сфера айти перестала бурно расти и развиваться, но она никуда не денется. Появились нюансы. Повсеместная пропаганда престижности и якобы больших зарплат привела к тому что много человек бросились скорее входить в айти. Из-за этого устроиться новичку не так просто как это было лет 10 назад. Тем не менее, тот кто осознанно идет учиться на программиста и получает серьезное образование в этой сфере устраивается нормально. В этом случае можно надеяться на достойную зарплату и человеческие условия труда. Выгоднее выбирать направление связанное с точными науками, где от программиста требуют помимо кодинга знания, например, некоторых разделов математики (как пример, цифровая обработка сигнала, графика). Таким образом, будешь тем самым инженером-программистом.

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