
Instapdrempel: Hoog, laag, gemiddeld
Programmeurs hebben het vaak over de "instapdrempel" - een concept dat de hoeveelheid inspanning weergeeft die een bepaalde "junior developer" nodig heeft om een programmeertaal voldoende onder de knie te krijgen om zijn of haar eerste serieuze programma te schrijven en een baan te vinden. De "instapdrempel" bestaat uit kennis van:- syntax eigenaardigheden en nuances van de taal
- bibliotheken
- algoritmen en datastructuren.
Web of geen web?
Web
Webprogrammeurs zijn onder te verdelen in Frontend- en Backend- ontwikkelaars. U moet begrijpen wat deze termen betekenen. Frontend-ontwikkelaars zijn betrokken bij de client-kant, dat wil zeggen wat de gebruiker ziet. De "backend" gaat over het manipuleren en opslaan van gegevens - het deel van een service dat op een server draait. Voor een frontend- ontwikkelaar die beslist welke programmeertaal hij wil leren, zijn JavaScript en JavaScript-frameworks (Angular JS, React en andere) essentieel. JS-dialecten, zoals CoffeeScript en TypeScript, zijn niet zo populair als hun moedertaal, maar ze kunnen ook nuttig zijn. Er is ook een Flash AS, en vroeger waren er JScript en VBScript, maar alleen dinosaurussen onthouden dit =) Daarnaast moet je HTML begrijpenen CSS .
Niet web (zakelijk, desktop, mobiel)
Ik heb met opzet de volgende programmeertalen gecombineerd in deze categorie met een vreemde naam. U kunt de meeste gebruiken om bedrijfs-, desktop- en zelfs mobiele applicaties te schrijven. Python is een gemakkelijk te begrijpen objectgeoriënteerde programmeertaal en is de laatste tijd enorm populair geworden door de groei van machine learning (ML): ML-ontwikkelaars maken veel gebruik van Python. MLis een vrij nieuw gebied in de IT, en hoewel we al hebben gezien dat het zijn vruchten afwerpt, zou ik deze branche niet meteen betreden bij het kiezen van een programmeertaal. Ten eerste heb je een UITSTEKEND begrip van wiskunde nodig. Ten tweede kan de golf van populariteit op dezelfde manier passeren als voor "blockchain" of "nanotechnologie". Dat gezegd hebbende, herinnert u zich misschien dat Python wordt gebruikt bij webontwikkeling. C++: een klassieke taal waarin alles is gebaseerd op de "plus-plus"-operator. Deze taal is de voorloper van alle populaire objectgeoriënteerde programmeertalen en een beginner moet er zeker op letten. Er zijn veel populaire applicaties mee geschreven. Maar de uitstekende kans om "jezelf in de voet te schieten" en de moeilijk te begrijpen syntaxis maken de kans nihil dat een beginner deze mastodont van programmeren onder de knie zal krijgen. Kotlin, dat is als Java voor hipsters, is een gekke mix van OOP en functioneel programmeren. Het is de laatste tijd populair vanwege het feit dat een ervaren ontwikkelaar die overstapt van Java naar Kotlin zijn of haar productiviteit aanzienlijk kan verbeteren. Een ervaren ontwikkelaar zal snel vertrouwd raken met deze programmeertaal. Hetzelfde geldt trouwens voor Scala, maar Kotlin is populair in de Android-wereld. Java is voor beginners gemakkelijk te leren. Vooral met de hulp van CodeGym =) Java-syntaxis is begrijpelijk en hoewel er een risico bestaat dat u uzelf in de voet schiet, is het niet kritiek.OOP of POP?
De procedurele aanpak
De proceduregerichte benadering omvat het schrijven van een programma dat bestaat uit opeenvolgende verklaringen die kunnen worden samengevoegd tot een verenigd geheel om een specifieke reeks problemen effectief op te lossen. Zulke talen zijn C , PureBasic en Pascal . Met andere woorden, de talen die middelbare scholieren en studenten tot wanhoop brengen. Daarnaast is er nog de relatief jonge GOtaal. Dat gezegd hebbende, is het erg handig voor een potentiële ontwikkelaar om bekend te zijn met proceduretalen. Mijn onderdompeling in proceduretalen kwam met het Wolfram Mathematica-systeem en universitair onderzoek. Met de juiste algoritmen en eenvoudige procedures, lineair van het begin van het programma tot het einde, kon ik waarden berekenen die relevant zijn voor de moderne theoretische natuurkunde. Deze "sequentiële" programmeertaal is precies wat je nodig hebt om te begrijpen dat het soms gemakkelijker is om code te schrijven die berekeningen handmatig uitvoert. Leerprocedure-georiënteerd programmeren (POP) zorgt voor een goede algoritmische training, die een werkgever bijna altijd wil zien in een sollicitant. Absoluut alles in IT is gebouwd op het fundament van proceduretalen, dus onderschat ze niet. Trouwens, beginners die beslissen welke programmeertaal ze willen leren, denken vaak dat alleen OOP-talen multithreading ondersteunen. Dit is niet waar. Procedurele programmeertalen maken ook parallelle berekeningen mogelijk.
De objectgeoriënteerde benadering
Degenen die met proceduretalen zijn begonnen, zijn meestal goed thuis in wiskunde, algoritmen en datastructuren (vanwege de nadruk die technische universiteiten op deze gebieden leggen). Toch is de realiteit van vandaag dat succesvolle programmeurs meestal degenen zijn die een andere benadering van programmeren onder de knie hebben: het objectgeoriënteerde paradigma. Met de OOP-ideologie kun je echt wereldwijde systemen bouwen. Een kenmerk van deze aanpak is de gelijkenis met de echte wereld:- Verschillende objecten interageren met elkaar en bestaan onafhankelijk van elkaar.
- Objecten hebben een hiërarchie en kunnen het gedrag van hun voorouders overnemen of veranderen.
- U kunt abstracte concepten gebruiken, maar alleen objecten die echt bestaan, kunnen op elkaar inwerken.
Voorbeeld Proceduregerichte talen zijn hulpmiddelen om specifieke problemen op te lossen. Als uw taak verandert, ook al is het maar een klein beetje, zult u waarschijnlijk tijd en moeite moeten besteden aan het herschrijven van alle algoritmen. Stel je een programma voor dat een autodealer beschrijft die auto's en vrachtwagens verkoopt, zowel nieuw als gebruikt. In een procedurele taal moet u functies definiëren die de invoer of uitvoer van gegevens voor elke entiteit verwerken: een nieuwe auto, een nieuwe vrachtwagen, een gebruikte auto en een gebruikte vrachtwagen. Wat biedt OOP? Met een objectgeoriënteerde benadering hoeven we alleen maar een voertuigbasisklasse te definiëren die de kenmerken opslaat die door alle voertuigtypen worden gedeeld:
En methoden om informatie op te nemen en uit te zenden. Vervolgens maken we objecten die de kenmerken van de voertuigklasse erven: auto en vrachtwagen. Ze bevatten informatie die specifiek betrekking heeft op dit soort voertuigen, evenals invoer-/uitvoermethoden. Plots besluit het management van de dealer het assortiment uit te breiden door ook motorfietsen aan te bieden. Volgens de procedurele benadering zouden we alle logica voor nieuwe en gebruikte motorfietsen opnieuw moeten creëren, terwijl we met een OOP-taal eenvoudig een nieuwe motorfietsklasse kunnen creëren die alle kenmerken van de voertuigsuperklasse overerft en motorspecifieke verfijningen bevat. En wat zou er gebeuren als we verschillende voertuigen toevoegen? Een procedurele implementatie zou meer werk vergen dan OOP. Bovendien, hoe groter de line-up, hoe minder operaties met objecten nodig zijn. |
- OOP omvat de onafhankelijke ontwikkeling van individuele modules, waardoor een programmeur of team de methode en grenzen van contact en informatie-uitwisseling kan kiezen.
- Code opgedeeld in kleine modules is veel gemakkelijker te lezen dan monolithische procedures. Hierdoor kan een buitenstaander uw code snel begrijpen en kunt u zich indien nodig ook aansluiten bij een nieuw project.
- De ene klasse kan worden gewijzigd zonder de interactie van een andere te beïnvloeden, maar een dergelijke wijziging kan de hiërarchie van onderliggende objecten beïnvloeden. Als je deze aanpak eenmaal onder de knie hebt, wordt het uitbreiden en wijzigen van een programma triviaal.
-
Cross-platform.
Java werkt overal dankzij de Java virtual machine (JVM). Een van de belangrijkste voordelen van deze taal is het platformonafhankelijke karakter: u hoeft niet na te denken over welke bibliotheek u moet toevoegen of over de architectuur van een bepaalde processor. "Een keer schrijven, overal naartoe rennen."
-
Documentatie.
Er is een enorme documentatiebasis: officiële Oracle-documentatie, trainingsportals en een voortdurend evoluerende community. Antwoorden op de meeste vragen die tijdens de ontwikkeling opkomen, zijn binnen enkele minuten te vinden. Het belangrijkste is om te begrijpen wat u in de zoekmachine moet invoeren =)
-
Populariteit.
Java is de meest populaire programmeertaal ter wereld: naast de eerder genoemde Android- en webontwikkelaars schrijft bijna elke enterprise-ontwikkelaar in Java. Enterprise verwijst naar de interne bedrijfsontwikkeling die nodig is voor de behoeften van grote bedrijven.
Elk jaar voorspellen haters "de dood van Java". Ze zeggen: " Oracle stopt ermee. Je verspilt je tijd helemaal. " Dit is niet waar! Ze beloven elke zes maanden nieuwe versies van Java uit te brengen.
Voor mij waren de lambda-expressies in Java 8 revolutionair en een openbaring, om nog maar te zwijgen van de nieuwe versies! Ik werk momenteel aan een "legacy"-project, dus ik verdiep me niet in de nieuwste innovaties, maar het is een feit dat Java leeft.
-
Android.
De afgelopen 4 jaar heeft Android constant meer dan 80% van de markt voor mobiele telefoons in handen . Tv's, mediaspelers en zelfs auto-infotainmentsystemen draaien op dit besturingssysteem. En app-ontwikkeling voor dit besturingssysteem gebeurt voornamelijk in Java. Stelt u zich eens de vooruitzichten voor die zich openen. Toen ik een baan kreeg als Android-ontwikkelaar, vroeg ik me af hoeveel het product dat ik aan het ontwikkelen was waard was? Het bleek dat de prijs ongeveer $ 5 per jaar was. Dat roept de vraag op: "waar komt dan het geld vandaan voor dit kantoor, de salarissen, de snackbar, de pingpongtafel, de robots en andere voordelen? Het antwoord ligt in het volume: onze app heeft 20 miljoen gebruikers.
-
Salarissen.
En nu de kers op de taart: het salaris van een Java-ontwikkelaar behoort tot de hoogste in de branche. Je gaat tenslotte programmeren studeren met een bepaald doel: een goede baan krijgen.
De populariteit van de programmeertaal
Er zijn officiële informatiebronnen, dus laten we die raadplegen. Volgens TIOBE staat Java vanaf oktober 2019 op de eerste plaats. In de PYPL- ranglijst staat Java op de tweede plaats, ver voor JS en wedijvert met de trendy Python.Conclusie
Als een beginner overweegt een programmeertaal te kiezen, is dit waar hij of zij op moet letten:- Populariteit (Java neemt consequent een leidende positie in)
- Instapdrempel (voor Java is het gemiddeld: werkgevers hebben een vrij breed scala aan vaardigheden nodig)
- Beschikbare materialen (welkom bij CodeGym =))
- Toepassingsgebieden: hoe meer vakgebieden een programmeertaal gebruikt, hoe meer specialisten er in de markt nodig zijn. Ik heb al genoemd hoe Java platformonafhankelijke ontwikkeling ondersteunt, maar ik blijf het herhalen.
GO TO FULL VERSION