Articles

Moeten programmeurs Linux leren?

Stop me als je deze gehoord hebt: “Programmeurs gebruiken alleen Linux. PCs en Macs zijn voor noobs!”

Jah, nee.

Linux is een stuk gereedschap. Windows is een stuk gereedschap. MacOS is ook een stuk gereedschap. Elk is een besturingssysteem (OS) dat je nodig hebt om een computer nuttig te maken, en elk heeft zijn voor- en nadelen. Het probleem is dat, net als veel ander gereedschap, deze populaire OS’en stammen hebben. Als Windows DC Comics is en macOS Marvel, dan is Linux Dark Horse.

Uh, What Is Linux, Anyway?

Laten we beginnen bij het begin. (Het is een van mijn favoriete plaatsen om te beginnen.) Als je je afvraagt of je Linux moet leren, kun je waarschijnlijk wel een snelle introductie gebruiken over wat Linux is. Terwijl Windows en macOS individuele besturingssystemen zijn die Microsoft en Apple verkopen en ondersteunen, is wat Linux is (en niet is) een beetje ingewikkelder.

Weg terug in 1991, bracht een programmeur genaamd Linus Torvalds een nieuwe kernel uit die hij Linux noemde. Een kernel is, ruwweg, een computerprogramma dat in het midden van een besturingssysteem zit en de interacties tussen de hardware en de software regelt. Hij baseerde het op Unix en een ander Unix-achtig besturingssysteem, Minix genaamd. Zoals u kunt zien, waren bijnamen die rijmen op Unix al een ding, dus Torvald’s kernel noemde zichzelf zo’n beetje.

De kernel won snel aan populariteit, en meer programmeurs droegen bij aan zijn project. Al snel groeide er een nieuw besturingssysteem, ook Linux genoemd, rond de kernel.

Maar open source werd open source, en er is niet – en dat zal er ook nooit komen – slechts één versie van Linux. Linux is een familie van besturingssystemen, meestal aangeduid als distributies of distro’s. Een distributie bevat de Linux-kernel en de rest van de software die nodig is om een computer bruikbaar te maken. De website DistroWatch geeft een lijst van 100 distributies, maar daar blijft het bij omdat 100 een mooi rond getal is.

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

De populairste distributies zijn Debian, Red Hat, Ubuntu, en Fedora. Ubuntu is eigenlijk gebaseerd op Debian, en Fedora is gebaseerd op Red Hat. En natuurlijk is er CentOS, dat ook is gebaseerd op Red Hat, en Mint, dat is gebaseerd op Ubuntu… Zoals u ziet, is het ingewikkeld. De strijd over welke distro het beste is, genereert evenveel hitte als en minder licht dan de strijd over OS’en of stripboeken.

Dus, laten we teruggaan naar de oorspronkelijke vraag. Als je vraagt “Moeten programmeurs Linux leren?”, is een van de mogelijke antwoorden “Welke?”

Maar dat is niet echt een nuttig antwoord, is het niet?

Dus, moet ik Linux leren?

Wel, het hangt ervan af. Wat zijn je doelen?

Dat is een vraag die je altijd in gedachten moet houden als je een tool tegenkomt of een aanbeveling om er een te gaan gebruiken. Wat moet u leren, en zal het u helpen om hier tijd aan te besteden?

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 is het meest gebruikte OS voor servers. Bijna alle websites die u dagelijks bezoekt, draaien op Linux, net als de servers die daarachter staan voor het uitvoeren van “back-end”-toepassingen zoals databases. Banken maken bijvoorbeeld veel gebruik van Linux voor het beheer van financiële transacties. De meeste databaseservers draaien ook Linux.

Linux is erg populair op embedded platforms. Raspbian is een populaire distributie voor Raspberry Pi. Google’s Android OS is een Linux-derivaat, en veel netwerkrouters en switches gebruiken het ook.

Dus, als uw doel is om serversoftware, internet of things (IoT) code, of software voor embedded systemen te schrijven, zal het vertrouwd raken met Linux een lange weg gaan in de richting van het vergemakkelijken van uw leven.

Als het je droom is om apps voor de iPhone of prachtige webpagina’s te schrijven, is het leren van Linux misschien niet de beste manier om je tijd op dit moment te besteden.

Wat moet ik leren over Linux?

De volgende vraag is: wat betekent “Linux leren”?

Wel, het hangt ervan af. (Sorry, kon het niet laten.)

Als je serversoftware gaat schrijven die op Linux draait, moet het worden ingezet op systemen waarop het draait. Afhankelijk van waar je werkt, kan dit betekenen dat je je code aan een DevOps-organisatie moet geven, of dat je het zelf moet doen. Hoe dan ook, je kunt je leven, en dat van je collega’s, een stuk aangenamer maken als je vertrouwd raakt met de commandoregel en de manier waarop bestanden op een Linux-systeem zijn georganiseerd.

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.

Deze vaardigheden zijn overdraagbaar, ongeacht de distributie waarop je leert en de distributie die je toekomstige werkgever gebruikt. Hoewel er enkele (vaak vervelende) verschillen zijn tussen de verschillende distributies, geeft het ontwikkelen van kennis van een van de belangrijkste distributies je een aanzienlijke set vaardigheden die je kunt overbrengen naar een van de andere distributies. Het zal je ook een concurrentievoordeel geven ten opzichte van ontwikkelaars die zich alleen op hun gemak voelen in de beschermde wereld van hun favoriete IDE.

Als je geïnteresseerd bent in het ontwikkelen van software voor robotica of embedded systemen, dan moet je vertrouwd raken met Linux op het kernel niveau. Voor u betekent “Linux leren” het leren van de Linux-kernel.

Ook hier is de distributie die u kiest minder belangrijk dan simpelweg uw voeten nat te krijgen. Hoewel niet alle distributies kernelversies op hetzelfde moment updaten (en sommige zijn komisch traag), is de Linux-kernel de Linux-kernel. Kies een distro en begin te spelen.

Hoe doe ik dat?

Als je geïnteresseerd bent in robotica of IoT, kun je net zo goed gewoon een Raspberry Pi aanschaffen en er meteen mee aan de slag gaan. Je zult ervoor willen zorgen dat je een USB-muis en een monitor hebt om het op aan te sluiten. De rest is vrij eenvoudig.

Als je geïnteresseerd bent in serversoftware, kies dan een distributie en installeer het.

Welke distributie is echt een kwestie van keuze. Sommigen beschouwen Ubuntu als de meest newbie-vriendelijke. Anderen vinden Linux Mint een beetje beter. Het goede nieuws is dat ze gratis zijn, dus je zou ze allemaal kunnen proberen.

De minst dure optie voor het installeren van Linux en het schoppen van de deuren en het slammen van de banden is het installeren van virtuele machinesoftware op de computer die je al hebt. VirtualBox is gratis en draait op Windows en MacOS. Het zal je zelfs begeleiden bij het installeren van Linux nadat je het hebt ingesteld.

Als je Linux eenmaal hebt geïnstalleerd, begin dan te spelen! Het mooie van spelen met een Raspberry Pi of een virtuele machine is dat je altijd vanaf nul kunt beginnen als je iets opblaast. U zult zien dat het vrij moeilijk is om een Linux-systeem kapot te maken.

Zo, moeten programmeurs Linux leren?

Er is een goede kans dat u Linux ergens in uw carrière als programmeur zult tegenkomen. Als u er van tevoren vertrouwd mee raakt, kunt u een concurrentievoordeel krijgen ten opzichte van andere ontwikkelaars die dat niet doen. Pak een exemplaar en begin er nu mee te spelen.

Dit bericht is geschreven door Eric Goebelbecker. Eric heeft 25 jaar gewerkt in de financiële markten in New York City, waar hij infrastructuur ontwikkelde voor marktgegevens en financiële informatie-uitwisseling (FIX) protocol netwerken. Hij houdt ervan om te praten over wat teams effectief maakt (of niet zo effectief!)