Почему программисты используют linux

от admin

Linux — зачем он может быть нужен разработчику и конечному пользователю?

Сегодня с вами поговорим про Linux — операционной системе, которая набирает популярность одновременно с развитием открытого софта (так называемого, open — source). Чем могут быть интересны такие операционные системы обычному пользователю или разработчику?

1. Во-первых, это бесплатно. Большинство дистрибутивов на Linux можно получить, не заплатив ни копейки – в том числе и Ubuntu, который автор берет в качестве одного из наиболее подходящих для рядового юзера.

2. Там ценят вашу приватность. Система не занимается сбором ваших данных, и вы сами можете контролировать этот процесс, если он связан с другими программами. Мелочь, но если это вас всерьёз беспокоит – воспользуйтесь Linux.

3. Игры тоже вполне себя заводятся. Да, немногие в курсе, но Valve всерьез поддерживает гейминг на Linux – путем выпуска дополнения Proton. Неожиданно, но где -то 60% игр из библиотеки Steam заводятся на Linux без особых проблем – если, конечно, вам позволяет железо. Играйте в любимые игры сколько угодно!

4. Расширение системы практически бесконечно и зависит только от вас. Распространённый пункт, но это так – в итоге вы можете самостоятельно поменять что-то в системе, перекомпилировав ее и переустановив. Это конечно потребует серьёзных навыков программирования и разработки, но ради чего еще изучать программирование, кроме как ради свободы?

5. Ну и раз мы заговорили про программирование: навыки администрирования Linux вам пригодятся, если вы, как разработчик доберетесь до удаленного сервера, который расположен, например на AWS – там вы сможете работать только из консоли, на которой работают команды из Linux. Почему бы тогда не получить навыки Linux, чтобы потом не путаться в незнакомом терминале, когда настанет момент разворачивания?

5 причин, по которым я люблю программировать в Linux

Linux — это отличная платформа для занятий программированием. На нашей стороне — логичность, высокая эффективность, лёгкость работы с исходным кодом.

В 2021 году Linux выглядит как никогда привлекательно. Я собираюсь написать материалы, в которых расскажу о 21 способе использования Linux. А в этой статье я хочу поговорить о том, почему так много программистов выбирают Linux.

Когда я начал пользоваться Linux, я работал в сфере кинопроизводства. Я выбрал Linux из-за того, что эта ОС замечательно поддерживала работу с мультимедийными данными. Мы выяснили, что обычные коммерческие приложения для редактирования видео не способны обрабатывать большинство тех записей, которые мы извлекали из практически любых устройств, оснащённых камерами. Тогда я не знал о том, что Linux имеет репутацию операционной системы, рассчитанной на серверы и на программистов. Чем больше задач я решал с помощью Linux, тем сильнее мне хотелось научиться управлять всеми свойствами этой ОС. В итоге я выяснил, что компьютер показывает всю свою мощь тогда, когда его пользователь способен «говорить» на его языке. Через несколько лет после перехода на Linux я уже писал скрипты для автоматического редактирования видео, для объединения аудиофайлов, для пакетного редактирования фотографий, и для решения любых задач, которые мне удавалось сформулировать, и для которых удавалось найти решение. Мне не потребовалось много времени на то, чтобы понять, почему программисты любят Linux. Но именно Linux научила меня любить программирование.

Оказалось, что Linux — это отличная платформа для программистов, и для начинающих, и для опытных. Нельзя сказать, что Linux необходима для того, чтобы писать программы. Успешные разработчики пользуются самыми разными платформами. Но у Linux есть много такого, что она может предложить разработчикам. Кое о чём из этого я и хочу рассказать.

1. Логичность Linux

Linux построена вокруг идеи автоматизации. Основные приложения Linux совершенно осознанно сделаны такими, чтобы их можно было бы, как минимум, запустить из терминала, указав дополнительные опции. А часто их можно и полностью использовать тоже из терминала. Эту идею иногда ошибочно считают чем-то вроде примитивной модели организации вычислений, так как существует распространённое (и неправильное) мнение о том, что писать программы, работающие из терминала, это значит — прилагать абсолютный минимума усилий к тому, чтобы получить работающее приложение. Это — печальный результат непонимания того, как работает программный код, но многие из нас периодически страдают таким вот непониманием. Мы думаем, что больше — это всегда лучше, поэтому приложение, содержащее 1000 строк кода должно быть в 100 раз лучше, чем приложение, содержащее 10 строк кода. Так? Но правда заключается в том, что, при прочих равных условиях, лучше выбрать приложение, отличающееся большей гибкостью, при этом то, из скольких строк кода оно состоит, значения не имеет.

В Linux решение некоей задачи вручную может занять, например, час. То же самое можно, воспользовавшись подходящими инструментами командной строки, сделать буквально за минуту, а возможно — и за меньшее время, если прибегнуть к GNU Parallel. Для того чтобы к этому привыкнуть, нужно определённым образом изменить взгляд на то, как именно работают компьютеры, нужно научиться мыслить не так, как прежде. Например, если задача заключается в том, чтобы добавить к 30 PDF-файлам обложки, можно решить, что приемлемая последовательность действий будет выглядеть так:

  1. Открыть PDF-файл в редакторе.
  2. Открыть файл с обложкой.
  3. Присоединить PDF-файл к файлу с обложкой.
  4. Сохранить полученный документ в виде нового PDF-файла.
  5. Повторить эти действия при обработке остальных старых файлов (а вот новые файлы, полученные из старых, обрабатывать уже не нужно).

После того, как удастся убедиться в работоспособности команды при обработке одного документа, надо будет вложить некоторое время в изучение утилит для обработки наборов данных. В ходе изучения можно обнаружить команду parallel :

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

2. Возможности по управлению связями кода

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

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

Это имеет отношение не только к Linux, но и к другим платформам. В Linux можно писать код, который планируется запускать и в Linux, и в других операционных системах. Понимание того, как именно компилируется код, помогает программисту в достижении его целей.

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

3. Удобство работы с существующим кодом

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

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

4. Прямой доступ к периферии

Я, после того, как разрабатывал на Linux программы для медиакомпаний, иногда принимаю как должное возможность доступа к периферийным устройствам. Например, при подключении к Linux-компьютеру видеокамеры можно загрузить входящие данные из /dev/video0 или из подобного устройства. Всё что нужно, можно найти в /dev , и это — всегда кратчайший путь из точки A в точку B.

А вот на других платформах это не так. Подключение к системам, находящимся за пределами ОС — это всегда лабиринт, построенный из SDK, библиотек с закрытым кодом, а иногда — и из соглашений о конфиденциальности. Ситуация, конечно, не везде одинакова, она зависит от того, для какой именно платформы пишет код программист, но другим системам сложно поспорить с простотой и предсказуемостью интерфейса Linux.

5. Хорошо продуманные абстракции

Linux, в то же время, даёт нам и разумный набор слоёв абстракции, применимых в ситуациях, когда прямой доступ к чему либо или ручное написание некоего кода может вылиться в больший объём работы, чем тот, к которому готов программист. Много удобных инструментов можно найти в Qt и Java, есть целые стеки вспомогательных технологий, вроде Pulse Audio, Pipewire и gstreamer. Linux стремится к тому, чтобы её пользователи могли бы заниматься программированием, и не скрывает этого.

Итоги

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

Почему лучше программировать на Linux

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

Открытый исходный код системы ничем не поможет если вы веб-программист. А что касается бесплатности. то и Windows бесплатную в России найти не проблема. А тем не менее многие программисты предпочитают Linux. В этой небольшой статье мы рассмотрим почему стоит программировать на Linux.

Почему стоит использовать Linux для программирования

1. Простота настройки среды

Благодаря архитектуре Linux рабочую среду для программирования здесь настроить намного проще. Конечно, в последние годы появился Docker и WSL, упрощающие настройку среды для программирования и проверки работы программ в Windows, но в Linux это по прежнему проще сделать. Например, если вы хотите программировать на C/C++, то установить все необходимые инструменты можно с помощью одной команды и после этого больше ничего настраивать не нужно. В Windows же придётся потратить некоторое время на то чтобы найти и установить инструменты компиляции, а затем ещё и заставить операционную систему их видеть.

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

2. Полноценный терминал

Терминал — огромное преимущество Linux. Ещё во времена операционной системы Unix был разработан набор консольных утилит и способы взаимодействия между ними, вроде построения туннелей или перенаправления вывода, с помощью которых можно делать многие полезные вещи. Например, с помощью grep можно выполнять поиск по большому количеству файлов, утилита find позволяет искать по имени, правам и дате изменения. Это всё может быть очень полезно если надо разобраться в чужом проекте и найти какой-нибудь метод не используя интегрированную среду разработки.

Кроме того, в Linux все программы делятся на сервисы и программы, привязанные к терминалу. Сервисы сообщают о своих ошибках системе инициализации, программы, привязанные к терминалу — прямо в терминал. Это удобно. Если в графическом приложении возникает ошибка, вы можете запустить его из терминала и посмотреть какая именно ошибка возникла.

3. Среда близкая к производственной

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

4. Контроль над именами файлов

Если вы пользовались Windows, то знаете, что для этой операционной системы файл FILE и file, это одно и то же. В файловой системе Ext4 в Linux это будут разные файлы. Кроме того, Windows по умолчанию скрывает расширения файлов и вы не можете их менять прямо без дополнительных настроек. В большинстве файловых менеджеров Linux раcширения файлов отображаются по умолчанию.

5. Так сложилось исторически

Изначально операционные системы Windows по умолчанию использовали кодировку CP-1251, в то время как в дистрибутивах Linux использовалась кодировка UTF-8. А поскольку на веб-серверах чаще всего был установлен Linux, то было нужно чтобы все исходники программ были в UTF-8. При работе с ними в Windows их приходилось вручную конвертировать или же использовать специальные среды разработки, в которых всё это было предусмотрено.

До недавних пор в Windows не было нативного SSH клиента. Конечно, всегда можно было пользоваться Putty или другими сторонними программами, однако встроенного клиента для SSH не было и это было неудобно. Встроенный клиент на основе SSH появился только в Windows 10. А в Linux SSH клиент всегда был легко доступен в терминале.

Поскольку раньше не существовало WSL и Docker, то любые специфичные для Linux вещи требовали либо установки Linux рядом/на виртуальную машину либо установки и настройки программ для кросскомпиляции что не всегда было просто. В Linux же большинство программ было установлено уже по умолчанию либо же ставились в несколько команд с помощью пакетного менеджера и не требовали никаких настроек.

Когда Windows лучше для программирования чем Linux

Всё выше перечисленные аргументы больше актуальны для веб-программирования и разработки на C/C++. Однако Microsoft разработала и поддерживает свою экосистему для создания программных решений. Это язык программирования C# и платформа .NET. Долгое время .NET в Linux поддерживалась только силами энтузиастов. Несмотря на то, что недавно у .NET официально появилась поддержка Linux в виде NET Core, экосистема, разрабатываемая годами для Windows там всё ещё лучше чем в Linux. Например, хотя компания Microsoft выпустила VS Code для Linux всё ещё нет и, скорее всего, не будет интегрированной среды разработки Visual Studio.

Выводы

Как видите, причин программировать на Linux вполне достаточно чтобы попробовать. Конечно, всё зависит от конкретного человека и ситуации. Если вы всю жизнь программировали в Windows и знаете всё тонкости настройки, то возможно, вам и не будет хотеться переходить на Linux, так как там всё новое и надо разбираться заново. Но если вы ещё не разобрались с программированием в Windows, то в Linux будет удобнее. А вы программируете в Linux? Почему? Напишите в комментариях!

Похожие записи

Оцените статью

alt=»Creative Commons License» width=»» />
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

17 комментариев к “Почему лучше программировать на Linux”

У меня ubuntu. Что первое мне понравилось это не тупи и не надо переустановливать каждый год ОС(у меня была windows 7, других не было) из-за синиго экрана или ещё из-за чего нибудь. Нравится терминал очень удобная штука, когда сел на Винду было очень не удобно что не авто дополнение. Из минусов нет Фотошопа а так вообще нет желания обратно пересодится на виду. А ещё чуть не забыл там прикольный тачпауд, удобный.

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

Это ещё почему я не могу создавать файлы .htaccess или .env? И какие такие программы нужны для изменения расширения файла?

ько используется Линукс на 2% компьютеров, а на домашних их используют странные люди, для которых одной из важнейших вещей в жизни является покричать в интернете какой Линукс прекрасный по сравнению с виндоуз, а обычные пользователи, которые хотят поиграть совсем без проблем, подредактировать видео или написать музыку как-то туда не стремятся. Энтузиасты опять начнут кричать что аналоги есть, только там где на виндоуз 7 аналогичных программ на Линукс одна и та не совсем доработанная.

Лично я ни разу не программер, и то знаю, что «Windows скрывает расширения файлов» есть просто настройка отображения, и то звучит как «скрывать зарегистрированные расширения файлов». То же самое и по вопросу .htaccess или .env В декстопном Linux, к слову, .htaccess или .env по умолчанию тоже в менеджере файлов отображаться не будут пока не тиснешь включение отображения скрытых файлов.

в п.3 слово Enterprice — прям отлично ��

Вот есть в инете одна нехорошая штука: если один напишет ерунду, то все ее прочитают и кто- то решит, что это истина ��

Сколько лет этим статьям? Windows давно использует кодировку UTF по умолчанию. В Windows давно есть WSL как раз для разработчиков, нуждающихся в каких-то Linux-специфичных штуках иногда. В Windows есть цивилизованные VisualStudio и OpenServer для разработчиков. OpenServer для удобной веб разработки как раз таки и в Linux нет ничего такого простого и работоспособного, чтоб без возни скачал, запустил и пользуешься. Даже без установки. В Windows по любому лучше всего кодить на C#, а на нем нынче много всего делается. Программы, игры, сайты, приложения для Андроида и прочее. А разные имена файлов в зависимости от регистров букв — это скорее минус, чем плюс.

Конкретно ваши примеры консольных команд из статьи это вообще не аргумент. В винде можно использовать find вместо gpep. Например, для поиска файла по названию (или части названия), так: dir /s /q c:\ выведет вообще все имена файлов на диске C. Вообще из всех папок, все файлы какие есть. Можно ещё другие ключи добавить. А вместо gpep использовать find для выборки, что показать. Имя или часть имени файла, который надо найти. Так:
dir /s /q c:\ | find «какашка»
Так зачем писать то, о чем вы не знаете?

А по поводу серверов, всему свое место. Во многих корпорациях плотненько сидят на инфрастуктуре Майкрософта. На Windows Server, Active Directory, Microsoft SQl Server, Microsoft Exchange Server, Microsoft Teams и всё у них нормально. Кто-то юзает FreeBSD на серверах и оно имеет место быть в некоторых случаях. Например, Netflix хорошо заточили фряху под нужные им функции, WhatsApp работает на FreeBSD, да много кто. Кто-то даже проприетарную Solaris гоняет на фирменном San-овском железе. То, что на серверах везде Линух и все делается там для Линух — это очень толстая ложь.

Поправил немного статью. В статье сделан акцент на веб-разработку. Естественно, что программировать на C# лучшие в Windows, потому что эта платформа была разработана специально для Windows. Но касательно веб-разработки в Windows приходится использовать много компонентов Linux. Тот же WSL или Docker, использующие код или дистрибутивы Linux целиком. А если использовать эти компоненты, то можно уже установить Linux. Хотя это, конечно, дело привычки.

>> то все ее прочитают и кто- то решит, что это истина
Это и расстраивает. Но думаю этот бред несут осознано.

А вот это, для ДМИТРИЯ. Действительно, не надо каждый год windows7 переустанавливать. Если что, не фотошоп, моя рабочая система.
https://i116.fastpic.org/big/2021/1102/44/da3c2e7f3f527e5e0f40d2ddeec97944.png

Автор(ADMIN), ну пожалуйста имейте совесть. Весь пункт 4, начиная с третьего предложения и далее чушь. Вдруг и взаправду люди будут читать и верить. Некрасиво же, право слово. Вот Win7.
https://i116.fastpic.org/big/2021/1102/cd/cc520c0134c86d0d6efb219c324814cd.gif
P.S.
Про клавишу «F2» в файловом менеджере windows (explorer) тоже надо показывать?

Поправил статью. Надеюсь теперь она больше соответствует действительности.

С автором согласен на все 100%. Я знаю, что у Windows есть свои поклонники и с ними спорить невозможно, они принимают критику программы как личную атаку. Это я понимаю и с этим не спорю. Каждому своё.
С Windows я работал очень долго. Около 15 лет назад попробовал Linux. С тех пор поработал на 10-15 разных дистрибутивах, сейчас остановился на Mint. Около 3-х лет назад перестал пользоваться Windows совсем, хотя она есть на диске в dual boot. Поясню, это касается Windows desktop, я всё ещё пользуюсь MS Hyper V, так как нужно поддерживать контролер Active Directory.
Это вступление, теперь мои 5 копеек о преимуществах Linux.
— Бесплатное. Нет ни регистраций, ни авторизаций, ни пиратства. Полностью бесплатно, без исключений. И не говорите что Windows можно добыть тем или иным способом. Воровство — есть воровство и кроме моральных протестов есть ещё обязательные и подтверждённые опастности, что в самый не подходящий момент эти трюки подведут. Кстати скоро без Microsoft account никуда и ничего. Браво Наделла, даже Гейтс до такого не доходил.
— Вся разработка Linux нацелена на удобство и надёжность. Как сложно добавить в Windows историю командной строки? Или сделать просмотры и мониторинг system logs удобным? А сравните Windows Registry и файлы конфигурации в Линуксе! И это только из незначительных замечаний. Все не перечислить, их 100-ни.
— Backup and Restore. Полная трагедия. В Линуксе rsync скопирует всю систему за 3-5 минут. И ГАРАНТИРОВАННО восстановит систему на любом другом носителе с которого вы без проблем загрузите систему. B Windows нет никакой уверенности, что после часовых процессов со стандартными средствами вы сможете загрузить то, что смогли восстановить из копии. И забудьте про удобные способы сохранить свои личные файлы и, упаси бог, программные установки. Системные обновления Линукса занимают около . минуты! Нет часов ожидания завершения апдейтов Окон и бесконечных перезагрузок. Do not turn off your computer ушло в далёкое прошлое для Линукса, туда и дорога.
— Наличие пользовательских программ. Прошли времена когда неыозможно было найти замену Windows программе. Теперь на каждую есть несколько вариантов в Линуксе. Процесс инсталяции, это небо и земля. Не хочешь из репозитория — установи Snap или Flatpak. И это не нравится — возьми исходники и скомпилируй самую новую версию. Легко. 3 команды. сonfigure/make/install и у тебя новая программа. Процесс удаления ненужного тоже до смешного прост и эффективен.
— Система безопастности. В Окнах это насмешка. Количество вирусов превышает количество полезных программ. Авторизация доступа в Линуксе проста и надёжна. NTFS ни в какое сравнение с ext4 или XFS не идёт. Ни по производительности ни по удобству ни по надёжности.
— В статье упоминаются средства програмирования. И здесь у Линукса больший выбор. Есть на любой вкус. Работа с медийными файлами? Линукс отвечает — нет проблем. И не ограничен только одним разработчиком. Есть разнообразные уровни сложности.

Я не претендую на всесторонний анализ этих ОС-ов. И совсем не сторонник того чтобы выбросить Окна на свалку, но их история сильно напоминает времена начала 90-х и войну MS Windows и IBM OS-2. Тогда динозавр пал в бою с молодым и инновационным конкурентом. Теперь этот динозавр — Microsoft Windows.

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

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

В LInux при программировании такого не чувствуется. Сложность настройки компенсируется стабильностью при использовании. С Ubuntu можно без особых проблем пересесть на RHEL, а с RHEL — вообще на какую-нибудь из BSD-систем.

Web разработка на windows сегодня тоже удобнее чем на Линукс. Для проверки под линуксом есть vmware. Я занимаюсь web разработкой больше 15 лет и меня вполне устраивает windows. Кроме того у меня есть один проект на с++ для embedded системы. Сейчас все наши российские заказчики переводят серверные части на российские линуксы, также отказываются от sql сервер (как СУБД, так и олап), однако я все равно остаюсь на windows, просто использую wmware. Для пробы установил на одном из рабочих ноутбуков убунту и настроил всё рабочее окружение, как на windows. Убунту порадовала тем, что все железо запустились из коробки, включая все функциональные клавиши и тачпад-дисплей, который стал вторым дисплеем (функции тачпада при этом тоже работают). Практически всё, чем я пользуюсь на windows есть за мелкими исключениями, но есть аналоги (правда к ним надо ещё привыкать). Сказать, что на убунте более удобно не могу. Практически также, чуть хуже из-за привычек. По скорости и отзывчивости интерфейса разницы не заметил (но у меня все ноутбуки мощные core i7, i9, rizen 9, память 16-32гб, диски nvme).

То что вы не используете windows 15 лет заметно по вашему комментарию (windows вы не знаете). Я программирую под разные ОС, в том числе под мак ос, iOS, (теперь это в прошлом), андроид (одно кооперативное приложение), Линукс (сейчас 80% работы) и для встраиваемых систем (управление оборудованием в реальном времени). Примерно 60% времени за последние 15 лет заняла web разработка. И всё это время я остаюсь под windows (хотя с линуксом познакомился в 1995 г.). Единственное пришлось купить МакБук, хотя конечно и без него можно было обойтись при разработке под яблочные ос, но неудобно (и соответственно не выгодно). Все так называемые проблемы, которые вы перечислили прекрасно решаются под windows, с гораздо большими удобствами, чем под Линукс, но за это надо платить деньги. Но т.к. это повышает производительность разработки, то в целом это выгодно. Просто я рассматриваю виндуос, Линукс и т.д., как инструменты для зарабатывания денег и с этой точки зрения windows меня вполне устраивает. Правда в сегодняшних условиях мы решили наладить тестовое рабочее окружение на линуксе (включая сервер бэкапов и аналог активной директории), но это из-за текущей ситуации.

Читать:
Как открыть файл в бинарном виде

Зачем Linux программисту ⁠ ⁠

Зачем Linux программисту Linux, Обучение, Длиннопост

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

Скорее всего потому что я не уточнил что я имею ввиду в основном сферу WEB и все что с ней рядом лежит.

Все дальше сказанное мое мнение, вы можете с ним не соглашаться, но мне как то пофиг.

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

Разве Вам не интересно узнать как он работает, набраться опыта от лучших которые делали эту систему?

Там просто кладезь полезных знаниях, о том как делать надо и как не надо.

Linux используется на серверах, роутерах, телефонах(читай android), IOT и многом другом. Эту систему выбрал бизнес, он его использует повсеместно, потому что это выгодно.

Рано или поздно в веб разработке вы столкнетесь с docker которым сейчас пользуются большое кол-во компаний. А он что делает? Правильно, поднимает Linux окружение для вашего приложения и хорошо бы понимать что это такое.

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

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

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

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

P.S. Улыбнули комментарии в прошлом посте с позицией: хаха, я фронтендщик, зачем он мне.

Ну если вы хотите всю жизнь пилить фронтенд и не развиваться, то это ваш выбор.

3.3K постов 20.4K подписчик

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

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

ДЛЯ АВТОРОВ:

Приветствуются:

-уважение к читателю и открытость

Не рекомендуются:

-публикация недостоверной информации

ДЛЯ ЧИТАТЕЛЕЙ:

Приветствуются:

-конструктивные дискуссии на тему постов

Не рекомендуются:

-личные оскорбления и провокации

-неподкрепленные фактами утверждения

В этом сообществе мы все союзники — мы все хотим учиться! 🙂

Я это слышал лет 15 назад. Давно уже можно её использовать на ПК, начиная ещё с Мандривы. Если не будет проблем с дровами и обновлениями. Но есть куча приложений и игр, которые работают в Лине с костылями, поэтому и не пользуются

Что значит «изучить линукс»? И какой? Генту?)

И до какого уровня?

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

Даже сраный конфлюенс (а денег у атлассиан — дохуя и больше) в режиме редактора дикий кусок говна, который лагает и течёт.

Откройте исходники react — там маленький ад по сложности.

Для бэка (веб) мне тоже не очень ясно: что конкретно изучать-то? Сборку в пакеты? LXC? Консольные команды? А до куда? В современном вебе правят девопсы в этой зоне: сложность инфраструктуры требует большого багажа знаний. А если это java, то достояно ли будет разобраться в особенностях взаимодействия?

Должно быть практическое применение, иначе знания утекут.

С целеполаганием проблема.

Семейство GNU/Linux — это большое множество инструментов под разные задачи.

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

Это по-прежнему узконаправленный инструмент для специалистов.

W11 не позволит работать с локальными учётными записями, без регистрации учётки у них. Самое время вспомнить Шаттлворта.

Уже как пару лет снёс линукс. Для работы и дебиан дистры использовал и голый арч и манжаро.
Сейчас для веба golang/nodejs и временами php, мне с головой хватает винды, даже всё реже использую WSL2.

Да и вообще, в последнее время обленился, пишу только код и продумываю логику, серверным окружением занимается команда flant. Надо добавить что то в докер/кубик, написал, сделали.

Лет 20+ назад на вопрос: «что такое линукс?» ответ был один и правильный — ядро, разработанное Линусом. Что сейчас линукс и что вы понимаете под «разобраться с линуксом»?

Обзор книги "Data Science. Наука о данных с нуля", отличная книга для начинающих⁠ ⁠

Обзор книги "Data Science. Наука о данных с нуля", отличная книга для начинающих Программирование, Python, Программист, Обучение, Linux, Профессия, Data Science, Data, Обзор книг, Обзор, Книги, Длиннопост

Всем доброго времени суток! Так как о Data Science мы слышим всё чаще и чаще, предлагаю вам обзор книги, что будет полезна для начинающих.

Публикую обзор книги с моего телеграмм-канала IT-старт t.me/it_begin на книгу «Data Science.Наука о данных для начинающих».

Автор книги Джоэл Грас.

Стоит читать? Да! Почему? Опишу в статье.

Для кого эта книга?

Так как в названии фигурирует «Наука о данных с нуля» — не мудрено, что рассчитана она на тех, кто только начинает свой путь в Data Science 🙂

Обзор книги "Data Science. Наука о данных с нуля", отличная книга для начинающих Программирование, Python, Программист, Обучение, Linux, Профессия, Data Science, Data, Обзор книг, Обзор, Книги, Длиннопост

Рис.1. Начальная страница

Что в самой книге?

Книга сама по себе немаленькая и состоит из 416 страниц.

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

Обзор книги "Data Science. Наука о данных с нуля", отличная книга для начинающих Программирование, Python, Программист, Обучение, Linux, Профессия, Data Science, Data, Обзор книг, Обзор, Книги, Длиннопост

Ширина книги составляет чуть менее 17 см.

Обзор книги "Data Science. Наука о данных с нуля", отличная книга для начинающих Программирование, Python, Программист, Обучение, Linux, Профессия, Data Science, Data, Обзор книг, Обзор, Книги, Длиннопост

Рис.1.2. Размер книги

Высота книги составляет 23 см.

Обзор книги "Data Science. Наука о данных с нуля", отличная книга для начинающих Программирование, Python, Программист, Обучение, Linux, Профессия, Data Science, Data, Обзор книг, Обзор, Книги, Длиннопост

Рис.1.3. Размер книги

Глубина книги составляет около 2 см.

Теперь, для предметного и краткого понимания того, с чем мы сможем ознакомиться в данной книге, предлагаю перейти к её оглавлению.

Обзор книги "Data Science. Наука о данных с нуля", отличная книга для начинающих Программирование, Python, Программист, Обучение, Linux, Профессия, Data Science, Data, Обзор книг, Обзор, Книги, Длиннопост

Обзор книги "Data Science. Наука о данных с нуля", отличная книга для начинающих Программирование, Python, Программист, Обучение, Linux, Профессия, Data Science, Data, Обзор книг, Обзор, Книги, Длиннопост

Обзор книги "Data Science. Наука о данных с нуля", отличная книга для начинающих Программирование, Python, Программист, Обучение, Linux, Профессия, Data Science, Data, Обзор книг, Обзор, Книги, Длиннопост

Обзор книги "Data Science. Наука о данных с нуля", отличная книга для начинающих Программирование, Python, Программист, Обучение, Linux, Профессия, Data Science, Data, Обзор книг, Обзор, Книги, Длиннопост

Глав достаточно много, это радует) Всего глав 27.

Далее предметно и главное кратко постараюсь рассказать о том, что полезного и интересного мы сможем найти в этой книге.

Глава 1. Введение

Обзор книги "Data Science. Наука о данных с нуля", отличная книга для начинающих Программирование, Python, Программист, Обучение, Linux, Профессия, Data Science, Data, Обзор книг, Обзор, Книги, Длиннопост

Первая вводная глава начинается с подробного описания тезиса «Воцарение данных» и ответа на вопрос «Что такое наука о данных?».

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

Более всего понравился пример на странице 26 с Facebook, что думаю примененим ко многим плоскостям исследования, используя практические любые соц. сети.

Также хорошо подчеркнут опыт избирательной компании Барака Обамы в 2012 году и предвыборной компании Дональда Трампа. Предлагаю вам ознакомиться с данным отрывком.

Обзор книги "Data Science. Наука о данных с нуля", отличная книга для начинающих Программирование, Python, Программист, Обучение, Linux, Профессия, Data Science, Data, Обзор книг, Обзор, Книги, Длиннопост

Рис.2.1. Глава 1, страница 26

Глава 2. Интенсивный курс языка Python

Обзор книги "Data Science. Наука о данных с нуля", отличная книга для начинающих Программирование, Python, Программист, Обучение, Linux, Профессия, Data Science, Data, Обзор книг, Обзор, Книги, Длиннопост

В данной главе автор на протяжении 30 страниц крайне в сжатом формате старается познакомить нас с языком программирования Python.

По моему мнению, вследствие того, что объяснение крайне поверхностное и имеет ограничение в виде 30 страниц, объяснено всё плохо. Для тех, кто вовсе не имел опыта работы с Python, данная глава, к сожалению, вряд ли поможет.

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

Если вам необходимо изучить основы Python, советую книгу Тони Гэддиса «Начинаем программировать на Python с нуля» — мой обзор

Обзор книги "Data Science. Наука о данных с нуля", отличная книга для начинающих Программирование, Python, Программист, Обучение, Linux, Профессия, Data Science, Data, Обзор книг, Обзор, Книги, Длиннопост

В конце данной главы на странице 69мы видим две особенности книги.

Первая особенность — в конце каждой последующей главы вы увидите полезную сноску под названием «Для дальнейшего изучения», где автор от себя советует, что можно прочитать дополнительно для более глубокого изучения той или иной темы. Считаю это положительным моментом.

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

Не сказал бы, что это крайне критично, но и приятного в этом также мало, общее впечательние от книги немного портится.

Всё крайне показательно видно на фото выше.

Глава 3. Визуализация данных

Обзор книги "Data Science. Наука о данных с нуля", отличная книга для начинающих Программирование, Python, Программист, Обучение, Linux, Профессия, Data Science, Data, Обзор книг, Обзор, Книги, Длиннопост

Также яркий пример просвечивающих страниц это столбчатый график, что просвечивает на странице 71)

В третьей главе автор кратко рассматривает библиотеку matplotlib,

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

Согласиться с этим или нет? Вопрос сложный и оставлю его открытым на суд аудитории. Интересно ваше мнение по этому вопросу.

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

Завершается глава разделом «Для дальнейшего изучения», где автор оставляет ссылки на такие библиотеки, как seaborn, Altair, D3.js, Bokeh с кратким описанием каждой из них.

Глава 4. Линейная алгебра

Обзор книги "Data Science. Наука о данных с нуля", отличная книга для начинающих Программирование, Python, Программист, Обучение, Linux, Профессия, Data Science, Data, Обзор книг, Обзор, Книги, Длиннопост

В этой главе автор рассматривает векторы и матрицы.

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

Глава 5. Статистика

Обзор книги "Data Science. Наука о данных с нуля", отличная книга для начинающих Программирование, Python, Программист, Обучение, Linux, Профессия, Data Science, Data, Обзор книг, Обзор, Книги, Длиннопост

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

В главе много кода, подробно всё описание, в целом впечатление от главы положительное.

Но также показалось интересным и хорошо запомнилось описание парадокса Симпсона 🙂

Обзор книги "Data Science. Наука о данных с нуля", отличная книга для начинающих Программирование, Python, Программист, Обучение, Linux, Профессия, Data Science, Data, Обзор книг, Обзор, Книги, Длиннопост

Рис.6.1. Глава 5. Парадокс Симпсона

Глава 6. Вероятность

Обзор книги "Data Science. Наука о данных с нуля", отличная книга для начинающих Программирование, Python, Программист, Обучение, Linux, Профессия, Data Science, Data, Обзор книг, Обзор, Книги, Длиннопост

В этой главе рассмотрены:

Центральная предельная теорема

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

Глава 7. Гипотеза и вывод

Обзор книги "Data Science. Наука о данных с нуля", отличная книга для начинающих Программирование, Python, Программист, Обучение, Linux, Профессия, Data Science, Data, Обзор книг, Обзор, Книги, Длиннопост

Хотел бы привести в пример «учаток» на странице 116, в подтверждение того, что без опечаток в этой книге не обошлось)

Теперь же о самой главе.

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

Обзор книги "Data Science. Наука о данных с нуля", отличная книга для начинающих Программирование, Python, Программист, Обучение, Linux, Профессия, Data Science, Data, Обзор книг, Обзор, Книги, Длиннопост

Глава 8. Градиентный спуск

Обзор книги "Data Science. Наука о данных с нуля", отличная книга для начинающих Программирование, Python, Программист, Обучение, Linux, Профессия, Data Science, Data, Обзор книг, Обзор, Книги, Длиннопост

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

Антиградиент — вектор, что своим направлением показывает направление убывает некоторой скалярной величины.

Градиентный спуск — это метод поиска локального максимума или минимума функции с помощью движения вдоль градиента.

Частично и достаточно понятно подход к максимизации функции описан на странице 128. (Рис. 8)

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

Глава 9. Получение данных

Обзор книги "Data Science. Наука о данных с нуля", отличная книга для начинающих Программирование, Python, Программист, Обучение, Linux, Профессия, Data Science, Data, Обзор книг, Обзор, Книги, Длиннопост

Для того, чтобы исследовать данные, нужно сначала их собрать 🙂

В этой главе автор рассматривает способы подачи данных и также их последующее форматирование.

В главе рассматриваются аспекты чтения файлов, импорт информации из всемирной паутины с помощью html5lib, что такое API и как с этим можно работать.

Глава 10. Работа с данными

Обзор книги "Data Science. Наука о данных с нуля", отличная книга для начинающих Программирование, Python, Программист, Обучение, Linux, Профессия, Data Science, Data, Обзор книг, Обзор, Книги, Длиннопост

В 10 главе автор рассматривает непосредственную работу с данными.

Рассматривается разведывательный анализ данных, классы данных, многочисленные размерности.

Мне же понравилось, что автор не забыл про «чистоту» данных.

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

Глава 11. Машинное обучение

В 11 главе автор знакомит нас с машинным обучением.

Так как это обзор книги и он всё же будет немного предвзят с моей стороны по той причине, что у каждого человека есть своё мнение на ту или иную информацию — мне показалась данная глава не для тех, кто начинает с нуля)

Описано в целом по делу всё, но нет уверенности, что люди, ранее не знающие ничего о машинном обучении, после прочтения данной главы всё усвоят.

Глава 12. k ближайших соседей

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

Простыми словами суть метода: посмотри на соседей вокруг, какие из них преобладают, таковым ты и являешься.

Теперь же о том, как всё это описывает автор на примере предсказания результатов на выборах

Глава 12. k ближайших соседей

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

Простыми словами суть метода: посмотри на соседей вокруг, какие из них преобладают, таковым ты и являешься.

Теперь же о том, как всё это описывает автор на примере предсказания результатов на выборах

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

Порадовало, что в данной главе автор не забыл о проклятии размерности

Глава 13. Наивный Байес

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

Порадовало то, что в конце данной главы автор ссылается на статью Пола Грэма «План для спама». Статья 2002 г., но менее интересной от этого не становится.

Глава 14. Простая линейная регрессия

В 14 главе автор рассказывает о простой линейной регрессии, описывает применение градиентного спуска, производит оценивание максимального правдоподобия

Глава 15. Множественная регрессия

В данной главе автором рассматривается множественная регрессия, Расширенные допущения модели наименьших квадратов, подгонка модели и её дальнейшая интерпретация.

Глава достаточно большая и много познавательной информации имеет, но мне более всего понравилась трактовка интерпретации моделей

Глава 16. Логическая регрессия

Логистическая регрессия — статистический метод для анализа набора данных, в котором есть одна или несколько независимых переменных, которые определяют результат. Результат измеряется с помощью дихотомической переменной (в которой есть только два возможных результата). Он используется для прогнозирования двоичного результата (1/0, Да / Нет, Истина / Ложь) с учетом набора независимых переменных.

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

Более всего понравилось рассмотрение гиперплоскости, что разделяет параметрическое пространство

Глава 17. Деревья решений

Одно из толкований дерева решений чаще всего описывает их в качестве представления возможных путей принятия решений.

Автором неплохо показано это на достаточно простом примере.

Глава 18. Нейронные сети

Нейронные сети — то о чём мы всё чаще слышим из средств массовой информации.

В данной книге глава это мягко не особо большая. Всего 10 страниц. Но достаточно информативная. Расскажет о том, что такое нейронные сети, перспептроны, как работают нейронные сети прямого и обратного распространения. Глава интересная!

Глава 19. Глубокое обучение

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

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

Глава 20. Кластеризация

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

Глава 21. Обработка естественного языка

В главе об обработке естественного языка автор рассказывает несколько приемов, такие как: облако слов, N-грамматические языковые модели, грамматики. Много поясняющего кода)

Глава 22. Сетевой анализ

В главе про сетевой анализ автор описывает центральность, ориентированные графы, алгоритм PageRank. Мне данная глава «понималась» крайне тяжело, вследствие чего параллельно приходилось заглядывать в Google.

Глава 23. Рекомендательные системы

Та тема, с которой мы ежедневно встречаемся, используя те или иные стриминговые сервисы, соц. сети, поисковые системы — рекомендации 🙂

Сказали рядом с телефоном «купил собаку» и видите контекстную рекламу о дизайнерских будках на заказ? Это Data Science 🙂

Глава познавательная. Автор повествует о том, как работает рекомендательная система, что лежит в её основе, что такое коллаборативная фильтрация по схожесте пользователей и многое другое.

Глава 24. Базы данных и SQL

Достаточно сжатая глава о SQL. Рассказывается о том, что такое SQL, о основных командах и разобрано всё на примерах. Всё крайне сжато, но для общего представления совсем неплохо. Но всё же советовал бы дополнительно поискать еще источники информации на тему SQL, если хотите понять тему полноценно.

Глава 25. Алгоритм MapReduce

MapReduce — модель для выполнения параллельной обработки крупных наборов данных. Рассматривается работа самого алгоритма, какие его преимущества и чем он может быть полезен и рассмотренно на примере аналази аобновлений новостной ленты. Всё достаточно подробно описано, вопросов после главы остаётся не так уж и много.

Глава 26. Этика данных

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

Глава 27. Идите вперед и займитесь наукой о данных

Заканчивается вся книга главой с призывом идти вперёд и заняться Data Science.

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

Глава по своей сути прощальная между автором и читателем, автор же оставляет ту выжимку необходимых мыслей, что он хочет донести до каждого читателя для продолжения путешествия в мир Data Science.

Теперь, тезисно о плюсах и минусах книги

Плюсы книги:

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

Обзор книги "Data Science. Наука о данных с нуля", отличная книга для начинающих Программирование, Python, Программист, Обучение, Linux, Профессия, Data Science, Data, Обзор книг, Обзор, Книги, Длиннопост

Обзор книги "Data Science. Наука о данных с нуля", отличная книга для начинающих Программирование, Python, Программист, Обучение, Linux, Профессия, Data Science, Data, Обзор книг, Обзор, Книги, Длиннопост

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

2. Книга крайне ёмкая и обширная. О необъятной теме в объятной книге.

Рассматривается и Python и SQL и методы Data Scince, что и как работает. В рамках одной книги это более чем достойно. Да, временами книга может показаться поверхностной, но думаю, это исходя из ограничений книги. Чтобы написать подробный том о каждой теме, для производства книги потребовалось бы куда больше бумаги 🙂

Минусы книги:

1. Прозрачные страницы.

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

Думаю, на всех фотографиях страниц книг, что сделаны мною, это отчетливо видно. Страницы тонкие и просвечивают. Считаю, что это минус.

2.Иногда крайне сжато подаётся материал, что , не имея под рукой поисковика, трудно понять некоторые вещи. Данная оценка субъективна, но мне показалось именно так. Опять же, не уместить всё-всё в одну книгу, понимаю. Но иногда охото отстраниться от цифрового мира, увлечься чтением интересной книги и не прибегать к помощи персонального компьютера)

Подведение итогов по книге:

Могу посоветовать к прочтению данную книгу. Книга даст базовые знания о Data Science, что опять же позволит вам понять, нужно ли оно вам в принципе, интересно ли всё то, что связано с этой сферой.

P.S. К сожалению, в один пост на пикабу можно поместить не более 25 изображений. Мною сделаны фотографии каждой главы, но показать их в рамках ограничений пикабу не могу. Поэтому, если интересно, то можете прочитать полную версию на моем канале.

Благодарю вас за внимание!

Мой канал в телеграмм

Если обзор показался вам интересным, то буду благодарен за подписку на мой

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

Ссылка на бесплатную электронную версию книги https://t.me/it_begin/461

Также публикую обзоры книг и интервью на сайте https://russia-it.ru

Ответ trdm в «Яндекс и "Цифровые профессии"»⁠ ⁠

Предложу своё видение материалов для начинающего python-разработчика на 2022 год. Есть общая часть для любого backend developer, она же годится для старта в data science и devops.

Сразу скажу, что 80% успеха в изучении — это самостоятельная работа. Ни один курс или преподаватель не сделает из вас специалиста, это доступно только вам. Помочь может размеренное изучение — 1 час изучения каждый день куда эффективнее, чем 10 часов в воскресенье.

Подборка бесплатного материала по python:

0. При погружении в новую область знаний сразу возникает вопрос, куда копать и с чего начать. Ответ можно найти в книгах, обзорных статьях, видео и других источниках. Одним из вариантов визуализации подобных знаний является roadmap. Это такая «дорожная карта» с пометками, что следует освоить. Самым популярным проектом является roadmap.sh. В их github 220к звёзд, настолько это общее место для индустрии. Прописаны roadmap для самых разных специализаций и технологий, в том числе по python. Недавно к каждому навыку они стали прикреплять пачку статей и видео из изучения. Roadmap позволяет выявить пробелы в текущих знаниях и наметить актуальные вопросы для изучения.

1. Классическим хорошим курсом для начала из бесплатных считаются Поколения Python на stepik для начинающих и для продвинутых от школы BEEGEEK. Первые два курса (для начинающих и для продвинутых) бесплатные, третий (для профессионалов) платный, стоит в районе 3к. В каждом курсе порядка 200+ тестов и

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

2. Дополнить текст можно годными лекциями Тимофей Хирьянова из МФТИ.

3. Python: основы и применение на stepik. Тут пространства имён, классы, наследование, исключения, итераторы и генераторы, файловая система, лямбды, pep8, регулярки, немного про http и API.

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

5. Надо освоить git, достаточно 4 глав из книги Pro Git. Сейчас git без вариантов, у него 97% рынка. Не писать код без локального git-репозитория вообще. Использовать серверный github/gitlab по желанию.

6. Дополнительно можно практиковаться на codewars и leetcode. Берём и решаем по задаче в день. Конкретно leetcode популярен при подготовке к собеседованиям.

7. Для общего развития есть крутой вводный курс в computer science CS50 от Гарварда. Он большой и на английском, начинается с Си и алгоритмов, а дальше про память, структуры данных, python, SQL, HTML, CSS, javascript и даже Flask. Такая сборная солянка. Есть видео-лекции, лабораторные работы с заданиями и всё такое. Говорят, что яндекс.браузер умеет на лету всё переводить, но я не пользовался.

8. Связанный с предыдущим пункт. Без английского нынче никуда. Кто посоветует, как тут можно начать? Мне кажется, что нужны основы языка (база типа грамматика по любому учебнику), а потом много практики уровня «перевод со словарём». Словарный запас всему голова.

9. В современном проекта никуда без тестов. Для python лидером является pytest, могу порекомендовать гайд Python Testing with pytest. Просто, Быстро, Эффективно и Масштабируемо

10. Без linux никуда, все сервера работают на linux. Кто знает хороший гайд для начинающего? Легко сказать «поставь ubuntu и разберись», но это сложно.

11. Без docker тоже никуда. Мне нравится огромный гайд Introduction to Containers в виде 829-страничной презентации. Тут и теория, и практика. Для углубления знаний есть Best Practices.

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

Из книг для более глубокого понимания внутренностей Python рекомендую Лутца (двухтомник, нужно свежее 5 издание 2019-2020 годов). Многие жалуются, что книга тяжёлая для начинающего. Крутой книгой для повышения уровня я считаю Python. К вершинам мастерства Лучано Рамальо (в 2022 году вышло второе издание, лучше его).

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

Постоянным источником материалов может быть телеграмм-канал devfm, где мы разбираем разные нюансы из жизни разработчика на Python и не только. Зачем нужен докер, что такое WSGI, чему стоит научиться в вузе, шаблоны проектирования микросервисов с недавнего highload++. По пятницам у нас культурный код с фильмами, книгами и всяким разным.

Related Posts