
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.
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 .
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.
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:
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. |
- OOP innebærer uavhengig utvikling av individuelle moduler, slik at en programmerer eller et team kan velge metode og grenser for kontakt og informasjonsutveksling.
- 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.
- É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.
-
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."
-
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 =)
-
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.
-
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.
-
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.
GO TO FULL VERSION