Was Sie erwartet, wenn Sie iOS-Entwickler werden möchten

Was Sie erwartet, wenn Sie iOS-Entwickler werden möchten

Von außerhalb von iOS kann die Entwicklung wie ein geschlossener Club wirken. Zum Arbeiten braucht man auf jeden Fall einen Apple-Computer; das Ökosystem wird streng von einem Unternehmen kontrolliert. Von innen heraus hört man manchmal auch Widersprüche – einige sagen, dass die Objective-C-Sprache alt und ungeschickt ist, andere sagen, dass die neue Swift-Sprache zu grob ist.

Dennoch gehen Entwickler in diesen Bereich vor und sind dort zufrieden.

Diesmal erzählten uns Marat Nurgaliev und Boris Pavlov von ihren Erfahrungen – wie sie den Beruf erlernten, wie sie ihre ersten Vorstellungsgespräche bestanden und warum sie Absagen erhielten. Und Andrey Antropov, Dekan, fungierte als Experte Fakultät für iOS-Entwicklung bei GeekBrains.

Im Jahr 2016 kam Marat Nurgaliev aus der Region Astrachan, um einen Job als Mobilentwickler bei einem lokalen Fernsehsender zu bekommen. Dies war sein erstes Interview. Er war gerade ohne Übung und Erfahrung von der Armee zurückgekehrt und hatte sogar die Theorie vergessen, mit der er bereits Probleme hatte. Marats einzige Erfahrung in der mobilen Entwicklung war seine Abschlussarbeit über die Analyse von Informationslecks durch Android-Anwendungen. Beim Interview wurde er nach seinem Studium, OOP und anderen Theorien gefragt, aber Marat konnte die Lücken in seinem Wissen nicht verbergen.

Er wurde jedoch nicht abgelehnt, sondern erhielt eine praktische Aufgabe – die Anzeige einer Nachrichtenliste mithilfe der API in zwei Wochen umzusetzen. Sowohl für iOS als auch für Android. „Wenn ich Erfahrung mit Android hatte, gab es nicht einmal ein Tool zum Erstellen einer iOS-Version. Die Entwicklungsumgebung für iOS-Anwendungen ist nur auf dem Mac verfügbar. Aber zwei Wochen später kam ich zurück und zeigte, was ich auf Android machen konnte. Bei iOS musste ich es im Handumdrehen herausfinden. Am Ende haben sie mich mitgenommen. Dann lebte ich in Astrachan. Jeder IT-Job mit einem Gehalt über zwanzig passte zu mir.“

Wer sind iOS-Entwickler?

Mobile-Entwickler erstellen Anwendungen für jedes tragbare Gerät. Smartphones, Tablets, Smartwatches und alle anderen Plattformen, die Android oder iOS unterstützen. Die Grundprinzipien der mobilen Entwicklung unterscheiden sich nicht von der herkömmlichen Entwicklung, sie wurde jedoch aufgrund spezifischer Tools in eine separate Richtung unterteilt. Es verwendet eigene Tools, Programmiersprachen und Frameworks.

„Um mit iOS zu arbeiten, braucht man ein MacBook, denn nur dieses verfügt über die nötige Xcode-Entwicklungsumgebung. Es ist kostenlos und wird über den AppStore vertrieben. Für die Installation benötigen Sie Ihre Apple-ID und sonst nichts. In Xcode können Sie Anwendungen für alles entwickeln – Telefon, Tablet, Uhr. Für alles gibt es einen integrierten Simulator und Editor“, sagt Andrey Antropov, Dekan der iOS-Entwicklungsabteilung bei GeekBrains.

„Aber die Entwicklungsumgebung kann unter Windows installiert werden, wenn man Hackintosh verwendet. Dies ist eine funktionierende, aber umständliche Option – keiner der ernsthaften Entwickler macht dies. Einsteiger kaufen ein altes MacBook. Und die Erfahrenen können sich meist das neueste Modell leisten.“

Sprachen – Swift oder Objective-C

Fast die gesamte iOS-Entwicklung erfolgt mit der Programmiersprache Swift. Es erschien vor fünf Jahren und ersetzt nun nach und nach die alte Objective-C-Sprache, die Apple seit mehr als 30 Jahren in allen seinen Anwendungen verwendet.

„In Objective-C hat sich eine riesige Codebasis angesammelt, sodass je nach Unternehmen, seinen Aufgaben und Anwendungen weiterhin Entwickler in beiden Sprachen benötigt werden.“ Vor vielen Jahren geschriebene Anwendungen basieren auf Objective-C. Und alle neuen Projekte werden standardmäßig in Swift entwickelt. Jetzt tut Apple viel, um die gleichzeitige Entwicklung für ein Telefon, ein Tablet, eine Uhr und ein MacBook so bequem wie möglich zu gestalten. Derselbe Code kann überall kompiliert und ausgeführt werden. Das ist vorher nicht passiert. Für iOS haben wir in Swift entwickelt, für MacOS haben wir Objective-C verwendet.“

Laut Andrey ist Swift eine sehr einfache Sprache, die auch für Anfänger geeignet ist. Es ist strikt typisiert, wodurch Sie viele Fehler in der Phase der Projektkompilierung erkennen können und falscher Code einfach nicht funktioniert.

„Objective-C ist eine ziemlich alte Sprache – genauso alt wie die Sprache C++. Zum Zeitpunkt seiner Entwicklung waren die Anforderungen an Sprachen völlig andere. Als Swift herauskam, war es fehlerhaft, die Funktionalität war eingeschränkt und die Syntax war grob. Und die Leute hatten alle Hände voll zu tun mit Objective-C. Es wurde über viele Jahre hinweg verbessert, alle darin enthaltenen Fehler wurden korrigiert. Aber jetzt denke ich, dass Swift genauso gut ist wie Objective-C. Obwohl selbst Apple immer noch beides in seinen Projekten verwendet. Die Sprachen sind weitgehend austauschbar und ergänzen sich gegenseitig. Strukturen und Objekte einer Sprache können in Objekte und Strukturen einer anderen Sprache umgewandelt werden. Es ist gut, beide Optionen zu kennen, aber für Anfänger wirkt Objective-C oft einschüchternd und verwirrend.“

Ausbildung

„Bei meinem ersten Job hat mich mein Chef geschult, mir bei der Umsetzung und Einrichtung des Projekts geholfen“, sagt Marat, „aber gleichzeitig auf Android und iOS zu arbeiten, ist schwierig.“ Der Neuaufbau, der Wechsel von Projekt zu Projekt, von Sprache zu Sprache braucht Zeit. Am Ende entschied ich, dass ich mich für eine Richtung entscheiden und sie studieren musste. Ich war von der Benutzeroberfläche von Xcode und der einfachen Syntax von Swift überzeugt.

Marat trat in die iOS-Entwicklungsabteilung von GeekBrains ein. Anfangs war es sehr einfach, weil er viele Dinge aus der Praxis wusste. Der Jahreskurs ist in vier Quartale unterteilt. Laut Andrey gibt der erste nur die Grundlagen: „Die Basis der Swift-Sprache, Kenntnisse über grundlegende Frameworks, Netzwerke, Datenspeicherung, Anwendungslebenszyklus, Controller, grundlegende Architekturen, Hauptbibliotheken, die jeder verwendet, Multithreading und Parallelität.“ Anwendungen.“

Das zweite Quartal fügt Objective-C hinzu. Es wird ein Kurs über Architektur und grundlegende Programmiermuster durchgeführt. Im dritten Quartal vermitteln sie den richtigen Schreibstil für Code. Es erklärt, was eine Factory ist, wie man Tests richtig schreibt, Projekte erstellt, was Git-Flow ist, Continuous Integration durch Fast Lane. Das vierte und letzte Quartal ist der Teamarbeit, praktischen Aufgaben und Praktika gewidmet.

„Das erste Quartal war einfach“, sagt Marat, „aber dann begann ich, das Programmieren in Objective-C zu lernen, Designmuster, die Prinzipien von Solid, Git-Flow, Projektarchitektur, Unit- und UI-Tests von Anwendungen zu studieren und benutzerdefinierte Animationen einzurichten.“ - und dann wurde es für mich interessant zu studieren.“

„Für mich lief es bei GeekBrains nicht ganz reibungslos“, sagt Boris Pavlov, und sein Weg zur iOS-Entwicklung im Allgemeinen war nicht der direkteste. Der Junge wurde von seiner Großmutter großgezogen. Sie war Architektin, Mathematikerin und Designerin und vermittelte Boris die Liebe zum Design, brachte ihm das Zeichnen mit der Hand und das Zeichnen bei. Sein Onkel war Systemadministrator und interessierte seinen Neffen für Computer.

Boris war ein ausgezeichneter Schüler, verlor jedoch das Interesse am Lernen und verließ die Schule nach neun Klassen. Nach dem College begann er mit dem Radfahren und Computer traten in den Hintergrund. Doch eines Tages erlitt Boris eine Wirbelsäulenverletzung, die ihn daran hinderte, seine Sportkarriere fortzusetzen.

Er begann mit dem Studium von C++ bei einem Lehrer am Irkutsker Institut für Solar-Terrestrische Physik. Dann interessierte ich mich für die Spieleentwicklung und versuchte, auf C# umzusteigen. Und schließlich war er, wie Marat, von der Swift-Sprache fasziniert.

„Ich habe mich für den kostenlosen Einführungskurs bei GeekBrains entschieden. Ehrlich gesagt war er sehr langweilig, träge und unverständlich“, erinnert sich Boris. „Der Lehrer sprach über die Besonderheiten der Sprache, stürzte aber von einem Thema zum anderen, ohne das Wesentliche preiszugeben. Als der Kurs zu Ende war, verstand ich immer noch nichts.“

Deshalb hat sich Boris nach dem Einführungskurs nicht für eine einjährige Ausbildung angemeldet, sondern für einen kurzen dreimonatigen Kurs, in dem ihm die Grundlagen des Berufs vermittelt werden. „Ich habe dort sehr gute Lehrer gefunden, die alles sehr verständlich erklärt haben.“

„Wir werden oft kritisiert, angeblich seien unsere Schulungshandbücher nicht ganz auf dem neuesten Stand, es gebe Ungenauigkeiten. Aber die Kurse werden ständig aktualisiert und die Lehrer sprechen immer über Neuerungen. Von den Gruppen, die ich leite, finden viele nach dem ersten Quartal einen Job. „Natürlich sind das meist Leute mit Programmiererfahrung“, sagt Andrey, „Andererseits kann man nicht alle Kenntnisse in einem Kurs vermitteln.“ Die Interaktion mit Netzwerkkunden im Leben lässt sich nicht in zehn zweistündige Vorträge unterbringen. Und wenn man nur Kurse besucht und nichts anderes macht, dann fehlt das Wissen. Wenn Sie das ganze Jahr über jeden Tag lernen, werden in diesem Tempo nur die Faulen keinen Job bekommen. Denn die Nachfrage im Beruf ist sehr hoch.“

Was Sie erwartet, wenn Sie iOS-Entwickler werden möchten

Sie können am meisten sehen aktuelle Stellenangebote für iOS-Entwickler und abonnieren Sie neue.

Arbeiten

Aber weder Marat noch Boris fanden so leicht eine Anstellung.

„Einige große Firmen entwickeln seit langem iOS-Anwendungen in Objective-C und behalten weiterhin die alte Codebasis bei. Leider habe ich kein überzeugendes Argument, um sie zu zwingen, ausschließlich Swift zu verwenden. Vor allem diejenigen, die die Regel anwenden: „Fass nicht an, was funktioniert“, sagt Marat, „der Objective-C-Richtung wird bei Geekbrains wenig Aufmerksamkeit geschenkt.“ Es hat eher informativen Charakter. Aber jedes Unternehmen, für das ich ein Vorstellungsgespräch geführt habe, fragte nach Objective-C. Und da sich mein Studium, wie auch meine vorherige Arbeit, auf Swift konzentriert, habe ich bei Vorstellungsgesprächen Absagen erhalten.“

„Nach dem Studium kannte ich alleine nur die oberflächlichsten Grundlagen, mit deren Hilfe ich die einfachste Anwendung erstellen konnte“, sagt Boris. „Für die Arbeit hat es natürlich nicht gereicht, aber ich habe mich darüber gefreut.“ Es war schwierig, in Irkutsk einen Job zu finden. Genauer gesagt: überhaupt nicht. Ich beschloss, in anderen Städten nachzuschauen. Bezogen auf die Zahl der offenen Stellen erwiesen sich Krasnodar, Moskau und St. Petersburg als die relevantesten. Ich beschloss, nach St. Petersburg zu gehen – näher an Europa.

Aber es stellte sich heraus, dass alles nicht so rosig war. Sogar einem Junior wird vergeben, was er nicht wissen kann. Ich habe noch keinen Job gefunden. Ich arbeite für „Danke“ und sammle Erfahrungen. Ich verstehe, dass das nicht das ist, was ich wollte, aber ich bin interessiert und das treibt mich an. Ich möchte Wissen erlangen.“

Andrey ist der Meinung, dass Neuankömmlinge eher nach Praktika als nach Jobs suchen sollten. Bei sehr geringen Vorkenntnissen ist es normal, dass das Praktikum unbezahlt ist. Andrey empfiehlt, sich auf Junior-Stellen bei großen Unternehmen zu bewerben, bei denen der Arbeitsprozess bereits etabliert ist.

„Wenn Sie verstehen, wie der Softwareentwicklungsprozess funktioniert, wird es viel einfacher, sich zurechtzufinden und je nach Ihren Wünschen weitere Arbeit zu finden. Manche Leute beginnen mit der unabhängigen Entwicklung, entwickeln Spiele für sich selbst, laden sie in den Store hoch und monetarisieren sie selbst. Manche arbeiten für ein großes Unternehmen mit strengen Regeln. Manche Leute verdienen ihr Geld in kleinen Studios, die maßgeschneiderte Software herstellen, und dort können sie den gesamten Prozess beobachten – von der Erstellung eines Projekts von Grund auf bis zur Lieferung an den Laden.“

Gehälter

Das Gehalt eines iOS-Entwicklers hängt wie bei jedem anderen von der Frage „Moskau oder Russland“ ab. Aber aufgrund der Besonderheiten der Branche – viel Remote-Arbeit, Möglichkeiten zum Umzug und Arbeiten außerhalb des regionalen Marktes – nähern sich die Zahlen zunehmend an.

Was Sie erwartet, wenn Sie iOS-Entwickler werden möchten

Laut dem My Circle-Gehaltsrechner ist das Durchschnittsgehalt eines iOS-Entwicklers etwas niedriger 140 000 Rubel.

„Ein Junior auf einem sehr niedrigen Niveau arbeitet oft kostenlos oder für symbolisches Geld – 20-30 Rubel. Wenn ein Junior gezielt auf seine Position gebracht wird, erhält er 50 bis 80. Mittlere erhalten 100 bis 150, manchmal sogar bis zu 200. Senioren erhalten nicht weniger als 200. Ich denke, ihr Gehalt liegt bei etwa 200-300. Und bei Teamleitern sind es dementsprechend über 300.“

Was Sie erwartet, wenn Sie iOS-Entwickler werden möchten

Interviews

„Das erste Interview fand über Skype statt. Zu meiner Überraschung war es Google“, erinnert sich Boris, „damals war ich gerade nach St. Petersburg gezogen und begann, nach Arbeit zu suchen. Ich habe eine Bewerbung für eine Stelle als iOS-Entwickler erhalten. Nicht Junior, nicht Middle, nicht Senior – nur ein Entwickler. Ich war begeistert und begann mit dem Manager zu korrespondieren. Ich wurde gebeten, eine technische Aufgabe zu erledigen: Ich musste eine Bewerbung für Witze über Chuck Norris schreiben. Ich schrieb es. Sie sagten mir, alles sei großartig und vereinbarten ein Online-Interview.

Wir haben uns gegenseitig angerufen. Ein nettes Mädchen hat mit mir gesprochen. Aber sie stellten keine Fragen zu Sprachkenntnissen, sondern nur verschiedene logische Probleme, zum Beispiel „Die Zeit ist 15:15, wie viel Grad liegen zwischen Stunden- und Minutenzeiger?“ ​​oder „Ein Pfosten ist 10 Meter lang, a Die Schnecke kriecht tagsüber 3 Meter hoch und nachts 1 Meter hinunter.“ In wie vielen Tagen wird sie an die Spitze kriechen?“, und noch ein paar ähnliche.

Dann gab es sehr seltsame Fragen – warum ich Apple liebe und was ich für Tim Cook empfinde. Ich habe gesagt, dass ihm das Unternehmen als Ganzes positiv, aber eher negativ gesinnt ist, weil ihm Geld wichtig ist, nicht Produkte.

Als Fragen zu Swift aufkamen, reichten meine Kenntnisse nur für Programmiermuster und die Grundlagen von OOP. Wir verabschiedeten uns, eine Woche später riefen sie mich zurück und sagten, ich sei nicht geeignet. Eigentlich habe ich dadurch enorme Erfahrungen gesammelt: Man braucht Wissen, man braucht viel davon – Theorie und Praxis.“

Andrey sagt: „Das erste, was jeder während eines Vorstellungsgesprächs gefragt wird, ist der Lebenszyklus des Controllers.“ Sie fragen wirklich gerne nach einem einfachen Programmiermuster. Sie werden auf jeden Fall nach Ihren Erfahrungen mit beliebten Bibliotheken fragen. Es wird definitiv eine Frage zu den Unterschieden zwischen Swift-Werttypen und Referenztypen, zur automatischen Referenzzählung und zur Speicherverwaltung geben. Sie fragen sich möglicherweise, wie sie die Datenspeicherung in Anwendungen implementiert haben und ob sie Netzwerkanforderungen implementiert haben. Sie werden nach den Grundlagen von REST und JSON fragen. Der Junior wird nicht nach bestimmten Dingen und Feinheiten gefragt. Zumindest frage ich nicht.

Boris machte eine andere Erfahrung: „Selbst als ich nach Praktika fragte, technische Aufgaben erledigte und sagte, dass mir das Gehalt nicht wichtig sei, solange es für die Miete einer Wohnung reichte, wurde ich trotzdem abgelehnt. Ich habe Artikel gelesen und versucht zu verstehen, was ein Personalvermittler von einem Neuling braucht. Doch meist scheiterten sie an Theorien. Aus irgendeinem Grund haben sie den großen Ligen Fragen gestellt, die Neulinge nicht betreffen.“

Marat hatte mehr Glück. Jetzt arbeitet er in einem Transportunternehmen und leitet allein die iOS-Abteilung, während er sein Studium an der Fakultät fortsetzt. „Da ich der einzige Verantwortliche für iOS bin, wird meine Arbeit nur an meiner Fähigkeit gemessen, die mir übertragenen Aufgaben umzusetzen, und nicht an meinen theoretischen Kenntnissen.“

Gemeinde

Andrey lebt in Nischni Nowgorod und sagt, dass sich auch dort eine tolle Gemeinschaft gebildet hat. Es war einmal ein Backend-Entwickler in Python, aber seine Freunde haben ihn in die mobile Entwicklung hineingezogen – und jetzt ermutigt er selbst jeden dazu, es zu tun.

„Die globale Community kommuniziert normalerweise über Twitter. Die Leute schreiben ihre eigenen Blogs, nehmen Videos auf Youtube auf und laden sich gegenseitig zu Podcasts ein. Eines Tages hatte ich eine Frage zu einer Präsentation, bei der der HQTrivia-Teamleiter sprach. Hierbei handelt es sich um ein amerikanisches Quizspiel, das von mehreren Millionen Menschen gleichzeitig gespielt wird. Ich habe ihm auf Twitter geschrieben, er hat mir geantwortet, wir haben geredet und ich habe mich bei ihm bedankt. Die Community ist äußerst freundlich, was großartig ist.“

Liste empfohlener LiteraturAnfängerlevel:

Durchschnittsniveau:

Fortgeschrittenes Level:

Source: habr.com

Kommentar hinzufügen