Articles

Ska programmerare lära sig Linux?

Sluta om du har hört den här: ”Programmerare använder bara Linux. PC och Mac är för noobs!”

Ja, nej.

Linux är ett verktyg. Windows är ett verktyg. MacOS är också ett verktyg. Var och en är ett operativsystem (OS) som man behöver för att göra en dator användbar, och var och en har sina för- och nackdelar. Problemet är att precis som många andra verktyg har dessa populära operativsystem stammar. Om Windows är DC Comics och macOS är Marvel så är Linux Dark Horse.

Vad är Linux egentligen?

Låt oss börja från början. (Det är en av mina favoritplatser att börja.) Om du frågar dig om du ska lära dig Linux kan du förmodligen behöva en snabb introduktion till vad Linux är. Windows och macOS är enskilda operativsystem som Microsoft och Apple säljer och stöder, men vad Linux är (och inte är) är lite mer komplicerat.

Från 1991 släppte en programmerare vid namn Linus Torvalds en ny kärna som han gav namnet Linux. En kärna är, i grova drag, ett datorprogram som sitter i mitten av ett operativsystem och kontrollerar interaktionen mellan hårdvara och programvara. Han baserade den på Unix och ett annat Unix-liknande operativsystem kallat Minix. Som du kan se var namn som rimmar på Unix redan en grej, så Torvalds kärna gav i stort sett sig själv ett namn.

Kärnan blev snabbt populär, och fler programmerare bidrog till hans projekt. Snart växte ett nytt operativsystem, även kallat Linux, fram runt kärnan.

Men öppen källkod måste vara öppen källkod, och det finns – och kommer aldrig att finnas – bara en version av Linux. Linux är en familj av operativsystem, som brukar kallas distributioner eller distros. En distribution innehåller Linuxkärnan och resten av den programvara som behövs för att göra en dator användbar. Webbplatsen DistroWatch listar 100 distributioner, men stannar bara där eftersom 100 är ett trevligt runt tal.

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

Några av de mest populära distributionerna är Debian, Red Hat, Ubuntu och Fedora. Ubuntu är faktiskt baserat på Debian och Fedora är baserat på Red Hat. Och naturligtvis finns det CentOS, som också är baserat på Red Hat, och Mint, som är baserat på Ubuntu… Som du kan se är det komplicerat. Striden om vilken distro som är bäst genererar lika mycket värme som och mindre ljus än striderna om operativsystem eller serietidningar.

Så, låt oss gå tillbaka till den ursprungliga frågan. När du frågar ”Bör programmerare lära sig Linux?” är ett av de möjliga svaren ”Vilken?”

Men det är inte riktigt ett användbart svar, eller hur?

Så, bör jag lära mig Linux?

Ja, det beror på. Vilka är dina mål?

Det är en fråga som du alltid bör ha i åtanke när du stöter på ett verktyg eller en rekommendation om att börja använda ett. Vad behöver du lära dig, och kommer det att hjälpa dig att nå dit om du lägger tid på detta?

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 är det mest använda operativsystemet för servrar. Nästan alla webbplatser som du besöker varje dag kör Linux, liksom de servrar som ligger bakom dem för att köra ”back-end”-program som databaser. Banker använder till exempel Linux flitigt för att hantera finansiella transaktioner. De flesta databasservrar kör också Linux.

Linux är mycket populärt på inbyggda plattformar. Raspbian är en populär distribution för Raspberry Pi. Googles Android OS är ett Linuxderivat, och många nätverksroutrar och switchar använder det också.

Så om ditt mål är att skriva serverprogramvara, kod för sakernas internet (IoT) eller programvara för inbäddade system, kommer det att underlätta ditt liv mycket om du blir bekväm med Linux.

Om din dröm är att skriva appar för iPhone eller vackra webbsidor är det kanske inte det bästa sättet att spendera din tid just nu att lära dig Linux.

Vad ska jag lära mig om Linux?

Nästkommande fråga är: Vad innebär ”lära sig Linux”?

Det beror på. (Ledsen, jag kunde inte motstå det.)

Om du ska skriva serverprogramvara som körs på Linux måste den installeras på system som kör Linux. Beroende på var du arbetar kan detta innebära att du överlämnar din kod till en DevOps-organisation eller att du gör det själv. Oavsett vilket kan du göra ditt liv, för att inte tala om dina medarbetares liv, mycket trevligare om du kan bli bekväm med kommandoraden och hur filer är organiserade på ett Linuxsystem.

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.

Dessa färdigheter är överförbara oavsett vilken distribution du lär dig på och vilken din framtida arbetsgivare använder. Även om det finns vissa (ofta irriterande) skillnader mellan dem, ger en förståelse för alla större distributioner dig en betydande uppsättning färdigheter som du kan överföra till vilken som helst av dem. Det ger dig också en konkurrensfördel gentemot utvecklare som bara känner sig bekväma i den skyddade världen av sin favorit-IDE.

Om du är intresserad av att utveckla mjukvara för robotteknik eller inbäddade system måste du bekanta dig med Linux på kärnnivå. För dig innebär ”lära dig Linux” att lära dig Linuxkärnan.

Här är det återigen mindre viktigt vilken distribution du väljer än att bara få en våt fot. Även om inte alla distributioner uppdaterar kärnversioner samtidigt (och vissa är komiskt långsamma) är Linuxkärnan Linuxkärnan. Välj en distribution och börja leka.

Hur gör jag det?

Om du är intresserad av robotteknik eller IoT kan du lika gärna skaffa en Raspberry Pi och sätta igång direkt. Du måste se till att du har en USB-mus och en bildskärm att ansluta den till. Resten är ganska okomplicerat.

Om du är intresserad av serverprogramvara, välj en distribution och installera den.

Vilken distribution är egentligen en fråga om val. Vissa anser att Ubuntu är den mest nybörjarvänliga. Andra anser att Linux Mint är lite bättre. Den goda nyheten är att de är gratis, så du kan prova dem alla!

Det billigaste alternativet för att installera Linux och sparka på dörrarna och slå ihjäl däcken är att installera programvara för virtuella maskiner på den dator du redan har. VirtualBox är gratis och fungerar på Windows och macOS. Det kommer till och med att guida dig i installationen av Linux när du har ställt in det.

När du väl har installerat Linux kan du börja spela! Det fina med att leka med Raspberry Pi eller en virtuell maskin är att du alltid kan börja om från början om du spränger något. Du kommer att se att det är ganska svårt att förstöra ett Linuxsystem.

Så, bör programmerare lära sig Linux?

Det finns en god chans att du kommer att stöta på Linux någonstans i din karriär som programmerare. Om du blir bekväm med det i förväg kan det ge dig en konkurrensfördel jämfört med andra utvecklare som inte gör det. Hämta ett exemplar och börja leka med det nu.

Detta inlägg skrevs av Eric Goebelbecker. Eric har arbetat på finansmarknaderna i New York City i 25 år och utvecklat infrastruktur för marknadsdata och protokollnätverk för utbyte av finansiell information (FIX). Han älskar att prata om vad som gör team effektiva (eller inte så effektiva!)