CodeGym /Java blogg /Slumpmässig /Att välja ett programmeringsspråk
John Squirrels
Nivå
San Francisco

Att välja ett programmeringsspråk

Publicerad i gruppen
Jag stötte först på programmering i skolan, på lektioner om datavetenskap. Dessa bestod av några tråkiga förklaringar av hur n-ära talsystem fungerar. Och naturligtvis fanns det ett test som krävde att du skrev din egen hemsida. På den tiden verkade det för mig att det inte kunde finnas en tråkigare sysselsättning. Vad fel jag hade! Tyvärr ger ett datavetenskapsprogram på gymnasiet inte en fullständig bild av IT-arbetet, och det förklarar inte hur man väljer ett programmeringsspråk. Innan man frågar "Vilket programmeringsspråk ska jag lära mig?", bör en nybörjare bekanta sig med vilka språk som finns där ute och hur de skiljer sig från varandra. Välja ett programmeringsspråk - 1

Inträdeströskel: Hög, låg, medium

Programmerare talar ofta om "inträdeströskeln" - ett koncept som återspeglar mängden ansträngning som krävs för en given "junior utvecklare" för att behärska ett programmeringsspråk tillräckligt väl för att skriva sitt första seriösa program och hitta ett jobb. "Tröskeln för inträde" består av kunskap om:
  • syntax egenheter och nyanser av språket
  • bibliotek
  • algoritmer och datastrukturer.
Att arbeta i Excel skulle till och med kunna kallas en sorts programmering. Förresten, detta välbekanta kontorsprogram är inte så enkelt som det verkar. För en användare kan inträdesgränsen vara möjligheten att skapa en tabell. För en annan kan det vara kunskap om komplexa formler och makron. I båda fallen är denna tröskel liten. Därefter kommer kvasi-språk, som 1C -programmering. Sedan finns det de enklaste språken att lära sig, t.ex. PHP . Vidare har vi språk med inbyggd syntax (vanligtvis härledd från engelska) som inte kräver att du hanterar minneshantering, t.ex. Java och JS . Sedan finns det språk som kräver extremt noggrann hantering av minne, datastrukturer och algoritmer, till exempel C ochC++ . Unga multiparadigmspråk, till exempel Scala , har kanske den högsta ingångströskeln, eftersom att behärska dem kräver att du dyker djupt in i så många programmeringsparadigm. Men innan du väljer ett språk bör du bestämma dig för vad du vill göra härnäst: utveckla för webben, företag, stationära eller mobila enheter.

Webb eller inte webb?

webb

Webbprogrammerare kan delas in i Frontend- och Backend -utvecklare. Du bör förstå vad dessa termer betyder. Frontend-utvecklare är involverade på klientsidan, alltså vad användaren ser. "Backend" handlar om att manipulera och lagra data — den del av en tjänst som körs på en server. För en frontend- utvecklare som bestämmer vilket programmeringsspråk som ska läras, är JavaScript- och JavaScript-ramverk (Angular JS, React och andra) viktiga. JS-dialekter, som CoffeeScript och TypeScript, är inte lika populära som deras förälder, men de kan också vara användbara. Det finns också en Flash AS, och det fanns tidigare JScript och VBScript, men det är bara dinosaurier som kommer ihåg detta =) Förutom allt detta måste du förstå HTMLoch CSS . Välja ett programmeringsspråk - 2Många nybörjare tror att JavaScript och Java är nästan samma sak. Blanda inte ihop dessa språk. JS hette tidigare "LiveScript" och fick sitt nuvarande namn bara på grund av populariteten för ordet "Java". För en webbbackend- utvecklare är PHP, Python, Ruby, Perl och Java lämpliga. Här vill jag fokusera på PHP (vi pratar om de andra språken senare). PHP är ett av de enklaste språken att lära sig, med en låg ingångströskel. Enligt en undersökning av välkända webbutvecklare vinner Ruby sakta men säkert popularitet — den är älskad för sin korthet och skönhet.

Inte webben (företag, dator, mobil)

Jag har avsiktligt kombinerat följande programmeringsspråk i den här kategorin med ett konstigt namn. Du kan använda de flesta av dem för att skriva företags-, skrivbords- och till och med mobilapplikationer. Python är ett lättförståeligt objektorienterat programmeringsspråk och har blivit otroligt populärt nyligen på grund av tillväxtmaskininlärning ( ML ): ML-utvecklare använder Python i stor utsträckning. MLär ett ganska nytt område inom IT, och även om vi redan har sett det bära frukt, skulle jag inte rusa in i den här branschen när jag väljer ett programmeringsspråk. Först behöver du en UTMÄRKT förståelse för matematik. För det andra kan popularitetsvågen passera på samma sätt som den gjorde för "blockchain" eller "nanoteknik". Som sagt, du kanske minns att Python används i webbutveckling. C++: ett klassiskt språk där allt bygger på "plus-plus"-operatorn. Detta språk är förfadern till alla populära objektorienterade programmeringsspråk, och en nybörjare bör definitivt vara uppmärksam på det. Många populära applikationer har skrivits med den. Men den utmärkta chansen att "skjuta sig själv i foten" och den svårbegripliga syntaxen nollställer sannolikheten för att en nybörjare kommer att bemästra denna mastodont av programmering. Kotlin, som är som Java för hipsters, är en galen blandning av OOP och funktionell programmering. Det har varit populärt nyligen på grund av det faktum att en erfaren utvecklare som byter från Java till Kotlin på allvar kan förbättra sin produktivitet. En erfaren utvecklare kommer snabbt att bli bekväm med detta programmeringsspråk. Samma sak gäller förresten Scala, men Kotlin är populärt i Android-världen. Java är lätt för nybörjare att lära sig. Speciellt med hjälp av CodeGym =) Java-syntax är förståeligt och även om det finns risk att "skjuta sig själv i foten" är det inte kritiskt.

OOP eller POP?

Det processuella tillvägagångssättet

Det procedurorienterade tillvägagångssättet innebär att skriva ett program som består av sekventiella uttalanden som kan sättas samman till en enhetlig helhet för att effektivt lösa en specifik uppsättning problem. Sådana språk inkluderar C , PureBasic och Pascal . Med andra ord språken som ger förtvivlan till gymnasieelever och studenter. Det finns också den relativt unga GOspråk. Som sagt, att vara bekant med procedurspråk är mycket användbart för en potentiell utvecklare. Min fördjupning i procedurspråk kom med Wolfram Mathematica-systemet och universitetsforskning. Korrekta algoritmer och enkla procedurer, som rörde sig linjärt från början av programmet till slutet, gjorde att jag kunde beräkna värden som är relevanta för modern teoretisk fysik. Detta "sekventiella" programmeringsspråk är precis det som hjälper dig att förstå att det ibland är lättare att skriva kod som utför beräkningar manuellt. Lärande procedurorienterad programmering (POP) ger bra algoritmutbildning, som en arbetsgivare nästan alltid vill se hos en jobbkandidat. Absolut allt inom IT är byggt på grunden av procedurspråk, så underskatta dem inte. Förresten, nybörjare som bestämmer sig för vilket programmeringsspråk de ska lära sig tror ofta att endast OOP-språk stöder multithreading. Det är inte sant. Procedurprogrammeringsspråk tillåter också parallella beräkningar. Välja ett programmeringsspråk - 3

Det objektorienterade förhållningssättet

De som började med procedurspråk är vanligtvis väl insatta i matematik, algoritmer och datastrukturer (på grund av tekniska universitets betoning på dessa områden). Ändå är verkligheten idag att framgångsrika programmerare vanligtvis är de som har bemästrat ett annat förhållningssätt till programmering: det objektorienterade paradigmet. OOP-ideologin låter dig bygga verkligt globala system. En egenskap hos detta tillvägagångssätt är dess likhet med den verkliga världen:
  • Olika objekt interagerar med varandra och existerar oberoende av varandra.
  • Objekt har en hierarki och kan anta eller ändra beteendet hos sina förfäder.
  • Du kan använda abstrakta begrepp, men bara objekt som faktiskt existerar kan interagera.

Exempel

Procedurorienterade språk är verktyg för att lösa specifika problem. Om din uppgift ändras, till och med lite, måste du antagligen lägga tid och ansträngning på att skriva om alla algoritmer.

Föreställ dig ett program som beskriver en bilhandlare som säljer bilar och lastbilar, både nya och begagnade. På ett procedurspråk måste du definiera funktioner som bearbetar inmatning eller utmatning av data för varje enhet: en ny bil, en ny lastbil, en begagnad bil och en begagnad lastbil. Vad erbjuder OOP? Med ett objektorienterat tillvägagångssätt behöver vi bara definiera en fordonsbasklass som lagrar de egenskaper som delas av alla fordonstyper:

  • Göra
  • Motorvolym
  • Hästkraft
  • År
  • Ny eller begagnad
  • Pris

Och metoder för att ta in och skicka ut information. Sedan skapar vi objekt som ärver egenskaperna hos Fordonsklassen: Personbil och Lastbil. De innehåller information som hänför sig specifikt till dessa typer av fordon, såväl som input/output-metoder.

Plötsligt beslutar återförsäljarens ledning att utöka sortimentet genom att även erbjuda motorcyklar. Under den processuella metoden skulle vi behöva återskapa all logik för nya och begagnade motorcyklar, medan ett OOP-språk låter oss helt enkelt skapa en ny motorcykelklass som ärver alla egenskaper hos superklassen Vehicle och innehåller motorcykelspecifika förfinningar.

Och vad skulle hända om vi lägger till olika fordon? En processuell implementering skulle kräva mer arbete än OOP. Dessutom, ju större sortimentet är, desto färre operationer som involverar objekt kommer att krävas.

Så, OOP är en programmeringsstil som låter dig kombinera data och metoder till en enda enhet och arbeta med dem som ett enhetligt objekt. Entiteter kan ordnas i en hierarki och interagera med varandra utan att fördjupa sig i varandras interna implementeringsdetaljer. Jag ska peka på tre skäl till varför OOP är det mer progressiva tillvägagångssättet för mig:
  1. OOP innebär oberoende utveckling av individuella moduler, vilket gör att en programmerare eller ett team kan välja metod och gränser för kontakt och informationsutbyte.
  2. Kod uppdelad i små moduler är mycket lättare att läsa än monolitiska procedurer. Som ett resultat kan en utomstående snabbt förstå din kod, och på samma sätt kan du gå med i ett nytt projekt om det behövs.
  3. En klass kan ändras utan att påverka interaktionen av en annan, men en sådan förändring kan påverka hierarkin av underordnade objekt. När du har bemästrat detta tillvägagångssätt blir det trivialt att utöka och modifiera ett program.
Kom ihåg att det ena tillvägagångssättet inte är i konflikt med det andra, men OOP är fortfarande högre i hierarkin. Så varför rekommenderar jag Java? Jag vill lyfta fram följande skäl:
  1. Cross-plattform.

    Java fungerar överallt tack vare Java Virtual Machine (JVM). En av detta språks främsta fördelar är dess plattformsoberoende karaktär: du behöver inte tänka på vilket bibliotek som ska läggas till eller arkitekturen för en viss processor. "Skriv en gång, spring var som helst."

  2. Dokumentation.

    Det finns en enorm dokumentationsbas: officiell Oracle-dokumentation, utbildningsportaler och en ständigt utvecklande community. Svar på de flesta frågor som dyker upp under utvecklingen kan hittas på några minuter. Det viktigaste är att förstå vad man ska skriva in i sökmotorn =)

  3. Popularitet.

    Java är det populäraste programmeringsspråket i världen: förutom de tidigare nämnda Android- och webbutvecklarna, skriver nästan alla företagsutvecklare i Java. Enterprise hänvisar till den interna företagsutveckling som krävs för stora företags behov.

    Varje år förutspår hatare "Javas död". De säger, " Oracle kommer att sluta stödja det. Du slösar bort din tid totalt. " Det här är inte sant! De lovar att släppa nya versioner av Java var sjätte månad.

    För mig var lambda-uttrycken i Java 8 revolutionerande och en uppenbarelse, för att inte tala om de nya versionerna! Jag håller just nu på med ett "legacy"-projekt, så jag fördjupar mig inte i de senaste innovationerna, men det är ett faktum att Java lever.

    Välja ett programmeringsspråk - 4
  4. Android.

    Under de senaste fyra åren har Android konsekvent haft mer än 80 % av mobiltelefonmarknaden . TV-apparater, mediaspelare och till och med bilinfotainmentsystem körs på detta operativsystem. Och apputveckling för detta operativsystem sker främst i Java. Föreställ dig bara vilka framtidsutsikter som öppnar sig. När jag fick jobb som Android-utvecklare undrade jag hur mycket produkten jag utvecklade var värd? Som det visade sig var priset cirka 5 dollar per år. Det väcker frågan, "var kommer då pengarna ifrån för det här kontoret, lönerna, snacksrummet, pingisbordet, robotarna och andra förmåner? Svaret ligger i volymen: vår app har 20 miljoner användare.

  5. Löner.

    Och nu är grädden på moset: lönen för en Java-utvecklare är bland de högsta i branschen. När allt kommer omkring, planerar du att studera programmering för ett specifikt syfte: att få ett bra jobb.

Programmeringsspråkets popularitet

Det finns officiella informationskällor, så låt oss vända oss till dem. Enligt TIOBE rankas Java först från och med oktober 2019. I PYPL- rankingen rankas Java, långt före JS och konkurrerar med trendiga Python.

Slutsats

När en nybörjare överväger att välja ett programmeringsspråk, är detta vad han eller hon bör vara uppmärksam på:
  • Popularitet (Java intar konsekvent en ledande position)
  • Inträdeströskel (för Java är det medium: arbetsgivare kräver ett ganska brett utbud av färdigheter)
  • Tillgängligt material (välkommen till CodeGym =))
  • Användningsområden: ju fler områden där ett programmeringsspråk används, desto fler specialister krävs på marknaden. Jag har redan nämnt hur Java stöder plattformsoberoende utveckling, men jag tröttnar aldrig på att upprepa det.
Visst finns det fallgropar överallt, men den som tar ett steg går framåt: bara du kan bestämma vilket programmeringsspråk du ska välja. Lycka till med lärandet!
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION