Habilidades necessárias para um bom trabalho no Linux [fechado]

14

Estou trabalhando como engenheiro de TI em uma empresa de renome na Índia. O problema é que, embora me disseram que receberiam trabalho no Linux, fui obrigado a trabalhar no Java e no Windows. Fico desconfortável com Java e odeio o Windows.

Comecei a aprender Python sozinho, mas é difícil dar tempo suficiente devido ao trabalho em andamento. Francamente, eu não sou um programador especializado. Eu tentei muito entrar no desenvolvimento do kernel Linux durante meus dias de faculdade, mas percebi que não sou um bom programador. Então, decidi fazer o RHCE e ir para o gerenciamento de servidores.

O que eu quero saber é que conjunto de habilidades é necessário para conseguir um emprego em projetos Linux. Em agosto de 2011, planejo fazer uma pausa no trabalho se esta empresa não me der um bom projeto Linux. Que habilidades devo adquirir para conseguir um bom emprego no Linux. Uma coisa que decidi fazer durante esse intervalo é buscar o RHCE. Depois de ler o primeiro dos três livros do curso RHCE, estou confiante de que posso navegar por ele.

As contribuições de especialistas neste site são altamente valiosas. Meus interesses técnicos no momento são - Programação Python, programação C / C ++, Linux Server Management e Cloud Computing. Mas o diploma de faculdade que tenho não é suficiente para entrar em uma boa companhia. O conhecimento prático que tenho não é de nível especializado. E a experiência de trabalho que tenho é simplesmente patética.

PS - Estou extremamente frustrado no meu trabalho atual. Embora eu ache que quase não há necessidade de mencionar isso.

Dharmit Shah
fonte

Respostas:

12

Isso já foi sugerido várias vezes antes neste contexto, mas ... eu sugeriria obter alguma experiência em um projeto de software livre. Isso fica bem no seu currículo, é uma experiência valiosa trabalhando com pessoas boas e é útil para contatos. As pessoas regularmente conseguem empregos através de projetos de software livre. Minha impressão (que pode estar incorreta) é também que não é comum os indianos se envolverem em projetos de software livre e, se for verdade, isso ajudaria você a se destacar.

Você diz que está interessado em Python. Existem muitos projetos de software livre envolvendo Python, com vários níveis de barreira à entrada. Uma que eu conheço é o Mercurial, onde a barreira de entrada não é muito alta, a comunidade é amigável, os programadores são talentosos e há oportunidades de participação. E todo mundo usa controle de versão. Você pode pegar algum bug pequeno e / ou recurso de lista de desejos e trabalhar nele.

Outros projetos no topo da minha cabeça são Django, Pylons, SQLAlchemy, embora eu ache que o Mercurial seja tão bom ou melhor do que qualquer um deles no ponto de vista da oportunidade de participação. Outra possibilidade é o trabalho de distribuição da comunidade Linux, por exemplo. com o Debian, que também lhe dará a oportunidade de trabalhar com pessoas talentosas. Também é bom para fazer contatos, etc. Além disso, se você estiver interessado em C ++, os projetos apt e aptitude no Debian são importantes e severamente sub-gerenciados. Em geral, a maioria dos projetos de software livre não tem mão de obra suficiente, principalmente os menores, e está ansiosa por assistência.

desconhecidos
fonte
8

Você tem vários caminhos que oferecem diferentes oportunidades de trabalho

  • coisas baseadas na web
  • projetos nativos
  • desenvolvimento de plataforma cruzada
  • portando para Linux

Em geral, esteja preparado para usar outros Unixes junto com o Linux (embora o Linux esteja totalmente dominando no momento).

Baseado na Web

Praticamente qualquer coisa baseada na Web que não use .NET é coisa de Linux (ou multiplataforma). Você pode se concentrar em qualquer uma das linguagens amplamente usadas: PHP, Python, Perl, Ruby

Projetos nativos

Estes são principalmente trabalhos de computação de código aberto ou de alto desempenho.

Na Europa, é comum contratar um programador em tempo integral para modificar um projeto de código aberto (e fornecer suporte) em vez de pagar taxas insanas de licenciamento por produtos comerciais que não cabem de qualquer maneira.

A área de alto desempenho é uma espécie de Linux agora, portanto, os trabalhos nessa área provavelmente levarão ao Linux.

Essa área é muito pesada em C, com um pouco de C ++ e muito Java.

Desenvolvimento multiplataforma

Tipo de área ímpar. Existem algumas empresas que fornecem software multiplataforma, algumas possuem equipes especiais para plataformas específicas, outras possuem equipes multiplataforma.

Mas muitas empresas simplesmente usam Java (não que isso ajude muito).

Portando para Linux

Esses trabalhos aparecem periodicamente. Alguma empresa vê um mercado aberto e decide expandir. Eu, pessoalmente, fugiria de tais empregos.

Let_Me_Be
fonte
+1 para um comentário interessante. gostaria de expandir o que há de tão ruim em portar empregos?
Faheem Mitha 11/03/11
1
@Faheem Bem, portar trabalhos geralmente significa que você acaba com uma base de código terrível, cheia de extensões não padrão e violações padrão (que parecem funcionar devido a algum milagre da MSVC). Normalmente, partes do código são escritas por pessoas afastadas da empresa e cheias de vários bugs que aparecerão durante a portabilidade. Isso também pode acontecer em outras áreas, mas não é tão comum (projetos de código aberto tendem a ter bases de código bastante terríveis, mas não existem muitos projetos grandes com história longa e comunidade de desenvolvedores de pequeno a médio porte).
Let_Me_Be
Entendo. você está se referindo principalmente às bases de código interno / proprietário acima? MSVC, o que significa que as bases de código C ++ são escritas no Visual C ++ e, então, desejam portá-lo para o gcc?
Faheem Mitha 11/03/11
O @Faheem C e C ++ sofrem menos, as linguagens com script. O principal problema é que, ao portar, você tocará em um código que funciona "aqui e agora" e geralmente descobrirá erros nesse código.
Let_Me_Be
4

Um projeto que possui um número muito alto de programadores fazendo trabalho remunerado é o GNOME. Se você for lá e fizer um trabalho incrível, provavelmente será abordado por alguém. O maior deles é provavelmente o Red Hat (Fedora), e outros que já vi incluem Canonical (Ubuntu), Novell (SuSE), várias empresas iniciantes ou até a fundação GNOME. Ah, e há muito uso de Python no projeto, e a contagem de LOC provavelmente fica atrás apenas de C.

O planeta do projeto é normalmente onde essas 'empresas GNOME' relatam suas ações. Dar uma olhada.

Tshepang
fonte
1

Eu fui feito para trabalhar em Java e Windows.

Boas notícias, parece que você está escrevendo / trabalhando com código, pelo menos.

Se eu estivesse no seu lugar, acho que adotaria uma abordagem pragmática e aprenderia a portar esse aplicativo Java para o Linux (quando o chefe não estiver olhando).

É um bom exercício tornar um aplicativo portátil.

Estou desconfortável com Java

Não fique, no mundo Linux você usa a melhor linguagem para a tarefa. (Melhor linguagem livre, pelo menos).

Portanto, você precisa ter certeza de que está confortável com Java, C ++ / Qt, C, python, php, perl, etc, etc.

Johan
fonte
Obrigado. Bem, escrever todo o meu perfil de trabalho é ilógico, por isso não o mencionei completamente. aqui. Mas lembre-se da última linha da sua resposta.
Dharmit