Hoe je een iOS-ontwikkelaar wordt in 2021 - een ultieme gids

In dit artikel zal ik bespreken wat er volgens mij nodig is om in 2021 een iOS-ontwikkelaar te worden. 

Ik richt me hiermee volledig op twee groepen mensen, absolute Swift-beginners – mensen die nog nooit iets voor iOS hebben gebouwd – en zogenaamde valse beginners – mensen die al eerder hebben geprobeerd Swift te leren, maar nooit echt hun doel hebben bereikt om een voltijdbaan.

Beschouwenless van uw huidige niveau, is het doel hier hetzelfde. Om je in staat te stellen om te solliciteren naar een junior iOS-ontwikkelaarsrol bij een bedrijf.

We kijken naar de vaardigheden die je moet leren, de cursussen die je kunt volgen, hoe je contact kunt maken met de gemeenschap, veelvoorkomende fouten die mensen maken en meer. 

Het beste van alles is dat alles wat ik zal bespreken volledig gratis is, dus je hoeft geen cent te betalen om mee te doen.

Serieus, veel te veel mensen geloven dat het uitgeven van veel geld hen op het snelle pad naar hun droombaan zal brengen, terwijl vastberadenheid en wilskracht de belangrijkste factoren zijn. 

Hier is een hint: als je er al aan denkt om verder te gaan in dit artikel, moet je waarschijnlijk aan je wilskracht werken!

Dit artikel is verdeeld in zeven secties:

  1. Kernvaardigheden die je moet hebben om een ​​baan te krijgen.
  2. Uitbreidingsvaardigheden die leuk zijn om te hebben - degenen die je zullen onderscheiden van de rest als je de moeite neemt om ze te leren
  3. Veelvoorkomende blunders die mensen maken wanneer ze proberen te leren.
  4. De vele gratis bronnen die beschikbaar zijn om u te helpen Swift te leren.
  5. Hoe u in contact kunt komen met de iOS-ontwikkelgemeenschap.
  6. Een inschatting van hoe lang het duurt om je doel te bereiken.
  7. Je maakt je klaar om te solliciteren voor je eerste baan.

De fundamentele vaardigheden die nodig zijn om een ​​iOS-ontwikkelaar te worden

De fundamentele vaardigheden die nodig zijn om een ​​iOS-ontwikkelaar te worden

Wat is het absolute absolute minimum aan vaardigheden dat nodig is om een ​​baan in iOS-ontwikkeling te krijgen? 

Ik geloof dat het er in totaal vijf zijn:

  1. Swift 
  2. SwiftUI 
  3. Netwerken
  4. Werken met gegevens
  5. Versiemanagement

Die lijst is om verschillende redenen opzettelijk kort gehouden:

Hoe meer je leert, hoe meer je beseft dat er nog te leren valt, dus het is gemakkelijk om zoveel tijd aan studeren en oefenen te besteden dat je het hoofddoel uit het oog verliest.

Je wilt werken als iOS-ontwikkelaar, niet alleen maar rondhangen om nieuwe dingen te leren!

Het is bijna zeker dat je lid wordt van een team dat al een app heeft waarvan ze willen dat je ze helpt ontwikkelen, dus unless je hebt enorm veel geluk, ze zullen je een heleboel dingen moeten leren wat betreftless.

Als je van tevoren een hele hoop extra onderwerpen probeert te proppen, verspil je waarschijnlijk je tijd.

Twee van die vijf dingen zijn enorm en ingewikkeld, en je zou maanden kunnen besteden aan het proberen om je hoofd eromheen te wikkelen zonder ergens anders naartoe te gaan.

Het belangrijkste is dat als je die vijf dingen goed doet, je een breed scala aan apps kunt maken. Natuurlijk, je code zal niet perfect zijn, maar dat is oké, want de enige manier om geweldige code te schrijven, is door eerst veel slechte code te schrijven.

Laat me de vijf items opsplitsen in kleinere stukjes.

Snel leren

Swift staat als eerste op de lijst. Dit is Apple's kern programmeertaal. Het heeft geen idee om informatie op het scherm van een iPhone weer te geven of gegevens van internet te downloaden. 

Het is gewoon een taal die lijkt op JavaScript of Python. Het is gewoon pure code die je gebruikt om variabelen te maken, functies te schrijven, enzovoort.

Swift is nog maar een paar jaar oud, dus het maakt gebruik van bijna elke geavanceerde taalfunctie die beschikbaar is. 

Aan de ene kant betekent dit dat je al het krokante oude gedrag kunt vermijden dat gebruikelijk is in oudere talen zoals C++ en Java. Het betekent ook dat het een hele reeks meer geavanceerde functies heeft die je in eerste instantie misschien verbazen.

En dat is prima. Veel delen van Swift zijn relatief eenvoudig, terwijl je er bij andere meer tijd voor nodig hebt om het volledig te begrijpen, dus neem de tijd en volhard - je komt er wel!

SwiftUI

De tweede kernvaardigheid die ik noemde is SwiftUI, wat een Apple framework waarmee we Swift kunnen gebruiken om apps voor iOS, macOS, tvOS en zelfs watchOS te maken. 

Dus, terwijl Swift de programmeertaal is, biedt SwiftUI de tools voor: ontwikkelaars om apps te maken, zoals het weergeven van afbeeldingen, tekst, knoppen, tekstvakken, gegevenstabellen en meer. 

Voor alle duidelijkheid: SwiftUI is geen vervanging voor Swift - het is een raamwerk dat bovenop Swift is gebouwd en waarmee we apps kunnen maken. Je moet zowel Swift als SwiftUI kennen om te slagen.

Als je dacht dat Swift nieuw was, heb je nog niets gezien! 

Voor zover ik weet, is SwiftUI pas twee jaar oud! Ondanks zijn jeugd, heeft de iOS-gemeenschap het van harte omarmd omdat het zo gemakkelijk te gebruiken is.

Apple heeft ook een ouder framework voor het bouwen van iOS-apps genaamd UIKit, en als je een aantal mensen vraagt ​​of je SwiftUI of UIKit eerst moet leren, krijg je verschillende antwoorden. 

Ik denk dat je SwiftUI moet leren.

Dus, voor het geval je je afvraagt, hier is waarom ik vind dat je SwiftUI prioriteit moet geven als een kernvaardigheid.

Het is aanzienlijk eenvoudiger dan UIKit, en ik bedoel aanzienlijk - het kost misschien een kwart van de code om dezelfde resultaten te bereiken als UIKit, en er zijn minder dingen om onderweg te leren. 

Dit betekent dat je veel momentum krijgt omdat je dingen sneller kunt bouwen, sneller resultaten kunt zien en sneller op die resultaten kunt herhalen, wat buitengewoon motiverend is tijdens het leren.

Gemaakt voor Swift

Gemaakt voor Swift

SwiftUI is gemaakt voor Swift en maakt gebruik van taalfuncties om u te helpen problemen te voorkomen en maximale prestaties te bereiken. 

Als u bijvoorbeeld bepaalde gegevens op één scherm van een app wijzigt, zorgt SwiftUI er automatisch voor dat de nieuwe gegevens worden bijgewerkt ergens anders in uw app die deze gebruikt - u hoeft geen code te schrijven om alles zelf gesynchroniseerd te houden, wat verrassend complex is. 

UIKit, aan de andere kant, is geschreven voor Apple's oudere taal, Objective-C, en heeft als resultaat allerlei eigenaardigheden die het gevolg zijn van zijn leeftijd.

SwiftUI is compatibel met alle Apple's platforms, zodat je wat je op iOS hebt geleerd kunt gebruiken om een ​​macOS- of watchOS-app te maken met bijna identieke code. 

Natuurlijk zijn sommige functies, zoals de Digital Crown, exclusief voor een enkel apparaat, maar het overgrote deel van wat je leert, werkt op elk apparaat.

Maar het belangrijkste is dat SwiftUI de richting is waarin het gaat. 

Als je nu naar een baan zou solliciteren, zou je waarschijnlijk UIKit moeten kennen, maar het feit dat je dit leest betekent dat je al veel verder bent in het proces. 

Ja, UIKit is nu populairder, maar SwiftUI zal het dominante UI-framework zijn tegen de tijd dat je het in 6, 9 of zelfs 12 maanden hebt geleerd.

Serieus, 's werelds grootste bedrijven, waaronder Apple, kiezen voor SwiftUI.

Wanneer Apple onlangs widgets in iOS 14 lanceerde, maakten ze het een vereiste dat je SwiftUI gebruikt.

Netwerken en gegevensmanipulatie

De derde en vierde vaardigheden die ik noemde waren netwerken en datamanipulatie. In vergelijking met Swift en SwiftUI zijn dit een fluitje van een cent, of in ieder geval op het niveau dat nodig is om een ​​junior iOS-ontwikkelaarbaan te krijgen.

Netwerken is de praktijk van het ophalen van gegevens van internet of het verzenden van gegevens van een lokaal apparaat naar een externe server. 

Er zijn talloze methoden om dit te bereiken, maar het belangrijkste om te begrijpen is hoe u JSON van een server kunt ophalen.

En hier komt de andere essentiële vaardigheid om de hoek kijken, het werken met data. 

Nogmaals, er zijn talloze manieren om gegevens te laden en op te slaan, maar het absolute minimum dat u moet kunnen doen, is de gegevens die u van een server hebt ontvangen met uw netwerkcode omzetten in informatie die uw app kan weergeven.

De derde en vierde kernvaardigheden zijn dus onlosmakelijk met elkaar verbonden. Haal wat gegevens op van een server en converteer deze vervolgens naar informatie die in uw app kan worden weergegeven. Sommige ontwikkelaars maken grapjes dat het schrijven van dit soort code het halve werk is van een iOS-ontwikkelaar, en het is zeker waar dat we er zwaar op vertrouwen.

Version control

De laatste vaardigheid is helemaal niet coderen, het is version control, zoals Git. Nogmaals, je hebt hier niet veel nodig, maar het is belangrijk dat je je code ergens openbaar kunt publiceren, zoals GitHub, zodat recruiters je werk kunnen zien.

Niemand ter wereld begrijpt echt hoe Git werkt, maar dat geeft niet - je moet gewoon genoeg basiskennis hebben om je gegevens veilig op te slaan en samen te werken met anderen.

Dus als die vijf bij elkaar worden opgeteld, zijn er twee enorme - Swift en SwiftUI - evenals drie kleine maar belangrijke. 

Als je je gewoon op die vijf dingen kunt concentreren zonder afgeleid te worden, ben je goed op weg naar je eerste baan als iOS-ontwikkelaar.

Dat is alles: dat zijn de vijf essentiële vaardigheden die je volgens mij nodig hebt om een ​​iOS-ontwikkelaar te zijn. 

Er zijn duizenden mensen die alleen die vaardigheden hebben en fantastische apps kunnen bouwen en verzenden in de App Store.

Wat komt er na de basis?

Wat komt er na de basis?

Als je eenmaal de vijf kernvaardigheden onder de knie hebt, kun je je eigen apps verzenden en als indie-ontwikkelaar werken, maar ook solliciteren naar junior iOS-ontwikkelingsposities en voor een bedrijf werken als dat is wat je wilt doen. 

Er zijn geen andere speciale kwalificaties vereist - spijker gewoon die kernvaardigheden bij en het komt goed.

Als je die vaardigheden echter onder de knie hebt en verder wilt, zijn er nog vijf andere vaardigheden die ik je aanraad om te leren. Dit zijn de vaardigheden die je van een goede naar een fantastische positie zullen stuwen - je zult nog beter inzetbaar worden en het aantal apps dat je kunt bouwen zal nog verder worden uitgebreid.

De capaciteiten zijn als volgt:

  • UIKit 
  • Kerngegevens 
  • Validatie
  • Testen
  • Software architectuur
  • multithreading

Zoals eerder zou ik elk van deze in meer detail willen bespreken, zodat je begrijpt waarom ik denk dat ze belangrijk zijn - en waarom ik ze beschouw als uitbreidingsvaardigheden in plaats van kernvaardigheden.

UIKit

Ten eerste is er UIKit. Dit is Apple's oudere gebruikersinterfaceframework, dat sinds 2008 wordt gebruikt voor app-ontwikkeling - het is 13 jaar oud terwijl ik dit schrijf, wat oud is in softwaretermen. Maar dat betekent niet dat UIKit slecht is. Sterker nog, als je gewend raakt aan hoe het werkt, zul je verrast zijn hoe elegant het kan zijn.

Er zijn tal van redenen waarom UIKit de moeite waard is om te leren, waaronder:

Honderdduizenden apps zijn al geschreven in UIKit, dus als je lid wordt van een bedrijf met een grote, gevestigde app, zul je vrijwel zeker UIKit-code moeten schrijven om die app te onderhouden.

UIKit is veel krachtiger dan SwiftUI - er zijn veel dingen die u in UIKit kunt doen die momenteel niet mogelijk zijn in SwiftUI.

Met behulp van Auto Layout-technologie kunt u uiterst nauwkeurige lay-outs maken.

Als u problemen ondervindt met uw code, heeft UIKit meer oplossingen dan SwiftUI, simpelweg omdat het al veel langer bestaat.

Dit alles zorgt ervoor dat UIKit fantastisch klinkt, dus waarom heb ik er een uitbreidingsvaardigheid van gemaakt in plaats van een kernvaardigheid? 

Omdat UIKit ook problemen heeft:

Bijna alles is moeilijker te doen in UIKit dan in SwiftUI, waarbij sommige taken honderd keer, zo niet meer, code vereisen. 

SwiftUI is speciaal ontworpen voor moderne iOS-ontwikkeling, dus het doet veel van het zware werk voor je.

Omdat UIKit niet in Swift is geschreven, heeft het veel functies die SwiftUI niet heeft - veel impliciet uitgepakte opties, code markeren met een speciaal @objc-attribuut om het beschikbaar te maken voor de Objective-C-onderbuik van UIKit, en de noodzaak om protocollen en gedelegeerden te gebruiken om eenvoudige gegevens weer te geven.

Niets aan automatische lay-out is "automatisch" - sterker nog, als u ooit een complexe lay-out probeert te bouwen, kunt u nachtmerries krijgen over automatische lay-out. Het is buitengewoon slim, maar het is op sommige plaatsen ook extreem moeilijk.

En dit is waarom ik UIKit als een uitbreidingsvaardigheid beschouw: het kost aanzienlijk meer tijd en moeite om te leren dan SwiftUI, wat betekent dat het veel meer vastberadenheid vereist - je moet het echt willen leren, anders raak je in de war , verveeld, boos of mogelijk alle drie. 

Natuurlijk heeft SwiftUI niet alle functies van UIKit, maar het stelt je in staat om snel vooruitgang te boeken en momentum te krijgen voordat je doorgaat naar UIKit.

Kerngegevens beheren

Kerngegevens beheren

Kerngegevens, Apple's raamwerk voor het werken met applicatiegegevens, is de tweede uitbreidingsvaardigheid die ik noemde. 

Ik noemde netwerken en werken met gegevens in het gedeelte over kernvaardigheden, en het is waar. Met die vaardigheden kun je alles wat je wilt van een server ophalen en in je app weergeven. 

Core Data gaat nog een stap verder door u in staat te stellen die gegevens te manipuleren zodra u deze hebt verkregen, zoals zoeken naar specifieke waarden, het sorteren van de resultaten en meer, allemaal zeer efficiënt. 

Het kan ook eenvoudig verbinding maken met iCloud, zodat de gegevens van uw gebruikers op al hun apparaten worden gesynchroniseerd.

Core Data heeft een hele reeks nadelen, waarvan de meest ernstige is dat het niet altijd prettig is om mee te werken. Core Data is bijna net zo oud als UIKit, en hoewel het goed werkte in Objective-C, voelt het niet zo natuurlijk aan in Swift. 

Het integreert goed met SwiftUI, waardoor het aanvoelt less vreemd, maar het is nog steeds een verrassend complex onderwerp.

Dus waarom heb ik het als een uitbreidingsvaardigheid opgenomen? Omdat Core Data, net als UIKit, enorm populair is - er zijn honderdduizenden apps mee gebouwd en het wordt gebruikt in veel grote en kleine bedrijven. 

Core Data, zoals UIKit, is extreem krachtig, en hoewel je de belangrijkste delen ervan in je eigen code zou kunnen recreëren, waarom zou je dat dan doen?

Uw code testen

De derde vaardigheid op mijn lijst met extensies is testen. Speciale code schrijven om ervoor te zorgen dat uw hoofdapp-code werkt zoals verwacht. 

Tests stellen ons in staat om ervoor te zorgen dat onze code correct werkt, en nog belangrijker, dat deze correct blijft werken, zelfs nadat we er belangrijke wijzigingen in hebben aangebracht.

Als u bijvoorbeeld 500 regels code wijzigt om een ​​nieuwe functie te implementeren en al uw tests slagen, bent u klaar om te gaan.

Testen is daarom van cruciaal belang en zal u helpen bij het schrijven van software van hogere kwaliteit. 

Dus waarom wordt het beschouwd als een uitbreidingsvaardigheid in plaats van een kernvaardigheid? 

Hiervoor zijn drie redenen:

De iOS-gemeenschap als geheel is verschrikkelijk in het testen, om welke historische redenen dan ook. Ik bedoel, echt slecht - veel grote apps hebben helemaal geen tests en ik ben de tel kwijtgeraakt van het aantal senior iOS-ontwikkelaars dat ik heb ontmoet en die er bijna trots op zijn dat ze nooit tests schrijven. 

Als je kijkt naar alle geweldige dingen die je kunt maken met Apple's tools en frameworks, lijkt het schrijven van tests niet zo leuk in vergelijking. 

Persoonlijk vind ik het schrijven van tests leuk, net zoals ik het leuk vind om mijn tanden te flossen, maar ik weet dat veel mensen dat niet doen, vooral als ze aan persoonlijke projecten werken.

Bij het solliciteren naar een baan, Swift kennen en AppleDe belangrijkste kaders zullen altijd nuttiger zijn dan te weten hoe je tests moet schrijven. 

Bedrijven willen liever dat je weet hoe je SwiftUI, UIKit of een van de andere grote slagmensen moet gebruiken, omdat testen een veel kleiner onderwerp is - er zijn lang niet zoveel dingen om te leren.

Testen is dus belangrijk, testen is belangrijk, en ik zou je graag leren hoe je geweldige tests schrijft. Maar pas nadat je de basisprincipes van app-ontwikkeling onder de knie hebt - nadat je enig succes hebt gehad, de haast voelde om je app live in de App Store te hebben en het testen onder de knie had.

Software architectuur

Software architectuur

De vierde uitbreidingsvaardigheid die ik zou willen bespreken, is software-architectuur, die in feite gaat over hoe we code schrijven. 

Je gaat een vreselijke code schrijven als je voor het eerst begint - code zo slecht dat het waarschijnlijk de conventie van Genève schendt. 

Dat is niet erg, want daar leer je van. Je begint niet goed - je wordt goed door lange tijd slecht te zijn, net zoals LeBron James niet als kampioen basketballer werd geboren.

Het punt is dat je bij je slechte code blijft totdat je weet hoe je het beter kunt doen. Dat is waar software-architectuur om de hoek komt kijken. Kijken naar beproefde technieken om uw code te structureren om het lezen, gebruiken, wijzigen en onderhouden op de lange termijn gemakkelijker te maken. 

Deze technieken zijn soms afhankelijk van de manier waarop Swift werkt: taalfuncties die kunnen worden gebruikt om betere code te schrijven. 

Er zijn echter tal van andere technieken die in elke programmeertaal werken en die gewoonlijk ontwerppatronen worden genoemd.

Een belangrijk aspect van deze vaardigheid die u moet leren, is hoe u uw code kunt opsplitsen. 

Als u bijvoorbeeld één scherm in uw app maakt, kan dit een inlogknop, een afbeeldingengalerij en een lijst met vrienden bevatten. 

U moet echter idealiter elk van deze onderdelen scheiden - een component voor een inlogknop, een component voor een afbeeldingsgalerij en een component voor een vriendenlijst - zodat u al deze componenten opnieuw kunt gebruiken in andere delen van uw app.

Software-architectuur is veel subjectiever dan de andere vaardigheden die ik tot nu toe heb besproken. Voor de anderen, zoals SwiftUI, kun je redeneren: "Nou, ik weet hoe ik X, Y en Z moet doen, dus ik ben ervan overtuigd dat ik een goede SwiftUI-ontwikkelaar ben."

 Software-architectuur is een zeer breed onderwerp en er is vaak geen duidelijke "juiste" manier om een ​​probleem op te lossen, dus ik denk dat de beste maatstaf hiervoor is: kijk je terug op je code van zes maanden geleden, een jaar geleden en spoedig.

Nogmaals, het schrijven van slechte code is acceptabel zolang het je dichter bij het schrijven van betere code brengt. 

Ik grijns zeker op sommige plaatsen als ik terugkijk op de code die ik vijf jaar geleden schreef, omdat ik nu meer weet dan toen - en dat is maar goed ook.

multithreading

De laatste uitbreidingsvaardigheid die ik zou willen bespreken, is multithreading, wat de gewoonte is om je code meer dan één ding tegelijk te laten doen. 

Multithreading kan een echte pijn in de nek zijn, omdat het voor onze hersenen moeilijk te begrijpen is. Wanneer uw code één ding tegelijk doet, kunnen we het lineair doordenken, maar wanneer twee of drie dingen tegelijkertijd gebeuren, mogelijk overlappend, kan het uw hersenen echt buigen.

Dus hoewel multithreading een geweldige vaardigheid is om als uitbreidingsvaardigheid te hebben, moet je voorzichtig zijn. Je doel zou moeten zijn om net genoeg van de concepten en code te begrijpen om het goed te laten werken zonder te ver te gaan. 

Om eerlijk te zijn, geloven veel ontwikkelaars dat multithreading hun code onmiddellijk drie of vier keer sneller zal laten werken. 

Hoewel dit in sommige gevallen waar is, zal uw code in veel andere gevallen zelfs langzamer werken en zult u nu te maken krijgen met alle extra codecomplexiteit.

Als je me niet gelooft, overweeg dan dit citaat van David Smith - Hij is lid van Apple's Swift-team en heeft eerder jaren gewerkt aan de kern van Apple's kaders:

“Mijn specifieke aanbeveling is dat je het schrijven van asynchrone/gelijktijdige code zoveel mogelijk vermijdt. Dit lijkt misschien vreemd in 2018, maar de kosten in complexiteit en prestaties zijn hoog.

Dus leer een beetje over hoe multithreading werkt in Swift om aan te tonen dat je de concepten en implementatie begrijpt, maar ga niet overboord!”

Veelvoorkomende fouten die nieuwe iOS-ontwikkelaars maken

Veelvoorkomende fouten die nieuwe iOS-ontwikkelaars maken

Op dit punt heb ik alle kern- en uitbreidingsvaardigheden opgesomd die je volgens mij nodig hebt om als fulltime iOS-ontwikkelaar te werken. 

Maar ik wil ook enkele van de meest voorkomende fouten bespreken die mensen maken tijdens het leren, omdat ik ze de hele tijd zie en weet hoe ze mensen terughoudend maken.

Er zijn zeven grote problemen waarmee mensen worden geconfronteerd, en ik zou ze in volgorde willen bespreken. 

Ze zijn als volgt:

  1. Alles onthouden
  2. Syndroom van het glanzende object
  3. Lone wolf leren
  4. Gebruik maken van bètasoftware
  5. Afhankelijk van Appledocumentatie
  6. Verzanden in Objective-C
  7. Gericht op andere talen

Laten we ze allemaal een voor een doornemen.

Stop met proberen alles te onthouden

Stop met proberen alles te onthouden

Het eerste en verreweg het meest voorkomende probleem dat mensen tegenkomen, is proberen alles te onthouden - een tutorial lezen en geloven dat ze alles uit hun hoofd moeten onthouden. 

Alsjeblieft, alsjeblieft, doe dat alsjeblieft niet. Het is een recept voor rampspoed en zal al je wilskracht zo ver ondermijnen dat je nooit meer wilt programmeren.

Niemand onthoudt alles. Niemand komt in de buurt om alles te onthouden. Zelfs als u alleen kijkt naar de API's die zijn gepubliceerd door Apple, de stukjes code die we kunnen gebruiken om onze apps te bouwen, moeten er meer dan honderdduizend beschikbaar zijn. 

Zelfs als je het beperkt tot de kerncomponenten van app-ontwikkeling, kijk je nog steeds naar enkele honderden - allemaal werkend op een zeer precieze manier die veel leren vereist om te gebruiken.

In plaats daarvan leer je hoe je iets nieuws moet doen en vergeet je meteen hoe je het opnieuw moet doen. 

Dus je zoekt het op, gebruikt het opnieuw en vergeet het dan meteen. Dus je zoekt het een derde keer op en gebruikt het, en deze keer vergeet je het meestal - sommige delen blijven je bij. 

Deze cyclus gaat oneindig door, waarbij je elke keer naar een zelfstudie of een andere referentiegids moet verwijzen, totdat de basisprincipes in je geest zijn geworteld tot het punt waarop je het kunt doen zonder iemand anders te raadplegen.

Als je het nog niet wist, is vergeten een belangrijk onderdeel van leren. 

Elke keer dat je iets vergeet en het opnieuw leert, dringt het dieper en dieper in je hersenen door. Wanneer je iets opnieuw leert, maken je hersenen nieuwe verbindingen met andere dingen die je hebt geleerd, waardoor je meer begrijpt over de context van wat je probeert te doen. 

En elke keer dat je opnieuw leert, geef je je hersenen een signaal dat dit specifieke onderwerp belangrijk genoeg is om op te slaan in het langetermijngeheugen.

Maar als je alles wilt onthouden, zul je het moeilijk krijgen. 

Maak je in plaats daarvan geen zorgen over het vergeten van dingen. Weten waar je ze moet opzoeken, is veel belangrijker dan het onthouden van specifieke Swift-code om iets te bereiken. 

Als je iets vergeet en het opnieuw moet leren, beschouw het dan als een goede zaak - die informatie zal dieper in je doordringen de tweede, derde en tiende keer dat je het leert, dus je helpt je hersenen.

Vermijd het glanzende object-syndroom

Het tweede meest voorkomende probleem dat ik mensen zie tegenkomen, is wat ik 'glanzend object-syndroom' noem, waarin ze een tutorialserie vinden die goed voor hen werkt en vooruitgang beginnen te boeken, maar na een week of twee merken ze nog een tutorialserie op die ze wil volgen en in plaats daarvan naar het schip springen. 

Ik heb mensen gehad die me een e-mail hebben gestuurd met de mededeling dat ze vier, vijf of zelfs zes verschillende series hebben geprobeerd en om de een of andere vreemde reden niets hebben geleerd.

Het probleem hier is dat veel aspecten van het leren van iets oninteressant zijn. Dat is niet per se de schuld van de leraar. 

Het is gewoon een feit van leren coderen - sommige dingen geven je met weinig moeite geweldige resultaten, terwijl andere veel meer tijd vergen om te begrijpen, geen mooie resultaten opleveren of slechts een onderdeel zijn van een groter concept.

Wanneer je deze steile leercurves raakt, treedt het glanzende objectsyndroom in werking - met zoveel gratis tutorials beschikbaar, kun je naar een van hen springen en opnieuw beginnen, en je bent terug in het ondiepe gedeelte van het zwembad, waar je gemakkelijker delen kunt behandelen je hebt het al geleerd. 

Maar, nietless de originele cursus koos een ongebruikelijk onderwerp om te behandelen, je zult het waarschijnlijk uiteindelijk moeten leren, en je stelt het onvermijdelijke alleen maar uit.

Dus ik vraag je niet om altijd weerstand te bieden aan het glimmende object-syndroom omdat ik begrijp hoe moeilijk het is. Wees je er in plaats daarvan op zijn minst van bewust: als je een probleem tegenkomt, probeer dan iemand anders om hulp te vragen en door te zetten in plaats van over te stappen.

Doe het niet alleen

Doe het niet alleen

Over iemand anders vragen gesproken, het derde probleem waar ik mensen tegenaan zie lopen, is wanneer ze helemaal alleen gaan met hun leerproces - ze geloven dat ze volledig in staat zijn om zelf iOS-apps te leren bouwen met Swift en hebben geen hulp van anderen nodig .

Deze methode werkt voor een zeer klein aantal mensen, meestal degenen met uitgebreide ervaring met andere programmeertalen of platforms. 

Voor de overgrote meerderheid van de mensen is leren op deze manier echter een vreselijke ervaring - elke fout of misverstand duurt vijf keer zo lang om op te lossen, het is heel gemakkelijk om de motivatie te verliezen en je mist veel inspiratie door te kijken anderen slagen.

Als je een natuurlijke 'lone wolf'-leerling bent, moedig ik je aan om je manier van doen te veranderen. 

Deel wat je leert, maak contact met anderen die leren en ontwikkel de gewoonte om vragen te stellen. 

Je zult niet alleen een fantastische gemeenschap van leerlingen ontdekken die je zullen steunen en aanmoedigen, maar je zult ook geïnspireerd worden door hun werk en hen op hun beurt inspireren met het jouwe. Geloof me, ik heb dit honderden keren gezien en het is volledig transformerend.

Gebruik geen bètaversies

Het vierde grote probleem dat ik zie, is wanneer mensen aandringen op het gebruik van bètaversies van Apple's ontwikkeltools. 

Ik begrijp: elk jaar, Apple brengt een nieuwe iOS, een nieuwe macOS en andere producten uit, die altijd spannende nieuwe dingen opleveren die we kunnen proberen. Het is normaal dat mensen het nieuwste en beste willen leren, vooral als ze weten dat Swift een lange geschiedenis van verandering heeft.

Wanneer mensen echter proberen te leren met bètasoftware, komen ze een hele reeks problemen tegen:

Omdat tutorials niet zijn bijgewerkt voor de bètaversie, is het niet altijd mogelijk om hun instructies te volgen of mislukken.

Bugs komen vaak voor in bèta's, vooral die welke zijn vrijgegeven voor grote iOS-updates.

Apple's bètaframeworks hebben tijd nodig om te stabiliseren, wat betekent dat code die in bèta 1 werkte, mogelijk niet werkt in bèta 3.

Dus hoewel het opwindend is om nieuwe dingen te leren en je misschien denkt dat je een voorsprong hebt op het spel met nieuwe functies, geloof me: het is het niet waard. 

Gebruik altijd de meest recente openbare releases van Apple's ontwikkelaarstools totdat u er vertrouwd mee bent.

Vertrouwen op officiële documentatie

Vertrouwen op officiële documentatie

Het vijfde grote probleem waarmee mensen worden geconfronteerd wanneer ze proberen te leren, is vertrouwen op Apple's documentatie. 

AppleHet team van ontwikkelaarspublicaties werkt hard om zoveel mogelijk te documenteren vanuit de enorme reeks frameworks van het bedrijf, maar hun belangrijkste taak is het schrijven van referentiemateriaal - dingen die je leest wanneer je een specifiek stuk van hun tools probeert te gebruiken - in plaats van het creëren van een gestructureerde cursus om u te helpen leren iOS-apps te bouwen.

Ik ben de tel kwijt van het aantal keren dat mensen me hebben gevraagd: "Hoe kan ik Swift leren?" alleen om te horen, "Lees Apple's Swift-referentiegids." 

Deze aanpak werkt voor sommige mensen, en ik weet het omdat het voor mij werkte toen Swift voor het eerst werd aangekondigd - ik las het van kaft tot kaft. 

Voor de meeste mensen is het echter hetzelfde als proberen een menselijke taal te leren door een woordenboek te lezen. Het is bedoeld om alles in de taal te behandelen, in plaats van u de belangrijkste onderdelen te leren en toe te passen.

Dus, als je uitgebreide ervaring hebt met andere talen, lees dan AppleDe naslaggidsen kunnen nuttig zijn, maar als je net begint, wil je ze misschien na een paar maanden nog eens bekijken.

Verzanden in Objective-C

Het zesde grote probleem waarmee mensen worden geconfronteerd, is het proberen om Objective-C te leren. Dit was Apple's primaire ontwikkeltaal vóór de introductie van Swift, en hoewel er overblijfselen zijn in sommige oude codebases, is de overgrote meerderheid van de bestaande code nu Swift, en bijna alle nieuwe code is ook Swift.

Ik heb jarenlang Objective-C geschreven voor Swift en ben er echt van gaan houden, maar het heeft een extreem steile leercurve en mist de meeste belangrijke functies van Swift. 

ik herinner me wanneer Apple kondigde voor het eerst de iPhone SDK aan en was geschokt door Objective-C omdat het anders was dan al het andere dat ik tot nu toe had gezien.

Objective-C en Swift hebben bijna niets gemeen voor een beginner. 

Ja, ze delen hetzelfde Apple kaders, maar nietless je bent van plan om te werken bij Apple – het enige bedrijf ter wereld dat nog steeds grote hoeveelheden Objective-C produceert – je moet Objective-C met rust laten en je volledig op Swift concentreren.

Andere talen negeren

Andere talen negeren

De laatste grote fout die ik mensen zie maken bij het leren van Swift, is het afwijzen van andere talen als inferieur aan Swift. 

Het meest voorkomende doelwit is JavaScript, maar je zult ook zien dat mensen zich richten op Python, Java, Ruby, Go en andere talen, en waarvoor? Het is geen race, mensen - die talen hoeven niet te verliezen om Swift te laten winnen.

Swift en SwiftUI zijn zelfs vaak geïnspireerd door andere talen en frameworks - wanneer nieuwe taalfuncties worden overwogen, kijkt de gemeenschap naar vergelijkbare implementaties in Rust, Python, Haskell en andere talen, en SwiftUI wordt sterk beïnvloed door JavaScript React kader. 

Dus als ik mensen in onze gemeenschap hoor beweren dat SwiftUI JavaScript-vrij is of iets dergelijks, krimp ik ineen - niets is minder waar.

Bronnen en cursussen voor iOS-ontwikkeling

Bronnen en cursussen voor iOS-ontwikkeling

Nu voor het deel waarin de meeste mensen geïnteresseerd zijn: wat zijn de werkelijke bronnen die u volgens mij zou moeten gebruiken om Swift, SwiftUI en meer te leren - om uw doel te bereiken om een ​​iOS-ontwikkelaar te worden?

Er zijn er veel en ik waardeer het feit dat de Swift-gemeenschap zo'n diverse groep mensen heeft die hun kennis delen. 

In dit artikel ga ik me echter concentreren op gratis bronnen - plaatsen waar je kunt leren fantastische apps te bouwen zonder een cent uit te geven.

Dit komt door twee factoren:

  1. Sommige mensen zijn van mening dat hoe hoger de prijs van een Swift-cursus, hoe beter deze moet zijn, zodat ze exorbitante prijzen betalen zonder voldoende voordeel te ontvangen.
  2. Veel sites, zoals Udemy, vertrouwen op de verkoop van een groot aantal goedkope cursussen, ervan overtuigd dat als je de ene niet leuk vindt, je gewoon een andere koopt. Ze hebben ook een bedrijfsmodel dat vergelijkbaar is met dat van Steam, in die zin dat er constante verkopen zijn, waardoor mensen worden aangemoedigd een groot aantal cursussen te verzamelen om 'op een dag' te studeren.

Dus ik som hier alleen gratis bronnen op omdat ik niet wil dat je in die valkuilen trapt - geef geen honderd dollar of meer uit aan je eerste cursus en koop geen dozijn goedkope cursussen met de gedachte dat jij een ontwikkelaar.

tutorials

Beginnen, Apple heeft twee belangrijke bronnen die u kunnen helpen. De eerste is de Teaching Code-website, die bronnen voor studenten en docenten bevat om Swift van de grond af te leren, helemaal tot aan professionele certificeringen. 

Hun curriculum is uitgebreid, dus het kan even duren om het beste startpunt voor jou te vinden, maar eenmaal daar zul je genoeg te ontdekken hebben.

Tweede Apple heeft een reeks SwiftUI-zelfstudies die u door het proces van het maken van echte apps leiden. Deze leren Swift echter niet, dus je moet eerst hun Swift-gerichte curriculum voltooien.

Zoals ik eerder al aangaf, Apple publiceert ook een gids specifiek voor de Swift-programmeertaal, maar de kans is groot dat het niet voor u werkt - het is bedoeld als referentie in plaats van als een gestructureerde tutorial, dus het is vrij intensief lezen.

Wat Apple's tutorials niet doen is een poging om een ​​gestructureerde leermethode te bieden. 

YouTube en andere sites

Er zijn enkele uitstekende YouTube-video's die je door de basisprincipes van SwiftUI leiden, zoals:

VlhcNR7Qrno
, waarin hij je vanaf het begin door het proces leidt om een ​​gokspel te maken.

51xIHDm_BD's
legt vijf SwiftUI-concepten uit die iedereen zou moeten leren wanneer ze beginnen met programmeren.

aP-SQXTtWhY
die zowel Swift als SwiftUI bevat tijdens het beantwoorden van vragen van het publiek.

Er zijn andere sites met Swift- en SwiftUI-tutorials van hoge kwaliteit, waaronder BLCKBIRDS, Ray Wenderlich, Donny Wals, Antoine van der Lee en meer. Ik moedig mensen echt aan om verschillende bronnen te bezoeken en te ontdekken wat voor hen werkt.

App-gebaseerd onderwijs

Als je liever via apps leert, raad ik er twee aan die beide volledig gratis zijn. De eerste is Apple's Swift Playgrounds-app, waarmee je Swift rechtstreeks vanaf je iPad of Mac kunt leren. 

Er zijn veel interactieve lessons gericht op kinderen, maar er zijn ook enkele meer geavanceerde lessdie u zullen helpen uw vaardigheden te verbeteren.

De andere app heet Unwrap en is door mij gemaakt. Unwrap is compatibel met alle iPhones en iPads en stelt je in staat om de basisprincipes van Swift te leren, beoordelen en oefenen door middel van video's, tests en andere tools. Het behandelt alle basisprincipes van Swift en vormt een perfecte aanvulling op het 100 Days of SwiftUI-curriculum.

Oplossingen verkrijgen

Ten slotte moet u leren hoe u online antwoorden kunt vinden. Dit zou kunnen betekenen dat ik naar Stack Overflow ga, maar ik hoop van niet, want het is geen bijzonder aangename plek.

Stel in plaats daarvan vragen op de Hacking with Swift-forums, je favoriete Slack-groep, de iOS Dev Happy Hour-sessies, Twitter en elders - we zijn een oprecht warme, gastvrije gemeenschap met veel mensen die je graag willen helpen bij het bereiken van je doelen.

Betrokken raken bij de gemeenschap

Betrokken raken bij de gemeenschap

Nu we het toch over onze gemeenschap hebben, ik zou graag een heel belangrijk onderwerp willen bespreken dat je zal helpen mensen in vergelijkbare functies als jij te ontmoeten, effectiever te leren en vacatures te vinden - het is overal een win-winsituatie.

Het onderwerp is verbinding maken met de iOS-ontwikkelgemeenschap. Dit houdt in dat u weet waar u nieuws en interessante ideeën kunt vinden, waar u mensen kunt ontmoeten en tips kunt delen en waar u terecht kunt voor vragen.

Wie moet ik volgen op Twitter?

Laten we beginnen met de eenvoudigste, namelijk het gebruik van Twitter. Twitter is een fantastische manier om dingen te volgen die je interesseren, en er zijn een paar mensen die ik ten zeerste zou aanbevelen in het geval van iOS-ontwikkeling.

Ja, deze mensen twitteren over hun eigen werk, maar ik denk dat ze geweldig zijn om te volgen omdat ze ook veel tweeten over andermans werk – ze helpen je verschillende perspectieven te zien op een bepaald onderwerp, en ze delen allerlei interessante ideeën en dingen om uit te proberen.

Hier zijn 9 mensen die ik je aanraad om te volgen op Twitter:

Sean Allen besteedt veel tijd aan YouTube om Swift- en iOS-ontwikkelingsvideo's te maken, maar hij werkt ook heel hard om het werk van andere mensen te verspreiden - hij doet echt geweldig werk door iedereen elke week iets nieuws te laten ontdekken.

Antoine van der Lee heeft een iOS-ontwikkelingswebsite op https://www.avanderlee.com, maar hij deelt ook enkele geweldige links naar nuttige bronnen die hij op GitHub, nieuwsbrieven en meer vindt.

Novall Khan werkt voor Apple, maar dat weerhoudt haar er niet van om regelmatig video's te plaatsen over waar ze mee bezig is, wat ze leert, waar ze moeite mee heeft en meer - ze is echt inspirerend.

Steve Troughton-Smith staat bekend om zijn eerdere werk dat aan iOS sleutelde, maar je moet hem echt volgen vanwege de fantastische reeks links die hij deelt naar indrukwekkend werk. Ik vind het leuk hoe hij de ontwikkelingsvoortgang van zijn eigen apps deelt, zodat je ze van begin tot eind kunt zien groeien.

Kaya Thomas is een van de bekendste indie-ontwikkelaars van onze community, en ze is uitgelicht door Apple vaker dan ik kan tellen. Ze tweet vaak over haar eigen werk en presentaties, maar ze deelt ook links naar boeken die ze leest, artikelen die ze heeft gelezen en andere bronnen.

Majid Jabrayilov schrijft niet alleen een fantastisch Swift- en SwiftUI-blog, maar hij is ook een bandless promotor van anderen - als je hem volgt op Twitter, krijg je idee na idee opgestuurd vanuit een grote verscheidenheid aan bronnen.

Donny Wals schrijft een Swift-blog en, meer recentelijk, boeken over Combineren en Core Data, maar hij moedigt mensen ook aan om op Twitter te delen waar ze mee bezig zijn. Zelfs als je dat draadje maar één keer per week leest, word je geïnspireerd om nieuwe dingen te proberen, dus je moet Donny zeker volgen.

Zomer Panage werkt Apple's toegankelijkheidsteam, dus hoewel ze enigszins beperkt is in wat ze kan zeggen, tweet ze wel veel eersteklas tips van zichzelf en anderen die iedereen kan gebruiken om betere apps te bouwen.

Natascha Fadeeva schrijft een blog over Swift- en iOS-ontwikkeling, inclusief artikelen over Core Data, interviewvragen en andere onderwerpen, maar ze twittert ook over dingen die ze elders vindt.

Nieuwsbrieven en meer

Nieuwsbrieven en meer

Twitter is natuurlijk niet de enige plek om in contact te blijven met de gemeenschap; er zijn ook nieuwsbrieven, Slack-groepen, Zoom-meetups, forums, conferenties en andere locaties. Ik wil je niet te veel vervelen, dus ik zal er hier een opsommen:

Je kunt niet fout gaan met iOS Dev wekelijks voor nieuwsbrieven. Terwijl ik dit schrijf, heeft het net 500 nummers gepasseerd, één per week, die je volgens mij alles vertellen wat je moet weten over hoe belangrijk het is.

Als u op een webforum wilt posten, https://www.hackingwithswift.com/forums is best goed. Er zijn veel categorieën om uit te kiezen, en iedereen, let opless van ervaringsniveau, is welkom om deel te nemen. Je bent meer dan welkom om je beginnersvragen hier te plaatsen, geloof me!

Elke maand is de iOS-ontwikkelaar Happy Hour wordt gehouden op een Zoom-groepsgesprek met meer dan 300 mensen, maar het echte plezier zit in de breakout rooms, waar je met groepen van 6 tot 8 personen tegelijk kunt chatten. Het is erg leuk en je leert nieuwe mensen kennen.

Het bijwonen van conferenties was moeilijk vanwege de pandemie van het coronavirus, maar Apple's WWDC was vorig jaar een enorm succes en ging gepaard met een hele reeks gemeenschapsevenementen. Een groep vrienden en ik hebben een . gemaakt GitHub-repository om alle andere evenementen, artikelen en andere dingen die zijn gebeurd bij te houden - neem een ​​kijkje!

Tot slot, als je liever chat op Slack waar je sneller antwoorden kunt krijgen, kun je gratis deelnemen Hacken met Swift Slack-groep en word lid van een van de Swift, SwiftUI en andere kanalen.

Hoeveel tijd kost het om iOS te leren?

Dit is een veelgestelde vraag van mij: hoe lang duurt het om door te gaan van niets weten over Swift naar het verkrijgen van een iOS-ontwikkelaarspositie op instapniveau?

Het voor de hand liggende antwoord is "het hangt ervan af", maar dat zou in dit geval een agent zijn, dus laat me het op een paar verschillende manieren aanpakken.

De gouden regel is om niet te haasten

Allereerst kun je niet meerdere cursussen tegelijk volgen. Weet je nog wat ik zei over het 'glanzende object-syndroom'? Ja, veel mensen denken dat ze twee cursussen tegelijkertijd kunnen volgen, en dan vier, vijf of zelfs meer uren per dag kunnen proppen en toch een goed begrip hebben van de onderwerpen die ze behandelen.

Voor alle duidelijkheid, ik heb mensen dit zo vaak zien proberen en het mislukt altijd. Elke keer - het werkt nooit, en ik hoor mensen zeggen dat het komt omdat de tutorials slecht waren, of omdat Swift te moeilijk was, of om letterlijk een andere reden dan proberen door iets ingewikkelds te haasten.

Ik kreeg letterlijk een e-mail met de tekst: "Hallo Paul! Hoe snel kan ik Swift afmaken als ik vier of vijf uur per dag studeer?" En dat is gewoon niet hoe leren werkt - of het nu gaat om Swift leren, piano leren spelen, leren schaatsen of iets anders.

Swift leren kan soms moeilijk zijn, en het leren bouwen van apps vereist veel vallen en opstaan, fouten maken en verkeerde afslagen nemen. En dat is prima – het is beter dan prima, het is fantastisch! 

Want elke keer dat je iets probeert, een fout maakt of een verkeerde afslag neemt, leer je gaandeweg iets en wanneer je uiteindelijk tot de oplossing komt, zul je het veel beter begrijpen.

Dus, de TL;DR hier is: haast je niet - neem de tijd, wees niet bang om raaklijnen die zich voordoen te verkennen, wees niet bang om met je projecten te experimenteren en wees niet bang om ergens op terug te gaan je eerder hebt geleerd en leer het opnieuw als dat nodig is.

Wat is jouw opleidingsachtergrond

Wat is jouw opleidingsachtergrond?

Ten tweede moet u rekening houden met uw achtergrond voordat u naar Swift komt. Zie je, het leren bouwen van apps vereist een breed scala aan vaardigheden, en als je aan tafel komt met een schat aan voorkennis zoals version control, datastructuren, algoritmen en meer, heb je een aanzienlijk voordeel ten opzichte van degenen die nieuw zijn in de informatica in het algemeen, evenals Swift en andere Apple kaders.

Dus, hier zijn een paar mogelijkheden voor waar je nu zou kunnen zijn:

Als je een diploma informatica hebt, ben je al bekend met veel van de basisprincipes van CS die nodig zijn om met Swift aan de slag te gaan. Variabelen, arrays, loops, arrays, sets, functies, OOP en andere concepten zullen nuttig zijn in Swift, net als al je werk met datastructuren en algoritmen. Dit kan je 4-6 maanden studietijd besparen, afhankelijk van de vakken die je hebt gestudeerd, en het geeft je ook een voordeel bij het solliciteren bij veel bedrijven.

Als je geen CS-diploma hebt, maar een coderingsbootcamp hebt gevolgd, heb je veel van de basisprincipes die je nodig hebt om met Swift aan de slag te gaan. Dit geeft je niet hetzelfde voordeel als je solliciteert naar banen bij die bedrijven, omdat ze vaak een diploma verwachten alleen maar om een ​​vakje op hun lijst met willekeurige vereisten aan te vinken, maar het zal je toch drie of vier maanden schelen.

Als je geen CS-diploma hebt en geen bootcamp hebt gevolgd, maar je hebt in je vrije tijd gecodeerd, bespaar je wat tijd - waarschijnlijk twee maanden of zo, afhankelijk van de taal of frameworks die je gebruikte .

Wat als je geen CS-diploma hebt, geen bootcamp hebt gevolgd en geen eerdere codeerervaring hebt? Dan schat ik 9 tot 12 maanden om van niets naar een baan op instapniveau te gaan. Ja, dat kan een heel jaar werk zijn bovenop wat je huidige fulltime baan ook is, en dat is gewoon om je eerste baan als iOS-ontwikkelaar te krijgen.

Is het altijd hetzelfde jaar? Nee. Als je al ervaring hebt, kun je die tijd verkorten tot 1 tot 6 maanden, zoals ik eerder al zei. Als je aan beide kanten de beste cijfers neemt - 9 maanden van niets naar een baan op instapniveau, plus 6 maanden voor het hebben van een CS-diploma - betekent dat dat je in slechts 3 maanden kunt worden aangenomen, wat ongelooflijk is.

Je denkt misschien dat het onmogelijk is om binnen drie maanden je eerste baan te vinden, maar dat is niet zo. Heck, ik ontmoette iemand die mijn 100 Days of Swift-cursus volgde en een baan kreeg vóór dag 50 - ze hadden al genoeg geleerd over app-ontwikkeling in less dan twee maanden omdat ze zich hebben ingespannen om elke dag te laten tellen.

Je hebt dus geen CS-diploma of bootcamp nodig, maar je moet wel bereid zijn om hard te werken.

Gun jezelf wat speelruimte

Het derde punt dat ik wil maken voordat we verder gaan, is dat "het zo lang duurt als het duurt". Ik hou van een tekst van John Lennon die zegt: "Het leven is wat er gebeurt als je bezig bent andere plannen te maken."

Het is fantastisch als je grote leerplannen hebt en grote dromen voor de baan die je wilt, maar soms ben je moe, soms ben je gestrest, soms lekt je dak of moet je hond naar de dierenarts of hebben je kinderen extra nodig helpen met hun huiswerk, of wat dan ook, en dat is gewoon het leven. 

Wees dus niet te streng voor jezelf als je achterloopt met je leerschema, of als je merkt dat je een paar dagen of zelfs een paar weken mist, enzovoort - zolang je veerkrachtig bent, krijg je daar.

Dat is fantastisch als je heel hard werkt en na 50 dagen een baan krijgt – goed gedaan! Als je er 500 dagen voor nodig hebt, is dat ook fantastisch en mag je net zo trots op jezelf zijn. Ach, als je er vijf jaar voor nodig hebt, weet ik zeker dat het niet is wat je wilde, maar het eindresultaat is hetzelfde, en dat is het enige dat telt.

Klaar om te solliciteren

Klaar om te solliciteren

Last but not least, als je een beetje verder bent in je iOS-leertraject en erover nadenkt om je eerste baan op instapniveau te krijgen, wil ik je wijzen op een enorme verzameling bronnen die ik heb samengesteld om je te helpen.

Ik zou aanraden Sean Allen's Swift-interviewtipsvideo's - hij heeft een hele afspeellijst voor hen waar je individuele discussies kunt doorlopen, zoals klassen versus structs, functioneel programmeren, foutafhandeling en meer. Geen van de video's is bijzonder lang, maar ze zijn allemaal ontworpen om je de vaardigheden te bieden die je nodig hebt om goed te presteren in een interviewsituatie.

Waar nu?

Oké, dus ik heb de kern- en uitbreidingsvaardigheden besproken die je nodig hebt, veelvoorkomende leerfouten, cursussen die je kunt volgen, hoe je contact kunt maken met de iOS-gemeenschap en hoe je je kunt voorbereiden op je sollicitatiegesprek - dat is veel om te bespreken, en ik hoop dat het nuttig is geweest.

Verder hoop ik dat ik heb aangetoond hoeveel informatie gratis beschikbaar is. 

Ja, de verleiding om honderd dollar of meer uit te geven aan een cursus is groot, maar ontspan - ga eerst aan de slag, zoek wat momentum en zoek ook iemand die Swift lesgeeft op een manier die voor jou werkt. Als je op een goede plek bent en je er klaar voor voelt, ga je gang en geef wat geld uit als je wilt.

Beste wensen op uw reis!

Over de auteur
David Attard
Auteur: David AttardWebsite: https://www.linkedin.com/in/dattard/
David heeft de afgelopen 18 jaar in of rond de online / digitale industrie gewerkt. Hij heeft uitgebreide ervaring in de software- en webdesign-industrie met WordPress, Joomla en niches eromheen. Als digitale consultant richt hij zich op het helpen van bedrijven om een ​​concurrentievoordeel te behalen door een combinatie van hun website en digitale platforms die vandaag beschikbaar zijn.

Nog een ding... Wist je dat mensen die nuttige dingen zoals dit bericht delen er ook GEWELDIG uitzien? ​
Alstublieft laat een nuttig geef commentaar met je mening, deel dit dan op je Facebook-groep (en) die dit nuttig zouden vinden en laten we samen de vruchten plukken. Bedankt voor het delen en aardig zijn!

Disclosure: Deze pagina kan links bevatten naar externe sites voor producten die we geweldig vinden en die we van harte aanbevelen. Als u producten koopt die we aanbevelen, kunnen we een verwijzingsvergoeding verdienen. Dergelijke vergoedingen hebben geen invloed op onze aanbevelingen en we accepteren geen betalingen voor positieve beoordelingen.

Auteur (s) Uitgelicht op:  Inc Magazine-logo   Sitepoint-logo   CSS Tricks-logo    webdesignerdepot-logo   WPMU DEV-logo   en nog veel meer ...