Это статья об основах программирования на Go. На канале я рассказываю об опыте перехода в IT с нуля, структурирую информацию и делюсь мнением.
Хой, джедаи и амазонки!
В предыдущем посте рассказывал, что приобрёл ноутбук и установил на него Linux. Сегодня хочу поделиться опытом взаимодействия с новой для меня операционной системой.
1. Первое впечатление
Вполне обычная операционная система, чего-то прям необычного после Windows нет. Ниже скриншот рабочего стола моей Linux Mint Cinnamon:
Есть Менеджер программ - это что-то вроде Google Play для android или App Store для iPhone:
Нет обычного диспетчера задач, вызываемого Сtrl+Alt+Del или Ctrl+Shift+Esc. Вместо него нужно устанавливать специальное ПО, например Gnome-system-monitor. Который, к слову, уже был установлен:
Запускается монитор системы не сочетанием клавиш, а как обычная программа. Нужно будет выяснить, можно ли настроить его запуск горячими клавишами.
Понравилось, что можно разделить окна на мониторе не только по горизонтали, но и по вертикали (может быть в новых ОС на Win такая функция тоже есть - не проверял):
Первым делом из программного обеспечения я начал устанавливать ПО для программирования. И начал с установки языка Go.
2. Установка Go на Linux
Решил воспользоваться функционалом Linux и установил Go через терминал.
2.1. Обновление утилиты Sudo
Sudo - это программа для администрирования Unix-подобных операционных систем. Главная её цель - дать как можно меньше прав, с необходимым функционалом для решения задачи.
Запускаем терминал и вводим команду: sudo apt update для обновления утилиты Sudo:
Далее будет необходимо ввести пароль администратора и произойдёт проверка обновлений:
Затем ввести в терминал команду: sudo apt upgrade. Будет выполнено обновление (если требуется):
2.2. Установка пакета Go
Об установке Go на Windows я рассказывал здесь. Для Linux можно сделать подобным образом (хотя несколько сложнее), но мне интереснее попробовать через терминал.
Вводим в терминал: sudo apt install golang
После начнётся проверка актуального пакета Go:
Подтвердив продолжение, скачиваются и устанавливаются файлы Go:
Можем проверить версию языка Go командой: go version
И тут начинается интересное - установлена не самая свежая существующая версия языка Go, доступная на официальном сайте. Почему так?
2.3. Версия Go из репозитория
На иллюстрации ниже показана крайняя на данный момент версия языка Go с официального сайта, и она старше той версии, что скачалась из терминала Linux Mint.
Свежая версия - 1.20.2, а установлена 1.18.1. Почему так? Начал разбираться, вот что выяснил, благодаря коллегам из учебного чата:
В репозиториях обычно размещают те версии которые считаются стабильными.
Репозиторий - место, где хранятся и поддерживаются какие-либо данные. Чаще всего данные в репозитории хранятся в виде файлов, доступных для дальнейшего распространения по сети.
Обновления версий в репозиториях в целом всегда запаздывает.
Основная масса дистрибутивов Linux устроена так: есть выпуск - например, Ubuntu 22.04, в него включён софт каких-то там версий, и эти версии в рамках этого выпуска не обновляются.
Понятно, что за софтом следят: добавляют патчи каких-то уязвимостей, фиксы каких-то багов, но если в Ubuntu 22.04 офисным пакетом LibreOffice 7.3, то до 7.5 он не обновится.
Сделано это потому, что при выпуске системы конкретная версия софта была протестирована не только сама по себе, но и в сочетании с остальным софтом на этой системе. Не исключено, что при обновлении LibreOffice до 7.5 придётся обновить ещё что-то, а из-за этого сломается что-то третье. Короче, система должна работать не хуже, чем в день выпуска, поэтому «больших» обновлений софта не делают.
Обновляет репозиторий Linux - сообщество Linux. Почитать, как к ним присоединиться можно например здесь о Mint или здесь о Debian.
В мире Linux есть шутка:
- Насколько это (кусок софта) стабильно?
- Debian stable. Окаменело.
В целом, заниматься на версии 1.18.1 вполне можно. Можно установить язык Go другим способом и последней версии, и это будет не намного сложнее. Но зачем? Пока не требуется.
3. IDE
Выше я делился ссылкой где рассказывал об установке LiteIDE. Её же я установил и здесь. Единственно, в менеджере программ Linux её не было, скачал с сайта:
Из интересного: выше я показывал пример монитора ресурсов. Так вот, если программа уходит в бесконечный цикл, ноутбук начинает усиленно шуметь, а монитор ресурсов выглядит так:
Если в течение нескольких секунд ничего не предпринять, ноутбук просто перестанет отвечать и вылечить можно через выключение.
А предпринять можно следующее закрыть строку терминала в IDE:
Что ещё интересного: когда в терминале прописываем go run "Название файла".go, для Windows не имело значения, в каком регистре пишем. Программа запускалась.
В Linux же регистрозависимый терминал, и если файл называется Cycle.go, то так и нужно писать, а не cycle.go.
В целом пока всё. Что нужно для обучения бэкенду у меня есть, буду дальше развиваться в программировании и перейду к администрированию в Linux.
Чем больше узнаю, тем больше вариантов что ещё хочу узнать. Сейчас по-прежнему приоритет - основной курс от Скиллбокс на Go. Затем хочу изучить следующие задачи:
- Работа с Git;
- Курс алгоритмы от Скиллбокс;
- Курс Go на Stepic хочу закончить;
- Базовый бесплатный курс от Яндекс Практикум по Go;
- Пет-проект с парсингом;
- Текстовый квест на Go с псевдографикой.
Такие дела. Успехов, и держись, бро!
--//--//--
Усли захочешь купить курс от SkillBox, воспользуйся моей реферальной ссылкой. Ты получишь огромную скидку на курс и плюс в карму за помощь каналу.
Бро, ты уже здесь? 👉 Подпишись на канал для новичков «Войти в IT» в Telegram, будем изучать IT вместе 👨💻👩💻👨💻