Kenntnisse, die für einen guten Linux-Job erforderlich sind

14

Ich arbeite als IT-Ingenieur in einem renommierten Unternehmen in Indien. Das Problem ist, dass ich, obwohl mir gesagt wurde, dass ich unter Linux arbeiten soll, auf Java und Windows arbeiten soll. Ich bin mit Java unwohl und hasse Windows.

Ich habe angefangen, Python selbst zu lernen, aber es ist schwierig, mir aufgrund des laufenden Jobs genügend Zeit zu geben. Ehrlich gesagt bin ich kein erfahrener Programmierer. Ich habe während meiner Studienzeit viel versucht, in die Linux-Kernel-Entwicklung einzusteigen, aber festgestellt, dass ich kein so guter Programmierer bin. Also habe ich mich für RHCE entschieden und mich für die Serververwaltung entschieden.

Ich möchte wissen, welche Fähigkeiten erforderlich sind, um einen Job in Linux-Projekten zu bekommen. Im August 2011 plane ich eine Pause, wenn diese Firma mir kein gutes Linux-Projekt gibt. Welche Fähigkeiten soll ich erwerben, um einen guten Linux-Job zu bekommen? Eine Sache, für die ich mich in dieser Pause entschieden habe, ist RHCE zu verfolgen. Nachdem ich den ersten Teil der drei RHCE-Kursbücher gelesen habe, bin ich zuversichtlich, dass ich ihn durchfahren kann.

Beiträge von Experten auf dieser Website sind von unschätzbarem Wert. Meine technischen Interessen sind im Moment - Python-Programmierung, C / C ++ - Programmierung, Linux Server Management und Cloud Computing. Aber der College-Abschluss, den ich habe, reicht keineswegs aus, um in eine gute Gesellschaft zu kommen. Das praktische Wissen, das ich habe, ist kein Expertenwissen. Und meine Berufserfahrung ist einfach erbärmlich.

PS - Ich bin in meinem jetzigen Job extrem frustriert. Obwohl ich denke, dass es kaum nötig ist, es zu erwähnen.

Dharmit Shah
quelle

Antworten:

12

Dies wurde bereits mehrfach in diesem Zusammenhang vorgeschlagen, aber ... ich würde vorschlagen, einige Erfahrungen in einem freien Softwareprojekt zu sammeln. Das sieht in Ihrem Lebenslauf gut aus, ist eine wertvolle Erfahrung in der Arbeit mit guten Leuten und nützlich für Kontakte. Menschen bekommen regelmäßig Jobs durch freie Softwareprojekte. Mein Eindruck (der möglicherweise falsch ist) ist auch, dass Inder sich nicht häufig an freien Softwareprojekten beteiligen, und wenn dies zutrifft, würde dies Ihnen helfen, aufzufallen.

Sie sagen, Sie interessieren sich für Python. Es gibt viele freie Softwareprojekte mit Python und unterschiedlichen Eintrittsbarrieren. Eine, mit der ich vertraut bin, ist Mercurial, wo die Eintrittsbarriere nicht zu hoch ist, die Community freundlich ist, die Programmierer talentiert sind und es Möglichkeiten zur Teilnahme gibt. Und jeder nutzt die Versionskontrolle. Sie könnten einige kleine Fehler- und / oder Wunschliste-Funktionen auswählen und daran arbeiten.

Andere Projekte sind Django, Pylons und SQLAlchemy, obwohl ich denke, dass Mercurial genauso gut oder besser ist als alle anderen aus dem POV, das die Möglichkeit zur Teilnahme bietet. Eine andere Möglichkeit ist das Verteilen von Linux-Communitys, z. mit Debian, was Ihnen auch die Möglichkeit gibt, mit talentierten Leuten zu arbeiten. Auch gut zum Knüpfen von Kontakten usw. Wenn Sie sich für C ++ interessieren, sind die apt- und aptitude-Projekte in Debian wichtig und stark unterbesetzt. Im Allgemeinen verfügen die meisten freien Softwareprojekte nicht über genügend Arbeitskräfte, insbesondere die kleineren, und sind auf Unterstützung bedacht.

unbekannt
quelle
8

Sie haben mehrere Wege, die unterschiedliche Beschäftigungsmöglichkeiten bieten

  • webbasiertes Zeug
  • native Projekte
  • plattformübergreifende Entwicklung
  • auf Linux portieren

Im Allgemeinen sollten Sie darauf vorbereitet sein, andere Unixe zusammen mit Linux zu verwenden (obwohl Linux derzeit die Hauptrolle spielt).

Webbasiert

So ziemlich alles, was webbasiert ist und .NET nicht verwendet, ist Linux-Zeug (oder plattformübergreifend). Sie können sich auf eine der weit verbreiteten Sprachen konzentrieren: PHP, Python, Perl, Ruby

Einheimische Projekte

Hierbei handelt es sich meist um Open Source- oder High Performance Computing-Jobs.

In Europa ist es üblich, einen Vollzeit-Programmierer einzustellen, der ein Open Source-Projekt ändert (und Support leistet), anstatt verrückte Lizenzgebühren für kommerzielle Produkte zu zahlen, die sowieso nicht passen.

Der Hochleistungsbereich ist momentan nur eine Art Linux, daher werden Jobs in diesem Bereich höchstwahrscheinlich zu Linux führen.

Dieser Bereich ist sehr C-lastig, mit ein bisschen C ++ und viel Java.

Plattformübergreifende Entwicklung

Eine seltsame Gegend. Es gibt einige Unternehmen, die plattformübergreifende Software anbieten, einige verfügen über spezielle Teams für bestimmte Plattformen, andere über plattformübergreifende Teams.

Aber viele Unternehmen verwenden einfach Java (nicht, dass es viel hilft).

Portierung auf Linux

Diese Jobs tauchen von Zeit zu Zeit auf. Einige Unternehmen sehen einen offenen Markt und beschließen, zu expandieren. Ich persönlich würde vor solchen Jobs davonlaufen.

Let_Me_Be
quelle
+1 für einen interessanten Kommentar. möchten Sie etwas über das Schlechte bei der Portierung von Jobs sagen?
Faheem Mitha
1
@Faheem Nun, Portierungsaufträge bedeuten normalerweise, dass Sie eine schreckliche Codebasis mit nicht standardmäßigen Erweiterungen und Standardverstößen haben (die aufgrund eines MSVC-Wunders zu funktionieren scheinen). In der Regel werden Teile des Codes von Leuten geschrieben, die schon lange nicht mehr im Unternehmen sind und voller verschiedener Fehler sind, die beim Portieren auftauchen. Dies kann auch in anderen Bereichen passieren, ist aber nicht so verbreitet (Open-Source-Projekte haben in der Regel eine ziemlich schreckliche Codebasis, aber es gibt nicht so viele große Projekte mit langer Geschichte und einer kleinen bis mittleren Entwicklergemeinschaft).
Let_Me_Be
Aha. Sie beziehen sich hauptsächlich auf die oben genannten internen / proprietären Codebasen? MSVC bedeutet, dass die C ++ - Codebasen in Visual C ++ geschrieben sind und sie dann nach gcc portieren möchten?
Faheem Mitha
@Faheem C und C ++ leiden am meisten, Skriptsprachen am wenigsten. Das Hauptproblem ist, dass Sie beim Portieren Code berühren, der "hier und jetzt" funktioniert, und in der Regel Fehler in diesem Code entdecken.
Let_Me_Be
4

Ein Projekt mit einer sehr hohen Anzahl von Programmierern, die bezahlte Arbeit leisten, ist GNOME. Wenn Sie dorthin gehen und großartige Arbeit leisten, werden Sie höchstwahrscheinlich von jemandem angesprochen. Die größte davon ist wahrscheinlich Red Hat (Fedora), und andere, die ich gesehen habe, sind Canonical (Ubuntu), Novell (SuSE), eine Reihe von Start-ups oder sogar die GNOME-Stiftung. Oh, und es gibt eine Menge Python-Nutzung im Projekt, und die LOC-Anzahl ist wahrscheinlich hinter C an zweiter Stelle.

Auf dem Planeten des Projekts melden diese GNOME-Unternehmen normalerweise ihre Taten. Guck mal.

Tshepang
quelle
1

Ich muss mit Java und Windows arbeiten.

Gute Nachrichten, es klingt so, als würden Sie zumindest mit Code arbeiten.

Wenn ich in Ihren Schuhen stecke, würde ich einen pragmatischen Ansatz verfolgen und lernen, wie man diese Java-App auf Linux portiert (wenn der Chef nicht hinschaut).

Es ist eine gute Übung, eine Anwendung portabel zu machen.

Ich fühle mich mit Java nicht wohl

Seien Sie nicht so, in der Linux-Welt verwenden Sie die beste Sprache für die Aufgabe. (Mindestens die beste freie Sprache).

Aus diesem Grund müssen Sie sicherstellen, dass Sie mit Java, C ++ / Qt, C, Python, PHP, Perl usw. vertraut sind

Johan
quelle
Vielen Dank. Nun, mein gesamtes Arbeitsprofil zu schreiben ist unlogisch, deshalb habe ich es nicht vollständig erwähnt. Hier. Aber denken Sie an die letzte Zeile Ihrer Antwort.
Dharmit