Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Модное кулинарное Шоу! Игра в ресторан, приготовление блюд, декорирование домов и преображение внешности героев.

Кулинарные истории

Казуальные, Новеллы, Симуляторы

Играть

Топ прошлой недели

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
64
alexeymosc
alexeymosc
Лига программистов

Ответ на пост «Как я стал программистом в 32 года. Отработал 1 год. Стоит ли оно того?»⁠⁠3

2 года назад

Короткий рассказ.

Будет ли легко?

Нет.

Много денег?

Скорее нет, особенно вначале.

Можно ли получать удовольствие?

Да, но не сразу.

Изменяется ли личность?

Да, но у всех по-своему. Иногда это пугает.

Это спокойная работа?

Нифига, нервы нужны крепкие.

Про общение с неприятными людьми можно забыть?

И опять нет, вам хватит руководителей, а заказчики ещё та песня.

Можно ли работать на удаленке?

100% , если вы готовы.

Новые друзья и крутая тусовка прилагаются?

Зависит от выбора компании и отдела в ней.

А что тогда в этом хорошего?

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

Длинный рассказ.

Я тоже только в 32 стал прогать на работе.

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

Образование социологическое, диплом по количественным методам. На красную пятёрку. Правда, когда спустя лет 8 я связался с профессором социологии из Урбане-Шампейне, на чьей статье я развивал тему, оказалось, что мой подход был почти полностью калом, с его точки зрения...

А, ну ещё в школе еле вытянул факультатив на бейсике. Вообще с логикой проблемы были лет до 30-35.

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

Понадобились макросы. Открыл IDE в экселе и прямо такое приятное чувство испытал, когда за долбанными таблицами скрывается ЯП и море возможностей. Visual Basic, если что. Через месяц я написал аж программу, которая прогнозирует продажи и даже общается с 1С.

Потом понадобилось сделать такую штуку для маркетинга, как ассоциированные продажи. Установил R. Про их IDE понятия тогда не имел. Научился в командной строке делать моделирование (a priori). Получилось.

Параллельно прошёл бесплатный курс по SQL , базовые вещи. Начал слегка шурупить в реляционных базах.

На работе застой с повышениями. Плюс антикризисное управление. А у меня кредит большой. Через хаха получил приглашение на мидла статистика. Три вечера читал про проверки гипотез. Собес прошёл. Дали тогда 90 на руки, это 2014 был. Это было не больше, чем я получал. И в карьере бывал и старшим и руководителем группы... Короче, дауншифтнулся конкретно, лишь бы из маркетинговых исследований и анализа свалить.

Сил в 30 лет дофига ещё.

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

Потом подняли до старшего, ЗП 115 или 120. Было покомфортнее. Через три года я ушёл по личным причинам плюс менеджеры подпалили мне седло, да и однообразие задач стало добивать просто нереально. Но писал запросы я уже с нормальной оптимизацией.

На новой работе был мидлом с зп 200. Прошёл курс Advanced R (а на ступеньку ниже уже давно прошёл). Курсы от C.....a. Там был сложный проект, который я взялся писать на R. За почти полтора года где-то 10-12 тыщ строк. Ушёл по ... личным причинам. К меня ещё с эмоциальной стабильностью не всё отлично.

Потом ещё переход на другую работу, там уже были 220 ЗП. Задачи разные, интересные, много исследований. Подключил Python. Ушёл с - бее - Винды и плюсовой среды версионирования на линукс. Наигрался в машинное обучение, глубокие сети. Большие данные немного.

И тут я подзастрял в своей ракушке комфорта. Ну и уже на Python уровень мидла сделал. И 8 лет на R, сениористость детектед.

Выгораний было дофига. В моём случае, в основном, от общения с манагерами. Переход на полную удаленку сделал меня хуже. Хотя через пару лет стало привычно. Как теперь ежедневно бежать в офис на какой-то дейлик я ХЗ!

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

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

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

Вот и всё.

Показать полностью
[моё] Программирование IT Смена профессии Обучение Удаленная работа Длиннопост Текст Python Linux Ответ на пост
34
64
maximonchik78
maximonchik78
Программы и Браузеры

Продолжение поста «Загрузчик видео с практически любого сайта»⁠⁠1

2 месяца назад

UPD:

#comment_367684389

#comment_367691346

Последний апдейт
#comment_368440644

Я точно не желал продолжения всей истории, про майнеры и прочее, на гит такую, по сути ерунду не стал размещать по простой причине, там слишком сложная форма заполнения. Я там есть я знаю. Тут её озвучили и неоднократно, так вот, если есть паранойя, как пел Носков вроде, можно открыть архив и не распаковывая сделать просмотр текста. это дядюшка питон, он позволяет так себя гладить. Почему именно он, ну вообще я сделал для подруги, чтоб качала в "максимальном качестве". Просто поделился с вами, многие оценили своеобразно, подруга тут тоже, ник не сдам, не просите. Из-за неё, а в большинстве своём и сдался, релиз 2.1 , можно выбирать папку для загрузки, можно выбирать - только аудио или видео, можно выбирать качество и в каком формате будет сохраняться, в общем сделал овер дохрена, но не ответил про питон, я на нём на pytorch нейронки пишу и он мне намного понятнее всех остальных.
Тут нет способа обхода "замедленного" ютуба, тут через юзерагента делается прощупывание контента на доступность и разные сегменты скачиваются так, как будто несколько человек внезапно решили посмотреть ролик с компа, телика, айфона, приставки со смартом и т.д, для того, чтобы всё это собрать в одну кучу нужен FFMPEG, и он-же для конвертации в "ВАМИ" указанные форматы, там по умолчанию вообще vp9 и av1 идут. FFPROBE - прощупывает такую возможность и вариативно компенсирует либо звук в aac320 конвертнуть, либо у видео битрейт понизить. Рекомендую WEBM, если лучшее будете выбирать.

Собственно ссылки ЯД https://disk.yandex.ru/d/h2Ve28b-o2WEwg
и Гуглдрайв https://drive.google.com/file/d/1YYIW1TiCl8ipyJNG4dWInfwtVwx...
там zip, потому-что за рар тоже ругали, в архиве ffmpeg и ffprobe, их можно не извлекать, программа тогда скажет, что не обнаружен ffmpeg и предложит его установить, при согласии будет небольшое подвисание, так-как консоль заберёт управление на себя.
ytd-dl подгружается прогой при запуске с оффсайта, он для python, поэтому будет лежать внутри коробки, пока программа запущена.

Показать полностью 3
[моё] Windows Программа Приложение Linux Microsoft Python Сайт Ответ на пост Длиннопост
85
62
Semicon1
Лига Сисадминов

Как я контролирую доступ к порту через телеграм бота⁠⁠

10 месяцев назад

Я курирую контроль непрерывной работы облачной записи видеопотока камер видеонаблюдения нескольких пунктов выдачи wildberries. И я часто сталкиваюсь с проблемами потери связи клиент-сервер. Будь то неуплата за интернет, отключение электричества, отказ оборудования и т.д. Решил немного автоматизировать процесс с помощью уведомлений из телеграмм бота. Процедура относительно несложная. Сейчас распишу все поэтапно.

  1. В первую очередь нужно создать телеграмм бота. Для этого в поиске телеги ищем пользователя @botfather, пишем ему команду /newbot и создаем своего бота. После создания бота получаем токен. Он пригодится нам позже.

  2. Для создания бота я буду использовать язык питон. Качаем и устанавливаем сам питон на офф сайте. Проверить установлен ли питон можно через команду "python --version" без кавычек. Если программа установлена правильно, вы получите ответ с версией программы. Через командную строку устанавливаем нужные нам библиотеки:

    "pip install python-telegram-bot"

    "pip install pyTelegramBotAPI"

    "pip install aiogram"

    Все, теперь перейдем к написанию кода.

  3. Для написания кода можно использовать любой текстовый, кодовый редактор. Хоть блокнот. Главное что бы расширение файла было .py.

    Перед тем как писать код, надо определиться какие цели мне нужно достичь. В моем случае я имею 4 ПВЗ с белыми айпи адресами. У меня открыт 554 порт, который я должен проверять. То есть я хочу проверять каждый адрес по очереди раз в 5 минут. Если порт не отвечает, через 2 минуты повторяю попытку еще раз. Если ответа нет, мне в телеграмм приходит уведомление где указано состояние порта (Отвечает или Недоступен), айпи и порт, адрес пункта выдачи. Так же я хочу добавить кнопку "Проверка доступа", что бы получить состояние всех пунктов списком. Снизу приведу готовый код.

    "import telebot

    import socket

    import threading

    import time

    # Телеграм токен вашего бота

    TOKEN = 'Здесь указываете ваш токен'

    bot = telebot.TeleBot(TOKEN)

    # Данные для проверки адресов. Пишите свои адреса и названия

    addresses = [

    {'ip': '192.168.1.127', 'port': 554, 'name': 'Москва'},

    {'ip': '192.168.1.128', 'port': 554, 'name': 'Казань'},

    {'ip': '192.168.1.129, 'port': 554, 'name': 'Киров'},

    {'ip': '192.168.1.126', 'port': 554, 'name': 'Краснодар'}

    ]

    check_interval = 300 # Интервал в секундах между проверками (5 минут)

    retry_interval = 120 # Интервал повторной проверки в секундах (2 минуты)

    checking = False # Флаг для управления проверками

    # Функция для проверки доступности порта

    def check_port(ip, port):

    try:

    with socket.create_connection((ip, port), timeout=5):

    return True

    except (socket.timeout, socket.error):

    return False

    # Фоновая задача для постоянной проверки

    def periodic_check(chat_id):

    global checking

    while checking:

    for address in addresses:

    ip, port, name = address['ip'], address['port'], address['name']

    if not check_port(ip, port):

    time.sleep(retry_interval)

    if not check_port(ip, port):

    bot.send_message(chat_id, f"🔴 {name} ({ip}:{port}) - Не отвечает")

    time.sleep(check_interval)

    # Обработчик команды /start

    @bot.message_handler(commands=['start'])

    def start(message):

    global checking

    if not checking:

    checking = True

    bot.send_message(message.chat.id, "✅ Бот запущен. Начинаем проверки.")

    threading.Thread(target=periodic_check, args=(message.chat.id,), daemon=True).start()

    else:

    bot.send_message(message.chat.id, "ℹ️ Бот уже работает.")

    # Обработчик команды /stop

    @bot.message_handler(commands=['stop'])

    def stop(message):

    global checking

    if checking:

    checking = False

    bot.send_message(message.chat.id, "⏹️ Проверки остановлены.")

    else:

    bot.send_message(message.chat.id, "ℹ️ Бот уже остановлен.")

    # Обработчик кнопки "Проверка доступа"

    @bot.message_handler(func=lambda message: message.text == "Проверка доступа")

    def manual_check(message):

    results = []

    for address in addresses:

    ip, port, name = address['ip'], address['port'], address['name']

    status = "🟢 Доступен" if check_port(ip, port) else "🔴 Не отвечает"

    results.append(f"{status} - {name} ({ip}:{port})")

    bot.send_message(message.chat.id, "\n".join(results))

    # Добавление кнопки "Проверка доступа"

    @bot.message_handler(commands=['menu'])

    def show_menu(message):

    markup = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)

    markup.add(telebot.types.KeyboardButton("Проверка доступа"))

    bot.send_message(message.chat.id, "📋 Выберите действие:", reply_markup=markup)

    # Запуск бота

    bot.polling(none_stop=True)"

    Не забудьте вставить свой токен и вписать свои айпи адреса. Сохраняем файл с названием bot.py например на рабочем столе. Если все сделали правильно, то должно выглядеть примерно так:

Пример

Пример

Вроде все работает. Мы запустили программу на вашем ПК. Но бот будет фунциклировать, пока ваша программа запущена и компьютер работает. Что бы бот работал 24/7 нужен VPS сервер.

4. Запуск на VPS сервере. Арендуем любой облачный сервер. У меня это Beget. У них самый дешевый сервер стоит 210 рублей в месяц, а запустить на нем можно до 10 таких ботов одновременно. После аренды облачного сервера устанавливаем на него какой либо дистрибутив линукс. У меня это Ubuntu. Заходим через SSH и устанавливаем на него питон командой

"sudo apt update"

"sudo apt install python3 python3-pip python3-venv"

Устанавливаем библиотеки

"pip install python-telegram-bot"

Через файловый менеджер создаем папку на сервере и перебрасываем туда наш файл bot.py

В командной строке перемещаемся в нужную нам директорию, и запускаем файл командой "python3 bot.py"

5. Вуаля, живем и радуемся. Кстати, не забудьте настроить работу файла в фоновом режиме и автоматический запуск.

UPD:

По многочисленным просьбам закинул готовый скрипт на я.диск https://disk.yandex.ru/d/XFOk3CNmYGsGOw

Показать полностью 1
[моё] Linux Программа Программирование Telegram Бот Python Длиннопост
36
53
astrobeglec
1C:Предприятие 8

Насколько разные "программист" и "программист 1С"?⁠⁠1

2 года назад

Жизнь получилась так, что параллельно с разработкой на моём актуальном стеке Python/PHP/C++/C# + MariaDB/PostgreSQL/Oracle DB пришлось программировать в 1С.

В посте не будет поливания говном ни других языков, ни даже 1С (что само по себе удивительно).

Начнём издалека, а именно с того как вообще появляются ЯП и их цели и задачи. Это важно напомнить, для понимания принципиальных отличий 1С и других ЯП.

Начнем с введения про ЯП.

Компьютер понимает только бинарный код, но писать в двоичном стиле:

00010010 00110011 00110010

или хотя бы в 16-ричном

00 AB 9C

смогут, но только единицы на планете. Но проблема в другом - ПО требуется много, а так разрабатывать очень долго. Поэтому придумали программы, которые преобразуют условно понятный человеку язык в понятный ЭВМ бинарный код.

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

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

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

Но... Это прорыв или провал? Парадоксально, но одновременно и то и то.

Чтобы понять прорыв нужно вспомнить такой момент - современная банковская сфера столкнулась с тем, что разработчики основного международного финансового ПО уже практически пенсионеры, а молодежь туда не особо горит желанием идти. Поэтому ситуация там весьма печальная. Как минимум 80% задач в 1С могут решать школьники с 8 класса (по шаблонам в ИТС). То есть дефицита кадров нет и скорее всего никогда не будет.

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

Давайте копнём глубже.

1С перенесло всю "тяжелую" в плане понимания и реализации часть типичного ЯП внутрь поставляемой Платформы. С одной стороны всё, что требует сильного напряжения мозгов, уже реализовано... С другой стороны то же самое, но уже в ином ключе:

Квалификация:

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

- программист, который работает с обычным ЯП знает довольно много трюков, когда небольшая правка "верхнего уровня" (базовых классов) способна сильно упростить код "внизу"... Но не в 1С. Писать тонны кода, когда вопрос можно было решить буквально парой строк в базовом классе... Можно, но психологически напрягает.

Структура кода:

- язык 1С в плане структуры максимально однозначен и примитивен. Это позволяет учить его легко, при этом избежать 90% ошибок (мы помним, что порог вхождения почти отсутствует), из оставшихся в 90% довольно легко понять где возникла проблема и как её решать;

- но всё это делает код крайне раздутым. Я решал одни и те же задачи на разных ЯП и в 1С код спокойно может быть в десятки раз больше того же Python. Во сколько раз нужно быть умнее

Организация работы:

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

- программисты других ЯП в этом вопросе очень свободны. В принципе на любом языке 2 и последующих поколений можно писать в почти бесконечном количестве стилей... Что на порядки повышает эффективность одного разработчика, но приводит к тому, что до 90% времени работы над проектом зачастую тратятся на то, чтобы одни программисты понимали написанное другими программистами.

Надежность:

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

- но если программисты самой 1С где-то накосячили, сделали слабое или не оптимальное место (а этого более чем хватает), то это вообще никак не поправить и остается только смириться. Если проблема критична для проекта, то остается только писать внешнее решение и делать интеграцию, тут без вариантов. Для "только 1С" разработчиков - доводить информацию до руководства о необходимости внешнего решения.

Общий вывод:

1С является прекрасным (не рискну сказать, что лучшим, но всё возможно) решением, где недостатки платформы не настолько существенны, как её плюсы. Эта сфера - построение бизнес-решений по модели CRUD (C - create - создание, R - read - чтение, U - update - обновление, D - delete - удаление) средствами слабо квалифицированных, но при этом сравнительно легко обучаемых разработчиков.

С позиции типовых требований бизнеса 1С - наилучшее известное мне на сегодня решение.

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

Сейчас я немного обосную вывод на нескольких обобщенных примерах:

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

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

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

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

Рекомендации разработчикам:

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

Других ЯП, которые хотят в 1С - наберитесь колоссального терпения и запаситесь успокоительным. Желаний типа "писать шаблонизаторы под типовые ситуации", "работа в нормальной IDE", "перестать тыкать мышкой там, где в другом месте можно было бы написать строчку кода" не пройдёт вообще никогда, поэтому нужно расслабляться (и поддерживать квалификацию) решением задач на основном ЯП.

Показать полностью
[моё] IT Программирование Python Программист Linux Длиннопост Текст
158
52
Lifehack
Lifehack
Life-Hack [Жизнь-Взлом]/Хакинг

Топ 10 ютуб каналов на русском языке по программированию⁠⁠

2 года назад

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

  1. ITVDN Канал
    ITVDN предоставляет обучающие видео по различным языкам программирования и технологиям. Канал также содержит видео с живыми онлайн-уроками, курсы обучения и сертификационные программы.

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

  3. LevelUp
    LevelUp - это канал о разработке игр. Он предоставляет полезные советы и техники для создания игр, от дизайна персонажей до анимации и кодирования.

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

  5. Хауди Хо (Howdy Ho)
    Хауди Хо - это канал, на котором обсуждаются технологии и тенденции в IT-сфере. Канал содержит полезные советы и техники для программистов всех уровней.

  6. EasyCode Канал
    EasyCode предлагает обучающие видео по различным языкам программирования, включая C#, Java и Python. Он также содержит множество видеоуроков для начинающих.

  7. JavaRush
    JavaRush - это канал, посвященный Java-программированию. Он содержит обучающие видео, туториалы и интерактивные задачи для программистов всех уровней.

  8. CyberBionic Systematics Канал
    CyberBionic Systematics содержит обучающие видео по программированию, а также курсы и тренинги по различным технологиям, включая .NET, Java, PHP и другие.

  9. Proglib
    Proglib - это канал, на котором можно найти полезные советы и руководства по программированию, включая решения проблем, оптимизацию и лучшие практики.

  10. DevZen Канал (ссылка на сайт)
    DevZen предоставляет интересные и полезные видео на различные темы, связанные с программированием. Он также содержит интервью с известными программистами, которые делятся своим опытом и знаниями.

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

Большая библиотека бесплатных книг по программированию, поможет закрепить знания и обзавестись новыми!

Показать полностью
[моё] Программирование Программист Python IT Linux Google Текст
22
52
anetto1502
anetto1502
GNU/Linux

Анонс бесплатного курса "Командная строка для разработчиков"⁠⁠

2 года назад

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

Кто-то считает, что без линукса действительно никуда. Кто-то считает, что разработчику и в винде комфортно. Кому-то наши примеры показались выдуманными. Кто-то нашёл примеры очень жизненными.

На наш вкус, линукс полезен, но существует непростая проблема высокого порога входа. Есть либо огромные книги вроде Advanced Bash-Scripting Guide, либо фрагментарные статьи совершенно разного уровня качества, либо различные курсы. Курсов много разных, но у нас своё видение. Как в классическом комиксе про стандарты:

Анонс бесплатного курса "Командная строка для разработчиков"

Сообщество любит отправлять новичков читать мануалы, что мега-полезно, но довольно непросто. Кстати, на курсе мы разберём, как читать man-ы.

Наша мотивация по созданию курса

Мы довольно давно готовим молодых python-разработчиков, и начинаем именно с базовых знаний в Linux, прививая желание и умение работать в терминале. Вдохновляясь курсом "Поколения Python" на степике, мы решили сделать свой бесплатный курс "Командная строка для разработчиков", посвящённый терминалу Linux, языку bash и базовому администрированию. Начинающим разработчикам поможем преодолеть неловкость перед текстовым терминалом, опытным разработчикам покажем неочевидные и полезные в работе фишки для увеличения продуктивности.

Курс начинался с оффлайна, а переход в онлайн требует существенной переработки материала. Поэтому релизимся поэтапно, выпуская новые уроки по мере готовности.

Подробнее о курсе

Курс сильно завязан на практику, поэтому обязателен компьютер с линуксом в каком-то виде. Мы предлагаем три варианта:

  1. Ubuntu в качестве гостевой операционной системы. Для этого в системе виртуализации (virtualbox, VMWare или любой другой) поставить Ubuntu.

  2. Ubuntu в качестве основной операционной системы. Годится любой Linux-дистрибутив или даже macOS.

  3. Ubuntu в WSL2, он же Windows Subsystem for Linux.

Начало курса неспешное и подходит совсем для начинающих. При этом мы обращаем внимание на важные детали, на которые часто никто не обращает внимание. Например, когда выбирать короткие, а когда выбирать длинные флаги команды? Есть ли разница между ls -al, ls -la и ls --all?

Примерная структура курса

Модуль 1. Пользуемся Ubuntu. Осваиваем терминал

  1. Введение в курс.

  2. Перемещаемся по файловой системе.

  3. Работаем с файловой системой.

  4. Редактор текста, работаем с файлами. Создаём и запускаем скрипты.

  5. Процессы, знакомимся с PID, ps | grep и конвейером.

  6. Используем ctrl-r и работаем с историей команд. Алиасы.

  7. Настраиваем терминал.

Модуль 2. Программируем в Ubuntu. Основы Bash

  1. Bash для разработчика, несколько занятий. Полезные однострочники на примере изменения формата файлов, сортировки в разных вариациях.

  2. Всё про поиск - конкретных файлов, поиск внутри файлов .

  3. Виртуальная файловая система proc. Используем proc, PID, PPID, дескрипторы стандартных потоков, файловые дескрипторы, аргументы командной строки, подменяем PATH. Переменные окружения (как они работают, область и время действия), в том числе PATH и HOME. Спецсимволы < > >> 2> 2>> &>.

  4. Работаем с учётными записями в Ubuntu. Разграничиваем права доступа.

  5. Применяем sudo и root. Немного про безопасность, проблемы копирования из терминала, про пакеты, которые ставятся курлом.

Добро пожаловать на курс "Командная строка для разработчиков"! Введение и первое занятие уже доступно.

Интереса ради, мы спросили ChatGPT, нужен ли линукс для питонистов.

ChatGPT о важности Linux для python-разработчика

Python-разработчикам может быть полезно использовать операционную систему Linux в своей работе по ряду причин.

Во-первых, Linux обычно является основной платформой для серверных приложений и веб-серверов, которые часто используются для хостинга Python-приложений. Разработчики, работающие с серверными приложениями, должны быть знакомы с Linux, чтобы установить, настроить и поддерживать серверное окружение.

Во-вторых, многие инструменты и библиотеки для Python, такие как NumPy, SciPy и Pandas, часто предназначены для работы в Linux-подобных операционных системах. Разработчики, которые используют эти инструменты, будут иметь преимущество, если они работают на Linux.

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

Наконец, Linux является бесплатной и открытой операционной системой, которая имеет широкое сообщество разработчиков и пользователей. Это означает, что Python-разработчики могут получить доступ к большому количеству бесплатных инструментов, библиотек и ресурсов, которые могут помочь им в их работе.

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

Как считаете, правы ли нейросети?

Показать полностью 1
[моё] IT Linux Обучение Ubuntu Курсы Онлайн-курсы Python Программирование Разработка Длиннопост
45
47
anetto1502
anetto1502
Программирование на python

Закон дырявых абстракций и GIL в python⁠⁠

3 года назад

Давным давно Джоел Спольски рассказал о "законе дырявых абстракций" (оригинал от 2002 года). В современном мире, чтобы починить проблему, часто надо уметь работать на уровень ниже текущего уровня абстракции. Проблема может быть с compose, docker, конкретной библиотекой, python, операционной системой, сетью, железом... Чем больше абстракций вы знаете, тем больше вероятность, что вы сможете решить проблему следующего уровня.


Нельзя в один момент освоить десяток нужных инструментов и абстракций. Нужно плавно расширять используемый инструментарий. Освоили git? Ни строчки кода далее без него. Научились тестам? В каждом проекте их нужно писать с самого начала. Теперь Docker в копилке? Применяем, если это уместно. Чем больше опыта в разных технологиях, тем вы сильнее как специалист.


Расскажу о своём опыте. В статье как расширить технический кругозор я делился, что для ориентирования в технологиях я постоянно читал хабр (2010-2015 года, самый расцвет технического контента там). Пришёл ко мне коллега со следующим вопросом. Я, говорит, выгружаю строю граф друзей в социальной сети, для этого массово скриптом на python выгружаю оттуда списки всех друзей и складываю в mongodb. Запускаю выборку на N человек на 1 потоке — скрипт работает 60 секунд. Запускаю на 10 потоках — скрипт работает 70 секунд. Мне надо N увеличить и запуститься на сутки, но какого чёрта увеличение числа процессоров замедляет выполнение?  Где проблему искать?

Это питон тормозит?

В монге проблемы?

С компом что-то не так?

Социальная сеть меня банит?

Сеть тормозит?

Где вообще искать беду?


А я просто знал ответ. Прочитал накануне статью про GIL в python. На вики она выглядит так. Если кратко, то из-за потоковой небезопасности кода на Си, который внутри всех стандартных библиотек питона, интерпретатор физически работает на одном ядре, а многопоточность реализована с блокировками. Это не важно для IO-bound задач (когда код ждёт внешних данных), но критична для CPU-bound задач (когда реально надо все ядра использовать).

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

И теперь 60 секунд на 1 ядре превратилось в 10 секунд на 10 ядрах. Да, не в 10 раз ускорилось, но это вполне годное ускорение. А ещё можно посмотреть, как делают рядом и воспользоваться топовым инструментом.


В телеграм-канале разбираем разные нюансы из жизни разработчика на Python и не только — python, bash, linux, тесты, командную разработку.

Показать полностью
[моё] Программирование Разработка IT Обучение Linux Python Telegram Текст
22
45
delvinfil
delvinfil
Программирование на python

Яндекс.переводчик для Linux на Python GUI⁠⁠

6 лет назад

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

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


Translate-shell вещь достаточно удобная, особненно, если пишешь, допустим, в Vi/vim. Переключился в соседнюю консоль и переводи.

Ключи простейшие и запоминаются легко.

Но этого как обычно было мало. Захотелось графики.

Работа в SublimeText и Zeal несколько удобней, нежели голая консоль.

Хм… Подумал-подумал, и решил прикрутить переводчик на горячую клавишу.

Выбор пал на gxmessage. Zenity меня не устроил, уж и не помню почему.

Был написан код:

И назначен на Ctrl+1. В IceWm это легко. Правим $HOME/.icewm/keyskey


"Ctrl+1" $HOME/progs/trans.sh

Некоторое время меня это устраивало. На "контрол+1" с английского, "контрол+2" на английский. Хорошо...

Но тут translate-shell начал давать сбои.

Не знаю, что произошло у разрабов, но меня это совсем огорчило.

Я решил, пора, давно на питоне не писал.


Недолгие поиски в гугл привели меня к Yandex.API, Python и GTK+ 3 в виде модуля gi.


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

Модуль GTK+ 3 для python был для меня вновинку. Целый вечер разбирался с синтаксисом на сайтах раз, два и три.


Так родился код.


В итоге имею автопереводчик на горячей клавише.

Всем спасибо за внимание.


Оригинал здесь.

Показать полностью 6
[моё] Python Linux Gui Habr Длиннопост
23
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии