Изучайте программирование в Windows как новичок

Когда я впервые начал изучать Python, я начал с Windows-машины. Я бы бездумно следовал инструкциям по установке, предоставленным в учебниках (в основном через Anaconda), не понимая, как какой-либо из процессов работает под капотом. Я имею в виду, эй, если мой Jupyter Notebook работает нормально, какое мне дело?

Хотя изучение виртуальных сред в Python во многих отношениях изменило правила игры, будучи новичком, я все еще сталкивался с проблемами версии, потому что у меня не было идеального представления о том, как моя машина выполняет мои сценарии Python и как это решает, какую версию или установку Python следует использовать.

Многие процессы управления версиями и пакетами Python «скрыты» за кулисами, когда вы работаете с Windows, поскольку Anaconda и Windows отлично справляются с настольным приложением, абстрагируя все эти процессы.

На самом деле я даже не знал, что означает установка Python — Это программное обеспечение? Это какой-то компилятор? В чем разница между установкой через Anaconda и прямой установкой в ​​Windows?

В конце концов я столкнулся с запутанной кучей установок pip в Anaconda и других версиях Python с конфликтами зависимостей и другими неприятными ошибками.

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

Командная строка: опыт новичка

Я сделал свой первый прыжок в Linux более 2 лет назад с Ubuntu. Кривая обучения была определенно крутой для человека, который всю свою жизнь полагался на графический интерфейс для взаимодействия с компьютером.

Черный ящик, называемый терминалом, и написание команд bash было очень непростым чувством, поскольку нет crtl-z, чтобы спасти вас, и редактирование файлов с помощью VIM в терминале всегда кажется, что я нахожусь в одном нажатии клавиши от случайного удаления какого-то важного системного файла и протираю всю машину.

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

Лучшая файловая система

У каждой ОС есть свои плюсы и минусы, но я еще не встретил никого, кому нравится Windows за ее файловую систему.

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

Вероятно, одним из самых важных преимуществ является возможность использовать apt install/remove для установки и удаления инструментов и пакетов, которые нужны обычному программисту.

Это гораздо удобнее по сравнению с гуглением различных файловых сайтов для загрузки файлов .exe по отдельности и нажатием на мастер установки в Windows (хотя это может скоро измениться с winget).

С помощью bash вы также можете автоматизировать многие настройки, необходимые при запуске нового проекта, такие как установка зависимостей или настройка баз данных SQL.

Windows обещает предоставить те же возможности Linux изначально через Windows-Subsystem for Linux (WSL).

Я покажу, как установить Linux через WSL2, последнюю версию набега Microsoft на Linux. С WSL2 вы фактически используете полноеядро Linux, которое довольно круто.

Включение WSL2

Здесь я перечислю шаги для включения WSL2 в Windows. На канале Network Chunk есть отличный видеоурок, если вы более визуальный человек.

Обратите внимание, что видеоруководство показывает вам, как установить Kali Linux, чтобы вы могли остановиться после завершения шагов WSL2 (если только вы недавно не вдохновились Mr. Robot и не хотите взломать Evil Corp).

  • ЗАПУСК POWERSHELL от имени администратора

  • ВЫПОЛНИТЕ эту команду в powershell
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
  • ПЕРЕЗАГРУЗИТЕ компьютер
  • ВЫПОЛНИТЕ эти 2 команды в powershell от имени администратора
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

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

  • Установите WSL2 по умолчанию
wsl --set-default-version 2
  • Проверить и проверить версию
wsl --list --verbose

И вы сделали!

Выбор варианта Linux

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

Установка Убунту

Windows проделала большую работу по распространению Ubuntu через Магазин Windows, и вы можете установить его, как и любое другое приложение.

  • Перейти в Магазин Windows
  • Найдите «Ubuntu» (лично я бы выбрал версию 20.04 LTS) и нажмите «Установить».
  • Сделанный!

Когда вы закончите установку, найдите «Ubuntu» в меню и откройте его. Вам будет предложено создать новое имя пользователя и пароль (не потеряйте их!), и все готово к работе с Linux Ubuntu на вашем компьютере с Windows.

Примечание. Вы можете пойти дальше и установить полную версию Ubuntu в комплекте с рабочим столом GNOME или Xfce, если вы готовы к этому, но в этом нет необходимости. Для меня ключевым преимуществом WSL2 является наличие среды Linux и опыта разработки, но при этом возможность одновременного использования Windows для игр или программного обеспечения, недоступного в Linux, такого как творческий пакет Adobe для редактирования фотографий и видео. И я бы по-прежнему настоятельно рекомендовал использовать Linux в качестве основной ОС, если вас не очень интересуют игры или Adobe, и вы хотите испытать Linux в полной мере (P.S. ознакомьтесь с ОС POP! и ОС Zorin!).

Настройка среды разработки

Теперь, когда вы все сделали, вы уже можете начать программировать в Ubuntu. Но я бы порекомендовал настроить терминал Windows для лучшего использования терминала.

Установить Windows-терминал

Если вы еще не слышали или не использовали Windows Terminal раньше, это официальный инструмент командной строки от Microsoft, который обладает некоторыми довольно интересными функциями.

Опять же, Microsoft упростила установку одним щелчком мыши из Магазина Windows.

Добавление профиля Ubuntu в терминал Windows

Терминал Windows предоставляет несколько отличных функций, которые помогут вам начать работу.

  • Несколько профилей терминала — вы можете открыть несколько профилей в терминале Windows, а также создать новые пользовательские профили, которые соединят вас с удаленными серверами.

  • Откройте настройки

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

  • Добавить новый профиль

Создайте новый профиль и заполните следующие настройки

Командная строка:

wsl.exe -d Ubuntu-20.04

Начальный каталог:

//wsl$/Ubuntu-20.04/home/<username>/

Где ‹username› — это имя пользователя, которое вы создали для Ubuntu при первоначальной настройке.

Кроме того, вы можете отредактировать файл settings.json, щелкнув параметр в левом нижнем углу, где вы можете следовать этому руководству по переполнению стека, которое предоставляет некоторые параметры точной настройки шрифта и цвета.

{
  "guid": "{07b52e3e-de2c-5db4-bd2d-ba144ed6c273}",
  "hidden": false,
  "name": "Ubuntu-20.04",
  "source": "Windows.Terminal.Wsl",
  "startingDirectory": "//wsl$/Ubuntu-20.04/home/<username>/"
}

Теперь, когда вы настроили свою систему, вы можете проверить версию Python, которая поставляется с Ubuntu.

Если вы хотите работать с Python 3.9 или другими версиями, вот отличное руководство о том, как это сделать в Ubuntu. Чтобы избежать каких-либо катастрофических изменений в вашей системе, выполните altinstall, как это предлагается в руководстве, вместо замены существующего двоичного файла по умолчанию.

Настройка кода VS

Какая разработка без IDE? VS Code — отличный выбор, он поставляется с простым в настройке расширением для работы в WSL Ubuntu: https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl

Вы можете установить это прямо в свой VS Code, выполнив поиск на вкладке расширений. Это позволяет нам удаленно подключаться к WSL и редактировать ваши проекты в Ubuntu.

Оказавшись в папке проекта в Ubuntu, вы можете использовать команду «code .», чтобы открыть папку в VS Code.

Если у вас есть виртуальная среда в настройке Python, VS Code выберет ее в качестве предпочтительного интерпретатора. Если у вас когда-либо были постоянные предупреждения об импорте от Pylance, скорее всего, вы выбрали неправильный интерпретатор Python.

Блокноты Jupyter в VS Code

Если вы много работаете в Jupyter Notebooks, я настоятельно рекомендую также попробовать VS Code.

Создать новую записную книжку так же просто, как «ctrl + shift + p» и выполнить поиск «Создать новую пустую записную книжку», и это должна быть первая всплывающая опция.

Вы можете выбрать локальную виртуальную среду в качестве ядра по умолчанию и установить любые пакеты обработки данных или машинного обучения, которые вам нужны, с помощью pip install.

Это отличный способ контролировать установки и зависимости. Я нахожу этот метод намного чище, чем управление виртуальными средами в Anaconda.

Вы также можете заморозить свои требования к совместному использованию и воспроизводимости ваших проектов.

Проводник Windows

Поскольку Linux и Ubuntu фактически установлены в Windows, вы можете использовать проводник Windows для доступа к Ubuntu. Просто откройте проводник в Windows и введите «\\wsl$» в адресную строку.

Оттуда вы можете перемещаться по всей файловой системе Ubuntu, как и по любой папке Windows — довольно круто, если вы спросите меня.

Это простой способ доступа к файлам, когда вам нужно загрузить что-то, например, по электронной почте или на Google Диск в Windows Chrome.

БОНУС: Докер

Возможно, вы уже слышали, что WSL2 позволяет вам устанавливать докер в Windows без необходимости иметь Windows Pro и Hyper-V. После установки вы можете использовать Docker в Ubuntu ИЛИ управлять своими образами/контейнерами в Docker Desktop. Всегда приятно, когда есть выбор.

С Docker открывается так много возможностей. Возможно, Docker-compose делает автоматизацию настройки проекта даже проще, чем bash, и вы можете иметь автономные SQL-серверы, проекты Python, не беспокоясь о воспроизводимости и конфликтах.

Переход на полный Linux

Надеюсь, вам понравится работа с Linux с WSL2 так же, как и мне. Если вы устали от Windows в целом и хотите попробовать другую ОС, я бы все же настоятельно рекомендовал попробовать Linux в качестве основной ОС.

Если вас беспокоит поддержка драйверов на вашем компьютере, вы можете делать покупки в таких местах, как System76, где они специализируются на родной системе Linux по доступным ценам. У них даже есть свой вариант Linux, Pop!_OS.

Помимо программирования и разработки, Linux предлагает множество бесплатных программ с открытым исходным кодом для изучения, предлагая бесплатные альтернативы MS Office, Photoshop и многим другим.

Steam официально доступен и в Ubuntu (хотя количество игр для Linux, устанавливаемых изначально, по-прежнему ограничено, это может в конечном итоге измениться с появлением Steam Deck, который, как сообщается, работает на Arch Linux).