Compétences requises pour un bon travail Linux [fermé]

14

Je travaille en tant qu'ingénieur informatique dans une entreprise réputée en Inde. Le problème est que même si on m'a dit qu'on me donnerait du travail sur Linux, je suis obligé de travailler sur Java et Windows. Je suis mal à l'aise avec Java et je déteste Windows.

J'ai commencé à apprendre Python par moi-même, mais il est difficile de lui donner suffisamment de temps en raison du travail en cours. Franchement, je ne suis pas un codeur expert. J'ai beaucoup essayé de me lancer dans le développement du noyau Linux pendant mes études universitaires mais j'ai réalisé que je ne suis pas un bon codeur. J'ai donc décidé de faire RHCE et d'aller pour la gestion des serveurs.

Ce que je veux savoir, c'est quel ensemble de compétences est requis pour obtenir un emploi dans des projets Linux. En août 2011, je prévois de prendre une pause si cette entreprise ne me donne pas un bon projet Linux. Quelles compétences dois-je acquérir pour obtenir un bon emploi Linux. Une chose que j'ai décidé de faire pendant cette pause est de poursuivre RHCE. Après avoir lu le premier de la série de trois livres de cours RHCE, je suis convaincu que je peux y naviguer.

Les contributions d'experts sur ce site sont très précieuses. Mes intérêts techniques en ce moment sont - Programmation Python, programmation C / C ++, Linux Server Management et Cloud Computing. Mais le diplôme universitaire que j'ai n'est en aucun cas suffisant pour entrer dans une bonne entreprise. Les connaissances pratiques que j'ai ne sont pas d'un niveau expert. Et l'expérience de travail que j'ai est tout simplement pathétique.

PS - Je suis extrêmement frustré dans mon travail actuel. Bien que je pense qu'il n'y a presque pas besoin de le mentionner.

Dharmit Shah
la source

Réponses:

12

Cela a été suggéré à plusieurs reprises auparavant dans ce contexte, mais ... Je suggère d'acquérir de l'expérience dans un projet de logiciel libre. Cela semble bien sur votre CV, c'est une expérience précieuse de travailler avec de bonnes personnes et est utile pour les contacts. Les gens obtiennent régulièrement des emplois grâce à des projets de logiciels libres. Mon impression (qui peut être incorrecte) est également qu'il n'est pas courant que les Indiens s'impliquent dans des projets de logiciels libres, et si c'est vrai, cela vous aiderait à vous démarquer.

Vous dites que vous êtes intéressé par Python. Il existe de nombreux projets de logiciels libres impliquant Python, avec différents niveaux de barrière à l'entrée. Mercurial est un domaine que je connais bien, où la barrière à l'entrée n'est pas trop élevée, la communauté est sympathique, les programmeurs sont talentueux et il existe des possibilités de participation. Et tout le monde utilise le contrôle de version. Vous pouvez prendre un petit bug et / ou une fonction de liste de souhaits et travailler dessus.

Les autres projets qui me viennent à l'esprit sont Django, Pylons, SQLAlchemy, bien que je pense que Mercurial soit aussi bon ou meilleur que n'importe lequel de ceux du POV d'opportunité de participation. Une autre possibilité est le travail de distribution de la communauté Linux, par exemple. avec Debian, qui vous donnera également l'opportunité de travailler avec des gens talentueux. Aussi bon pour établir des contacts, etc. Aussi, si vous êtes intéressé par C ++, les projets apt et aptitude dans Debian sont importants et gravement sous-employés. En général, la plupart des projets de logiciels libres n'ont pas assez de main-d'œuvre, en particulier les plus petits, et sont impatients de recevoir de l'aide.

inconnu
la source
8

Vous avez plusieurs parcours qui offrent différentes opportunités d'emploi

  • trucs sur le web
  • projets natifs
  • développement multiplateforme
  • portage sous Linux

En général, préparez-vous à utiliser d'autres Unix avec Linux (bien que Linux domine totalement en ce moment).

Basé sur le Web

Presque tout ce qui est basé sur le Web et qui n'utilise pas .NET est un truc Linux (ou multiplateforme). Vous pouvez vous concentrer sur l'un des langages les plus utilisés: PHP, Python, Perl, Ruby

Projets natifs

Il s'agit principalement de tâches informatiques open source ou à hautes performances.

En Europe, il est assez courant d'embaucher un programmeur à temps plein pour modifier un projet open source (et fournir un support) au lieu de payer des frais de licence insensés pour un produit commercial qui ne conviendra pas de toute façon.

Le domaine des hautes performances n'est en quelque sorte que Linux pour le moment, donc les travaux dans ce domaine mèneront très probablement à Linux.

Cette zone est très lourde en C, avec un peu de C ++ et beaucoup de Java.

Développement multiplateforme

Type de zone étrange. Certaines sociétés fournissent des logiciels multiplateformes, certaines ont des équipes spéciales pour des plates-formes spécifiques, d'autres ont des équipes multiplateformes.

Mais de nombreuses entreprises utilisent simplement Java (pas que cela aide beaucoup).

Portage sous Linux

Ces emplois apparaissent de temps en temps. Une entreprise voit un marché ouvert et décide de se développer. Personnellement, je fuirais de tels emplois.

Let_Me_Be
la source
+1 pour un commentaire intéressant. voulez-vous développer ce qui est si mauvais de transférer des emplois?
Faheem Mitha
1
@Faheem Eh bien, les tâches de portage signifient généralement que vous vous retrouvez avec une base de code horrible pleine d'extensions non standard et de violations standard (qui semblent fonctionner en raison d'un miracle MSVC). Habituellement, des parties du code seront écrites par des personnes depuis longtemps disparues de la société et remplies de divers bugs qui apparaîtront pendant le portage. Cela peut également se produire dans d'autres domaines, mais ce n'est pas si courant (les projets open source ont tendance à avoir des bases de code assez horribles, mais il n'y a pas beaucoup de grands projets avec une longue histoire et une communauté de développeurs petits à moyens).
Let_Me_Be
Je vois. vous faites principalement référence aux bases de code internes / propriétaires ci-dessus? MSVC signifie que les bases de code C ++ sont écrites en Visual C ++ et ensuite ils veulent le porter sur gcc?
Faheem Mitha
@Faheem C et C ++ souffrent le plus, les langages scriptés le moins. Le problème majeur est que pendant le portage, vous toucherez du code qui fonctionne "ici et maintenant" et découvrirez généralement des bogues dans ce code.
Let_Me_Be
4

Un projet qui a un très grand nombre de codeurs effectuant un travail rémunéré est GNOME. Si vous allez là-bas et faites un travail incroyable, vous allez probablement être approché par quelqu'un. Le plus grand d'entre eux est probablement Red Hat (Fedora), et d'autres que j'ai vus incluent Canonical (Ubuntu), Novell (SuSE), un tas de start-ups ou même la fondation GNOME. Oh, et il y a beaucoup de l'utilisation de Python dans le projet, et le nombre LOC est probablement juste derrière C.

La planète du projet est normalement l'endroit où ces «sociétés GNOME» rendent compte de leurs actes. Regarde.

Tshepang
la source
1

Je suis fait pour travailler sur Java et Windows.

Bonne nouvelle, on dirait que vous écrivez / travaillez avec du code au moins.

Si j'étais à votre place, je pense que j'adopterais une approche pragmatique et apprendrais à porter cette application Java sur Linux (lorsque le patron ne regarde pas).

C'est un bon exercice pour rendre une application portable.

Je suis mal à l'aise avec Java

Ne soyez pas, dans le monde Linux, vous utilisez le meilleur langage pour la tâche. (Meilleure langue gratuite au moins).

Par conséquent, vous devez vous assurer que vous êtes à l'aise avec Java, C ++ / Qt, C, python, php, perl, etc., etc.

Johan
la source
Merci. Eh bien, écrire mon profil de travail entier est illogique donc je ne l'ai pas mentionné complètement. ici. Mais gardez à l'esprit la dernière ligne de votre réponse.
Dharmit