Articles

Ar trebui ca programatorii să învețe Linux?

Stop me if you’ve heard this one: „Programatorii folosesc doar Linux. PC-urile și Mac-urile sunt pentru noobs!”

Da, nu.

Linux este o unealtă. Windows este o unealtă. MacOS este, de asemenea, o unealtă. Fiecare este un sistem de operare (OS) de care ai nevoie pentru a face un calculator util, și fiecare are avantajele și dezavantajele sale. Problema este că, la fel ca multe alte instrumente, aceste sisteme de operare populare au triburi. Dacă Windows este DC Comics și macOS este Marvel, atunci Linux este Dark Horse.

Uh, ce este Linux, oricum?

Să începem cu începutul. (Este unul dintre locurile mele preferate pentru a începe.) Dacă vă întrebați dacă ar trebui să învățați Linux, probabil că v-ar prinde bine o introducere rapidă în ceea ce este Linux. În timp ce Windows și macOS sunt sisteme de operare individuale pe care Microsoft și Apple le vând și le susțin, ceea ce este (și nu este) Linux este puțin mai complicat.

Cu mult timp în urmă, în 1991, un programator pe nume Linus Torvalds a lansat un nou kernel pe care l-a numit Linux. Un kernel este, în linii mari, un program de calculator care se află în mijlocul unui sistem de operare și care controlează interacțiunile dintre hardware și software. El s-a bazat pe Unix și pe un alt sistem de operare asemănător Unix numit Minix. După cum puteți vedea, pseudonimele care rimează cu Unix erau deja o chestie, așa că nucleul lui Torvald s-a cam numit singur.

Nucleul a câștigat rapid popularitate și mai mulți programatori au contribuit la proiectul său. În curând, un nou sistem de operare, numit și Linux, a crescut în jurul nucleului.

Dar sursa deschisă a devenit sursă deschisă, iar nu există – și nu va exista niciodată – o singură versiune de Linux. Linux este o familie de sisteme de operare, denumite de obicei distribuții sau distribuții. O distribuție include nucleul Linux și restul software-ului necesar pentru a face un calculator utilizabil. Site-ul DistroWatch enumeră 100 de distribuții, dar se oprește aici doar pentru că 100 este un număr rotund frumos.

developing an understanding of any major distribution gives you a significant set of skills that you can map over to any one of them.

Câteva dintre cele mai populare distribuții sunt Debian, Red Hat, Ubuntu și Fedora. Ubuntu se bazează de fapt pe Debian, iar Fedora se bazează pe Red Hat. Și, bineînțeles, mai există CentOS, care se bazează, de asemenea, pe Red Hat, și Mint, care se bazează pe Ubuntu… După cum puteți vedea, este complicat. Bătălia pentru care distribuția este cea mai bună generează la fel de multă căldură și mai puțină lumină decât bătăliile pentru sisteme de operare sau cărți de benzi desenate.

Așa că, să ne întoarcem la întrebarea inițială. Când întrebați „Ar trebui ca programatorii să învețe Linux?”, unul dintre răspunsurile posibile este „Care dintre ele?”

Dar acesta nu este chiar un răspuns util, nu-i așa?

Deci, ar trebui să învăț Linux?

Păi, depinde. Care sunt obiectivele tale?

Aceasta este o întrebare pe care ar trebui să o ai mereu în minte atunci când întâlnești un instrument sau o recomandare de a începe să folosești unul. Ce trebuie să învățați și dacă veți petrece timp cu acesta vă va ajuta să ajungeți acolo?

What are your goals? That's a question you should always keep in mind you come across a tool or a recommendation to start using one. What do you need to learn, and will spending time on this help you get there?

Linux este cel mai utilizat sistem de operare pentru servere. Aproape toate site-urile web pe care le vizitați în fiecare zi rulează Linux, la fel ca și serverele care stau în spatele lor pentru rularea aplicațiilor „back-end”, cum ar fi bazele de date. De exemplu, băncile folosesc intens Linux pentru gestionarea tranzacțiilor financiare. Majoritatea serverelor de baze de date rulează, de asemenea, Linux.

Linux este foarte popular pe platformele încorporate. Raspbian este o distribuție populară pentru Raspberry Pi. Sistemul de operare Android de la Google este un derivat Linux, iar multe routere și switch-uri de rețea îl folosesc, de asemenea.

Așa că, dacă obiectivul dvs. este să scrieți software pentru servere, cod pentru internetul lucrurilor (IoT) sau software pentru sisteme încorporate, dacă vă veți acomoda cu Linux vă va ușura foarte mult viața.

Dacă visul dumneavoastră este să scrieți aplicații pentru iPhone sau pagini web frumoase, învățarea Linux s-ar putea să nu fie cel mai bun mod de a vă petrece timpul în acest moment.

Ce ar trebui să învăț despre Linux?

Următoarea întrebare este: Ce înseamnă „a învăța Linux”?

Ei bine, depinde. (Scuze, nu am putut rezista.)

Dacă aveți de gând să scrieți software de server care să ruleze pe Linux, acesta trebuie să fie implementat pe sisteme care îl rulează. În funcție de locul în care lucrați, acest lucru poate însemna să predați codul dvs. unei organizații DevOps, sau poate însemna să o faceți singur. În orice caz, vă puteți face viața, ca să nu mai vorbim de viața colegilor dumneavoastră, mult mai plăcută dacă vă puteți acomoda cu linia de comandă și cu modul în care sunt organizate fișierele pe un sistem Linux.

Get comfortable with the command line and how files are organized on a Linux system. These skills are transferable regardless of which distribution you learn on and which one your future employer uses.

Aceste abilități sunt transferabile indiferent de distribuția pe care învățați și de cea pe care o folosește viitorul dumneavoastră angajator. Deși există unele diferențe (adesea enervante) între ele, dezvoltarea unei înțelegeri a oricărei distribuții majore vă oferă un set semnificativ de competențe pe care le puteți transfera la oricare dintre ele. De asemenea, vă va oferi un avantaj competitiv față de dezvoltatorii care se simt confortabil doar în interiorul lumii protejate a IDE-ului lor preferat.

Dacă sunteți interesat să dezvoltați software pentru robotică sau sisteme integrate, atunci trebuie să vă familiarizați cu Linux la nivel de kernel. Pentru dumneavoastră, „a învăța Linux” înseamnă a învăța nucleul Linux.

Aici, din nou, distribuția pe care o alegeți este mai puțin importantă decât să vă udați pur și simplu picioarele. Deși nu toate distribuțiile actualizează versiunile kernelului în același timp (iar unele sunt comic de lente), kernelul Linux este kernelul Linux. Alegeți o distribuție și începeți să vă jucați.

Cum fac asta?

Dacă vă interesează robotica sau IoT, ați putea la fel de bine să vă luați un Raspberry Pi și să treceți direct la treabă. Va trebui să vă asigurați că aveți un mouse USB și un monitor la care să îl conectați. Restul este destul de simplu.

Dacă sunteți interesat de software de server, alegeți o distribuție și instalați-o.

Ce distribuție este de fapt o chestiune de alegere. Unii consideră că Ubuntu este cea mai prietenoasă pentru începători. Alții consideră că Linux Mint este un pic mai bun. Vestea bună este că sunt gratuite, așa că le puteți încerca pe toate!

Opțiunea cea mai puțin costisitoare pentru a instala Linux și pentru a lovi ușile și a trânti cauciucurile este să instalați un software de mașină virtuală pe calculatorul pe care îl aveți deja. VirtualBox este gratuit și funcționează pe Windows și macOS. Acesta vă va ghida chiar și la instalarea Linux după ce îl configurați.

După ce ați instalat Linux, începeți să vă jucați! Frumusețea de a te juca cu Raspberry Pi sau cu o mașină virtuală este că poți oricând să începi de la zero dacă strici ceva. Veți vedea că este destul de greu să stricați un sistem Linux.

Atunci, ar trebui ca programatorii să învețe Linux?

Există o șansă bună să întâlniți Linux undeva în cariera dumneavoastră de programator. Faptul că vă simțiți confortabil cu el în avans vă poate oferi un avantaj competitiv față de alți programatori care nu o fac. Luați-vă o copie și începeți să vă jucați cu el acum.

Acest articol a fost scris de Eric Goebelbecker. Eric a lucrat pe piețele financiare din New York timp de 25 de ani, dezvoltând infrastructura pentru date de piață și rețele de protocol de schimb de informații financiare (FIX). Îi place să vorbească despre ceea ce face ca echipele să fie eficiente (sau nu atât de eficiente!)

.