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



Auf der iOS-Seite scheint die Entwicklung wie ein geschlossener Club. Zum Arbeiten benötigen Sie auf jeden Fall einen Computer von Apple, das Ökosystem wird von einem Unternehmen genau überwacht. Manchmal sind Widersprüche auch von innen zu hören - jemand sagt, dass die Objective-C-Sprache alt und ungeschickt ist, und jemand, dass die neue Swift-Sprache zu roh ist.

Trotzdem gehen die Entwickler in diesen Bereich und sind dort angekommen und zufrieden.

Diesmal erzählten uns Marat Nurgaliev und Boris Pavlov von ihren Erfahrungen - wie sie den Beruf studierten, wie die ersten Interviews stattfanden, warum sie abgelehnt wurden. Und der Experte war Andrei Antropov, Dekan der iOS-Entwicklungsabteilung bei GeekBrains.

Im Jahr 2016 kam Marat Nurgaliev aus der Region Astrachan, um eine Stelle als Mobilentwickler bei einer lokalen Fernsehgesellschaft 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 es sowieso Probleme gab. Die einzige Erfahrung in der mobilen Entwicklung bei Marat war eine Arbeit zur Analyse von Informationslecks durch Android-Anwendungen. Während des Interviews wurde er nach Studium, PLO und anderer Theorie gefragt, aber Marat konnte die Wissenslücken nicht verbergen.

Trotzdem wurde er nicht abgelehnt, sondern erhielt eine praktische Aufgabe - die Anzeige der Nachrichtenliste über die API in zwei Wochen zu implementieren. Sowohl unter iOS als auch unter Android. „Wenn ich Erfahrung mit Android hatte, gab es nicht einmal ein Tool zum Erstellen der iOS-Version. Die ios-Entwicklungsumgebung ist nur auf dem Mac verfügbar. Aber zwei Wochen später kehrte ich zurück und zeigte, dass ich auf Android konnte. Mit iOS musste ich unterwegs raus. Infolgedessen nahmen sie mich. Dann lebte ich in Astrachan. Jeder Job in der IT mit einem Gehalt von mehr als zwanzig hat mir gepasst. “

Wer sind die 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 grundlegende Grundlage der mobilen Entwicklung unterscheidet sich nicht von der üblichen, wurde jedoch aufgrund der spezifischen Tools in eine separate Richtung herausgearbeitet. Es verwendet seine eigenen Tools, Programmiersprachen und Frameworks.

„Um iOS nutzen zu können, benötigen Sie ein MacBook, da nur dieses über die erforderliche Xcode-Entwicklungsumgebung verfügt. Es ist kostenlos und wird über den AppStore App Store vertrieben. Für die Installation müssen Sie Ihre Apple ID und sonst nichts haben. In Xcode können Sie Anwendungen für alles entwickeln - für ein Telefon, ein Tablet oder eine Uhr. Es gibt einen eingebauten Simulator und Editor für alles “, sagt Andrei Antropov, Dekan der iOS-Entwicklungsabteilung bei GeekBrains.

„Die Entwicklungsumgebung kann aber auch unter Windows installiert werden, wenn Sie Hackintosh verwenden. Dies ist eine funktionierende, aber umständliche Option - keiner der ernsthaften Entwickler tut dies. Anfänger kaufen ein altes MacBook. Und erfahrene können sich normalerweise das neueste Modell leisten. “


Sprachen - Schnell oder Ziel-C


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

„Objective-C verfügt über eine riesige Codebasis, sodass Entwickler je nach Unternehmen, Aufgaben und Anwendungen weiterhin in beiden Sprachen benötigt werden. Vor vielen Jahren geschriebene Bewerbungen basieren auf Objective-C. Alle neuen Projekte werden standardmäßig in Swift entwickelt. Jetzt unternimmt Apple viel, um die gleichzeitige Entwicklung für Telefon, Tablet, Uhr und MacBook so bequem wie möglich zu gestalten. Der gleiche Code kann überall kompiliert und ausgeführt werden. Dies war vorher nicht der Fall. Für iOS haben wir auf Swift entwickelt, für MacOS haben wir Objective-C verwendet. “

Laut Andrey ist Swift eine sehr einfache Sprache, die für Anfänger geeignet ist. Es ist stark typisiert, so dass Sie in der Kompilierungsphase des Projekts viele Fehler abfangen können und falscher Code einfach nicht funktioniert.

„Objective-C ist eine ziemlich alte Sprache - im gleichen Alter wie C ++. Zum Zeitpunkt der Entwicklung waren die Anforderungen an Sprachen völlig unterschiedlich. Als Swift auftauchte, gab es viele Fehler, die Funktionalität war eingeschränkt, die Syntax war grob. Und bei Objective-C hatten die Leute die volle Hand. Er verbesserte sich über viele Jahre, alle Fehler dort wurden korrigiert. Aber jetzt denke ich, dass Swift Objective-C nicht unterlegen ist. Obwohl auch Apple noch beides in seinen Projekten verwendet. 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 wäre schön, beide Optionen zu kennen, aber für Anfänger scheint Objective-C oft einschüchternd und unverständlich. "


Schulung


„Bei meinem ersten Job hat mich der Chef geschult und bei der Implementierung und Einrichtung des Projekts geholfen“, sagt Marat. „Die Arbeit an Android und iOS ist jedoch gleichzeitig schwierig. Es braucht Zeit, um neu aufzubauen, von Projekt zu Projekt zu wechseln, von Sprache zu Sprache. Am Ende entschied ich, dass ich eine Richtung wählen und sie studieren musste. Die Xcode-Oberfläche und die einfache Swift-Syntax haben mich bestochen. “

Marat trat in die iOS-Entwicklungsabteilung von GeekBrains ein. Anfangs war es sehr einfach, weil er viele Dinge aus seiner Berufserfahrung wusste. Die Jahresrate ist in vier Quartale unterteilt. Laut Andrei wird im ersten nur die Basis angegeben: "Die Basis der Swift-Sprache, Kenntnisse der grundlegenden Frameworks, Netzwerkinteraktion, Datenspeicherung, Lebenszyklus der Anwendung, Controller, grundlegende Architekturen, die Hauptbibliotheken, die jeder verwendet, Multithreading und Parallelität in Anwendungen."

Im zweiten Quartal wird Objective-C hinzugefügt. Ein Kurs über Architektur, grundlegende Programmiermuster. Im dritten Quartal wird die korrekte Schreibweise von Code vermittelt. Es zeigt, was eine Fabrik ist, wie man Tests richtig schreibt, Projekte bildet, was Git-Flow und kontinuierliche Integration über Fast Lane sind. Das vierte und letzte Quartal ist Teamarbeit, praktischen Aufgaben und Praktika gewidmet.

„Das erste Quartal war einfach“, sagt Marat, „aber dann das Studium der Programmierung in Objective-C, das Studium der Entwurfsmuster, der Prinzipien von Solid, Git-Flow, der Architektur des Projekts, der Anwendungen zum Testen von Einheiten und Benutzeroberflächen, das Einrichten benutzerdefinierter Animationen und dann begann ich Es wurde interessant zu studieren. “


„Bei GeekBrains lief nicht alles reibungslos“, sagt Boris Pavlov, und sein Weg zur iOS-Entwicklung im Allgemeinen war nicht der direkteste. Der Typ wurde von seiner Großmutter aufgezogen. Sie war Architektin, Mathematikerin und Designerin und brachte Boris die Liebe zum Design bei. Sie lernte, von Hand zu zeichnen und zu zeichnen. 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 ging er Fahrrad fahren und Computer blieben auf der Strecke. Aber einmal erhielt Boris eine Wirbelsäulenverletzung, die es ihm nicht erlaubte, seine Sportkarriere fortzusetzen.

Er begann C ++ bei einem Lehrer am Irkutsker Institut für Solarterrestrische Physik zu studieren. Dann interessierte er sich für die Spieleentwicklung und versuchte, zu C # zu wechseln. Und schließlich wurde er wie Marat von Swift bestochen.

„Ich habe mich für einen kostenlosen Einführungskurs bei GeekBrains entschieden. Um ehrlich zu sein, war er sehr langweilig, träge und unverständlich “, erinnert sich Boris.„ Der Lehrer sprach über die Merkmale der Sprache, schoss jedoch von einem Thema zum anderen, ohne das Wesentliche preiszugeben. Als der Kurs endete, verstand ich immer noch nichts. "

Daher trat Boris nach dem Einführungskurs nicht in einen einjährigen Kurs ein, sondern in einen kurzen dreimonatigen Kurs, in dem die Grundlagen des Berufs vermittelt werden. "Dort bin ich auf sehr gute Lehrer gestoßen und habe alles ganz klar erklärt."


„Wir werden oft kritisiert, angeblich haben wir nicht ganz relevante Trainingshandbücher, es gibt Ungenauigkeiten. Aber die Kurse werden ständig aktualisiert und die Lehrer sprechen immer über Innovationen. Von den Gruppen, die ich leite, sind viele bereits nach dem ersten Quartal beschäftigt. Natürlich sind dies normalerweise Leute mit Programmiererfahrung “, sagt Andrey.„ Andererseits kann nicht alles Wissen in einem Kurs vermittelt werden. Die Interaktion von Netzwerkclients im Leben kann nicht in zehn Vorlesungen für zwei Stunden passen. Und wenn Sie nur zu Kursen gehen und nichts anderes tun, wird es nicht genug Wissen geben. Wenn Sie das ganze Jahr über jeden Tag üben, funktionieren in diesem Tempo nur die Faulen nicht. Weil die Nachfrage im Beruf sehr groß ist. "

Bild

Sie können die neuesten Stellenangebote für iOS-Entwickler anzeigen und sich für neue anmelden.


Arbeit


Aber weder Marat noch Boris fanden einen Job einfach.

„Einige große Unternehmen haben lange Zeit iOS-Anwendungen für Objective-C entwickelt und unterstützen weiterhin die alte Codebasis. Leider habe ich kein starkes Argument, um sie zu zwingen, ausschließlich Swift zu verwenden. Insbesondere diejenigen, die die Regel „Nicht anfassen, was funktioniert“ anwenden, sagt Marat, „wird der Richtung von Objective-C bei Geekbrains wenig Aufmerksamkeit geschenkt. Es ist eher ein Faktencharakter. Aber jedes Unternehmen, das ich interviewt habe, hat nach Objective-C gefragt. Und da sich mein Studium wie bei meiner vorherigen Arbeit auf Swift konzentriert, habe ich bei Interviews Ablehnungen erhalten. “

„Nach dem Studium kannte ich allein nur die oberflächlichsten Grundlagen, mit denen ich die einfachste Anwendung erstellen konnte“, sagt Boris. „Natürlich war es nicht genug für die Arbeit, aber ich freute mich darüber. In Irkutsk war es schwierig, Arbeit zu finden. Genauer gesagt gar nichts. Ich beschloss, in anderen Städten zu suchen. In Bezug auf die Anzahl der offenen Stellen waren Krasnodar, Moskau und St. Petersburg am relevantesten. Ich beschloss, nach St. Petersburg zu gehen - näher an Europa.

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

Andrei glaubt, dass Neuankömmlinge keine Arbeit suchen sollten, sondern Praktika. Wenn es sehr wenig Wissen gibt, ist dies normal, wenn das Praktikum nicht bezahlt wird. Andrei rät großen Unternehmen, bei denen der Arbeitsprozess bereits festgelegt wurde, zu Junior-Stellenangeboten.

„Wenn Sie verstehen möchten, wie der Softwareentwicklungsprozess funktioniert, wird es je nach Ihren Wünschen viel einfacher, zu navigieren und weitere Arbeiten zu finden. Jemand entwickelt sich selbständig, macht Spiele für sich selbst, schüttet sie selbst in den Laden und monetarisiert sie selbst. Jemand arbeitet für ein großes Unternehmen mit strengen Regeln. Jemand verdient Geld in kleinen Studios, in denen Software auf Bestellung hergestellt wird, und kann dort den gesamten Prozess beobachten - von der Erstellung eines Projekts von Grund auf bis zur Bereitstellung im Geschäft. “


Gehälter


Das Gehalt eines iOS-Entwicklers hängt wie jedes andere von der Frage "Moskau oder Russland" ab. Aufgrund der Besonderheiten der Branche - viel Fernarbeit, Umzugsmöglichkeiten und Arbeit nicht auf dem regionalen Markt - nähern sich die Zahlen jedoch zunehmend an.

Bild

Laut dem Gehaltsrechner "My Circle" liegt das durchschnittliche Gehalt eines iOS-Entwicklers bei etwas weniger als 140.000 Rubel .

„Ein Junior auf sehr niedrigem Niveau arbeitet oft kostenlos oder für symbolisches Geld - 20-30.000 Rubel. Wenn der Junior absichtlich in seine Position gebracht wird, erhält er 50 bis 80 Tausend. Middles erhalten von 100 bis 150 und manchmal sogar bis zu 200. Unterzeichner unter 200 nicht. Ich denke, ihr Gehalt liegt bei 200-300. Und die Timlids für 300. "




Vorstellungsgespräche


„Das erste Interview war über Skype. Zu meiner Überraschung war es Google “, erinnert sich Boris.„ Dann bin ich einfach nach St. Petersburg gezogen und habe angefangen, Arbeit zu suchen. Ich habe eine Antwort auf den vakanten iOS-Entwickler erhalten. Kein Junior, keine Mitte, kein Unterzeichner - nur ein Entwickler. Ich war begeistert, begann mit dem Manager zu korrespondieren. Ich wurde gebeten, die technische Aufgabe zu erledigen: Ich musste eine Bewerbung für Witze über Chuck Norris schreiben. Ich habe es geschrieben. Mir wurde gesagt, dass alles cool ist und ich habe ein Online-Interview geplant.

Wir haben angerufen. Ein nettes Mädchen hat mit mir gesprochen. Aber sie stellten keine Fragen zur Kenntnis der Sprache - nur verschiedene logische Aufgaben, zum Beispiel "Zeit 15:15, wie viele Grad gibt es zwischen Stunden- und Minutenzeiger?" Oder "Säule 10 Meter, die Schnecke kriecht nachmittags 3 Meter hoch und steigt nachts 1 Meter ab. Wie viele Tage wird sie nach oben kriechen? “, Und noch ein paar mehr.

Dann gab es sehr seltsame Fragen - was ich Apple liebe und wie ich mich zu Tim Cook fühle. Ich sagte, es sei positiv für das gesamte Unternehmen, aber eher negativ, weil Geld wichtig ist, nicht Produkte.

Als Fragen zu Swift anfingen, reichte mein Wissen nur für die Programmierung von Mustern 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 viel daraus gelernt: Wissen wird benötigt, viel davon wird benötigt - sowohl Theorie als auch Praxis. “

Andrei sagt: „Das erste, was jeder während eines Interviews verlangt, ist der Lebenszyklus des Controllers. Sie fragen gerne nach einem einfachen Programmiermuster. Fragen Sie unbedingt nach den Erfahrungen mit der Verwendung beliebter Bibliotheken. Es wird definitiv eine Frage zu den Unterschieden zwischen Swift-Werttypen und Referenztypen, zur automatischen Referenzzählung und zur Speicherverwaltung geben. Sie fragen möglicherweise, wie sie die Datenspeicherung in Anwendungen implementiert haben und ob Netzwerkanforderungen implementiert wurden. Fragen Sie nach den Grundlagen von REST und JSON. Junior wird nicht nach bestimmten Dingen und Feinheiten fragen. Zumindest frage ich nicht. "

Boris hatte eine andere Erfahrung: „Selbst als ich um Praktika bat, technische Aufgaben erledigte und sagte, mein Gehalt sei nicht wichtig, wenn es nur ausreichte, eine Wohnung zu mieten, lehnten sie mich immer noch ab. Ich las Artikel und versuchte zu verstehen, was ein Personalvermittler von einem Anfänger braucht. Aber hauptsächlich auf die Theorie gehäuft. Aus irgendeinem Grund haben sie Fragen aus der Premier League gestellt, die Anfänger nicht betreffen. “

Marat hatte mehr Glück. Jetzt arbeitet er in einem Transportunternehmen und einer ist für die iOS-Leitung verantwortlich und setzt sein Studium an der Fakultät fort. "Da ich alleine für iOS verantwortlich bin, wird meine Arbeit nur anhand der Fähigkeit bewertet, die für mich gestellten Aufgaben zu realisieren, und nicht anhand der Kenntnis der Theorie."


Gemeinschaft


Andrei lebt in Nischni Nowgorod und sagt, dass sich auch dort eine hervorragende Gemeinschaft gebildet hat. Es war einmal ein Backend-Entwickler in Python, aber seine Freunde haben ihn in die mobile Entwicklung hineingezogen - und jetzt regt er selbst alle dazu auf.

„Die Weltgemeinschaft kommuniziert normalerweise über Twitter. Die Leute behalten ihre Blogs, zeichnen Videos auf Youtube auf und rufen sich gegenseitig in Podcasts an. Eines Tages hatte ich eine Frage zu einer Präsentation, bei der der Teamleiter von HQTrivia auftrat. Dies ist ein amerikanisches Quiz, das von mehreren Millionen Menschen gleichzeitig gespielt wird. Ich habe ihn getwittert, er hat mir geantwortet, wir haben uns unterhalten, ich habe mich bedankt. Die Community ist äußerst freundlich und das ist großartig. “

Empfohlene Leseliste
Anfängerlevel:

Mittelstufe:

Fortgeschrittene Stufe:

Source: https://habr.com/ru/post/de461709/


All Articles