Jeg vil gerne være den allerbedste, som ingen nogensinde var ... - Del 1

Okay, så du er sandsynligvis her, fordi du vil vide mere om verdenen Software Engineering, enten er du ny inden for kodning, og du vil vide, hvilke skridt du skal tage, eller måske har du nogle erfaringer fra skolen eller et online-kursus, men du sidder fast efter at have lært noget syntaks og ikke ved, hvor du skal gå derfra. Nå, alle er velkomne.

Denne artikel vil kaste lys over de rigtige skridt, der skal tages for at blive en stor softwareudvikler baseret på mine erfaringer og forståelse, når jeg prøver at nedbryde hvert trin undervejs for det, som jeg mener er de vigtigste brudpunkter for at opbygge et stærkt fundament til gå ind i kodningens verden. Jeg vil fremhæve de mest almindelige fejl, som jeg har set andre begå, og måske endda nogle af mine egne fejl (⊙.⊙).

”Rejsen for at være den bedste begynder med et enkelt trin, men ikke alle kan tage alle de nødvendige skridt for at nå toppen. Der er ingen genveje til succes, hvert skridt, der er taget, er en ny erfaring, den er uvurderlig og kan ikke handles for en lettere udvej. For at nå nye højder, må man kæmpe og bevare. En udvikler er kun så god som antallet af problemer, han er stødt på og løst ”

Selvom denne guide vil være mest effektiv for studerende i begyndelsen af ​​deres LANG software engineering rejse, håber jeg, at den vil give værdifuld indsigt til andre, der også kan sidde fast. Uanset om det er i deres første år, andet år, eller endda hvis de er i en rutine længere med i deres karriere.

Lad os tage det første skridt sammen ...

Java - En lettere C ++

I High School eller College kan CS1 (Computer Science 1) og CS2 tilbydes i Java. Dette er et meget kontroversielt førstesprog af mange årsager, men jeg tror, ​​det kommer ned på dette. At lære Java som din første gateway ind i kodeverdenen er som en fugl, der bliver skubbet ud af reden for at lære at flyve, eller cykle for første gang uden træningshjul, du er sandsynligvis skadet. Men senere vil du være taknemmelig for, at du er vant til smerten tidligt, fordi Java hurtigt introducerer og indgår forskellige koncepter i dig på et meget tidligt tidspunkt, som og på grund af

  • Objekter, primitiver, parenteser og parenteser både firkantede og krøllede
  • Det er et meget ordisk og statisk typisk robust sprog
  • Du skriver mange gentagne ting igen og igen, hvilket vil hjælpe med at forbedre skrivehastigheden for begyndere og kompakte nøgleord som streng og int

Jeg kan varmt anbefale den blå pelikan af Charles E. Cook, dette er helt i modsætning til enhver anden kedelig lang og kedelig Java-lærebog med en lang introduktion om computervidenskabens historie og dens formål eller forfattere, det kommer lige til det punkt med en simpel hej verdenseksempel, der bygger på med mere enkle øvelser.

Vil du tage dig selv en kopi? Hent indbundet fra Amazon i dag, og start med at udføre øvelserne med den gratis BlueJ IDE

Link til bog: https://amzn.to/2Y0qzaO

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

Tilbage til Java er det bestemt meget sværere at lære end et simpelt sprog som Python, men fordi du begynder med en højere vanskelighed, når du overgår fra Java til et andet sprog som Python eller JavaScript i fremtiden, vil det være meget lettere at afhente og forstå, da du går ned i vanskeligheder vs at gå fra Python til Java, hvilket er en utrolig vanskeligere ændring at foretage, da du er nødt til at ændre hele din tankeproces.

Så nu, hvis du har lavet noget Java, hvad er de vigtigste kontrolpunkter for at vide, når du er klar til mere? Hvordan ved du, hvornår du kan niveauet op?

  1. Alle starter på niveau 1. Det er her, du lærer om primitiver såsom ints, doubler, booleaner og også strenge. Du kan udskrive tekst til skærmen, udskrive ligninger, cast ints til fordoblinger og vice versa, sammenkæde strenge og tal og bare håndtere grundlæggende interaktioner. Mit råd her, prøv at oprette en Chick-Fill-A eller (Indtast navnet på favoritrestauranten her) Lommeregner, hvor du udskriver en smuk hilsen-skærm, viser kundernes ordrer for sammensatte værdier og det samlede beløb med skat.
  2. Niveau 2 er hvor ting bliver sjovt. Her introducerer vi, hvis udsagn, for loops, mens loops, og Scanner-input fra brugeren for at lave mere komplekse, men alligevel meget enkle programmer, såsom en Magic 8 Ball, der stiller 8 spørgsmål, en reel restaurantberegner, der tager brugerinput, en simpel tekstbaseret spil, der bruger løkker og input til at besvare grundlæggende spørgsmål. Dette er langtfra et af de vigtigste niveauer, så tag dig virkelig tid til at forstå, hvor magtfulde hvis udsagn og sløjfer virkelig er, fordi det er de rigtige grundlæggende elementer i datalogi lige der. Åh, og lad os ikke glemme metoder, prøv at finde ud af, hvad metoder er, og hvordan du bruger dem, før du går videre til næste niveau, det vil gøre dit liv meget lettere.
  3. Jeg tror, ​​at de fleste kommer ind i kodning, fordi en del af dem ønsker at lave den næste store app, eller et videospil, eller noget sjovt og interaktivt. At tage højde for dette niveau 3 er det store første skridt hen imod dette mål, hvor det vigtigste benchmark er at oprette en tekstbaseret version af Hangman, nu selv for de erfarne udviklere derude vil jeg gerne have, at alle prøver dette uden at bruge objekter, men strenge, så det betyder ingen Arrays eller ArrayLists eller String.split (“”). I denne tidlige fase bør optimering eller udførelse af din kode ikke engang være i dit sind. En af de største fejl, som jeg ser folk laver, er at undervurdere strengenes magt, og hvor værdifulde de er, du kan ærligt gøre alt og alt med strenge, himlen er grænsen. Vær kreativ, tænk uden for kassen, skriv ned dine ideer på papir i stedet for bare at kode, del hvert trin fra hinanden i noget lille og enkelt logisk, og prøv derefter at kode det.
  4. Hvis du har nået så langt, fantastisk job! Klap dig selv på ryggen eller endnu bedre springe op og ned skrigende af glæde, for de eneste overlevende, der har solderet på indtil dette tidspunkt, har du ærligt gjort virkelig godt, men rejsen er lige begyndt. Efter Hangman er det nu tid til at lære om datastrukturer, Java har at tilbyde, primært Arrays, ArrayLists, HashMaps, Sets, Stacks, Køer, LinkedLists og Træer. Naturligvis handler ikke alt på én gang, niveau 4 handler kun om at mestre Arrays og ArrayLists. Prøv at lave en lille købmandssimulering, hvor du kan indtaste forskellige nummerkommandoer for at tilføje eller fjerne eller udskifte genstande fra din indkøbskurv.
  5. Nu, hvor du har lært magien med matrix og array-lister, gå tilbage og gør hangman meget bedre. Men lær måske først om sæt, og det kan muligvis gøre nogle ting lettere.
  6. Lær at bruge Scannere til at læse tekstfiler, og tæl derefter hvor mange gange hvert bogstav først vises, tip: BRUG HASH KORT. Udskriv antallet af hvert bogstav i en stor bog som Moby Dick eller Tales of Two Cities, hold styr på, hvor lang tid det tager, det kan tage et stykke tid, men du kan søge efter optimeringer for at gøre denne proces hurtigere. Hvis din kode tager timer, gør du noget meget forkert.
  7. Stakke, køer, LinkedLists, træer, er alt, hvad du i sidste ende lærer i en datastrukturklasse, så du skal ikke bekymre dig for meget om det, det er ikke så vigtigt for at opbygge en sjov applikation. Her vil jeg have, at du lærer om et API, lærer om Maven, hvilket er, hvordan du bruger kode, som en anden har skrevet i din egen applikation til at gøre noget meningsfuldt. Dette er også et godt tidspunkt at stoppe og lære det grundlæggende i Github, fordi du bruger det resten af ​​dit liv. Prøv at trække noget nyhedsfeed fra Reddit eller kig ind i JavaFX for at oprette Desktop-applikationer med en brugergrænseflade.
  8. Et andet absolut must, som enhver ny programmør skal gøre, er at oprette et spil. Nu taler jeg ikke om noget som Call of Duty, tænker ikke engang på 3D endnu. Bare et simpelt 2D-spil med først at få en sprite til at bevæge sig på skærmen, så måske tilføje nogle fjender til at bevæge sig, skyde projektiler og til sidst komme til sidescrollere og platforme som Zelda, Mario eller Pokemon. For at lære at gøre disse i Java er nedenstående side det absolut bedste sted, jeg kan anbefale, at jeg kraftigt brugte, da jeg først lærte 2D-spil. De gør det nemt at følge tutorials, der dækker det grundlæggende fra bunden af. http://zetcode.com/tutorials/javagamestutorial/

Fra nu af har du opnået den tilsvarende erfaring med måske 1-2 års Java i HighSchool eller College. Dette er dog ikke næsten nok til et rigtigt job eller endda en praktikplads, du bliver nødt til at vide, hvordan man opretter forbindelse til eksterne systemer, hvordan man foretager REST API-opkald, arbejder med et UI på et eller andet niveau og læser skrivning til en database. Du skal være stolt af hvor du er, og hvordan du kom hertil, men ikke blive selvtilfredse. Nu er du ved den rigtige startlinje. Som en del af den ultimative guide til at nå toppen, og være den allerbedste softwareingeniør, ville den naturlige progression fra Java lære Android App Development, som Android er skrevet i Java. Her kan du gøre brug af de grundlæggende logiske færdigheder, du har lært, og forbinde dem til et UI, til flere sensorer og information, til Internettet virkelig og alle de muligheder, en telefon i disse dage kan have, verdener din østers.

Dette var bare del 1 i min guide til at være det allerbedste, se efter del 2, der går i dybden om, hvordan man bliver en professionel Android-udvikler fra at komme i gang med projekter og API'er til at arbejde med. I fremtiden er der måske eller måske ikke en videoserie, der er dedikeret til at gå i dybden på praktiske og virkelige livskodningseksempler fra Hangman til et skrivebordsprogram ved hjælp af JavaFX, skriv kommentarer om, hvad du gerne vil se, og hvilke integrationer du ville have vil du have gjort, måske noget med Spotify?