Selv om det er mulig å lære essensen av IOS Development i en helg, vil det ta mye lenger tid å mestre håndverket. Spørsmålet er da hvordan du overfører fra en nybegynner til en ekspert? I dette raske tipset vil jeg gi deg en breadcrumb-sti som kan hjelpe deg på vei til å bli en flott iOS-utvikler.
Det er ingen snarveier. Dette er noe jeg vil understreke før du fortsetter, fordi det er viktig å kvitte seg med noen illusjoner som kan ha sittende fast i hodet ditt. Du blir ikke en dyktig utvikler hvis du bare programmerer på søndag ettermiddager mellom 4:00 og 5 PM .. hvis solen ikke skinner og det er ingenting på fjernsyn. Ikke misforstå, det kan være morsomt å gjøre det, men det vil ikke gi deg mye nærmere målet ditt om å bli ekspertutvikler. Bortsett fra noen få unntak, trenger de fleste trening - og mye av det. Hvis du ikke er forberedt på å sette i timene, er det bedre å se på mål og ambisjoner. Bli god til noe du elsker, og tiden du bruker, vil være sin egen belønning.
En av de beste strategiene for å forbedre dine ferdigheter og å vedta beste praksis er å lære av andres kode. Dette betyr ikke bare å surfe Stack Overflow, men også, og enda viktigere, biblioteker eller kodestykker som er hentet fra andre utviklere.
Når du dykker inn i et bibliotek, for eksempel AFNetworking eller Magical Record, er det nøkkelen til ikke å bli overveldet av koden du leser. Sjansen er at du ikke forstår hver linje av kode i disse bibliotekene, men det er egentlig ikke meningen. Poenget er å se på kildekoden fra et høyere nivå og lære så mye som mulig, for eksempel navnekonvensjoner, beste praksis, designmønstre osv..
I tillegg til å lære fra andres kode er det en god læringsopplevelse å lage egne biblioteker. For en tid siden utviklet jeg et program som bruker Core Data som datalaget. I stedet for å bruke Magical Record bestemte jeg meg for å lage mitt eget bibliotek ved å utforske Magical Record og gjenopprette funksjonene som jeg trengte. Ikke bare resulterte dette i et magert, fleksibelt bibliotek, det lærte meg også mye om den indre driften av Magical Record.
Dette bringer meg til et annet viktig aspekt ved å lære riktig måte: Ikke tankeløst kopiere og lime inn kode. Vi bruker alle kodestykker som vi finner på steder som Stack Overflow eller Apples Developer Forums, men det er viktig å ikke kopi og lim inn koden du finner på nettet, uansett. Ved å kopiere kode som du finner, lærer du ikke noe. Jo større fare er at du ikke vet hva du nettopp har lagt til i koden din. Dette kan føre til uventet oppførsel, og det vil gjøre det svært vanskelig å feilsøke koden din senere.
Det kan være fristende fra tid til annen for raskt å bruke et kodestykke som tilsynelatende løser problemet du jobber med, men jeg oppfordrer deg sterkt til denne praksisen. Les koden, forstå hva du legger til i koden, og muligens tilpasse løsningen til dine behov.
Det sier seg selv at dette ikke gjelder for biblioteker eller rammer som er aktivt vedlikeholdt. Hvis du måtte gå gjennom Magical Record før du kunne bruke den i prosjektet ditt ... er du sikker på at du forstår forskjellen. Bruk sunn fornuft.
Kakao og objektiv-C er på mange måter svært forskjellige fra andre programmeringsspråk og miljøer. Dette betyr at de har egne mønstre og beste praksis. Jeg er sikker på at du allerede er kjent med noen få vanlige mønstre, for eksempel delegasjon og varsler. Imidlertid er det mange flere mønstre som kan hjelpe deg under utviklingen din, for eksempel singleton, observatør og kommandoprønn. Kakao Fundamentals Guide gir deg en fin oversikt over de vanligste mønstrene i kakao.
Å bli en god utvikler handler ikke bare om å forstå språket og rammene. Det er like mye om å jobbe effektivt med verktøyene du bruker dag inn og dag ut. For iOS-utvikling betyr dette Xcode og muligens andre verktøy, som PonyDebugger og Charles.
Hvis du vil lære noen ekstra triks, kan du være interessert i et tidligere raskt tips som jeg skrev om dette emnet.
Selv om du ikke kan delta på Apples årlige utviklerkonferanse, WWDC, er det en god ide å bla gjennom de mange øktvideoene og se på dem som gnister din interesse. Presentasjonene er vanligvis gitt av ingeniører som jobber med teknologiene dekket i økten, som gir deg detaljert informasjon og instruksjoner om hvordan du bruker dem. Det er også en fin måte å raskt komme på farten med disse teknologiene.
Det er mange gode utviklere som regelmessig skriver om deres håndverk, som Matt Gemmell, Aaron Hillegass og Mike Ash. Du kan finne en mer omfattende liste i et tidligere innlegg jeg har skrevet til Mobiletuts+.
Jeg har lagt merke til at min generelle forståelse av programvareutvikling har forbedret seg betydelig ved å lære nye språk eller jobbe med nye rammer. Fordelen med denne tilnærmingen er at du ikke begrenser visningen av hva som er mulig for språket du er mest kjent med.
Jeg dyppet nylig tærne i Ember.js og lærte at skaperne, Yehuda Katz og Tom Dale, tok inspirasjon fra kakao. Implementeringen av MVC (Model-View-Controller) -mønsteret til Ember.js er litt ukonvensjonelt for et JavaScript-rammeverk, men det er ikke så overraskende om du er kjent med kakao.
Det er ikke noe "beste" språk for å skrive programvare i da de alle har sine fordeler og ulemper. Den fine tingen er imidlertid at de er alle litt (eller mye) forskjellige, og det er de forskjellene som gjør at nye språk blir interessante og øyeåpning. Ruby, for eksempel, var en ekte øyeåpner for meg når det gjelder å skrive DRY (ikke gjenta selv), lesbar og ren kode.
Hvis du ikke vil sette i timene for å bli en bedre programmør, kan du kanskje revurdere hvorfor du ønsket å bli programmerer i utgangspunktet. Men hvis du blir begeistret for et nytt bibliotek eller verktøy som kan hjelpe deg i utviklingen din, vil du sannsynligvis ikke ha et problem med å forbedre dine ferdigheter over tid. Du må virkelig elske det du gjør for å bli bra på det, og jeg tror dette gjelder spesielt for programmering. Uansett hva folk forteller deg, vil du ikke bli ekspertutvikler over natten, men jeg lover deg at dine ferdigheter vil bli bedre hvis du fortsetter å lære og slå på håndverket ditt.