Ik wil de allerbeste zijn, zoals niemand ooit was ... - Deel 1

Ok, dus je bent waarschijnlijk hier omdat je meer wilt weten over de wereld van Software Engineering, of je bent nieuw op het gebied van codering en je wilt weten welke stappen je moet nemen, of misschien heb je wat ervaring van school of een online cursus, maar je zit vast na het leren van een syntaxis en weet niet waar je vanaf daar moet gaan. Nou, iedereen is welkom.

Dit artikel zal licht werpen op de juiste stappen om een ​​geweldige softwareontwikkelaar te worden op basis van mijn ervaringen en begrip, terwijl ik probeer elke stap af te breken op de manier die volgens mij de belangrijkste breekpunten zijn om een ​​sterke basis te leggen om betreed de wereld van codering. Ik zal de meest voorkomende fouten benadrukken die ik anderen heb zien maken, en misschien zelfs enkele eigen fouten (⊙.⊙).

“De reis om de beste te zijn begint met een enkele stap, maar niet iedereen kan alle stappen nemen die nodig zijn om de top te bereiken. Er zijn geen snelkoppelingen naar succes, elke genomen stap is een nieuwe ervaring, is van onschatbare waarde en kan niet worden geruild voor een gemakkelijkere uitweg. Om nieuwe hoogten te bereiken, moet men worstelen en behouden. Een ontwikkelaar is maar zo goed als het aantal problemen dat hij is tegengekomen en heeft opgelost "

Hoewel deze gids het meest effectief is voor studenten aan het begin van hun lange software engineering-reis, hoop ik dat het waardevolle inzichten zal geven aan anderen die misschien ook vastzitten. Of het nu in hun eerste jaar, tweede jaar is, of zelfs als ze verder in hun loopbaan zitten.

Laten we zonder verder gedoe samen de eerste stap zetten ...

Java - Een eenvoudiger C ++

In High School of College kunnen CS1 (Computer Science 1) en CS2 worden aangeboden in Java. Dit is een zeer controversiële eerste taal om talloze redenen, maar ik geloof dat het hier op neerkomt. Java leren als je eerste toegangspoort tot de wereld van de code is als een vogel die uit zijn nest wordt geduwd om te leren vliegen, of voor het eerst fietsen zonder zijwieltjes, je zult zeker gewond raken. Maar later zul je dankbaar zijn dat je in een vroeg stadium aan de pijn gewend bent geraakt, omdat Java snel verschillende concepten in je introduceert en in je in een heel vroeg stadium, zoals en vanwege

  • Objecten, primitieven, haakjes en haakjes zowel vierkant als gekruld
  • Het is een zeer uitgebreide en statisch getypeerde robuuste taal
  • Je typt steeds weer repetitieve dingen die de typsnelheid voor beginners en compacte zoekwoorden als String en int zullen verbeteren

Ik beveel de Blue Pelican van Charles E. Cook ten zeerste aan, dit is volledig anders dan elk ander saai lang en vervelend Java-handboek met een lange inleiding over de geschiedenis van de informatica en het doel of de auteurs, het komt meteen ter zake met een eenvoudige hallo wereldvoorbeeld dat voortbouwt op meer eenvoudige oefeningen.

Wil je een exemplaar pakken? Download vandaag nog de hardcover van Amazon en begin met de oefeningen met de gratis BlueJ IDE

Link naar boek: https://amzn.to/2Y0qzaO

Link naar BlueJ IDE: https://www.bluej.org/

Terug naar Java, het is absoluut veel moeilijker om te leren dan een eenvoudige taal zoals Python, maar omdat je met een hogere moeilijkheidsgraad begint wanneer je in de toekomst van Java naar een andere taal zoals Python of JavaScript overgaat, zal het veel gemakkelijker te leren zijn en begrijp het omdat je in moeilijkheden verkeert versus van Python naar Java gaan, wat een ongelooflijk moeilijkere verandering is die je moet maken omdat je je hele denkproces moet veranderen.

Dus als je nu wat Java hebt gedaan, wat zijn dan de belangrijkste checkpoints om te weten wanneer je klaar bent voor meer? Hoe weet je wanneer je een niveau omhoog kunt?

  1. Iedereen begint op niveau 1. Hier leer je over primitieven zoals ints, doubles, booleans en ook Strings. Je kunt tekst op het scherm afdrukken, vergelijkingen afdrukken, int's verdubbelen en vice versa, tekenreeksen en getallen samenvoegen en gewoon omgaan met basisinteracties. Mijn advies hier, probeer een Chick-Fill-A te maken of (Voer hier de naam van het favoriete restaurant in) Calculator, waar je een prachtig begroetingsscherm afdrukt, de klantenbestellingen voor opgemaakte waarden en het totaal met belasting laat zien.
  2. Niveau 2 is waar dingen leuk worden. Hier introduceren we als instructies, voor lussen, terwijl lussen, en Scannerinvoer van de gebruiker om complexere maar toch zeer eenvoudige programma's te maken, zoals een Magic 8 Ball die 8 vragen stelt, een echte restaurantcalculator die gebruikersinvoer opneemt, een eenvoudige op tekst gebaseerd spel dat lussen en invoer gebruikt om basisvragen te beantwoorden. Dit is veruit een van de belangrijkste niveaus, dus neem echt de tijd om te begrijpen hoe krachtig uitspraken en loops echt zijn, want dat zijn de echte fundamenten van de informatica daar. Oh en laten we methoden niet vergeten, probeer erachter te komen wat methoden zijn en hoe ze te gebruiken voordat je naar het volgende niveau gaat, het zal je leven een stuk eenvoudiger maken.
  3. Ik denk dat de meeste mensen coderen, omdat een deel van hen de volgende grote app wil maken, of een videogame, of iets leuks en interactiefs. Rekening houden met niveau 3 is de grote eerste stap in de richting van dat doel, waarbij de belangrijkste benchmark het maken van een op tekst gebaseerde versie van Hangman is, nu zelfs voor die ervaren ontwikkelaars daar wil ik dat iedereen dit probeert zonder objecten maar Strings te gebruiken, dat betekent geen Arrays of ArrayLists of String.split (“”). Aan het begin van een fase zou optimalisatie of prestaties van uw code niet eens in uw gedachten moeten zijn. Een van de grootste fouten die ik mensen zie maken, is het onderschatten van de kracht van Strings en hoe waardevol ze ook zijn, je kunt eerlijk alles en alles doen met Strings, the sky is the limit. Wees creatief, denk buiten de doos, noteer uw ideeën op papier in plaats van alleen code, breek elke stap logisch in iets kleins en eenvoudigs dan probeer het te coderen.
  4. Als je zover bent gekomen, prima gedaan! Klop je zelf op de rug of beter nog, spring op en neer schreeuwend van vreugde, voor de enige overlevenden die tot op dit punt zijn voortbestaan, heb je het echt heel goed gedaan, maar de reis is net begonnen. Na Hangman is het nu tijd om meer te weten te komen over de datastructuren die Java te bieden heeft, voornamelijk Arrays, ArrayLists, HashMaps, Sets, Stacks, Queues, LinkedLists en Trees. Natuurlijk gaat het niet allemaal tegelijk, bij Level 4 gaat het alleen om het beheersen van Arrays en ArrayLists. Probeer een simulatie van een kleine supermarkt te maken, waar u verschillende nummeropdrachten kunt invoeren om items uit uw winkelwagen toe te voegen of te verwijderen of te vervangen.
  5. Nu je de magie van matrix- en matrixlijsten hebt geleerd, ga je terug en maak je galg een stuk beter. Maar leer misschien eerst over Sets en het kan sommige dingen gemakkelijker maken.
  6. Leer hoe u scanners kunt gebruiken om tekstbestanden te lezen en tel vervolgens hoe vaak elke letter als eerste verschijnt, TIP: GEBRUIK HASH MAP. Print het nummer van elke letter in een groot boek zoals Moby Dick of Tales of Two Cities, houd bij hoe lang het duurt, het kan even duren, maar u kunt zoeken naar optimalisaties om dit proces sneller te maken. Als je code uren duurt, doe je iets heel erg verkeerd.
  7. Stacks, Queues, LinkedLists, Trees, het zijn allemaal dingen die je uiteindelijk zult leren in een datastructuurklasse, dus maak je er niet teveel zorgen over, het is niet zo belangrijk voor het bouwen van een leuke applicatie. Hier wil ik dat je leert over een API, leert over Maven, dat is hoe je code gebruikt die iemand anders in je eigen applicatie heeft geschreven om iets betekenisvols te doen. Dit is ook een goed moment om te stoppen en de basis van Github te leren, omdat je het de rest van je leven zult gebruiken. Probeer wat nieuwsfeed uit Reddit te halen of kijk in JavaFX om Desktop-applicaties met een gebruikersinterface te maken.
  8. Een andere absolute must die elke nieuwe programmeur moet doen, is een game maken. Nu heb ik het niet over zoiets als Call of Duty, denk nog niet eens aan 3D. Gewoon een eenvoudig 2D-spel met eerst een sprite op het scherm laten bewegen, dan misschien wat vijanden toevoegen om te bewegen, projectielen schieten en uiteindelijk naar side scrollers en platformers zoals Zelda, Mario of Pokemon gaan. Om te leren hoe je deze op Java kunt maken, is de onderstaande site absoluut de beste plek die ik kan aanbevelen die ik veel gebruikte bij het leren van 2D-spellen. Ze maken het zeer eenvoudig om zelfstudies te volgen die de basisbeginselen vanaf het begin behandelen. http://zetcode.com/tutorials/javagamestutorial/

Vanaf nu heb je dezelfde ervaring opgedaan als misschien 1-2 jaar Java in HighSchool of College. Dit is echter lang niet genoeg voor een echte baan of zelfs een stage, je moet weten hoe je verbinding kunt maken met externe systemen, hoe je REST API-aanroepen kunt doen, op een bepaald niveau met een UI kunt werken en schrijven naar een database kunt lezen. Je moet trots zijn op waar je bent en hoe je hier bent gekomen, maar wees niet zelfgenoegzaam. Nu bent u op de echte startlijn. Als onderdeel van de ultieme gids om de top te bereiken, zijnde de allerbeste software-ingenieur, zou de natuurlijke ontwikkeling van Java leren Android App-ontwikkeling zoals Android in Java is geschreven. Hier kunt u gebruikmaken van de fundamentele logische vaardigheden die u hebt geleerd en deze verbinden met een gebruikersinterface, met meer sensoren en informatie, echt met internet en alle mogelijkheden die een telefoon tegenwoordig heeft, de wereld van uw oester.

Dit was slechts deel 1 van mijn gids om de allerbeste te zijn, kijk uit voor deel 2 dat diepgaand zal ingaan op hoe je een professionele Android-ontwikkelaar kunt worden, van het aan de slag gaan tot projecten en API's om mee te werken. In de toekomst kan er al dan niet een videoreeks zijn gewijd aan het verdiepen van praktische en echte codevoorbeelden van de Hangman naar een Desktop-applicatie met behulp van JavaFX, laat commentaar achter op wat je zou willen zien en welke integraties willen gedaan, misschien iets met Spotify?