Jeg vil være den aller beste, som ingen noensinne var ... - Del 1

OK, så du er sannsynligvis her fordi du vil vite mer om programvareteknikkens verden, enten er du ny innen kodingsfeltet og vil vite hvilke skritt du bør ta, eller kanskje du har litt erfaring fra skolen eller et nettkurs, men du sitter fast etter å ha lært litt syntaks og ikke vet hvor du skal dra derfra. Vel, alle er velkomne.

Denne artikkelen vil belyse de riktige trinnene du må ta for å bli en god programvareutvikler basert på mine erfaringer og forståelse når jeg prøver å bryte ned hvert trinn underveis i det jeg mener er de viktigste bruddpunktene for å bygge et sterkt fundament for gå inn i kodingens verden. Jeg vil trekke frem de vanligste feilene jeg har sett andre gjøre, og kanskje til og med noen egne feil (⊙.⊙).

”Reisen for å bli den beste begynner med et enkelt skritt, men ikke alle kan ta alle trinnene som trengs for å nå toppen. Det er ingen snarveier til suksess, hvert skritt som er tatt er en ny erfaring som er oppnådd, det er uvurderlig og kan ikke omsettes for en enklere utvei. For å nå nye høyder, må man slite og bevare. En utvikler er bare så god som antallet problemer han har fått og løst ”

Selv om denne guiden vil være mest effektiv for studenter på begynnelsen av deres LANGE programvare-ingeniørreise, håper jeg at den vil gi verdifull innsikt til andre som også kan sitte fast. Enten det er i det første året, det andre året, eller til og med om de er i et løp lenger i karrieren.

La oss ta det første skrittet sammen ...

Java - En enklere C ++

På High School eller College kan CS1 (Computer Science 1) og CS2 tilbys i Java. Dette er et veldig kontroversielt førstespråk av mange årsaker, men jeg tror det kommer ned på dette. Å lære Java som din første inngangsport inn i kodenes verden er som en fugl som blir dyttet ut av reiret for å lære å fly, eller sykle for første gang uten treningshjul, du kommer til å bli skadet. Men senere vil du være takknemlig for at du ble vant til smertene tidlig fordi Java raskt introduserer og innlemmer forskjellige konsepter i deg på et veldig tidlig stadium som og pga.

  • Objekter, primitiver, parentes og parenteser både firkantede og krøllete
  • Det er et veldig ordøst og statisk skrevet robust språk
  • Du skriver mange repeterende ting om og om igjen som vil bidra til å forbedre skrivehastigheten for nybegynnere og kompakte søkeord som String og int

Jeg anbefaler Blue Pelican av Charles E. Cook, dette er helt i motsetning til noen andre kjedelige lange og kjedelige Java-lærebok med en lang introduksjon om datavitenskapens historie og dens formål eller forfattere, den kommer rett på sak med et enkelt hei verdenseksempel som bygger på med mer enkle øvelser.

Vil du ta deg en kopi? Få innbundet fra Amazon i dag og begynn å gjøre øvelsene med den gratis BlueJ IDE

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

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

Tilbake til Java er det definitivt mye vanskeligere å lære enn et enkelt språk som Python, men fordi du begynner på en høyere vanskelighetsgrad når du overfører fra Java til et annet språk som Python eller JavaScript i fremtiden, vil det være mye lettere å plukke opp og forstå siden du går ned i vanskeligheter vs å gå fra Python til Java, noe som er en utrolig vanskeligere endring å gjøre når du må endre hele tankeprosessen.

Så nå, hvis du har gjort noe Java, hva er de viktigste sjekkpunktene du må vite når du er klar for mer? Hvordan vet du når du kan flate opp?

  1. Alle begynner på nivå 1. Det er her du lærer om primitiver som ints, double, booleans, og også Strings. Du kan skrive ut tekst på skjermen, skrive ut ligninger, cast ints til dobler og omvendt, sammenkoble strenger og tall, og bare håndtere grunnleggende interaksjoner. Mitt råd her, prøv å lage en Chick-Fill-A eller (Skriv inn navnet på favorittrestauranten her) Kalkulator, der du skriver ut en vakker hilsen-skjerm, viser kundene ordrer for sammensatte verdier, og summen med skatt.
  2. Nivå 2 er der ting blir gøy. Her introduserer vi om uttalelser, for løkker, mens løkker, og skannerinnspill fra brukeren for å lage mer komplekse, men likevel veldig enkle programmer, for eksempel en Magic 8 Ball som stiller 8 spørsmål, en ekte restaurantkalkulator som tar inn brukerinput, en enkel tekstbasert spill som bruker løkker og input for å svare på grunnleggende spørsmål. Dette er et av de viktigste nivåene langt, så ta deg virkelig tid til å forstå hvor kraftige hvis uttalelser og løkker virkelig er, fordi det er de sanne grunnleggende elementene i informatikk der. Oh, og la oss ikke glemme metoder, prøv å finne ut hva metodene er og hvordan du bruker dem før du går videre til neste nivå, det vil gjøre livet ditt mye enklere.
  3. Jeg tror de fleste kommer inn på koding fordi en del av dem ønsker å lage den neste store appen, eller et videospill, eller noe morsomt og interaktivt. Å ta det med i betraktning nivå 3 er det store første skrittet mot det målet der det viktigste målestokken er å lage en tekstbasert versjon av Hangman, nå selv for de erfarne utviklerne der ute, vil jeg at alle skal prøve dette uten å bruke noen objekter, men strenger, så det betyr ingen Arrays eller ArrayLists eller String.split (“”). På dette tidlige stadiet burde ikke optimalisering eller utførelse av koden din engang være i tankene. En av de største feilene jeg ser folk gjør er å undervurdere kraften til strengene, og hvor verdifulle de er, du kan ærlig gjøre alt og alt med strenger, himmelen er grensen. Vær kreativ, tenk utenfor boksen, skriv ned ideene dine på papir i stedet for bare å kode, del hvert trinn fra hverandre til noe lite og enkelt logisk, og prøv deretter å kode det.
  4. Hvis du har kommet så langt, god jobb! Klapp deg selv på baksiden eller enda bedre, men hopp opp og ned og skriker av glede, for de eneste overlevende som har soldat frem til dette tidspunktet, har du ærlig talt virkelig bra, men reisen har akkurat begynt. Etter Hangman er det nå på tide å lære om datastrukturene Java har å tilby, først og fremst Arrays, ArrayLists, HashMaps, Sets, Stacks, Queues, LinkedLists og Trees. Selvfølgelig er ikke alt på en gang, nivå 4 handler bare om å mestre Arrays og ArrayLists. Prøv å lage en liten dagligvarebutikk-simulering, der du kan angi forskjellige nummerkommandoer for å legge til eller fjerne eller erstatte varer fra handlekurven.
  5. Nå som du har lært magien med matriser og matriselister, kan du gå tilbake og gjøre hangman mye bedre. Men kanskje lære om sett først, og det kan gjøre noen ting lettere.
  6. Lær å bruke skannere til å lese tekstfiler, og tell deretter hvor mange ganger hver bokstav vises først, HINT: BRUK HASH-KART. Skriv ut nummeret på hver bokstav i en stor bok som Moby Dick eller Tales of Two Cities, følg med hvor lang tid det tar, det kan ta litt tid, men du kan søke etter optimaliseringer for å gjøre denne prosessen raskere. Hvis koden din tar timer, gjør du noe veldig galt.
  7. Bunker, køer, LinkedLists, Trees, er alt du etter hvert vil lære i en datastrukturklasse, så ikke bekymre deg for mye om det, det er ikke så viktig for å lage en morsom applikasjon. Her vil jeg at du skal lære om et API, lære om Maven, som er hvordan du bruker kode noen andre har skrevet i din egen applikasjon for å gjøre noe meningsfylt. Dette er også et flott tidspunkt å stoppe og lære det grunnleggende i Github, fordi du bruker det resten av livet. Prøv å trekke noen nyhetsfeeder fra Reddit eller se inn i JavaFX for å lage Desktop-applikasjoner med et brukergrensesnitt.
  8. Et annet absolutt must hver ny programmerer må gjøre er å lage et spill. Nå snakker jeg ikke om noe som Call of Duty, tenker ikke engang på 3D ennå. Bare et enkelt 2D-spill med først å få en sprite til å bevege seg på skjermen, for så å kanskje legge til noen fiender til å bevege seg, skyte prosjektiler og til slutt komme til sidescrollere og plattformspillere som Zelda, Mario eller Pokemon. For å lære hvordan du lager disse i Java er nettstedet nedenfor det absolutt beste stedet jeg kan anbefale at jeg sterkt brukte når jeg først lærte 2D-spill. De gjør det veldig enkelt å følge opplæringsprogrammer som dekker det grunnleggende fra grunnen av. http://zetcode.com/tutorials/javagamestutorial/

Per nå har du fått tilsvarende erfaring med kanskje 1-2 års Java i HighSchool eller College. Dette er ikke nesten nok, men for en skikkelig jobb eller til og med en praksisplass, må du vite hvordan du kobler til eksterne systemer, hvordan du ringer REST API-samtaler, jobber med et brukergrensesnitt på et eller annet nivå og leser skriv til en database. Du bør være stolt av hvor du er og hvordan du kom deg hit, men ikke bli selvtilfreds. Nå er du på den virkelige startlinjen. Som en del av den ultimate guiden for å nå toppen, og være den aller beste programvareingeniøren, ville den naturlige progresjonen fra Java lære Android App Development slik Android er skrevet i Java. Her kan du bruke de grunnleggende logiske ferdighetene du har lært, og koble dem til et brukergrensesnitt, til flere sensorer og informasjon, til internett virkelig og alle mulighetene en telefon i disse dager kan ha, verdens østers.

Dette var bare del 1 av guiden min for å være den aller beste, se opp for del 2 som vil gå i dybden om hvordan du kan bli en profesjonell Android-utvikler fra å komme i gang med prosjekter og API-er å jobbe med. I fremtiden kan det være eller ikke være en videoserie som er dedikert til å gå i dybden på praktiske og virkelige kodeeksempler fra Hangman til en stasjonær applikasjon ved hjelp av JavaFX, legge igjen kommentarer om hva du vil se og hvilke integrasjoner du vil vil du ha gjort, kanskje noe med Spotify?