Sou programador PHP / Python aprendendo Java e C # (. NET).
Meu sistema operacional principal de desenvolvimento é o Windows 7, mas eu usei o Linux e atualmente inicializo com o Ubuntu. Meu conhecimento sobre Linux, no entanto, é bastante limitado. Eu posso trabalhar com a linha de comando em tarefas simples, mas é praticamente isso. Não faço scripts de shell e não conheço muitos comandos importantes.
Meus interesses são desenvolvimento web, aplicativos móveis e talvez algumas coisas incorporadas no futuro. As habilidades de script de shell serão úteis para esses interesses e, em caso afirmativo, como?
web-development
linux
Maxtor
fonte
fonte
Respostas:
Se estou codificando um aplicativo do Windows (ou um aplicativo para Mac), por que preciso conhecer o Linux? Um mecânico Ford deveria conhecer os tratores John Deer? Tudo depende do que você está fazendo, profissionalmente ou do seu próprio tempo de "hobby".
Agora, não dói saber disso. De fato, acredito firmemente em "quanto mais você souber, melhor será".
fonte
Se você é um programador PHP, definitivamente deve conhecer o Linux. O PHP foi criado no Linux e o PHP é uma parte importante da pilha LAMP: Linux + Apache + MySQL + PHP. Mesmo que você tenha a oportunidade de desenvolver para servidores Windows agora, seu próximo trabalho provavelmente o desenvolverá para servidores Linux, e você precisará estar familiarizado com o ambiente Linux para que não esteja enfrentando problemas específicos do Windows do PHP.
No espaço para aplicativos móveis, saber que o Linux (infelizmente) terá pouca relevância para os ambientes para os quais você está desenvolvendo. O sistema operacional do iPhone não tem nada a ver com o Linux, e o Android o protege tão fortemente de uma máquina virtual que você nunca saberá que existe o Linux abaixo de você. Você pode programar para Linux no Meego ou Maemo, mas esses nem sequer têm a popularidade do iPhone e do Android.
No espaço incorporado, você precisa conhecer o Linux. O Windows incorporado é raro, mas o Linux incorporado é bastante comum. (Obviamente, a programação incorporada bare-metal também é bastante comum, portanto depende de onde você deseja ir.)
Se você aprender o Linux em profundidade ao longo de vários anos, terá algum nível de entendimento de todas as partes do sistema, desde o kernel, até o processo de inicialização, até a linha de comando e a GUI.
fonte
Há um certo grau de 80/20 de pensamento que você pode aplicar aqui. Na verdade, não leva muito tempo para aprender o básico sobre como o Linux funciona e os principais comandos que você precisa conhecer no Shell. Da mesma forma, a configuração básica do Apache é muito conveniente, se você precisar. Você não precisa dedicar anos de sua vida a isso, mas certamente vale a pena aprender o suficiente sobre o básico que você poderia obter executando seu próprio servidor, se fosse necessário.
É uma linha tênue embora. Se você não tomar cuidado, poderá descobrir rapidamente que o Windows começa a realmente te irritar à medida que você se acostuma com o que o Linux oferece ...
fonte
Você não precisa aprender, mas isso o tornará um programador melhor. Você aprenderá como fazer as coisas de uma maneira diferente da maneira do Windows. O uso de qualquer um dos shells * eventualmente levará ao script e ao uso de expressões regulares, automatizando instalações, analisando arquivos grandes etc.
Não me importo em ser ridicularizado por não saber, por mais que me pareça legal, toda vez que aprendo a fazer outra coisa no Linux. Ele está cada vez melhor e melhor a cada novo bit.
O Powershell tem muito que vem do mundo nix, eles finalmente perceberam que, para ter automação, você precisa de um bom console (parabéns à MS por isso). Tanto o Perl quanto o Python parecem ser uma mistura de C, bash, sed, awk, todos integrados a uma coisa boa à sua maneira.
No mínimo, você terá mais alguma coisa para colocar em seu currículo, mas isso realmente não é a melhor coisa que você obterá com isso.
Tenho certeza que você encontrará por conta própria coisas que farão você ir: "Uau, isso é tão legal!" O primeiro foi "matar" o Apache usando um sinal USR1 para recarregar um novo arquivo de configuração e reiniciar os logs, sem parar o serviço e continuar recebendo conexões. Também ssh e rsync, que pena que a MS não os portaria está além de mim.
fonte
Não vai te machucar. Mesmo em uma empresa toda da Microsoft, é cada vez mais provável que você tenha pelo menos alguns servidores Linux. O Stack Overflow, por exemplo, usa Linux para seus balanceadores de carga. Isto é especialmente verdade quando a virtualização entra em jogo.
Como programador, você pode fazer melhor considerando se familiarizar com o POSIX, não apenas uma única variante do tipo UNIX. Embora ele tenha algumas peculiaridades, representa muito esforço em uma tentativa incrível de estabelecer uma interface padrão que seja (principalmente) portátil em todos os ambientes UNIX. Observe que muitos sistemas semelhantes ao UNIX não são 100% "posixly correct", mas é um bom ponto de partida.
Como apenas um usuário casual, só posso sugerir que é divertido bisbilhotar algo novo e aprender coisas novas. Eu acho que é possível ser um 'guru' com todos os sistemas operacionais em que se possa pensar, mas não acho que esse seja o esforço mais útil para um programador. Ainda assim, um bom conhecimento de coisas que você pode encontrar é bom. E, a partir da sua pergunta, você provavelmente encontrará o Linux no futuro.
fonte
Sim, mas você não parece precisar estudá-lo ativamente.
Para mim, minha familiaridade com o linux desenvolvida através do uso do meu uso como meu sistema operacional de trabalho. Peça por peça, aprendi as coisas que precisava saber quando elas surgiram e continuo a fazê-lo. A Internet está cheia de recursos sobre como fazer qualquer coisa que você precise para escrever o Linux, então, em vez disso, sugiro que você seja bom em ler páginas de manual e documentação e deixe seu cérebro absorver (e esquecer) os detalhes de como realizar tarefas específicas à medida que avança .
Dito isto, certamente existem alguns comandos dos quais você será evitado no mundo linux por não ter uma compreensão básica.
fonte
Nos últimos quatro de cinco trabalhos em que estive, os desenvolvedores e o controle de qualidade (pelo menos começaram) trabalharam no Windows, mas os servidores de teste e produção eram Linux / UNIX. Todos eles precisavam conhecer pelo menos uma pequena quantidade de UNIX para poder acessar os servidores de teste e examinar os logs ou depurar um programa em execução no ambiente 'real'. Muito pouco desenvolvimento é realmente destinado ao Windows nas empresas que estiveram nos últimos 20 anos.
Fazendo eco aos outros aqui, muito pouco pode ser "necessário" para o seu trabalho ou carreira, mas ajudará a entender o seu próprio trabalho, os benefícios e as limitações do idioma ou sistema que você está usando.
fonte
IMHO, para um programador competente que conhece Linux / Unix, seria um grande trampolim para a filosofia Unix ainda mais importante
fonte
Quando participei do curso de Ciência da Computação de Sistemas Operacionais, estudamos sistemas operacionais baseados em UNIX e fizemos nosso trabalho no RedHat porque era de código aberto e porque podíamos ver o código e porque podíamos fazer coisas com ele que simplesmente não podiam ser feitas em Janelas.
Eu diria que, se você aprender os fundamentos de como os sistemas operacionais funcionam, você provavelmente deve ter alguma experiência com o Linux, mesmo que seja apenas em um ambiente acadêmico.
Acabei de voltar ao Windows 7 a partir do Ubuntu 10.04. Sinto-me um pouco perdido sem o grep e algumas das outras ferramentas de linha de comando. Prefiro desenvolver em um ambiente Linux porque sinto que o sistema é mais propício para usuários avançados e desenvolvedores.
Conheço realmente bons programadores .NET que saíram da faculdade que não sabem nada sobre Linux, por isso não é um requisito, mas eu esperaria que alguém com mais de 5 anos de experiência em programação fosse exposto ao Linux de uma forma ou de outra em uma tempo em sua carreira.
Você tem que ser o juiz daquilo em que se concentra; Contudo. Se atualmente existe um caminho para você desenvolver aplicativos móveis, e saber que o Linux não é realmente um requisito, talvez você se concentre em aprender mais sobre os SDKs móveis, em vez do Linux. Existe uma desvantagem para tudo, e parece que você tem alguma exposição básica ao Linux para onde você pode aprender mais sobre isso, se necessário.
fonte
Algum dos seguintes itens o incomoda?
Existem inúmeras oportunidades de trabalho e planos de carreira que você ainda pode buscar. Não estou dizendo que nenhum desses 'deveria' incomodá-lo. Seja honesto consigo mesmo e fique de olho na indústria em geral e no Linux em particular para ver se seus caminhos podem se cruzar. Sem dúvida, você pode descobrir quando chegar a hora. Quem sabe, um projeto Linux pode aparecer no seu caminho amanhã.
fonte
Eu sempre codifiquei no ambiente Windows. Para mim, o Linux costumava ser outro SO que eu teria como backup caso meu Windows tivesse problemas. Eu só conhecia comandos básicos e tudo o que tentei fazer parecia difícil. Mas agora no meu trabalho atual como desenvolvedor web, todos usamos o Linux, então sou forçado a aprendê-lo e usá-lo para tudo. Quanto mais eu uso, mais gosto e acho que é muito mais produtivo e flexível. Lamento não ter mexido mais com o Linux antes. Agora só estou alcançando.
Então, sim, você deve aprender sempre que puder.
fonte
O Linux é uma ferramenta na sua caixa de ferramentas da mesma maneira que o Windows é "apenas" uma ferramenta. Ser fluente em ambos permite que você faça algumas coisas melhor, mas é irrelevante para outras.
Pessoalmente, achei o Linux na forma do Ubuntu muito útil porque me permite criar e manter facilmente coisas como servidor de banco de dados, servidor de correio, servidor de teste e muito mais em máquinas virtuais sem ter que considerar os custos de licença (além de as versões do servidor requerem menos recursos que o Windows). Se você não fizer nenhuma dessas coisas, não acho que o Linux será importante para você.
fonte
Saiba o suficiente que, se você pretende implantar em um sistema operacional específico, pode garantir que seu aplicativo funcione, mas, caso contrário ... você não precisa saber nada / tudo.
fonte
A menos que eu esteja usando .NET, prefiro usar Linux. A pilha LAMP me parece mais natural do que a WAMP.
Definitivamente, eu recomendaria aprendê-lo se você tiver algum interesse em aprender algo que não seja o material da Microsoft.
fonte