CodeGym /Java blog /Tilfældig /Valg af programmeringssprog
John Squirrels
Niveau
San Francisco

Valg af programmeringssprog

Udgivet i gruppen
Jeg stødte første gang på programmering i skolen, i timerne om datalogi. Disse bestod af nogle kedelige forklaringer på, hvordan n-ære talsystemer fungerer. Og selvfølgelig var der en test, der krævede, at du skrev din egen hjemmeside. På det tidspunkt forekom det mig, at der ikke kunne være en kedeligere beskæftigelse. Hvor tog jeg fejl! Desværre giver en gymnasieuddannelse i datalogi ikke et komplet billede af it-arbejdet, og det forklarer ikke, hvordan man vælger et programmeringssprog. Før en nybegynder spørger "Hvilket programmeringssprog skal jeg lære?", bør en nybegynder sætte sig ind i, hvilke sprog der findes, og hvordan de adskiller sig fra hinanden. Valg af programmeringssprog - 1

Indgangstærskel: Høj, lav, medium

Programmører taler ofte om "indgangstærsklen" - et koncept, der afspejler mængden af ​​indsats, der kræves for en given "junior udvikler" for at mestre et programmeringssprog tilstrækkeligt godt til at skrive sit første seriøse program og finde et job. "Indgangstærsklen" består af viden om:
  • syntaks ejendommeligheder og nuancer i sproget
  • biblioteker
  • algoritmer og datastrukturer.
At arbejde i Excel kunne endda kaldes en slags programmering. Forresten er dette velkendte kontorprogram ikke så simpelt, som det ser ud til. For én bruger kan adgangstærsklen være muligheden for at oprette en tabel. For en anden kan det være viden om komplekse formler og makroer. I begge tilfælde er denne tærskel lille. Dernæst kommer kvasi-sprog, såsom 1C -programmering. Så er der de enkleste sprog at lære, f.eks. PHP . Derudover har vi sprog med native syntaks (normalt afledt af engelsk), som ikke kræver, at du håndterer hukommelseshåndtering, f.eks. Java og JS . Så er der sprog, der kræver ekstremt omhyggelig håndtering af hukommelse, datastrukturer og algoritmer, for eksempel C ogC++ . Unge multiparadigmesprog, for eksempel Scala , har måske den højeste adgangstærskel, fordi beherskelse af dem kræver, at du dykker dybt ned i så mange programmeringsparadigmer. Men før du vælger et sprog, bør du beslutte, hvad du vil gøre næste gang: udvikle til internettet, virksomheden, desktop eller mobile enheder.

Web eller ej web?

Web

Webprogrammører kan opdeles i frontend- og backend- udviklere. Du bør forstå, hvad disse udtryk betyder. Frontend-udviklere er involveret i klientsiden, altså hvad brugeren ser. "Backenden" handler om at manipulere og lagre data - den del af en tjeneste, der kører på en server. For en frontend- udvikler, der beslutter, hvilket programmeringssprog der skal læres, er JavaScript- og JavaScript-frameworks (Angular JS, React og andre) afgørende. JS-dialekter, såsom CoffeeScript og TypeScript, er ikke så populære som deres forældre, men de kan også være nyttige. Der er også en Flash AS, og der plejede at være JScript og VBScript, men det er kun dinosaurerne der husker dette =) Udover alt dette skal du forstå HTMLog CSS . Valg af programmeringssprog - 2Mange begyndere tror, ​​at JavaScript og Java er næsten det samme. Forveksle ikke disse sprog. JS blev tidligere kaldt "LiveScript" og fik sit nuværende navn kun på grund af populariteten af ​​ordet "Java". For en web-backend- udvikler er PHP, Python, Ruby, Perl og Java velegnede. Her vil jeg fokusere på PHP (vi taler om de andre sprog senere). PHP er et af de nemmeste sprog at lære, da det har en lav adgangstærskel. Ifølge en undersøgelse blandt kendte webudviklere vinder Ruby langsomt, men sikkert popularitet - den er elsket for sin kortfattethed og skønhed.

Ikke web (virksomhed, desktop, mobil)

Jeg har med vilje kombineret følgende programmeringssprog i denne kategori med et mærkeligt navn. Du kan bruge de fleste af dem til at skrive virksomheds-, desktop- og endda mobilapplikationer. Python er et letforståeligt objektorienteret programmeringssprog og er blevet utrolig populært for nylig på grund af vækstmaskinlæringen ( ML): ML-udviklere gør udstrakt brug af Python. MLer et ret nyt område inden for IT, og selvom vi allerede har set det bære frugt, ville jeg ikke skynde mig ind i denne branche, når jeg skulle vælge et programmeringssprog. For det første skal du have en FANTASTISK forståelse af matematik. For det andet kan popularitetsbølgen passere på samme måde som den gjorde for "blockchain" eller "nanoteknologi". Når det er sagt, kan du huske, at Python bruges i webudvikling. C++: et klassisk sprog, hvor alt er bygget på "plus-plus"-operatoren. Dette sprog er forfaderen til alle de populære objektorienterede programmeringssprog, og en nybegynder bør bestemt være opmærksom på det. Mange populære applikationer er blevet skrevet ved hjælp af det. Men den glimrende chance for at "skyde sig selv i foden" og den svært forståelige syntaks nulstiller sandsynligheden for, at en nybegynder mestrer denne mastodont af programmering. Kotlin, der er ligesom Java for hipstere, er en skør blanding af OOP og funktionel programmering. Det har været populært for nylig på grund af det faktum, at en erfaren udvikler, der skifter fra Java til Kotlin, seriøst kan forbedre hans eller hendes produktivitet. En erfaren udvikler vil hurtigt blive fortrolig med dette programmeringssprog. Det samme gælder i øvrigt for Scala, men Kotlin er populær i Android-verdenen. Java er let for begyndere at lære. Især ved hjælp af CodeGym =) Java-syntaks er forståelig, og selvom der er risiko for at "skyde dig selv i foden", er det ikke kritisk.

OOP eller POP?

Den proceduremæssige tilgang

Den procedureorienterede tilgang involverer at skrive et program bestående af sekventielle udsagn, der kan samles til en samlet helhed for effektivt at løse et specifikt sæt problemer. Sådanne sprog omfatter C , PureBasic og Pascal . Med andre ord de sprog, der bringer fortvivlelse til gymnasieelever og studerende. Der er også den relativt unge GOSprog. Når det er sagt, er det meget nyttigt for en potentiel udvikler at være fortrolig med proceduresprog. Min fordybelse i proceduresprog kom med Wolfram Mathematica-systemet og universitetsforskning. Korrekte algoritmer og enkle procedurer, der bevægede sig lineært fra begyndelsen af ​​programmet til slutningen, gav mig mulighed for at beregne værdier, der er relevante for moderne teoretisk fysik. Dette "sekventielle" programmeringssprog er lige det, der hjælper dig med at forstå, at det nogle gange er lettere at skrive kode, der udfører beregninger manuelt. Læringsprocedureorienteret programmering (POP) giver god algoritmisk træning, som en arbejdsgiver næsten altid ønsker at se hos en jobkandidat. Absolut alt inden for IT er bygget på grundlaget af proceduresprog, så undervurder dem ikke. I øvrigt, begyndere, der beslutter sig for, hvilket programmeringssprog de skal lære, tror ofte, at kun OOP-sprog understøtter multithreading. Det er ikke sandt. Procedureprogrammeringssprog tillader også parallelle beregninger. Valg af programmeringssprog - 3

Den objektorienterede tilgang

De, der startede med proceduresprog, er normalt velbevandret i matematik, algoritmer og datastrukturer (på grund af tekniske universiteters vægt på disse områder). Alligevel er virkeligheden i dag, at succesfulde programmører normalt er dem, der har mestret en anden tilgang til programmering: det objektorienterede paradigme. OOP-ideologien lader dig bygge virkelig globale systemer. Et træk ved denne tilgang er dens lighed med den virkelige verden:
  • Forskellige objekter interagerer med hinanden og eksisterer uafhængigt af hinanden.
  • Objekter har et hierarki og kan adoptere eller ændre deres forfædres adfærd.
  • Du kan bruge abstrakte begreber, men kun objekter, der faktisk eksisterer, kan interagere.

Eksempel

Procedureorienterede sprog er værktøjer til at løse specifikke problemer. Hvis din opgave ændres, selv lidt, skal du sandsynligvis bruge tid og kræfter på at omskrive alle algoritmerne.

Forestil dig et program, der beskriver en bilforhandler, der sælger biler og lastbiler, både nye og brugte. I et proceduresprog skal du definere funktioner, der behandler input eller output af data for hver enhed: en ny bil, en ny lastbil, en brugt bil og en brugt lastbil. Hvad tilbyder OOP? Med en objektorienteret tilgang skal vi blot definere en køretøjsbasisklasse, der gemmer de egenskaber, der deles af alle køretøjstyper:

  • Lave
  • Motorens slagvolumen
  • Hestekræfter
  • År
  • Ny eller brugt
  • Pris

Og metoder til at tage ind og udsende information. Derefter skaber vi objekter, der arver egenskaberne fra køretøjsklassen: bil og lastbil. De indeholder information, der specifikt vedrører disse typer køretøjer, samt input/output-metoder.

Pludselig beslutter forhandlerens ledelse at udvide sortimentet ved også at tilbyde motorcykler. Under den proceduremæssige tilgang ville vi skulle genskabe al logikken for nye og brugte motorcykler, mens et OOP-sprog lader os simpelthen skabe en ny motorcykelklasse, der arver alle egenskaberne fra Vehicle-superklassen og indeholder motorcykelspecifikke raffinementer.

Og hvad ville der ske, hvis vi tilføjede forskellige køretøjer? En proceduremæssig implementering ville kræve mere arbejde end OOP. Hvad mere er, jo større lineup, jo færre operationer, der involverer objekter, vil være påkrævet.

Så OOP er en programmeringsstil, der lader dig kombinere data og metoder i en enkelt enhed og arbejde med dem som et samlet objekt. Enheder kan arrangeres i et hierarki og interagere med hinanden uden at dykke ned i hinandens interne implementeringsdetaljer. Jeg vil påpege tre grunde til, at OOP er den mere progressive tilgang for mig:
  1. OOP involverer uafhængig udvikling af individuelle moduler, så en programmør eller et team kan vælge metoden og grænserne for kontakt og informationsudveksling.
  2. Kode opdelt i små moduler er meget lettere at læse end monolitiske procedurer. Som et resultat kan en udenforstående hurtigt forstå din kode, og du kan ligeledes tilslutte dig et nyt projekt, hvis det er nødvendigt.
  3. En klasse kan ændres uden at påvirke en andens interaktion, men en sådan ændring kan påvirke hierarkiet af underordnede objekter. Når du har mestret denne tilgang, bliver det trivielt at udvide og ændre et program.
Husk, at den ene tilgang ikke er i konflikt med den anden, men OOP er stadig højere i hierarkiet. Så hvorfor anbefaler jeg Java? Jeg vil fremhæve følgende grunde:
  1. Cross-platform.

    Java fungerer overalt takket være den virtuelle Java-maskine (JVM). En af dette sprogs vigtigste fordele er dets tværplatformskarakter: ingen grund til at tænke på, hvilket bibliotek der skal tilføjes eller arkitekturen af ​​en bestemt processor. "Skriv en gang, løb hvor som helst."

  2. Dokumentation.

    Der er en enorm dokumentationsbase: officiel Oracle-dokumentation, træningsportaler og et fællesskab i konstant udvikling. Svar på de fleste af de spørgsmål, der opstår under udvikling, kan findes på få minutter. Det vigtigste er at forstå, hvad du skal indtaste i søgemaskinen =)

  3. Popularitet.

    Java er det mest populære programmeringssprog i verden: Ud over de førnævnte Android- og webudviklere skriver næsten alle virksomhedsudviklere i Java. Enterprise refererer til den interne virksomhedsudvikling, der er nødvendig for store virksomheders behov.

    Hvert år forudsiger hatere "Javas død". De siger, " Oracle vil stoppe med at støtte det. Du spilder totalt din tid. " Dette er ikke sandt! De lover at udgive nye versioner af Java hvert halve år.

    For mig var lambda-udtrykkene i Java 8 revolutionerende og en åbenbaring, for ikke at sige noget om de nye versioner! Jeg arbejder i øjeblikket på et "legacy" projekt, så jeg dykker ikke ned i de seneste innovationer, men det er et faktum, at Java lever.

    Valg af programmeringssprog - 4
  4. Android.

    I de sidste 4 år har Android konsekvent haft mere end 80 % af mobiltelefonmarkedet . TV'er, medieafspillere og endda bilinfotainmentsystemer kører på dette operativsystem. Og appudvikling til dette OS sker hovedsageligt i Java. Forestil dig de perspektiver, der åbner sig. Da jeg fik et job som Android-udvikler, spekulerede jeg på, hvor meget det produkt, jeg var ved at udvikle, var værd? Som det viste sig, var prisen omkring $ 5 om året. Det rejser spørgsmålet, "hvor kommer pengene så fra til dette kontor, lønningerne, snackrummet, bordtennisbordet, robotter og andre frynsegoder? Svaret ligger i volumen: vores app har 20 millioner brugere.

  5. Lønninger.

    Og nu er prikken over i'et: En Java-udviklers løn er blandt de højeste i branchen. Når alt kommer til alt, planlægger du at studere programmering med et bestemt formål: at få et godt job.

Programmeringssprogets popularitet

Der er officielle informationskilder, så lad os vende os til dem. Ifølge TIOBE rangerer Java først fra oktober 2019. I PYPL- ranglisten ligger Java på andenpladsen, langt foran JS og konkurrerer med den trendy Python.

Konklusion

Når en nybegynder overvejer at vælge et programmeringssprog, er dette, hvad han eller hun skal være opmærksom på:
  • Popularitet (Java indtager konsekvent en førende position)
  • Indgangstærskel (for Java er det medium: arbejdsgivere kræver en ret bred vifte af færdigheder)
  • Tilgængelige materialer (velkommen til CodeGym =))
  • Anvendelsesområder: Jo flere områder, hvor et programmeringssprog bruges, jo flere specialister kræves der på markedet. Jeg har allerede nævnt, hvordan Java understøtter udvikling på tværs af platforme, men jeg bliver aldrig træt af at gentage det.
Selvfølgelig er der faldgruber alle vegne, men den, der tager et skridt, bevæger sig fremad: kun du kan bestemme, hvilket programmeringssprog du skal vælge. Held og lykke med at lære!
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION