Wie man 2021 ein iOS-Entwickler wird - Ein ultimativer Leitfaden

In diesem Artikel gehe ich darauf ein, was meiner Meinung nach erforderlich ist, um 2021 iOS-Entwickler zu werden. 

Ich ziele damit direkt auf zwei Gruppen von Menschen ab, absolute Swift-Anfänger – Menschen, die noch nie etwas für iOS entwickelt haben – und sogenannte falsche Anfänger – Menschen, die zuvor versucht haben, Swift zu lernen, aber ihr Ziel, ein Vollzeitstelle.

Betrachtenless Ihres aktuellen Niveaus ist das Ziel hier dasselbe. Um Sie in die Lage zu versetzen, sich für eine Junior-iOS-Entwicklerrolle in einem Unternehmen zu bewerben.

Wir werden uns die Fähigkeiten ansehen, die Sie erlernen sollten, die Kurse, die Sie belegen können, wie Sie mit der Community in Kontakt treten, häufige Fehler, die Menschen machen und vieles mehr. 

Das Beste ist, dass alles, was ich bespreche, völlig kostenlos ist, sodass Sie keinen Cent bezahlen müssen, um mitzumachen.

Im Ernst, viel zu viele Menschen glauben, dass sie mit viel Geld auf die Überholspur zu ihrem Traumjob kommen, wenn Entschlossenheit und Willensstärke die wichtigsten Faktoren sind. 

Hier ein Hinweis: Wenn Sie bereits darüber nachdenken, in diesem Artikel weiterzumachen, sollten Sie wahrscheinlich an Ihrer Willenskraft arbeiten!

Dieser Artikel ist in sieben Abschnitte unterteilt:

  1. Kernkompetenzen, die Sie mitbringen müssen, um einen Job zu bekommen.
  2. Erweiterungsfähigkeiten, die schön zu haben sind – diejenigen, die Sie von der Masse abheben, wenn Sie sich die Mühe machen, sie zu erlernen
  3. Häufige Fehler, die Menschen machen, wenn sie versuchen zu lernen.
  4. Die vielen kostenlosen Ressourcen, die Ihnen beim Erlernen von Swift helfen.
  5. So nehmen Sie Kontakt mit der iOS-Entwickler-Community auf.
  6. Eine Schätzung, wie lange es dauern wird, um Ihr Ziel zu erreichen.
  7. Sie bereiten sich auf Ihren ersten Job vor.

Die grundlegenden Fähigkeiten, die erforderlich sind, um ein iOS-Entwickler zu werden

Die grundlegenden Fähigkeiten, die erforderlich sind, um ein iOS-Entwickler zu werden

Was ist das absolute Minimum an Fähigkeiten, die erforderlich sind, um einen Job in der iOS-Entwicklung zu finden? 

Ich glaube, es sind insgesamt fünf:

  1. Swift 
  2. SwiftUI 
  3. Networking
  4. Mit Daten arbeiten
  5. Versionsverwaltung

Diese Liste ist aus verschiedenen Gründen absichtlich kurz gehalten:

Je mehr Sie lernen, desto mehr erkennen Sie, dass es zu lernen gibt. Es ist also leicht, so viel Zeit mit Lernen und Üben zu verbringen, dass Sie das Hauptziel aus den Augen verlieren.

Sie möchten als iOS-Entwickler arbeiten und nicht nur herumsitzen und neue Dinge lernen!

Es ist fast sicher, dass Sie einem Team beitreten werden, das bereits eine App hat, bei deren Entwicklung Sie mithelfen sollenless du hast extrem viel glück, sie müssen dir eine ganze menge sachen beibringenless.

Wenn Sie versuchen, eine ganze Reihe zusätzlicher Themen im Voraus zu stopfen, verschwenden Sie wahrscheinlich Ihre Zeit.

Zwei dieser fünf Dinge sind riesig und kompliziert, und Sie könnten Monate damit verbringen, nur zu versuchen, sich darum zu kümmern, ohne sich woanders zu wagen.

Am wichtigsten ist, dass Sie eine Vielzahl von Apps erstellen können, wenn Sie diese fünf Dinge richtig machen. Sicher, Ihr Code wird nicht perfekt sein, aber das ist in Ordnung, denn der einzige Weg, großartigen Code zu schreiben, besteht darin, zuerst viel schlechten Code zu schreiben.

Lassen Sie mich die fünf Elemente in kleinere Stücke zerlegen.

Schnell lernen

Swift steht an erster Stelle. Das ist Apple's Kernprogrammiersprache. Es hat kein Konzept, Informationen auf dem Bildschirm eines iPhones anzuzeigen oder Daten aus dem Internet herunterzuladen. 

Es ist einfach eine Sprache, die JavaScript oder Python ähnelt. Es ist nur reiner Code, den Sie verwenden, um Variablen zu erstellen, Funktionen zu schreiben und so weiter.

Swift ist erst wenige Jahre alt und nutzt daher fast alle verfügbaren Sprachfeatures. 

Auf der einen Seite bedeutet dies, dass Sie all die altbackenen Verhaltensweisen vermeiden können, die in älteren Sprachen wie C++ und Java üblich sind. Es bedeutet auch, dass es eine Reihe fortschrittlicherer Funktionen bietet, die Sie auf den ersten Blick umhauen können.

Und das ist in Ordnung. Viele Teile von Swift sind relativ einfach, während Sie bei anderen länger brauchen, um es vollständig zu verstehen. Nehmen Sie sich also einfach Zeit und beharren Sie es – Sie werden es schaffen!

SwiftUI

Die zweite Kernkompetenz, die ich erwähnt habe, ist SwiftUI, eine Apple Framework, das es uns ermöglicht, mit Swift Apps für iOS, macOS, tvOS und sogar watchOS zu erstellen. 

Während also Swift die Programmiersprache ist, bietet SwiftUI die Tools für Entwickler zum Erstellen von Apps, wie zum Beispiel Bilder, Text, Schaltflächen, Textfelder, Datentabellen und mehr angezeigt werden. 

Um es klar zu sagen, SwiftUI ist kein Ersatz für Swift – es ist ein auf Swift aufbauendes Framework, mit dem wir Apps erstellen können. Sie müssen sowohl Swift als auch SwiftUI kennen, um erfolgreich zu sein.

Wenn Sie dachten, Swift sei neu, haben Sie noch nichts gesehen! 

Soweit ich das beurteilen kann, ist SwiftUI erst zwei Jahre alt! Trotz seiner Jugend hat die iOS-Community es von ganzem Herzen angenommen, weil es so einfach zu bedienen ist.

Apple hat auch ein älteres Framework zum Erstellen von iOS-Apps namens UIKit, und wenn Sie eine Menge Leute fragen, ob Sie zuerst SwiftUI oder UIKit lernen sollten, erhalten Sie eine Vielzahl von Antworten. 

Ich denke, Sie sollten SwiftUI lernen.

Falls Sie sich also fragen, sollten Sie SwiftUI meiner Meinung nach als Kernkompetenz priorisieren.

Es ist wesentlich einfacher als UIKit, und ich meine erheblich – es dauert vielleicht ein Viertel des Codes, um die gleichen Ergebnisse wie UIKit zu erzielen, und es gibt weniger Dinge, die man dabei lernen muss. 

Das bedeutet, dass Sie viel Schwung gewinnen, weil Sie Dinge schneller aufbauen, schneller Ergebnisse sehen und diese Ergebnisse schneller wiederholen können, was beim Lernen äußerst motivierend ist.

Erstellt für Swift

Erstellt für Swift

SwiftUI wurde für Swift entwickelt und verwendet Sprachfunktionen, um Ihnen zu helfen, Probleme zu vermeiden und maximale Leistung zu erzielen. 

Wenn Sie beispielsweise einige Daten auf einem Bildschirm einer App ändern, stellt SwiftUI automatisch sicher, dass die neuen Daten an einer anderen Stelle in Ihrer App aktualisiert werden, die sie verwendet – Sie müssen keinen Code schreiben, um alles selbst synchron zu halten. was überraschend komplex ist. 

UIKit hingegen wurde für . geschrieben Apple's ältere Sprache, Objective-C, und hat daher alle möglichen Macken, die aus ihrem Alter resultieren.

SwiftUI ist mit allen kompatibel Apple's-Plattformen, sodass Sie das, was Sie auf iOS gelernt haben, verwenden können, um eine macOS- oder watchOS-App mit nahezu identischem Code zu erstellen. 

Sicher, einige Funktionen, wie die Digital Crown, sind exklusiv für ein einzelnes Gerät verfügbar, aber die überwiegende Mehrheit von dem, was Sie lernen, funktioniert auf jedem Gerät.

Aber vor allem ist SwiftUI die Richtung, in die sich die Dinge entwickeln. 

Wenn Sie sich gerade um eine Stelle bewerben, müssen Sie wahrscheinlich UIKit kennen, aber die Tatsache, dass Sie dies lesen, bedeutet, dass Sie im Prozess schon viel weiter sind. 

Ja, UIKit ist jetzt beliebter, aber SwiftUI wird das dominierende UI-Framework sein, wenn Sie es in 6, 9 oder sogar 12 Monaten gelernt haben.

Im Ernst, die größten Unternehmen der Welt, einschließlich Apple, entscheiden sich für SwiftUI.

Wann Apple Kürzlich wurden Widgets in iOS 14 eingeführt. Sie haben es zur Voraussetzung gemacht, dass Sie SwiftUI verwenden.

Vernetzung und Datenmanipulation

Die dritte und vierte Fähigkeit, die ich erwähnte, waren Vernetzung und Datenmanipulation. Im Vergleich zu Swift und SwiftUI sind diese ein Kinderspiel oder zumindest auf dem Niveau, das für einen Junior-iOS-Entwicklerjob erforderlich ist.

Unter Netzwerken versteht man das Abrufen von Daten aus dem Internet oder das Senden von Daten von einem lokalen Gerät an einen Remote-Server. 

Es gibt zahlreiche Methoden, um dies zu erreichen, aber das Wichtigste ist, zu verstehen, wie JSON von einem Server abgerufen wird.

Und hier kommt die andere wichtige Fähigkeit ins Spiel, die Arbeit mit Daten. 

Auch hier gibt es zahlreiche Möglichkeiten zum Laden und Speichern von Daten, aber das absolute Minimum, das Sie tun müssen, besteht darin, die Daten, die Sie von einem Server mit Ihrem Netzwerkcode erhalten haben, in Informationen umzuwandeln, die Ihre App anzeigen kann.

Die dritte und vierte Kernkompetenz sind also untrennbar miteinander verbunden. Rufen Sie einige Daten von einem Server ab und konvertieren Sie sie dann in Informationen, die in Ihrer App angezeigt werden können. Einige Entwickler scherzen, dass das Schreiben dieser Art von Code die halbe Arbeit eines iOS-Entwicklers ist, und es ist sicherlich wahr, dass wir uns stark darauf verlassen.

Version control

Die letzte Fertigkeit ist überhaupt nicht das Programmieren, es ist version control, wie Git. Auch hier brauchen Sie nicht viel, aber es ist wichtig, dass Sie Ihren Code an einem öffentlichen Ort veröffentlichen können, z. B. auf GitHub, damit Personalvermittler Ihre Arbeit sehen können.

Niemand auf der Welt versteht wirklich, wie Git funktioniert, aber das ist in Ordnung – Sie müssen nur die Grundlagen kennen, um Ihre Daten sicher zu speichern und mit anderen zusammenzuarbeiten.

Wenn diese fünf also zusammengezählt werden, gibt es zwei große – Swift und SwiftUI – sowie drei kleinere, aber wichtige. 

Wenn Sie sich einfach auf diese fünf Dinge konzentrieren können, ohne abgelenkt zu werden, sind Sie auf dem besten Weg zu Ihrem ersten iOS-Entwicklerjob.

Das war's: Das sind die fünf wesentlichen Fähigkeiten, die man meiner Meinung nach als iOS-Entwickler braucht. 

Es gibt Tausende von Menschen, die nur über diese Fähigkeiten verfügen und fantastische Apps im App Store erstellen und versenden können.

Was kommt nach den Grundlagen

Was kommt nach den Grundlagen?

Sobald Sie die fünf Kernkompetenzen beherrschen, können Sie Ihre eigenen Apps ausliefern und als Indie-Entwickler arbeiten sowie sich auf Junior-Positionen in der iOS-Entwicklung bewerben und in einem Unternehmen arbeiten, wenn Sie dies möchten. 

Es sind keine weiteren speziellen Qualifikationen erforderlich – bringen Sie einfach diese Kernkompetenzen mit und alles wird gut.

Wenn Sie diese Fähigkeiten jedoch beherrschen und sich weiterentwickeln möchten, empfehle ich Ihnen, fünf weitere Fähigkeiten zu erlernen. Dies sind die Fähigkeiten, die Sie von einer guten zu einer fantastischen Position bringen – Sie werden noch erwerbsfähiger und das Angebot an Apps, die Sie erstellen können, wird noch größer.

Die Fähigkeiten sind wie folgt:

  • UIKit 
  • Kerndatei 
  • Bestätigung
  • Testen
  • Softwarearchitektur
  • Multithreading

Wie zuvor möchte ich auf jede dieser Fähigkeiten näher eingehen, damit Sie verstehen, warum sie meiner Meinung nach wichtig sind – und warum ich sie eher als Erweiterungskompetenzen denn als Kernkompetenzen betrachte.

UIKit

Erstens gibt es UIKit. Das ist Apple's älteres User-Interface-Framework, das seit 2008 für die App-Entwicklung verwendet wird – es ist 13 Jahre alt, als ich dies schreibe, was in Bezug auf Software alt ist. Aber das bedeutet nicht, dass UIKit schlecht ist. Wenn Sie sich daran gewöhnen, wie es funktioniert, werden Sie überrascht sein, wie elegant es sein kann.

Es gibt zahlreiche Gründe, warum es sich lohnt, UIKit zu lernen, darunter:

Hunderttausende von Apps wurden bereits in UIKit geschrieben. Wenn Sie also einem Unternehmen beitreten, das über eine große, gut etablierte App verfügt, müssen Sie mit ziemlicher Sicherheit UIKit-Code schreiben, um diese App zu warten.

UIKit ist weitaus leistungsfähiger als SwiftUI – es gibt viele Dinge, die Sie in UIKit tun können, die derzeit in SwiftUI nicht möglich sind.

Mit der Auto-Layout-Technologie können Sie äußerst präzise Layouts erstellen.

Wenn Sie Probleme mit Ihrem Code haben, bietet UIKit mehr Lösungen als SwiftUI, einfach weil es schon viel länger existiert.

All dies lässt UIKit fantastisch klingen, also warum habe ich es zu einer Erweiterungsfertigkeit und nicht zu einer Kernfertigkeit gemacht? 

Weil UIKit auch Probleme hat:

Fast alles ist in UIKit schwieriger als in SwiftUI, wobei einige Aufgaben hundertmal, wenn nicht sogar mehr, Code erfordern. 

SwiftUI wurde speziell für die moderne iOS-Entwicklung entwickelt und nimmt Ihnen daher einen Großteil der schweren Arbeit ab.

Da UIKit nicht in Swift geschrieben wurde, verfügt es über viele Funktionen, die SwiftUI nicht hat – viele implizit ausgepackte Optionale, das Markieren von Code mit einem speziellen @objc-Attribut, um ihn für den Objective-C-Unterbau von UIKit verfügbar zu machen, und die Notwendigkeit, Protokolle und Delegaten zu verwenden einfache Daten anzuzeigen.

Nichts an Auto Layout ist "automatisch" – wenn Sie jemals versuchen, ein komplexes Layout zu erstellen, werden Sie möglicherweise Albträume über Auto Layout haben. Es ist extrem clever, aber an manchen Stellen auch extrem schwierig.

Und deshalb betrachte ich UIKit als Erweiterungs-Skill: Das Erlernen erfordert deutlich mehr Zeit und Mühe als SwiftUI, was bedeutet, dass es viel mehr Entschlossenheit erfordert – man muss es wirklich lernen wollen, sonst kommt man durcheinander , gelangweilt, wütend oder möglicherweise alle drei. 

Sicher, SwiftUI verfügt nicht über alle Funktionen von UIKit, aber es ermöglicht Ihnen, schnelle Fortschritte zu erzielen und an Dynamik zu gewinnen, bevor Sie zu UIKit wechseln.

Kerndaten verwalten

Kerndaten verwalten

Kerndatei, Apple's Framework für die Arbeit mit Anwendungsdaten, ist der zweite Erweiterungs-Skill, den ich erwähnt habe. 

Ich habe das Networking und die Arbeit mit Daten im Abschnitt über die Kernkompetenzen erwähnt, und es stimmt. Mit diesen Fähigkeiten können Sie alles, was Sie wollen, von einem Server abrufen und in Ihrer App anzeigen. 

Core Data geht noch einen Schritt weiter, indem es Ihnen ermöglicht, diese Daten, sobald Sie sie erhalten haben, zu bearbeiten, z. B. nach bestimmten Werten zu suchen, die Ergebnisse zu sortieren und vieles mehr, alles sehr effizient. 

Es kann auch problemlos mit iCloud verbunden werden, um sicherzustellen, dass die Daten Ihrer Benutzer auf allen ihren Geräten synchronisiert werden.

Core Data hat eine Reihe von Nachteilen, von denen der schwerwiegendste darin besteht, dass die Arbeit nicht immer angenehm ist. Core Data ist fast so alt wie UIKit, und obwohl es in Objective-C gut funktioniert hat, fühlt es sich in Swift nicht so natürlich an. 

Es lässt sich gut in SwiftUI integrieren, wodurch es sich anfühlt less seltsam, aber es ist immer noch ein überraschend komplexes Thema.

Warum habe ich es als Erweiterungs-Skill aufgenommen? Denn Core Data ist wie UIKit äußerst beliebt – Hunderttausende von Apps wurden damit erstellt und es wird in vielen großen und kleinen Unternehmen eingesetzt. 

Core Data, wie UIKit, ist extrem mächtig, und obwohl Sie die wichtigsten Teile davon in Ihrem eigenen Code nachbilden könnten, warum sollten Sie das tun?

Testen Sie Ihren Code

Die dritte Fertigkeit auf meiner Liste der Erweiterungen ist das Testen. Schreiben von speziellem Code, um sicherzustellen, dass Ihr Haupt-App-Code wie erwartet funktioniert. 

Mithilfe von Tests können wir sicherstellen, dass unser Code ordnungsgemäß funktioniert und, was noch wichtiger ist, dass er auch nach erheblichen Änderungen weiterhin ordnungsgemäß funktioniert.

Wenn Sie beispielsweise 500 Codezeilen ändern, um eine neue Funktion zu implementieren und alle Ihre Tests erfolgreich sind, können Sie loslegen.

Daher ist das Testen von entscheidender Bedeutung und wird Ihnen helfen, qualitativ hochwertigere Software zu schreiben. 

Warum wird es also eher als Erweiterungsfertigkeit denn als Kernkompetenz angesehen? 

Dafür gibt es drei Gründe:

Die iOS-Community als Ganzes ist beim Testen schrecklich, aus welchen historischen Gründen auch immer. Ich meine, wirklich schlecht – viele große Apps haben überhaupt keine Tests, und ich habe aufgehört zu zählen, wie viele ältere iOS-Entwickler ich getroffen habe, die fast stolz sind, dass sie nie Tests schreiben. 

Wenn du all die erstaunlichen Dinge bedenkst, mit denen du erschaffen kannst Apples Tools und Frameworks scheint das Schreiben von Tests im Vergleich nicht viel Spaß zu machen. 

Ich persönlich genieße es, Tests genauso zu schreiben, wie ich gerne Zahnseide verwende, aber ich weiß, dass viele Menschen dies nicht tun, insbesondere wenn sie an persönlichen Projekten arbeiten.

Wenn Sie sich um eine Stelle bewerben, kennen Sie Swift und Apple's wichtigsten Frameworks werden immer nützlicher sein, als zu wissen, wie man Tests schreibt. 

Unternehmen würden es vorziehen, wenn Sie wissen, wie man SwiftUI, UIKit oder einen der anderen großen Hitter verwendet, denn Testen ist ein viel kleineres Thema – es gibt nicht annähernd so viel zu lernen.

Testen ist also wichtig, Testen ist wichtig, und ich würde Ihnen gerne beibringen, wie man großartige Tests schreibt. Aber erst, wenn Sie die Grundlagen der App-Entwicklung beherrschen – nachdem Sie einige Erfolge erzielt haben, den Ansturm verspürt haben, Ihre App live im App Store zu haben, und das Testen gemeistert haben.

Softwarearchitektur

Softwarearchitektur

Die vierte Erweiterungsfertigkeit, die ich besprechen möchte, ist die Softwarearchitektur, bei der es wirklich darum geht, wie wir Code schreiben. 

Sie werden am Anfang einen schrecklichen Code schreiben – Code, der so schlecht ist, dass er wahrscheinlich gegen die Genfer Konvention verstößt. 

Das ist in Ordnung, denn so lernt man. Man fängt nicht gut an – man wird gut, wenn man lange Zeit schlecht ist, so wie LeBron James nicht als Basketballmeister geboren wurde.

Der Punkt ist, dass Sie bei Ihrem schlechten Code bleiben, bis Sie herausfinden, wie Sie es besser machen können. Hier kommt die Softwarearchitektur ins Spiel. Betrachten Sie bewährte Techniken zur Strukturierung Ihres Codes, um ihn auf lange Sicht einfacher zu lesen, zu verwenden, zu ändern und zu warten. 

Diese Techniken basieren manchmal auf der Funktionsweise von Swift – Sprachfunktionen, die verwendet werden können, um besseren Code zu schreiben. 

Es gibt jedoch zahlreiche andere Techniken, die in jeder Programmiersprache funktionieren und allgemein als Entwurfsmuster bezeichnet werden.

Ein wichtiger Aspekt dieser Fähigkeit, den Sie erlernen sollten, ist das Aufteilen Ihres Codes. 

Wenn Sie beispielsweise einen einzelnen Bildschirm in Ihrer App erstellen, kann dieser eine Anmeldeschaltfläche, eine Bildergalerie und eine Freundesliste enthalten. 

Sie sollten jedoch idealerweise jeden dieser Teile trennen – eine Komponente für die Anmeldeschaltfläche, eine Komponente für die Bildergalerie und eine Komponente für die Freundesliste –, damit Sie jede dieser Komponenten in anderen Teilen Ihrer App wiederverwenden können.

Softwarearchitektur ist weitaus subjektiver als die anderen Fähigkeiten, die ich bisher besprochen habe. Für die anderen, wie SwiftUI, können Sie argumentieren: "Nun, ich weiß, wie man X, Y und Z macht, also bin ich zuversichtlich, ein guter SwiftUI-Entwickler zu sein."

 Softwarearchitektur ist ein sehr breites Thema, und es gibt oft keinen offensichtlichen "richtigen" Weg, ein Problem zu lösen, daher glaube ich, dass der beste Maßstab dafür ist: Schauen Sie auf Ihren Code von vor sechs Monaten, einem Jahr zurück und? demnächst.

Auch hier ist das Schreiben von schlechtem Code akzeptabel, solange Sie dadurch dem Schreiben von besserem Code näher kommen. 

Wenn ich auf Code zurückblicke, den ich vor fünf Jahren geschrieben habe, verziehe ich sicherlich stellenweise eine Grimasse, denn ich weiß heute mehr als damals – und das ist auch gut so.

Multithreading

Die letzte Erweiterungsfertigkeit, die ich besprechen möchte, ist Multithreading, d. h. die Praxis, Ihren Code mehr als eine Sache gleichzeitig ausführen zu lassen. 

Multithreading kann ein echter Schmerz im Nacken sein, weil es für unser Gehirn schwer zu verstehen ist. Wenn Ihr Code eine Sache nach der anderen macht, können wir sie linear durchdenken, aber wenn zwei oder drei Dinge gleichzeitig passieren und sich möglicherweise überschneiden, kann dies Ihr Gehirn wirklich verbiegen.

Obwohl Multithreading eine großartige Fähigkeit als Erweiterungsfertigkeit ist, sollten Sie jedoch vorsichtig sein. Ihr Ziel sollte es sein, die Konzepte und den Code so weit zu verstehen, dass er gut funktioniert, ohne zu weit zu gehen. 

Um ehrlich zu sein, glauben viele Entwickler, dass Multithreading ihren Code sofort drei- oder viermal schneller laufen lässt. 

Dies trifft zwar in einigen Fällen zu, in vielen anderen Fällen wird Ihr Code jedoch tatsächlich langsamer ausgeführt, und Sie müssen sich nun mit der gesamten zusätzlichen Codekomplexität befassen.

Wenn Sie mir nicht glauben, denken Sie an dieses Zitat von David Smith – Er ist Mitglied von Apple's Swift-Team und hat zuvor Jahre damit verbracht, am Kern von Apple's Frameworks:

„Meine spezifische Empfehlung ist, dass Sie das Schreiben von asynchronem/gleichzeitigem Code so weit wie möglich vermeiden. Dies mag im Jahr 2018 seltsam erscheinen, aber die Kosten für Komplexität und Leistung sind hoch.

Lernen Sie also ein wenig darüber, wie Multithreading in Swift funktioniert, um zu zeigen, dass Sie die Konzepte und die Implementierung verstehen, aber übertreiben Sie es nicht!“

Häufige Fehler, die neue iOS-Entwickler machen

Häufige Fehler, die neue iOS-Entwickler machen

An dieser Stelle habe ich alle Kern- und Erweiterungsfähigkeiten aufgelistet, die Sie meiner Meinung nach benötigen, um als Vollzeit-iOS-Entwickler zu arbeiten. 

Aber ich möchte auch einige der häufigsten Fehler besprechen, die Menschen beim Lernen machen, weil ich sie ständig sehe und weiß, wie sie Menschen zurückwerfen.

Es gibt sieben Hauptprobleme, mit denen die Leute konfrontiert sind, und ich möchte sie der Reihe nach durchgehen. 

Sie sind wie folgt:

  1. Erinnere dich an alles
  2. Syndrom des glänzenden Objekts
  3. Einsame Wölfe lernen
  4. Nutzung von Beta-Software
  5. Abhängig von AppleDokumentation
  6. Sich in Objective-C verzetteln
  7. Auf andere Sprachen abzielen

Lassen Sie uns jeden von ihnen einzeln durchgehen.

Hör auf, dich an alles zu erinnern

Hör auf, dich an alles zu erinnern

Das erste und bei weitem häufigste Problem, auf das Menschen stoßen, ist der Versuch, sich alles zu merken – ein Tutorial durchzulesen und zu glauben, dass sie sich alles auswendig merken müssen. 

Bitte, bitte, bitte tu das nicht. Es ist ein Rezept für eine Katastrophe und wird Ihre gesamte Willenskraft so weit aufzehren, dass Sie nie wieder programmieren möchten.

Niemand erinnert sich an alles. Niemand erinnert sich auch nur annähernd an alles. Auch wenn Sie nur die APIs berücksichtigen, die von . veröffentlicht wurden Apple, das sind die Codeteile, die wir zum Erstellen unserer Apps verwenden können, müssen weit über hunderttausend verfügbar sein. 

Auch wenn Sie sich auf die Kernkomponenten der App-Entwicklung beschränken, sehen Sie sich immer noch mehrere Hundert an – alle arbeiten sehr präzise und erfordern viel Lernaufwand.

Stattdessen lernt man, wie man etwas Neues macht und vergisst dann prompt wieder, wie man es macht. 

Sie schlagen also nach, verwenden es erneut und vergessen es dann sofort. Also schlägt man es ein drittes Mal nach und benutzt es, und dieses Mal vergisst man es meistens – manche Teile bleiben bei einem. 

Dieser Zyklus wird auf unbestimmte Zeit fortgesetzt, wobei Sie jedes Mal auf ein Tutorial oder ein anderes Referenzhandbuch zurückgreifen müssen, bis die Grundlagen so weit in Ihrem Kopf verankert sind, dass Sie dies ohne Rücksprache mit anderen tun können.

Wenn Sie es noch nicht wussten, ist das Vergessen ein wichtiger Teil des Lernens. 

Jedes Mal, wenn du etwas vergisst und neu erlernst, dringt es tiefer und gründlicher in dein Gehirn ein. Wenn Sie etwas wieder lernen, stellt Ihr Gehirn neue Verbindungen zu anderen Dingen her, die Sie gelernt haben, was Ihnen hilft, den Kontext Ihres Versuchs besser zu verstehen. 

Und jedes Mal, wenn Sie neu lernen, signalisieren Sie Ihrem Gehirn, dass dieses spezielle Thema wichtig genug ist, um es in seinem Langzeitgedächtnis zu speichern.

Aber wenn Sie sich daran machen, alles auswendig zu lernen, werden Sie Schwierigkeiten haben. 

Machen Sie sich stattdessen keine Sorgen, Dinge zu vergessen. Zu wissen, wo man sie nachschlagen kann, ist viel wichtiger, als sich einen bestimmten Swift-Code zu merken, um etwas zu erreichen. 

Wenn Sie etwas vergessen und es neu lernen müssen, betrachten Sie es als eine gute Sache – diese Informationen werden beim zweiten, dritten und zehnten Mal, wenn Sie sie lernen, tiefer eindringen, so dass Sie Ihrem Gehirn helfen.

Vermeiden Sie das Shiny Object Syndrom

Das zweithäufigste Problem, auf das die Leute stoßen, ist das, was ich "Shiny Object Syndrome" nenne, bei dem sie eine Tutorial-Reihe finden, die für sie gut funktioniert, und beginnen, Fortschritte zu machen, aber nach ein oder zwei Wochen bemerken sie eine andere Tutorial-Reihe, die sie möchte stattdessen folgen und das Schiff dorthin springen. 

Ich habe Leute bekommen, die mir per E-Mail sagten, dass sie vier, fünf oder sogar sechs verschiedene Serien ausprobiert haben und aus irgendeinem seltsamen Grund nichts lernen.

Das Problem dabei ist, dass viele Aspekte des Lernens uninteressant sind. Das ist nicht unbedingt die Schuld des Lehrers. 

Es ist einfach eine Tatsache, das Programmieren zu lernen – manche Dinge führen mit wenig Aufwand zu großartigen Ergebnissen, während andere viel mehr Zeit brauchen, um sie zu verstehen, keine ausgefallenen Ergebnisse liefern oder nur ein Teil eines größeren Konzepts sind.

Wenn Sie diese steilen Lernkurven erreichen, tritt das Shiny Object Syndrom ein – mit so vielen kostenlosen Tutorials können Sie zu jedem von ihnen springen und neu starten, und Sie befinden sich wieder am flachen Ende des Pools, um einfachere Teile abzudecken du hast es schon gelernt. 

Aber, unless Der ursprüngliche Kurs hat ein ungewöhnliches Thema ausgewählt, das Sie wahrscheinlich irgendwann lernen müssen, und Sie verschieben nur das Unvermeidliche.

Ich bitte Sie also nicht, immer dem Shiny-Object-Syndrom zu widerstehen, weil ich verstehe, wie schwierig es ist. Seien Sie sich stattdessen zumindest dessen bewusst: Wenn Sie auf ein Problem stoßen, versuchen Sie, jemand anderen um Hilfe zu bitten und durchzuhalten, anstatt zu wechseln.

Geh nicht alleine

Geh nicht alleine

Apropos jemand anderen fragen, das dritte Problem, auf das ich stoße, ist, dass die Leute beim Lernen ganz allein sind – sie glauben, dass sie voll und ganz in der Lage sind, iOS-Apps mit Swift selbst zu erstellen, und benötigen keine Hilfe anderer .

Diese Methode funktioniert für eine sehr kleine Anzahl von Personen, normalerweise mit umfangreicher Erfahrung mit anderen Programmiersprachen oder Plattformen. 

Für die allermeisten Menschen ist das Lernen auf diese Weise jedoch eine schreckliche Erfahrung – jeder Fehler oder jedes Missverständnis dauert fünfmal so lange, bis es behoben ist, es ist extrem leicht, die Motivation zu verlieren, und Sie verpassen viel Inspiration beim Zuschauen andere gelingen.

Wenn Sie ein natürlicher "Einzelgänger" sind, ermutige ich Sie, Ihre Wege zu ändern. 

Teilen Sie, was Sie lernen, sich mit anderen, die das Lernen sind, und die Gewohnheit, Fragen entwickeln. 

Sie werden nicht nur eine fantastische Gemeinschaft von Lernenden entdecken, die Sie unterstützen und ermutigen, sondern Sie werden auch von ihrer Arbeit inspiriert und sie wiederum mit Ihrer inspirieren. Vertrauen Sie mir, ich habe das Hunderte Male gesehen und es ist völlig transformierend.

Keine Betaversionen verwenden

Das vierte große Problem, das ich sehe, ist, wenn Leute darauf bestehen, Beta-Versionen von zu verwenden Apple's Entwicklungstools. 

Ich verstehe: Jedes Jahr, Apple veröffentlicht ein neues iOS, ein neues macOS und andere Produkte, die uns immer wieder aufregende neue Dinge zum Ausprobieren liefern. Es ist selbstverständlich, dass die Leute das Neueste und Beste lernen möchten, besonders wenn sie wissen, dass Swift eine lange Geschichte des Wandels hat.

Wenn Menschen jedoch versuchen, mit Beta-Software zu lernen, stoßen sie auf eine Reihe von Problemen:

Da die Tutorials nicht für die Beta-Version aktualisiert wurden, ist es nicht immer möglich, deren Anweisungen zu befolgen oder schlägt fehl.

In Betas treten häufig Fehler auf, insbesondere in denen, die für größere iOS-Updates veröffentlicht wurden.

Apple's Beta-Frameworks brauchen Zeit, um sich zu stabilisieren, was bedeutet, dass Code, der in Beta 1 funktioniert hat, in Beta 3 möglicherweise nicht funktioniert.

Auch wenn es aufregend ist, neue Dinge zu lernen, und Sie glauben vielleicht, dass Sie mit neuen Funktionen dem Spiel voraus sind, glauben Sie mir: Es lohnt sich nicht. 

Verwenden Sie immer die neuesten öffentlichen Veröffentlichungen von Apple's Entwicklertools, bis Sie mit ihnen vertraut sind.

Sich auf offizielle Unterlagen verlassen

Sich auf offizielle Unterlagen verlassen

Das fünfte Hauptproblem, mit dem Menschen beim Versuch des Lernens konfrontiert sind, ist, sich darauf zu verlassen AppleDokumentation von. 

AppleDas Entwickler-Publikations-Team von Veröffentlichungen arbeitet hart daran, so viel wie möglich aus der breiten Palette von Frameworks des Unternehmens zu dokumentieren, aber ihre Hauptaufgabe besteht darin, Referenzmaterial zu schreiben – Dinge, die Sie lesen, wenn Sie versuchen, ein bestimmtes Teil ihrer Tools zu verwenden – anstatt Erstellen eines strukturierten Kurses, der Ihnen hilft, iOS-Apps zu erstellen.

Ich habe aufgehört zu zählen, wie oft mich Leute gefragt haben: "Wie kann ich Swift lernen?" nur um zu sagen: "Lesen Apple's Swift-Referenzhandbuch." 

Dieser Ansatz funktioniert für einige Leute, und ich weiß es, weil er bei mir funktioniert hat, als Swift zum ersten Mal angekündigt wurde – ich habe es von vorne bis hinten gelesen. 

Für die meisten Menschen ist es jedoch ähnlich wie beim Versuch, eine menschliche Sprache durch das Lesen eines Wörterbuchs zu lernen. Es soll alles in der Sprache abdecken, anstatt Ihnen die wichtigsten Teile und deren Anwendung beizubringen.

Wenn Sie also umfangreiche Erfahrungen mit anderen Sprachen haben, lesen Sie AppleDie Referenzhandbücher von können nützlich sein, aber wenn Sie gerade erst anfangen, möchten Sie sie vielleicht nach ein paar Monaten noch einmal besuchen.

Sich in Objective-C verzetteln

Das sechste Hauptproblem, mit dem Menschen konfrontiert sind, ist der Versuch, Ziel-C zu lernen. Das war Apples primäre Entwicklungssprache vor der Einführung von Swift, und obwohl es in einigen alten Codebasen Überreste gibt, ist die überwiegende Mehrheit des vorhandenen Codes jetzt Swift, und fast der gesamte neue Code ist ebenfalls Swift.

Ich habe vor Swift Jahre damit verbracht, Objective-C zu schreiben und es wirklich zu lieben, aber es hat eine extrem steile Lernkurve und es fehlen die meisten wichtigen Funktionen von Swift. 

Ich erinnere mich wann Apple das iPhone SDK zum ersten Mal angekündigt und von Objective-C entsetzt, weil es anders war als alles andere, was ich bisher gesehen hatte.

Objective-C und Swift haben für einen Anfänger fast nichts gemeinsam. 

Ja, sie teilen das Gleiche Apple Rahmen, aber unless du planst zu arbeiten bei Apple – das einzige Unternehmen weltweit, das noch große Mengen von Objective-C produziert – sollten Sie Objective-C in Ruhe lassen und sich ganz auf Swift konzentrieren.

Andere Sprachen ignorieren

Andere Sprachen ignorieren

Der letzte große Fehler, den ich beim Lernen von Swift sehe, besteht darin, andere Sprachen als minderwertig gegenüber Swift abzutun. 

Das häufigste Ziel ist JavaScript, aber Sie werden auch sehen, dass die Leute Python, Java, Ruby, Go und andere Sprachen anvisieren, und wofür? Es ist kein Rennen, Leute – diese Sprachen müssen nicht verlieren, damit Swift gewinnt.

Tatsächlich werden Swift und SwiftUI häufig von anderen Sprachen und Frameworks inspiriert – wann immer neue Sprachfunktionen in Betracht gezogen werden, betrachtet die Community ähnliche Implementierungen in Rust, Python, Haskell und anderen Sprachen, und SwiftUI ist stark von JavaScript beeinflusst React Rahmen. 

Wenn ich also höre, wie Leute in unserer Community behaupten, SwiftUI sei JavaScript-frei oder etwas Ähnliches, zucke ich zusammen – nichts könnte weiter von der Wahrheit entfernt sein.

iOS-Entwicklungsressourcen und -kurse

iOS-Entwicklungsressourcen und -kurse

Nun zu dem Teil, der die meisten Leute interessiert: Was sind die tatsächlichen Ressourcen, die Sie meiner Meinung nach verwenden sollten, um Swift, SwiftUI und mehr zu lernen – um Ihr Ziel zu erreichen, ein iOS-Entwickler zu werden?

Es gibt viele da draußen, und ich schätze die Tatsache, dass die Swift-Community eine so vielfältige Gruppe von Menschen hat, die ihr Wissen teilen. 

In diesem Artikel werde ich mich jedoch auf kostenlose Ressourcen konzentrieren – Orte, an denen Sie lernen können, fantastische Apps zu erstellen, ohne einen Cent auszugeben.

Dies ist auf zwei Faktoren zurückzuführen:

  1. Manche Leute glauben, dass je höher der Preis eines Swift-Kurses ist, desto besser muss er sein, sodass sie am Ende exorbitante Preise zahlen, ohne eine angemessene Leistung zu erhalten.
  2. Viele Websites wie Udemy verlassen sich darauf, eine große Anzahl von kostengünstigen Kursen zu verkaufen, in der Gewissheit, dass Sie einfach einen anderen kaufen, wenn Sie einen nicht mögen. Sie haben auch ein ähnliches Geschäftsmodell wie Steam, da es ständig Verkäufe gibt, die die Leute ermutigen, eine große Anzahl von Kursen zu sammeln, um "eines Tages" zu studieren.

Daher liste ich hier nur kostenlose Ressourcen auf, weil ich nicht möchte, dass Sie in diese Fallen tappen – geben Sie nicht hundert Dollar oder mehr für Ihren ersten Kurs aus und kaufen Sie nicht ein Dutzend billiger Kurse, die denken, dass sie das machen Sie ein Entwickler.

Tutorials

Beginnen, Apple hat zwei wichtige Ressourcen, die Ihnen helfen können. Die erste ist die Teaching Code-Website, die Ressourcen für Schüler und Lehrer enthält, um Swift von Grund auf bis hin zu professionellen Zertifizierungen zu erlernen. 

Ihr Lehrplan ist umfangreich, daher kann es einige Zeit dauern, den besten Einstiegspunkt für Sie zu finden, aber dort finden Sie viel zu entdecken.

Zweitens Apple hat eine Reihe von SwiftUI-Tutorials, die Sie durch den Prozess der Erstellung von realen Apps führen. Diese unterrichten jedoch nicht Swift, daher müssen Sie zuerst ihren auf Swift ausgerichteten Lehrplan abschließen.

Wie ich bereits sagte, Apple veröffentlicht auch ein Handbuch speziell für die Programmiersprache Swift, aber es besteht eine gute Chance, dass es für Sie nicht funktioniert – es ist eher als Nachschlagewerk gedacht als als strukturiertes Tutorial, daher ist es ziemlich dicht.

Was Apple's Tutorials versuchen nicht, eine strukturierte Lernmethode bereitzustellen. 

YouTube und andere Websites

Es gibt einige hervorragende YouTube-Videos, die Sie durch die Grundlagen von SwiftUI führen, wie zum Beispiel:

VlhcNR7Qrno
, in dem er Sie von Grund auf durch den Prozess der Erstellung eines Spielautomaten führt.

51xIHDm_BDs
erklärt fünf SwiftUI-Konzepte, die jeder lernen sollte, wenn er mit der Programmierung beginnt.

aP-SQXTtWhY
das sowohl Swift als auch SwiftUI bietet und gleichzeitig Publikumsfragen beantwortet.

Es gibt andere Websites mit hochwertigen Swift- und SwiftUI-Tutorials, darunter BLCKBIRDS, Ray Wenderlich, Donny Wals, Antoine van der Lee und mehr – ich ermutige die Leute wirklich, eine Vielzahl von Ressourcen zu besuchen und herauszufinden, was für sie funktioniert.

App-basierte Bildung

Wenn Sie es vorziehen, über Apps zu lernen, empfehle ich zwei, die beide völlig kostenlos sind. Das erste ist Apple's Swift Playgrounds-App, mit der Sie Swift direkt von Ihrem iPad oder Mac lernen können. 

Es gibt viele interaktive lessons für Kinder, aber es gibt auch etwas fortgeschritteneres lessons, die Ihnen helfen, Ihre Fähigkeiten zu verbessern.

Die andere App heißt Unwrap und wurde von mir erstellt. Unwrap ist mit allen iPhones und iPads kompatibel und ermöglicht Ihnen das Erlernen, Überprüfen und Üben der Swift-Grundlagen durch Videos, Tests und andere Tools. Es deckt alle Grundlagen von Swift ab und ergänzt den 100 Days of SwiftUI-Lehrplan perfekt.

Lösungen erhalten

Schließlich müssen Sie lernen, wie Sie online Antworten finden. Dies könnte bedeuten, zu Stack Overflow zu gehen, aber ich hoffe nicht, weil es kein besonders angenehmer Ort ist.

Stellen Sie stattdessen Fragen in den Hacking with Swift-Foren, Ihrer bevorzugten Slack-Gruppe, den iOS Dev Happy Hour-Sitzungen, Twitter und anderswo – wir sind eine wirklich herzliche, einladende Community mit vielen Menschen, die Sie bei der Erreichung Ihrer Ziele unterstützen möchten.

Sich in die Gemeinschaft einbringen

Sich in die Gemeinschaft einbringen

In Bezug auf unsere Community möchte ich ein wirklich wichtiges Thema besprechen, das Ihnen hilft, Menschen in ähnlichen Positionen zu treffen, effektiver zu lernen und Stellenangebote zu finden – eine Win-Win-Situation.

Das Thema verbindet sich mit der iOS-Entwicklungsgemeinschaft. Dazu gehört, dass Sie wissen, wo Sie nach Neuigkeiten und interessanten Ideen suchen, wo Sie Leute treffen und Tipps austauschen können und wo Sie Fragen stellen können.

Wem soll ich auf Twitter folgen?

Beginnen wir mit dem Einfachsten, nämlich Twitter. Twitter ist eine fantastische Möglichkeit, Dingen zu folgen, die Sie interessieren, und es gibt ein paar Leute, die ich im Fall der iOS-Entwicklung wärmstens empfehlen würde.

Ja, diese Leute twittern über ihre eigene Arbeit, aber ich denke, es ist großartig, ihnen zu folgen, weil sie auch viel über die Arbeit anderer Leute twittern – sie helfen dir, verschiedene Perspektiven zu einem bestimmten Thema zu sehen, und sie teilen alle Arten interessante Ideen und Dinge zum Ausprobieren.

Hier sind 9 Personen, denen ich empfehle, auf Twitter zu folgen:

Sean Allen verbringt viel Zeit auf YouTube und macht Swift- und iOS-Entwicklungsvideos, aber er arbeitet auch wirklich hart daran, die Arbeit anderer Leute bekannt zu machen – er leistet wirklich großartige Arbeit, um jedem dabei zu helfen, jede Woche etwas Neues zu entdecken.

Antoine van der Lee betreibt eine iOS-Entwicklungswebsite unter https://www.avanderlee.com, aber er teilt auch einige großartige Links zu nützlichen Ressourcen, die er auf GitHub, Newslettern und mehr findet.

Novall Khan arbeitet für Apple, aber das hält sie nicht davon ab, regelmäßig Videos darüber zu posten, woran sie arbeitet, was sie lernt, womit sie Schwierigkeiten hat und vieles mehr – sie ist wirklich inspirierend.

Steve Troughton-Smith ist bekannt für seine früheren Arbeiten an iOS, aber Sie sollten ihm wirklich wegen der fantastischen Reihe von Links folgen, die er zu beeindruckenden Arbeiten teilt. Ich mag es, wie er den Entwicklungsfortschritt seiner eigenen Apps teilt, sodass man sie von Anfang bis Ende wachsen sehen kann.

Kaya Thomas ist eine der bekanntesten Indie-Entwickler unserer Community und wurde vorgestellt von Apple öfter, als ich zählen kann. Sie twittert häufig über ihre eigene Arbeit und Präsentationen, teilt aber auch Links zu Büchern, die sie liest, Artikeln, die sie gelesen hat, und anderen Ressourcen.

Majid Jabrayilov schreibt nicht nur einen fantastischen Blog Swift und SwiftUI, aber er ist auch ein Reifenless Promoter anderer – wenn du ihm auf Twitter folgst, bekommst du eine Idee nach der anderen aus den unterschiedlichsten Quellen.

Donny Wals schreibt einen Swift-Blog und seit kurzem Bücher über Combine and Core Data, ermutigt aber auch die Leute, ihre Arbeit auf Twitter zu teilen. Selbst wenn Sie diesen Thread nur einmal pro Woche lesen, werden Sie dazu inspiriert, neue Dinge auszuprobieren, also sollten Sie Donny unbedingt folgen.

Sommer Panage arbeitet an Apple's Team für Barrierefreiheit, so dass sie zwar etwas eingeschränkt ist, was sie sagen kann, aber sie twittert viele erstklassige Tipps von sich selbst und anderen, die jeder verwenden kann, um bessere Apps zu entwickeln.

Natascha Fadeeva schreibt einen Blog über Swift- und iOS-Entwicklung, einschließlich Artikeln zu Core Data, Interviewfragen und anderen Themen, aber sie twittert auch über Dinge, die sie anderswo findet.

Newsletter und mehr

Newsletter und mehr

Natürlich ist Twitter nicht der einzige Ort, um mit der Community in Kontakt zu bleiben; Es gibt auch Newsletter, Slack-Gruppen, Zoom-Meetups, Foren, Konferenzen und andere Veranstaltungsorte. Ich möchte Sie nicht zu sehr langweilen, deshalb liste ich hier nur einen auf:

Du kannst nichts falsch machen mit iOS-Entwicklerwoche für Newsletter. Während ich dies schreibe, hat es gerade 500 Ausgaben bestanden, eine jede Woche, die Ihnen meiner Meinung nach alles sagt, was Sie darüber wissen müssen, wie wichtig es ist.

Wenn Sie in einem Webforum posten möchten, https://www.hackingwithswift.com/forums ist ziemlich gut. Es gibt viele Kategorien zur Auswahl, und jeder kann es beachtenless der Erfahrungsstufe, ist herzlich eingeladen teilzunehmen. Du kannst hier gerne deine Anfängerfragen posten, glaub mir!

Jeden Monat die iOS-Entwickler Happy Hour wird in einem Zoom-Gruppenanruf mit über 300 Personen abgehalten, aber der wahre Spaß liegt in den Breakout-Räumen, in denen Sie mit Gruppen von 6 bis 8 Personen gleichzeitig chatten können. Es macht viel Spaß und du lernst neue Leute kennen.

Die Teilnahme an Konferenzen war aufgrund der Coronavirus-Pandemie schwierig, aber Apple's WWDC war letztes Jahr ein großer Erfolg und wurde von einer Reihe von Community-Events begleitet. Eine Gruppe von Freunden und ich haben ein GitHub-Repository um den Überblick über alle anderen Ereignisse, Artikel und andere Dinge zu behalten, die passiert sind – schauen Sie vorbei!

Wenn Sie es vorziehen, auf Slack zu chatten, wo Sie schneller Antworten erhalten, können Sie dem kostenlosen beitreten Hacken mit der Swift-Slack-Gruppe und treten Sie einem der Swift-, SwiftUI- und anderen Kanäle bei.

Wie lange dauert es, iOS zu lernen?

Dies ist eine häufig gestellte Frage von mir: Wie lange dauert es, bis ich eine Stelle als iOS-Entwickler für Einsteiger erhalte, wenn ich nichts über Swift weiß?

Die offensichtliche Antwort ist "es kommt darauf an", aber das wäre in diesem Fall ein Polizist, also lassen Sie mich es auf verschiedene Weise ansprechen.

Die goldene Regel ist, nicht zu hetzen

Vor allem können Sie nicht mehrere Kurse gleichzeitig belegen. Erinnern Sie sich, was ich über das "Shiny Object Syndrom" gesagt habe? Ja, viele Leute glauben, dass sie zwei Kurse gleichzeitig belegen können, dann jeden Tag vier, fünf oder sogar mehr Stunden büffeln und trotzdem ein qualitativ hochwertiges Verständnis der behandelten Themen haben.

Um es klar zu sagen, ich habe Leute gesehen, die das so oft versucht haben und es scheitert immer. Jedes Mal – es funktioniert nie, und ich höre Leute sagen, es sei, weil die Tutorials schlecht waren, oder weil Swift zu schwierig war, oder aus buchstäblich einem anderen Grund, als zu versuchen, etwas Komplexes zu überstürzen.

Ich habe buchstäblich gerade eine E-Mail erhalten, in der es heißt: "Hallo Paul! Wie schnell kann ich Swift beenden, wenn ich vier oder fünf Stunden am Tag lerne?" Und so funktioniert Lernen einfach nicht – sei es Swift lernen, Klavier spielen lernen, Schlittschuhlaufen lernen oder irgendetwas anderes.

Das Erlernen von Swift kann manchmal schwierig sein, und das Erlernen des Erstellens von Apps erfordert viel Ausprobieren, Fehler machen und falsche Abzweige. Und das ist in Ordnung – es ist besser als in Ordnung, es ist fantastisch! 

Denn jedes Mal, wenn Sie etwas versuchen, einen Fehler machen oder falsch abbiegen, lernen Sie etwas dazu, und wenn Sie schließlich zur Lösung gelangen, werden Sie sie viel besser verstehen.

Also, die TL; DR hier ist keine Eile – nehmen Sie sich Zeit, haben Sie keine Angst, auftretende Tangenten zu erkunden, haben Sie keine Angst, mit Ihren Projekten zu experimentieren, und haben Sie keine Angst, zu etwas zurückzukehren Sie haben es zuvor gelernt und bei Bedarf wieder gelernt.

Was ist Ihr Bildungshintergrund

Was ist dein Bildungshintergrund?

Zweitens sollten Sie Ihren Hintergrund berücksichtigen, bevor Sie zu Swift kommen. Sie sehen, das Erlernen des Erstellens von Apps erfordert ein breites Spektrum an Fähigkeiten, und wenn Sie mit einer Fülle von Vorkenntnissen an den Tisch kommen, wie z version control, Datenstrukturen, Algorithmen und mehr haben Sie einen erheblichen Vorteil gegenüber Neulingen der Informatik im Allgemeinen sowie Swift und anderen Apple Frameworks.

Hier sind also einige Möglichkeiten, wo Sie sich gerade befinden könnten:

Wenn Sie einen Abschluss in Informatik haben, kennen Sie viele der CS-Grundlagen, die Sie für den Einstieg in Swift benötigen. Variablen, Arrays, Schleifen, Arrays, Mengen, Funktionen, OOP und andere Konzepte werden in Swift nützlich sein, ebenso wie Ihre gesamte Arbeit mit Datenstrukturen und Algorithmen. Das spart Ihnen je nach Studienfach 4-6 Monate Studienzeit und bringt Ihnen auch Vorteile bei der Bewerbung bei vielen Unternehmen.

Wenn Sie keinen CS-Abschluss haben, aber ein Coding-Bootcamp besucht haben, verfügen Sie über viele der Grundlagen, die Sie für den Einstieg in Swift benötigen. Dies bringt Ihnen nicht den gleichen Vorteil, wenn Sie sich bei diesen Unternehmen bewerben, da sie oft erwarten, dass ein Abschluss nur ein Kästchen auf ihrer Liste mit willkürlichen Anforderungen ankreuzt, aber Sie sparen immer noch drei oder vier Monate.

Wenn Sie keinen CS-Abschluss haben und kein Bootcamp besucht haben, aber in Ihrer Freizeit programmiert haben, sparen Sie etwas Zeit – wahrscheinlich zwei Monate oder so, je nach Sprache oder Frameworks, die Sie verwenden .

Was ist, wenn Sie keinen CS-Abschluss haben, kein Bootcamp besucht haben und keine Vorkenntnisse im Programmieren haben? Dann würde ich 9 bis 12 Monate schätzen, um vom Nichts zu einem Einstiegsjob zu gelangen. Ja, das könnte ein ganzes Jahr Arbeit zusätzlich zu Ihrem aktuellen Vollzeitjob sein, und das ist nur, um Ihren ersten Job als iOS-Entwickler zu bekommen.

Ist es immer das gleiche Jahr? Nein. Wenn Sie bereits Erfahrung haben, können Sie diese Zeit auf 1 bis 6 Monate verkürzen, wie ich bereits sagte. Wenn Sie die besten Zahlen auf beiden Seiten nehmen – 9 Monate vom Nichts bis zum Einstiegsjob plus 6 Monate für einen CS-Abschluss – können Sie in nur 3 Monaten eingestellt werden, was unglaublich ist.

Sie glauben vielleicht, dass es unmöglich ist, Ihren ersten Job in drei Monaten zu finden, aber das ist es nicht. Verdammt, ich habe jemanden kennengelernt, der meinen 100 Days of Swift-Kurs besucht und vor Tag 50 einen Job bekommen hat – er hatte bereits genug über App-Entwicklung gelernt in less als zwei Monate, weil sie sich die Mühe machen, jeden Tag zählen zu lassen.

Sie brauchen also keinen CS-Abschluss oder ein Bootcamp, aber Sie müssen bereit sein, hart zu arbeiten.

Lass dir etwas Spielraum

Der dritte Punkt Ich mag würde machen, bevor wir weitermachen, ist, dass „es dauert so lange, wie es dauert.“ Ich liebe einen Text von John Lennon, der sagt: "Das Leben ist das, was passiert, wenn man damit beschäftigt ist, andere Pläne zu schmieden."

Es ist fantastisch, wenn Sie große Lernpläne und große Träume für den gewünschten Job haben, aber manchmal sind Sie müde, manchmal gestresst, manchmal ist Ihr Dach undicht oder Ihr Hund muss zum Tierarzt oder Ihre Kinder brauchen mehr Hilfe bei den Hausaufgaben oder was auch immer, und so ist das Leben. 

Seien Sie also nicht zu streng mit sich selbst, wenn Sie mit Ihrem Lernplan in Verzug geraten, ein paar Tage oder sogar ein paar Wochen fehlen und so weiter – solange Sie belastbar sind, werden Sie dort.

Das ist fantastisch, wenn man richtig hart arbeitet und nach 50 Tagen einen Job bekommt – gut gemacht! Wenn Sie 500 Tage brauchen, ist das auch fantastisch und Sie sollten genauso stolz auf sich sein. Verdammt, wenn Sie fünf Jahre brauchen, bin ich sicher, dass es nicht das ist, was Sie wollten, aber das Endergebnis ist dasselbe, und das ist alles, was zählt.

Bereiten Sie sich auf die Bewerbung vor

Bereiten Sie sich auf die Bewerbung vor

Zu guter Letzt, wenn Sie auf Ihrer iOS-Lernreise schon etwas weiter fortgeschritten sind und darüber nachdenken, Ihren ersten Einstiegsjob zu finden, möchte ich Sie auf eine umfangreiche Sammlung von Ressourcen hinweisen, die ich zusammengestellt habe, um Sie zu unterstützen.

würde ich empfehlen Sean Allens Swift-Interview-Tipps-Videos – Er hat eine ganze Playlist für sie, in der Sie einzelne Diskussionen wie Klassen vs. Strukturen, funktionale Programmierung, Fehlerbehandlung und mehr durcharbeiten können. Keines der Videos ist besonders lang, aber alle sind darauf ausgelegt, Ihnen die Fähigkeiten zu vermitteln, die Sie für eine gute Leistung in einer Interviewsituation benötigen.

Wo jetzt?

Okay, ich bin also auf die Kern- und Erweiterungsfähigkeiten eingegangen, die Sie benötigen, häufige Lernfehler, Kurse, die Sie belegen können, wie Sie sich mit der iOS-Community verbinden und wie Sie sich auf Ihr Vorstellungsgespräch vorbereiten – das ist eine Menge zu behandeln. und ich hoffe, es war hilfreich.

Außerdem hoffe ich, gezeigt zu haben, wie viele Informationen kostenlos verfügbar sind. 

Ja, die Versuchung, hundert Dollar oder mehr für einen Kurs auszugeben, ist groß, aber entspannen Sie sich – gehen Sie zuerst in Bewegung, finden Sie etwas Schwung und finden Sie auch jemanden, der Swift so unterrichtet, dass es für Sie funktioniert. Wenn Sie an einem guten Ort sind und sich bereit fühlen, geben Sie etwas Geld aus, wenn Sie möchten.

Beste Wünsche auf Ihrer Reise!

Über den Autor
David Attard
Autor: David AttardWebsite: https://www.linkedin.com/in/dattard/
David arbeitet seit 18 Jahren in oder um die Online- / Digitalbranche. Er verfügt über umfangreiche Erfahrung in der Software- und Webdesignbranche mit WordPress, Joomla und den sie umgebenden Nischen. Als digitaler Berater konzentriert er sich darauf, Unternehmen durch die Kombination ihrer Website und der heute verfügbaren digitalen Plattformen einen Wettbewerbsvorteil zu verschaffen.

Eine Sache noch... Wussten Sie, dass Leute, die nützliche Dinge wie diesen Beitrag teilen, auch FANTASTISCH aussehen? ;-);
Bitte kontaktieren Sie uns, wenn lass a nützlich Kommentieren Sie mit Ihren Gedanken und teilen Sie dies dann Ihren Facebook-Gruppen mit, die dies nützlich finden würden, und lassen Sie uns gemeinsam die Vorteile nutzen. Vielen Dank für das Teilen und nett zu sein!

Disclosure: Diese Seite enthält möglicherweise Links zu externen Websites für Produkte, die wir lieben und von ganzem Herzen empfehlen. Wenn Sie Produkte kaufen, die wir vorschlagen, können wir eine Empfehlungsgebühr verdienen. Solche Gebühren haben keinen Einfluss auf unsere Empfehlungen und wir akzeptieren keine Zahlungen für positive Bewertungen.

Autor (en) Empfohlen am:  Inc Magazin Logo   Sitepoint-Logo   CSS Tricks Logo    Webdesignerdepot-Logo   WPMU DEV Logo   und viele mehr ...