Я программист на PHP / Python, изучаю Java и C # (.NET).
Моя основная операционная система - Windows 7, но я использую Linux, и в настоящее время я использую Ubuntu с двойной загрузкой. Мои знания Linux, однако, довольно ограничены. Я могу работать с командной строкой над простыми задачами, но это почти все. Я не делаю сценариев оболочки и не знаю много важных команд.
Я заинтересован в веб-разработке, мобильных приложениях и, возможно, в будущем. Будут ли полезны навыки сценариев оболочки для этих интересов, и если да, то как?
web-development
linux
Maxtor
источник
источник
Ответы:
Если я пишу приложение для Windows (или приложение для Mac), зачем мне знать Linux? Должен ли механик Ford знать тракторы John Deer? Все зависит от того, что вы делаете, профессионально или от своего «хобби».
Теперь не больно это знать. На самом деле, я твердо верю в то, что "чем больше знаешь, тем лучше для тебя"
источник
Если вы программист PHP, вы обязательно должны знать Linux. PHP был создан на Linux, и PHP является важной частью стека LAMP: Linux + Apache + MySQL + PHP. Даже если у вас есть возможность разрабатывать для серверов Windows сейчас, ваша следующая работа, вероятно, будет посвящена разработке для серверов Linux, и вам нужно быть знакомым со средой Linux, чтобы не сталкиваться с определенными для Windows 'isms PHP.
В пространстве мобильных приложений знание того, что Linux (к сожалению) будет иметь мало отношения к средам, для которых вы разрабатываете. iPhone OS не имеет ничего общего с Linux, а Android настолько сильно ограждает вас от виртуальной машины, что вы никогда не узнаете, что Linux под вами. Вы можете программировать для Linux на Meego или Maemo, но они не имеют ничего общего с популярностью iPhone и Android.
Во встроенном пространстве вы должны знать Linux. Встроенные Windows встречаются редко, но встроенные Linux довольно распространены. (Конечно, встроенное программирование на голом металле также довольно распространено, поэтому оно зависит от того, куда вы хотите пойти.)
Если вы будете изучать Linux в течение нескольких лет, у вас будет некоторый уровень понимания каждой части системы от ядра, через процесс загрузки, вплоть до командной строки и GUI.
источник
Существует определенная степень мышления 80/20, которую вы можете подать здесь. На самом деле не требуется много времени, чтобы изучить основы работы Linux и основные команды, которые вам нужно знать из командной консоли. Аналогично, базовая конфигурация Apache очень удобна, если вам это нужно. Вам не нужно посвящать этому годы своей жизни, но, безусловно, стоит изучить достаточно основ, которые вы могли бы получить, запустив собственный сервер, если бы вам пришлось.
Это тонкая грань, хотя. Если вы не будете осторожны, вы сможете быстро обнаружить, что Windows начинает действительно отмечать вас, когда вы привыкаете к тому, что предлагает Linux ...
источник
Вам не нужно изучать это, но это сделает вас лучшим программистом. Вы узнаете, как делать вещи иначе, чем Windows. Использование любых оболочек * sh в конечном итоге приведет к созданию сценариев и использованию регулярных выражений, автоматизации установок, синтаксическому анализу больших файлов и т. Д.
Меня не волнует, что меня не знают, так же как меня волнует то, как это круто каждый раз, когда я учусь делать что-то еще в Linux. Это становится все лучше и лучше с каждым новым битом.
У Powershell есть многое из мира nix, и они наконец-то поняли, что для автоматизации вам нужна хорошая консоль (спасибо MS за это). И Perl, и Python, похоже, представляют собой смесь C, bash, sed, awk, все по-своему хорошо слиты воедино.
По крайней мере, у вас будет что-то еще, что вы можете добавить в свое резюме, но на самом деле это не лучшая вещь, которую вы получите из этого.
Я уверен, что вы сами найдете вещи, которые заставят вас уйти: «Вау, это так круто!» Первым делом я смог «убить» Apache с помощью сигнала USR1, чтобы он перезагрузил новый файл конфигурации и перезапустил журналы, не останавливая службу и не продолжая получать соединения. Также ssh и rsync, черт возьми, почему бы MS портировать их не по мне.
источник
Это не повредит тебе. Даже во всей компании Microsoft становится все более вероятным, что вы столкнетесь хотя бы с несколькими серверами Linux. Например, Stack Overflow использует Linux для балансировки нагрузки. Это особенно верно, когда виртуализация вступает в игру.
Как программист, вы могли бы добиться большего, подумав о знакомстве с POSIX, а не с одним UNIX-подобным вариантом. Несмотря на то, что у него есть некоторые странности, он представляет собой огромные усилия, приложенные к невероятной попытке установить стандартный интерфейс, который (в основном) переносим во всех средах, подобных UNIX. Обратите внимание, что многие UNIX-подобные системы не являются на 100% «правильными», но это хорошая отправная точка.
Как обычный пользователь, я могу только предположить, что это интересно - покопаться в чем-то новом и узнать что-то новое. Я думаю, что можно быть «гуру» в каждой операционной системе, о которой только можно подумать, но я не думаю, что это самое полезное занятие для программиста. Тем не менее, практические знания о том, с чем вы можете столкнуться, хороши ... и из вашего вопроса вы, вероятно, столкнетесь с Linux в будущем.
источник
Да, но вы не говорите, что вам нужно активно изучать это.
Для меня мое знакомство с Linux развилось благодаря использованию его в качестве моей рабочей ОС. Шаг за шагом я изучал то, что мне нужно было знать, по мере их появления, и продолжаю это делать. Интернет полон ресурсов о том, как делать практически все, что вам нужно для Linux, поэтому вместо этого я бы посоветовал вам научиться читать справочные страницы и документацию и позволить своему мозгу впитывать (и забывать) детали того, как этого добиться. конкретные задачи, как вы идете .
При этом, безусловно, есть несколько команд, от которых вы будете избегать мира linux за отсутствие базовых знаний.
источник
В последних четырех из пяти работ, в которых я работал, разработчики и QA (по крайней мере, начали) работали в Windows, но тестовые и рабочие серверы были Linux / UNIX. Всем им нужно было знать хотя бы небольшое количество UNIX, чтобы хотя бы иметь возможность попасть на тестовые серверы и посмотреть журналы или отладить работающую программу в «реальной» среде. Очень мало разработок на самом деле предназначено для Windows в компаниях, которые были в последние 20 лет.
Повторяя это здесь, очень мало может быть «необходимо» для вашей работы или карьеры, но это поможет вам понять вашу собственную работу, преимущества и ограничения языка или системы, которую вы используете.
источник
ИМХО, для компетентного программиста, знающего Linux / Unix, был бы большой шаг к еще более важной философии Unix
источник
Когда я проходил курс «Компьютерные науки по операционным системам», мы изучали операционные системы на основе UNIX и работали над RedHat, потому что он был с открытым исходным кодом и потому, что мы могли видеть код и потому, что мы могли делать с ним то, что просто невозможно было сделать в Окна.
Я бы сказал, что если вы собираетесь изучать основы того, как работают операционные системы, вам, вероятно, следует иметь некоторый опыт работы с Linux, даже если он только в академической среде.
Я только что вернулся на Windows 7 с Ubuntu 10.04. Я чувствую себя немного потерянным без grep и некоторых других инструментов командной строки. Я предпочитаю развиваться в среде Linux, потому что я чувствую, что система более благоприятна для опытных пользователей и разработчиков.
Я знаю действительно хороших программистов .NET, которые вышли из колледжа и ничего не знают о Linux, так что это не является обязательным требованием, но я бы ожидал, что любой, кто имеет опыт программирования более 5 лет, знакомится с Linux в той или иной форме в одном время в их карьере.
Вы должны быть судьей того, на чем вы сосредоточены; тем не мение. Если в настоящее время есть путь для разработки мобильных приложений и знание Linux на самом деле не является обязательным требованием, то, возможно, вы сосредоточитесь на изучении мобильного SDK вместо Linux. Есть компромисс для всего, и, похоже, вы знакомы с Linux, где вы можете узнать о нем больше, если потребуется.
источник
Вас что-нибудь беспокоит?
Есть множество возможностей трудоустройства и карьерного роста, которые вы все еще можете найти. Я не говорю, что любое из этих «должно» беспокоить вас. Просто будьте честны с самим собой и следите за отраслью в целом и Linux в частности, чтобы увидеть, могут ли ваши пути пересекаться. Без сомнения, вы можете понять это, когда придет время. Кто знает, проект Linux может появиться завтра.
источник
Я всегда кодировал в среде Windows. Для меня Linux просто был другой ОС, которую я бы использовал в качестве резервной копии на случай, если у меня возникнут проблемы с Windows. Я знал только основные команды, и все, что я пытался сделать на нем, казалось сложным. Но сейчас, когда я работаю веб-разработчиком, мы все используем Linux, поэтому я вынужден изучать его и использовать его для всего. Чем больше я им пользуюсь, тем больше мне это нравится, и я думаю, что это намного продуктивнее и гибче. Я сожалею, что не перепутал больше с Linux раньше. Теперь я просто догоняю.
Так что да, вы должны научиться этому, когда сможете.
источник
Linux - это инструмент в вашем наборе инструментов, точно так же, как Windows - «просто» инструмент. Свободное владение обоими позволяет вам делать некоторые вещи лучше, но не имеет значения для других вещей.
Лично я нашел Linux в форме Ubuntu очень полезным, потому что он позволяет мне легко создавать и поддерживать такие вещи, как сервер базы данных, почтовый сервер, тестовый веб-сервер и многое другое в виртуальных машинах, без учета стоимости лицензии (плюс версии сервера требуют меньше ресурсов, чем Windows). Если вы не сделаете ничего из этого, я не думаю, что Linux будет иметь для вас значение.
источник
Знайте достаточно, что если вы намереваетесь выполнить развертывание в определенной ОС, вы можете убедиться, что ваше приложение работает на нем, но в противном случае ... вам не нужно ничего знать / все.
источник
Если я не занимаюсь .NET, я предпочитаю использовать Linux. Стек LAMP кажется мне более естественным, чем WAMP.
Я определенно рекомендую изучить его, если у вас есть какой-либо интерес к изучению чего-то другого, кроме материала Microsoft.
источник