52

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

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

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

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

Анонс бесплатного курса "Командная строка для разработчиков" IT, Linux, Обучение, Ubuntu, Курсы, Онлайн-курсы, Python, Программирование, Разработка, Длиннопост

Сообщество любит отправлять новичков читать мануалы, что мега-полезно, но довольно непросто. Кстати, на курсе мы разберём, как читать 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-разработчика, поэтому знание и опыт работы с этой операционной системой могут быть ценными навыками для разработчика.

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

Больше постов читайте по тегу «Курсы». А если сами хотите изучить новую профессию, посмотрите актуальные курсы от проверенных школ с реальными отзывами на сайте Пикабу Курсы.

GNU/Linux

1.2K пост15.6K подписчика

Правила сообщества

Все дистрибутивы хороши.

Будьте людьми.

Вы смотрите срез комментариев. Показать все
1
Автор поста оценил этот комментарий

Так ls -al и ls --all совсем про разное, или в чём подвох?

раскрыть ветку (4)
0
Автор поста оценил этот комментарий

Совершенно разное)


ls -al – это два коротких флага вместе, -a и -l

ls --all – это один длинный флаг, он же -a короткий


Занятный вопрос на внимательность. А ещё есть вопрос на понимание. Зачем нам короткие и длинные флаги вообще? Почему недостаточно просто коротких? Или только длинных?

раскрыть ветку (3)
0
Автор поста оценил этот комментарий
Что значит "флаги"? Эти штуки же ключами обычно именуют? Или я что-то не так понимаю?
раскрыть ветку (2)
1
Автор поста оценил этот комментарий

Есть такая терминология:

1. флаг (flag) - так пишут в книгах, например, ProGit, у Колисниченко Д.Н. "Linux. От новичка к профессионалу" и у классического Таненбаума, "Современные операционные системы". Такой же термин можно найти в книге "Язык программирования Си" от Кернигана и Ритчи относительно параметров функции. Его я и придерживаюсь

2. опция (option) - сейчас распространено в man

3. ключ (кажется, это изобретение не имеет английского аналога) - например, тут https://younglinux.info/bash/commands


Кто-то считает, что flag это с одним тире, а option с двумя, но это не очень распространённая точка зрения https://www.linkedin.com/advice/0/how-do-you-use-a-all-flag-...


А есть ещё термины "аргумент", "параметр" и т.д.


Терминологию в этом месте гнут, как хотят, единого мнения нет. Тут так и написано: There are no consistent definitions of the terms "option", "argument", and "flag" https://unix.stackexchange.com/a/285588


При этом вас поймут независимо от термина флаг, опция, ключ, аргумент, параметр, ... Есть небольшие детали (например, параметр - это конкретное значение флага, то есть ls --block-size=5 число 5 будет параметром), но это прямо не сильно важно


Я придерживаюсь термина флаг из книг, как более распространённого. Тот факт, что в справке по bash везде option меня совершенно не смущает

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Спасибо за подробный ответ. Очень интересно!
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку