CodeGym /Java-blogg /Tilfeldig /Velge et programmeringsspråk
John Squirrels
Nivå
San Francisco

Velge et programmeringsspråk

Publisert i gruppen
Jeg kom først over programmering på skolen, i timene om informatikk. Disse besto av noen kjedelige forklaringer på hvordan n-ære tallsystemer fungerer. Og selvfølgelig var det en test som krevde at du skrev din egen nettside. På den tiden virket det for meg at det ikke kunne være en kjedeligere yrke. Hvor feil jeg tok! Dessverre gir et informatikkprogram på videregående skole ikke et fullstendig bilde av IT-arbeid, og det forklarer ikke hvordan man velger et programmeringsspråk. Før du spør "Hvilket programmeringsspråk skal jeg lære?", bør en nybegynner sette seg inn i hvilke språk som finnes der ute og hvordan de skiller seg fra hverandre. Velge et programmeringsspråk - 1

Inngangsterskel: Høy, lav, middels

Programmerere snakker ofte om "inngangsterskelen" - et konsept som gjenspeiler mengden innsats som kreves for en gitt "juniorutvikler" for å mestre et programmeringsspråk tilstrekkelig godt til å skrive sitt første seriøse program og finne en jobb. «Inngangsterskelen» består av kunnskap om:
  • syntaks særegenheter og nyanser av språket
  • biblioteker
  • algoritmer og datastrukturer.
Å jobbe i Excel kan til og med kalles en slags programmering. Forresten, dette kjente kontorprogrammet er ikke så enkelt som det ser ut til. For én bruker kan inngangsterskelen være muligheten til å lage en tabell. For en annen kan det være kunnskap om komplekse formler og makroer. I begge tilfeller er denne terskelen liten. Deretter kommer kvasi-språk, som 1C -programmering. Så er det de enkleste språkene å lære, f.eks. PHP . Videre har vi språk med innfødt syntaks (vanligvis avledet fra engelsk) som ikke krever at du håndterer minneadministrasjon, f.eks. Java og JS . Så er det språk som krever ekstremt forsiktig håndtering av minne, datastrukturer og algoritmer, for eksempel C ogC++ . Unge multiparadigmespråk, for eksempel Scala , har kanskje den høyeste inngangsterskelen, fordi mestring av dem krever at du dykker dypt inn i så mange programmeringsparadigmer. Men før du velger et språk, bør du bestemme deg for hva du vil gjøre videre: utvikle for nettet, bedriften, skrivebordet eller mobile enheter.

Web eller ikke nett?

Web

Nettprogrammerere kan deles inn i Frontend- og Backend -utviklere. Du bør forstå hva disse begrepene betyr. Frontend-utviklere er involvert på klientsiden, altså det brukeren ser. "Backend" handler om å manipulere og lagre data - den delen av en tjeneste som kjører på en server. For en frontend- utvikler som bestemmer hvilket programmeringsspråk som skal læres, er JavaScript- og JavaScript-rammeverk (Angular JS, React og andre) avgjørende. JS-dialekter, som CoffeeScript og TypeScript, er ikke like populære som deres foreldre, men de kan også være nyttige. Det finnes også et Flash AS, og det pleide å være JScript og VBScript, men det er bare dinosaurer som husker dette =) I tillegg til alt dette må du forstå HTMLog CSS . Velge et programmeringsspråk - 2Mange nybegynnere tror at JavaScript og Java er nesten det samme. Ikke forveksle disse språkene. JS ble tidligere kalt "LiveScript" og fikk sitt nåværende navn kun på grunn av populariteten til ordet "Java". For en web-backend- utvikler er PHP, Python, Ruby, Perl og Java egnet. Her vil jeg fokusere på PHP (vi skal snakke om de andre språkene senere). PHP er et av de enkleste språkene å lære, med en lav inngangsterskel. I følge en undersøkelse blant kjente webutviklere vinner Ruby sakte men sikkert popularitet – den er elsket for sin konsise og skjønnhet.

Ikke nett (bedrift, desktop, mobil)

Jeg har med hensikt kombinert følgende programmeringsspråk i denne kategorien med et merkelig navn. Du kan bruke de fleste av dem til å skrive bedrifts-, skrivebords- og til og med mobilapplikasjoner. Python er et lettfattelig objektorientert programmeringsspråk og har blitt utrolig populært nylig på grunn av vekstmaskinlæring ( ML): ML-utviklere bruker Python i stor grad. MLer et ganske nytt område innen IT, og selv om vi allerede har sett det bære frukter, ville jeg ikke haste inn i denne bransjen når jeg skulle velge programmeringsspråk. Først trenger du en UTMERKET forståelse av matematikk. For det andre kan popularitetsbølgen passere på samme måte som den gjorde for «blockchain» eller «nanoteknologi». Når det er sagt, husker du kanskje at Python brukes i webutvikling. C++: et klassisk språk der alt er bygget på "pluss-pluss"-operatoren. Dette språket er stamfaren til alle de populære objektorienterte programmeringsspråkene, og en nybegynner bør definitivt ta hensyn til det. Mange populære applikasjoner har blitt skrevet med den. Men den utmerkede sjansen for å "skyte deg selv i foten" og den vanskelig forståelige syntaksen nuller sannsynligheten for at en nybegynner mestrer denne mastodonten innen programmering. Kotlin, som er som Java for hipstere, er en sprø blanding av OOP og funksjonell programmering. Det har vært populært nylig på grunn av det faktum at en erfaren utvikler som bytter fra Java til Kotlin kan forbedre produktiviteten hans eller hennes seriøst. En erfaren utvikler vil raskt bli komfortabel med dette programmeringsspråket. Det samme gjelder forresten Scala, men Kotlin er populær i Android-verdenen. Java er lett for nybegynnere å lære. Spesielt ved hjelp av CodeGym =) Java-syntaks er forståelig og selv om det er en risiko for å "skyte deg selv i foten", er det ikke kritisk.

OOP eller POP?

Den prosedyremessige tilnærmingen

Den prosedyreorienterte tilnærmingen innebærer å skrive et program som består av sekvensielle utsagn som kan settes sammen til en enhetlig helhet for å effektivt løse et spesifikt sett med problemer. Slike språk inkluderer C , PureBasic og Pascal . Med andre ord, språkene som bringer fortvilelse til videregående skoleelever og studenter. Det er også den relativt unge GOSpråk. Når det er sagt, er det veldig nyttig å være kjent med prosedyrespråk for en potensiell utvikler. Min fordypning i prosedyrespråk kom med Wolfram Mathematica-systemet og universitetsforskning. Riktige algoritmer og enkle prosedyrer, som beveget seg lineært fra begynnelsen av programmet til slutten, tillot meg å beregne verdier som er relevante for moderne teoretisk fysikk. Dette "sekvensielle" programmeringsspråket er akkurat det som hjelper deg å forstå at noen ganger er det lettere å skrive kode som utfører beregninger manuelt. Læring av prosedyreorientert programmering (POP) gir god algoritmisk opplæring, som en arbeidsgiver nesten alltid ønsker å se hos en jobbkandidat. Absolutt alt innen IT er bygget på grunnlaget for prosedyrespråk, så ikke undervurder dem. Forresten, nybegynnere som bestemmer seg for hvilket programmeringsspråk de skal lære, tror ofte at bare OOP-språk støtter multithreading. Dette er ikke sant. Prosedyreprogrammeringsspråk tillater også parallelle beregninger. Velge et programmeringsspråk - 3

Den objektorienterte tilnærmingen

De som startet med prosedyrespråk er vanligvis godt kjent med matematikk, algoritmer og datastrukturer (på grunn av tekniske universiteters vekt på disse områdene). Realiteten i dag er likevel at vellykkede programmerere vanligvis er de som har mestret en annen tilnærming til programmering: det objektorienterte paradigmet. OOP-ideologien lar deg bygge virkelig globale systemer. Et trekk ved denne tilnærmingen er dens likhet med den virkelige verden:
  • Ulike objekter samhandler med hverandre og eksisterer uavhengig av hverandre.
  • Objekter har et hierarki og kan adoptere eller endre oppførselen til sine forfedre.
  • Du kan bruke abstrakte konsepter, men bare objekter som faktisk eksisterer kan samhandle.

Eksempel

Prosedyreorienterte språk er verktøy for å løse spesifikke problemer. Hvis oppgaven din endres, selv litt, må du sannsynligvis bruke tid og krefter på å skrive om alle algoritmene.

Se for deg et program som beskriver en bilforhandler som selger biler og lastebiler, både nye og brukte. På et prosedyrespråk må du definere funksjoner som behandler inndata eller utdata for hver enhet: en ny bil, en ny lastebil, en brukt bil og en brukt lastebil. Hva tilbyr OOP? Med en objektorientert tilnærming trenger vi bare å definere en kjøretøybaseklasse som lagrer egenskapene som deles av alle kjøretøytyper:

  • Gjøre
  • Motor forskyvning
  • Hestekrefter
  • År
  • Ny eller brukt
  • Pris

Og metoder for å ta inn og sende ut informasjon. Deretter lager vi objekter som arver egenskapene til Vehicle-klassen: Bil og Lastebil. De inneholder informasjon som spesifikt gjelder disse typer kjøretøy, samt input/output-metoder.

Plutselig bestemmer forhandlerens ledelse seg for å utvide utvalget ved også å tilby motorsykler. Under den prosedyremessige tilnærmingen må vi gjenskape all logikken for nye og brukte motorsykler, mens et OOP-språk lar oss ganske enkelt lage en ny motorsykkelklasse som arver alle egenskapene til Vehicle-superklassen og inneholder motorsykkelspesifikke forbedringer.

Og hva ville skje hvis vi legger til ulike kjøretøy? En prosedyreimplementering vil kreve mer arbeid enn OOP. Dessuten, jo større utvalg, jo færre operasjoner som involverer objekter vil være nødvendig.

Så, OOP er en programmeringsstil som lar deg kombinere data og metoder til en enkelt enhet og jobbe med dem som et enhetlig objekt. Entiteter kan ordnes i et hierarki og samhandle med hverandre uten å dykke ned i hverandres interne implementeringsdetaljer. Jeg vil peke på tre grunner til at OOP er den mer progressive tilnærmingen for meg:
  1. OOP innebærer uavhengig utvikling av individuelle moduler, slik at en programmerer eller et team kan velge metode og grenser for kontakt og informasjonsutveksling.
  2. Kode partisjonert i små moduler er mye lettere å lese enn monolitiske prosedyrer. Som et resultat kan en utenforstående raskt forstå koden din, og på samme måte kan du bli med i et nytt prosjekt om nødvendig.
  3. Én klasse kan endres uten å påvirke interaksjonen til en annen, men en slik endring kan påvirke hierarkiet til underordnede objekter. Når du har mestret denne tilnærmingen, blir det trivielt å utvide og endre et program.
Husk at den ene tilnærmingen ikke er i konflikt med den andre, men OOP er fortsatt høyere i hierarkiet. Så hvorfor anbefaler jeg Java? Jeg vil fremheve følgende årsaker:
  1. Kryssplattform.

    Java fungerer overalt takket være den virtuelle Java-maskinen (JVM). En av hovedfordelene til dette språket er dets karakter på tvers av plattformer: ingen grunn til å tenke på hvilket bibliotek du skal legge til eller arkitekturen til en bestemt prosessor. "Skriv en gang, løp hvor som helst."

  2. Dokumentasjon.

    Det er en enorm dokumentasjonsbase: offisiell Oracle-dokumentasjon, opplæringsportaler og et samfunn i stadig utvikling. Svar på de fleste spørsmålene som dukker opp under utviklingen finner du på noen få minutter. Det viktigste er å forstå hva du skal skrive inn i søkemotoren =)

  3. Popularitet.

    Java er det mest populære programmeringsspråket i verden: i tillegg til de nevnte Android- og webutviklerne, skriver nesten alle bedriftsutviklere i Java. Enterprise refererer til den interne bedriftsutviklingen som er nødvendig for behovene til store selskaper.

    Hvert år spår hatere "Javas død". De sier: " Oracle vil slutte å støtte det. Du kaster bort tiden din totalt. " Dette er ikke sant! De lover å gi ut nye versjoner av Java hvert halvår.

    For meg var lambda-uttrykkene i Java 8 revolusjonerende og en åpenbaring, for ikke å si noe om de nye versjonene! Jeg jobber for tiden med et «legacy»-prosjekt, så jeg fordyper meg ikke i de siste innovasjonene, men det er et faktum at Java lever.

    Velge et programmeringsspråk - 4
  4. Android.

    De siste 4 årene har Android konsekvent hatt mer enn 80 % av mobiltelefonmarkedet . TV-er, mediespillere og til og med bilinfotainmentsystemer kjører på dette operativsystemet. Og apputvikling for dette operativsystemet skjer hovedsakelig i Java. Bare forestill deg utsiktene som åpner seg. Da jeg fikk jobb som Android-utvikler, lurte jeg på hvor mye produktet jeg utviklet var verdt? Som det viste seg, var prisen rundt $5 per år. Det reiser spørsmålet: "Hvor kommer så pengene fra for dette kontoret, lønningene, snacksrommet, bordtennisbordet, roboter og andre fordeler? Svaret ligger i volumet: appen vår har 20 millioner brukere.

  5. Lønn.

    Og nå er prikken over i-en: En Java-utviklers lønn er blant de høyeste i bransjen. Tross alt planlegger du å studere programmering for et bestemt formål: å få en god jobb.

Programmeringsspråkets popularitet

Det er offisielle informasjonskilder, så la oss gå til dem. I følge TIOBE rangerer Java først fra og med oktober 2019. I PYPL- rangeringen er Java på andreplass, langt foran JS og konkurrerer med den trendy Python.

Konklusjon

Når en nybegynner vurderer å velge et programmeringsspråk, er dette hva han eller hun bør være oppmerksom på:
  • Popularitet (Java inntar konsekvent en ledende posisjon)
  • Inngangsterskel (for Java er den middels: arbeidsgivere krever et ganske bredt spekter av ferdigheter)
  • Tilgjengelig materiale (velkommen til CodeGym =))
  • Bruksområder: jo flere felt der et programmeringsspråk brukes, jo flere spesialister kreves det i markedet. Jeg har allerede nevnt hvordan Java støtter utvikling på tvers av plattformer, men jeg blir aldri lei av å gjenta det.
Selvfølgelig er det fallgruver overalt, men den som tar et skritt går fremover: bare du kan bestemme hvilket programmeringsspråk du skal velge. Lykke til med læringen!
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION