Umiejętności wymagane do dobrej pracy w Linuksie [zamknięte]

14

Pracuję jako inżynier IT w renomowanej firmie w Indiach. Problem polega na tym, że chociaż powiedziano mi, że dostanę pracę w systemie Linux, jestem zmuszony do pracy w Javie i systemie Windows. Czuję się niekomfortowo z Javą i nienawidzę Windows.

Sam zacząłem uczyć się języka Python, ale ciężko mi dać wystarczająco dużo czasu z powodu trwającej pracy. Szczerze mówiąc, nie jestem ekspertem od kodowania. Bardzo dużo próbowałem dostać się do rozwoju jądra Linuksa podczas moich studiów, ale zdałem sobie sprawę, że nie jestem tak dobrym programistą. Więc postanowiłem zrobić RHCE i przejść do zarządzania serwerem.

Chcę wiedzieć, jaki zestaw umiejętności jest wymagany, aby znaleźć pracę w projektach Linux. W sierpniu 2011 r. Planuję zrobić sobie przerwę od pracy, jeśli ta firma nie da mi dobrego projektu Linuksa. Jakie umiejętności powinienem zdobyć, aby uzyskać dobrą pracę w systemie Linux. Jedną z rzeczy, które postanowiłem zrobić podczas tej przerwy, jest realizacja RHCE. Po przeczytaniu pierwszego zestawu trzech podręczników RHCE jestem pewien, że mogę przez nie przepłynąć.

Wkład ekspertów na tej stronie jest bardzo nieoceniony. Moje zainteresowania techniczne w tej chwili to - programowanie w języku Python, programowanie w języku C / C ++, zarządzanie serwerami Linux i przetwarzanie w chmurze. Ale mój stopień naukowy nie jest w żadnym razie wystarczający, aby znaleźć się w dobrym towarzystwie. Praktyczna wiedza, którą posiadam, nie jest na poziomie eksperckim. A moje doświadczenie zawodowe jest po prostu żałosne.

PS - Jestem bardzo sfrustrowany obecną pracą. Chociaż myślę, że prawie nie trzeba o tym wspominać.

Dharmit Shah
źródło

Odpowiedzi:

12

Zasugerowano to już wiele razy w tym kontekście, ale ... Sugeruję zdobycie doświadczenia w projekcie wolnego oprogramowania. To wygląda dobrze w twoim CV, jest cennym doświadczeniem w pracy z dobrymi ludźmi i jest przydatne do kontaktów. Ludzie regularnie otrzymują pracę za pośrednictwem projektów wolnego oprogramowania. Mam wrażenie (co może być niepoprawne), że Hindusi nie angażują się w projekty wolnego oprogramowania, a jeśli to prawda, to pomoże ci się wyróżnić.

Mówisz, że jesteś zainteresowany Pythonem. Istnieje wiele projektów wolnego oprogramowania z udziałem Pythona, z różnym poziomem barier wejścia. Jednym z moich znajomych jest Mercurial, gdzie bariera wejścia nie jest zbyt wysoka, społeczność jest przyjazna, programiści są utalentowani i są możliwości uczestnictwa. I wszyscy używają kontroli wersji. Możesz wybrać mały błąd i / lub listę życzeń i pracować nad nim.

Inne projekty poza moją głową to Django, Pylons, SQLAlchemy, choć myślę, że Mercurial jest tak dobry lub lepszy niż którykolwiek z nich z POV możliwości uczestnictwa. Inną możliwością są prace dystrybucji społeczności Linux, np. z Debianem, który daje również możliwość pracy z utalentowanymi ludźmi. Dobre także do nawiązywania kontaktów itp. Również, jeśli interesuje Cię C ++, projekty apt i aptitude w Debianie są ważne i poważnie niedopracowane. Ogólnie rzecz biorąc, większość projektów wolnego oprogramowania nie ma wystarczającej siły roboczej, szczególnie te mniejsze, i są chętne do pomocy.

nieznanych
źródło
8

Masz kilka ścieżek, które oferują różne możliwości pracy

  • rzeczy oparte na sieci
  • rodzime projekty
  • rozwój między platformami
  • portowanie do Linuksa

Ogólnie rzecz biorąc, bądź przygotowany na używanie innych Uniksów razem z Linuksem (chociaż Linux obecnie całkowicie dominuje).

Oparte na sieci

Prawie wszystko oparte na sieci, które nie korzysta z .NET, to Linux (lub wiele platform). Możesz skoncentrować się na jednym z powszechnie używanych języków: PHP, Python, Perl, Ruby

Rodzime projekty

Są to głównie zadania komputerowe typu open source lub wysokowydajne.

W Europie dość często zatrudnia się programistę, który modyfikuje projekt open source (i zapewnia wsparcie), zamiast płacić szalone opłaty licencyjne za produkt komercyjny, który i tak nie pasuje.

Obszar wysokiej wydajności jest w pewnym sensie Linuksem tylko teraz, dlatego zadania w tym obszarze najprawdopodobniej doprowadzą do Linuksa.

Obszar ten jest bardzo obciążony językiem C, z odrobiną C ++ i dużą ilością Java.

Rozwój między platformami

Rodzaj nieparzystego obszaru. Niektóre firmy zapewniają oprogramowanie wieloplatformowe, niektóre mają specjalne zespoły dla określonych platform, niektóre mają zespoły wieloplatformowe.

Ale wiele firm po prostu używa Java (nie dlatego, że to bardzo pomaga).

Przenoszenie do systemu Linux

Te zadania pojawiają się od czasu do czasu. Niektóre firmy widzą otwarty rynek i decydują się na rozwój. Osobiście uciekłbym od takich miejsc pracy.

Let_Me_Be
źródło
+1 za interesujący komentarz. chcesz rozwinąć temat tego, co jest tak złego w przenoszeniu zadań?
Faheem Mitha,
1
@Faheem Cóż, zadania związane z przenoszeniem zwykle oznaczają, że kończysz się okropną bazą kodu pełną niestandardowych rozszerzeń i standardowych naruszeń (które wydają się działać z powodu jakiegoś cudu MSVC). Zazwyczaj części kodu będą pisane przez osoby, które odeszły z firmy i pełne różnych błędów, które pojawią się podczas przenoszenia. Może się to zdarzyć również w innych obszarach, ale nie jest to tak powszechne (projekty open source mają zwykle dość okropne podstawy kodu, ale nie ma tak wielu dużych projektów z długą historią i małą i średnią społecznością programistów).
Let_Me_Be
Widzę. masz na myśli głównie powyższe wewnętrzne / zastrzeżone podstawy kodu? MSVC oznacza, że ​​podstawy kodu C ++ są napisane w Visual C ++, a następnie chcą przenieść go na gcc?
Faheem Mitha,
@Faheem C i C ++ najbardziej cierpią, języki skryptowe najmniej. Głównym problemem jest to, że podczas przenoszenia dotkniesz kodu, który działa „tu i teraz” i zwykle odkrywasz błędy w takim kodzie.
Let_Me_Be
4

Jednym z projektów, który ma bardzo dużą liczbę programistów wykonujących płatną pracę, jest GNOME. Jeśli tam pojedziesz i wykonasz niesamowitą pracę, najprawdopodobniej ktoś do ciebie podejdzie. Największym z nich jest prawdopodobnie Red Hat (Fedora), a inne, które widziałem, to Canonical (Ubuntu), Novell (SuSE), kilka start-upów, a nawet fundacja GNOME. Aha, w projekcie jest dużo użycia Pythona, a liczba LOC jest prawdopodobnie druga po C.

The planeta projektu jest normalnie gdzie zgłosić te „firmy GNOME” swoje czyny. Spójrz.

Tshepang
źródło
1

Jestem zmuszony do pracy w Javie i Windowsie.

Dobra wiadomość, wygląda na to, że przynajmniej piszesz / pracujesz z kodem.

Gdybym był w twoich butach, myślę, że przyjąłbym pragmatyczne podejście i nauczyłem się przenosić tę aplikację Java na Linuksa (gdy szef nie patrzy).

Dobrym ćwiczeniem jest uczynienie aplikacji przenośną.

Czuję się niekomfortowo z Javą

Nie bądź, w świecie Linuksa używasz najlepszego języka do tego zadania. (Najlepszy najlepszy darmowy język).

Dlatego musisz upewnić się, że dobrze znasz Javę, C ++ / Qt, C, python, php, perl itp.

Johan
źródło
Dzięki. Cóż, napisanie całego mojego profilu pracy jest nielogiczne, więc nie wspomniałem o nim w całości. tutaj. Ale pamiętaj o ostatniej linii twojej odpowiedzi.
Dharmit