Jestem programistą PHP / Python uczącym się Java i C # (.NET).
Mój główny system operacyjny to Windows 7, ale korzystałem z Linuksa i obecnie uruchamiam podwójnie z Ubuntu. Moja wiedza na temat Linuksa jest jednak dość ograniczona. Mogę pracować z wierszem poleceń przy prostych zadaniach, ale to wszystko. Nie wykonuję żadnych skryptów powłoki i nie znam wielu ważnych poleceń.
Moje zainteresowania to tworzenie stron internetowych, aplikacje mobilne i być może pewne osadzone rzeczy w przyszłości. Czy umiejętności skryptowe powłoki będą przydatne dla tych zainteresowań, a jeśli tak, to w jaki sposób?
web-development
linux
Maxtor
źródło
źródło
Odpowiedzi:
Jeśli koduję aplikację Windows (lub aplikację Mac), dlaczego powinienem znać Linuksa? Czy mechanik Forda powinien znać ciągniki John Deer? Wszystko zależy od tego, co robisz, zawodowo lub od własnego czasu „hobby”.
Teraz to nie boli. W rzeczywistości jestem głęboko przekonany, że „im więcej wiesz, tym lepiej”
źródło
Jeśli jesteś programistą PHP, zdecydowanie powinieneś znać Linuksa. PHP zostało stworzone na Linuksie, a PHP jest ważną częścią stosu LAMP: Linux + Apache + MySQL + PHP. Nawet jeśli masz teraz możliwość programowania dla serwerów Windows, następnym zadaniem będzie prawdopodobnie tworzenie dla serwerów Linux i musisz zapoznać się ze środowiskiem Linux, aby nie uruchamiać programów specyficznych dla Windows PHP.
W przestrzeni aplikacji mobilnych wiedza o Linuksie (niestety) nie będzie miała większego znaczenia dla środowisk, w których się rozwijasz. System operacyjny iPhone'a nie ma nic wspólnego z Linuksem, a Android jest tak mocno osadzony w maszynie wirtualnej, że nigdy nie dowiesz się, że pod nim jest Linux. Mógłbyś programować na Linuksa na Meego lub Maemo, ale te nie mają tak dużej popularności iPhone'a i Androida.
W osadzonym przestrzeni, ty masz wiedzieć Linux. Wbudowany system Windows jest rzadki, ale wbudowany system Linux jest dość powszechny. (Oczywiście osadzone programowanie bez systemu operacyjnego jest również dość powszechne, więc zależy od tego, gdzie chcesz się udać.)
Jeśli nauczysz się Linuksa dogłębnie przez wiele lat, będziesz miał pewien poziom zrozumienia każdej części systemu od jądra, poprzez proces uruchamiania, aż do wiersza poleceń i GUI.
źródło
Istnieje pewien stopień 80/20 myślenia, że możesz zastosować tutaj. W zasadzie nie zajmuje dużo czasu, aby poznać podstawy działania Linuksa i podstawowe polecenia, o których powinieneś wiedzieć z Powłoki. Podobnie podstawowa konfiguracja Apache jest bardzo wygodna w razie potrzeby. Nie musisz poświęcać na to lat swojego życia, ale z pewnością warto poznać wystarczająco dużo podstaw, które możesz uzyskać, uruchamiając własny serwer, jeśli zajdzie taka potrzeba.
Ale to cienka linia. Jeśli nie jesteś ostrożny, szybko zauważysz, że system Windows naprawdę cię odznacza, gdy przyzwyczajasz się do tego, co oferuje Linux ...
źródło
Nie musisz się tego uczyć, ale dzięki temu będziesz lepszym programistą. Dowiesz się, jak robić rzeczy w inny sposób niż w systemie Windows. Użycie dowolnej powłoki * sh ostatecznie doprowadzi do tworzenia skryptów i używania wyrażeń regularnych, automatyzacji instalacji, analizowania dużych plików itp.
Nie dbam o to, że jestem wyśmiewany z tego, że go nie znam, tak samo jak dbam o to, jak fajnie jest za każdym razem, gdy uczę się robić coś innego w Linuksie. Z każdym nowym bitem staje się coraz lepszy.
Powershell ma wiele ze świata nix, w końcu zdali sobie sprawę, że do automatyzacji potrzebna jest dobra konsola (za to uznanie dla MS). Zarówno Perl, jak i Python wydają się być mieszanką C, bash, sed, awk, wszystko połączone w coś dobrego na swój sposób.
Przynajmniej będziesz miał coś innego do umieszczenia w swoim CV, ale tak naprawdę nie jest to najlepsza rzecz, którą z tego wyciągniesz.
Jestem pewien, że znajdziesz na własną rękę rzeczy, które sprawią, że odejdziesz: „Wow, to takie fajne!” Moja pierwsza była w stanie „zabić” Apache'a za pomocą sygnału USR1, aby zmusić go do ponownego załadowania nowego pliku konfiguracyjnego i zrestartowania logów, bez zatrzymywania usługi i dalszego odbierania połączeń. Także ssh i rsync, dobry żal, dlaczego MS nie chciałbym ich przenieść, jest poza mną.
źródło
To cię nie skrzywdzi. Nawet w całej firmie Microsoft coraz bardziej prawdopodobne jest, że napotkasz przynajmniej kilka serwerów Linux. Na przykład przepełnienie stosu używa systemu Linux do równoważenia obciążenia. Dotyczy to zwłaszcza wirtualizacji.
Jako programista możesz zrobić lepiej, rozważając poznanie POSIX, a nie tylko jednego wariantu podobnego do UNIX. Chociaż ma pewne dziwactwa, stanowi duży wysiłek, który podjął niesamowitą próbę ustanowienia standardowego interfejsu, który jest (głównie) przenośny we wszystkich środowiskach podobnych do UNIX. Zauważ, że wiele systemów podobnych do UNIX-a nie jest w 100% „poprawnie poprawnych”, ale jest to dobry punkt wyjścia.
Jako zwykły użytkownik mogę jedynie zasugerować, że fajnie jest grzebać w czymś nowym i uczyć się nowych rzeczy. Wydaje mi się, że można być „guru” z każdym systemem operacyjnym, o jakim można pomyśleć, ale nie sądzę, aby było to najbardziej przydatne przedsięwzięcie dla programisty. Mimo to praktyczna znajomość rzeczy, które możesz napotkać, jest dobra ... i z twojego pytania wynika, że prawdopodobnie spotkasz Linuksa w przyszłości.
źródło
Tak, ale nie brzmisz tak, jakbyś musiał go aktywnie studiować.
Dla mnie moja znajomość Linuksa rozwinęła się dzięki wykorzystaniu go jako systemu operacyjnego. Kawałek po kawałku nauczyłem się rzeczy, które musiałem wiedzieć, kiedy się pojawiały, i nadal to robię. Internet jest pełen zasobów, jak zrobić wszystko, co trzeba by napisać linux, więc zamiast tego sugerowałbym, że umiesz czytać strony podręcznika i dokumentację i pozwól swojemu mózgowi przyswoić (i zapomnieć) szczegóły, jak to osiągnąć konkretne zadania na bieżąco .
Biorąc to pod uwagę, z pewnością istnieje kilka poleceń, których będziesz unikać ze świata linux za to, że nie znasz podstaw.
źródło
W ostatnich czterech z pięciu zadań, w których byłem, programiści i QA (przynajmniej rozpoczęli) pracowali w systemie Windows, ale serwerami testowymi i produkcyjnymi były Linux / UNIX. Wszyscy musieli znać przynajmniej niewielką ilość systemu UNIX, aby przynajmniej móc dostać się na serwery testowe i przeglądać dzienniki lub debugować działający program w „prawdziwym” środowisku. W rzeczywistości bardzo niewiele prac rozwojowych jest przeznaczonych dla systemu Windows w firmach, które były w ciągu ostatnich 20 lat.
Nawiązując do innych tutaj, bardzo niewiele może być „niezbędnych” do pracy lub kariery, ale pomoże ci zrozumieć twoją pracę, korzyści i ograniczenia języka lub systemu, którego używasz.
źródło
IMHO, dla kompetentnego programisty znającego Linux / Unix, byłby świetnym krokiem do jeszcze ważniejszej filozofii Uniksa
źródło
Kiedy wziąłem kurs informatyki systemów operacyjnych, studiowaliśmy systemy operacyjne oparte na UNIXie i pracowaliśmy nad RedHat, ponieważ był to program open source i ponieważ mogliśmy zobaczyć kod oraz ponieważ mogliśmy z nim zrobić rzeczy, których po prostu nie da się zrobić Windows
Powiedziałbym, że jeśli chcesz poznać podstawy działania systemów operacyjnych pod maską, prawdopodobnie powinieneś mieć trochę doświadczenia z Linuksem, nawet jeśli jest to tylko środowisko akademickie.
Właśnie wróciłem do systemu Windows 7 z systemu Ubuntu 10.04. Czuję się trochę zagubiony bez grep i niektórych innych narzędzi wiersza poleceń. Wolę tworzyć w środowisku Linux, ponieważ uważam, że system bardziej sprzyja zaawansowanym użytkownikom i programistom.
Znam naprawdę dobrych programistów .NET, którzy wyjechali ze studiów, którzy nie wiedzą nic o Linuksie, więc nie jest to wymóg, ale spodziewałbym się, że każdy z ponad 5-letnim doświadczeniem w programowaniu będzie narażony na Linuksa w takiej czy innej formie czas w ich karierze.
Musisz być sędzią tego, na czym się koncentrujesz; jednak. Jeśli istnieje obecnie ścieżka rozwoju aplikacji mobilnych, a znajomość Linuksa nie jest tak naprawdę wymogiem, być może skupisz się na zdobywaniu dodatkowych informacji na temat mobilnych zestawów SDK zamiast Linuksa. Kompromis dotyczy wszystkiego i wygląda na to, że masz podstawową wiedzę na temat Linuksa, gdzie możesz dowiedzieć się więcej o nim, jeśli zajdzie taka potrzeba.
źródło
Czy przeszkadza Ci którykolwiek z poniższych elementów?
Istnieje mnóstwo możliwości pracy i ścieżek kariery, które możesz nadal realizować. Nie twierdzę, że którekolwiek z tych „powinno ci przeszkadzać”. Bądź ze sobą szczery i miej oko na całą branżę, a zwłaszcza na Linuksa, aby sprawdzić, czy twoje ścieżki mogą się przeciąć. Bez wątpienia możesz to rozgryźć, kiedy nadejdzie czas. Kto wie, jutro może przyjść projekt Linuksa.
źródło
Zawsze kodowałem w środowisku Windows. Dla mnie Linux był po prostu innym systemem operacyjnym, który miałem jako kopię zapasową na wypadek, gdyby mój Windows miał kłopoty. Znałem tylko podstawowe polecenia i wszystko, co próbowałem na nim zrobić, wydawało się trudne. Ale teraz, gdy pracuję jako programista, wszyscy używamy Linuksa, więc jestem zmuszony się go nauczyć i używać go do wszystkiego. Im częściej go używam, tym bardziej mi się podoba i myślę, że jest o wiele bardziej produktywny i elastyczny. Żałuję, że wcześniej nie pomieszałem z Linuksem. Teraz tylko nadrabiam zaległości.
Tak, powinieneś się tego nauczyć, kiedy tylko możesz.
źródło
Linux jest narzędziem w twoim zestawie narzędzi, podobnie jak Windows jest „tylko” narzędziem. Biegła znajomość obu pozwala ci lepiej robić niektóre rzeczy, ale nie ma znaczenia dla innych.
Osobiście uważam, że Linux w formie Ubuntu jest bardzo przydatny, ponieważ pozwala mi łatwo tworzyć i utrzymywać takie rzeczy, jak serwer bazy danych, serwer poczty, testowy serwer WWW i wiele więcej na maszynach wirtualnych bez konieczności uwzględniania kosztów licencji (plus wersje serwerowe wymagają mniej zasobów niż Windows). Jeśli nie zrobisz żadnej z tych rzeczy, nie sądzę, aby Linux miał dla ciebie znaczenie.
źródło
Wiedz wystarczająco dużo, że jeśli zamierzasz wdrożyć w danym systemie operacyjnym, możesz upewnić się, że aplikacja na nim działa, ale w przeciwnym razie ... nie musisz nic / wszystkiego wiedzieć.
źródło
Jeśli nie robię .NET, wolę używać Linuksa. Stos LAMP jest dla mnie bardziej naturalny niż WAMP.
Zdecydowanie poleciłbym naukę tego, jeśli w ogóle interesujesz się nauką czegoś innego niż Microsoft.
źródło