
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.
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 .
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.
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:
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. |
- 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.
- 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.
- 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.
-
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."
-
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 =)
-
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.
-
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.
-
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.
GO TO FULL VERSION