À quoi s'attendre si vous souhaitez devenir développeur iOS

À quoi s'attendre si vous souhaitez devenir développeur iOS

Vu de l’extérieur d’iOS, le développement peut ressembler à un club fermé. Pour travailler, vous avez absolument besoin d'un ordinateur Apple, l'écosystème est étroitement contrôlé par une seule entreprise. De l'intérieur, on peut aussi parfois entendre des contradictions - certains disent que le langage Objective-C est vieux et maladroit, et d'autres disent que le nouveau langage Swift est trop grossier.

Néanmoins, les développeurs se lancent dans ce domaine et, une fois sur place, sont satisfaits.

Cette fois, Marat Nurgaliev et Boris Pavlov nous ont raconté leur expérience : comment ils ont appris le métier, comment ils ont passé leurs premiers entretiens, pourquoi ils ont reçu des refus. Et Andrey Antropov, doyen, a agi en tant qu'expert Faculté de développement iOS chez GeekBrains.

En 2016, Marat Nurgaliev de la région d'Astrakhan est venu chercher un emploi de développeur mobile dans une société de télévision locale. C'était sa première interview. Il venait de rentrer de l'armée, sans pratique ni expérience, ayant oublié même la théorie, avec laquelle il avait déjà des problèmes. La seule expérience de Marat dans le développement mobile était sa thèse sur l’analyse des flux de fuite d’informations via les applications Android. Lors de l'entretien, il a été interrogé sur ses études, la POO et d'autres théories, mais Marat n'a pas pu cacher les lacunes de ses connaissances.

Cependant, il n'a pas été refusé, mais s'est vu confier une tâche pratique : mettre en œuvre l'affichage d'une liste d'actualités à l'aide de l'API en deux semaines. Tant pour iOS que pour Android. « Si j’avais une certaine expérience sur Android, il n’existait même pas d’outil pour créer une version iOS. L'environnement de développement d'applications iOS est uniquement disponible sur Mac. Mais deux semaines plus tard, je suis revenu et j'ai montré ce que je pouvais faire sur Android. Avec iOS, j'ai dû le découvrir à la volée. Finalement, ils m'ont emmené. Ensuite, j'ai vécu à Astrakhan. N’importe quel travail informatique avec un salaire supérieur à vingt me convenait.

Qui sont les développeurs iOS ?

Les développeurs mobiles créent des applications pour n'importe quel appareil portable. Smartphones, tablettes, montres intelligentes et toutes autres plateformes prenant en charge Android ou iOS. Les principes fondamentaux du développement mobile ne diffèrent pas du développement conventionnel, mais en raison d'outils spécifiques, il a été séparé dans une direction distincte. Il utilise ses propres outils, langages de programmation et frameworks.

« Pour travailler avec iOS, vous avez besoin d'un MacBook, car lui seul dispose de l'environnement de développement Xcode nécessaire. Il est gratuit et distribué via l'AppStore. Pour l'installer, vous devez avoir votre identifiant Apple et rien d'autre. Dans Xcode, vous pouvez développer des applications pour n'importe quoi : téléphone, tablette, montre. Il existe un simulateur et un éditeur intégrés pour tout », explique Andrey Antropov, doyen du département de développement iOS chez GeekBrains.

« Mais l'environnement de développement peut être installé sur Windows si vous utilisez Hackintosh. Il s'agit d'une option efficace, mais détournée - aucun des développeurs sérieux ne le fait. Les débutants achètent un vieux MacBook. Et les plus expérimentés peuvent généralement s’offrir le dernier modèle.

Langages - Swift ou Objective-C

Presque tout le développement iOS est réalisé à l’aide du langage de programmation Swift. Apparu il y a cinq ans, il remplace désormais progressivement l'ancien langage Objective-C, qu'Apple utilise dans toutes ses applications depuis plus de 30 ans.

« Une énorme base de code a été accumulée en Objective-C, donc des développeurs dans les deux langages sont toujours nécessaires, en fonction de l'entreprise, de ses tâches et de ses applications. Les applications écrites il y a de nombreuses années sont basées sur Objective-C. Et tous les nouveaux projets sont développés par défaut dans Swift. Aujourd'hui, Apple fait beaucoup pour rendre le développement simultané d'un téléphone, d'une tablette, d'une montre et d'un MacBook aussi pratique que possible. Le même code peut être compilé et exécuté partout. Cela ne s'était pas produit auparavant. Pour iOS, nous avons développé en Swift, pour MacOS, nous avons utilisé Objective-C.

Selon Andrey, Swift est un langage très simple et convivial pour les débutants. Il est strictement typé, ce qui vous permet de détecter de nombreuses erreurs au stade de la compilation du projet, et un code incorrect ne fonctionnera tout simplement pas.

« Objective-C est un langage assez ancien – du même âge que le langage C++. Au moment de son développement, les exigences relatives aux langues étaient complètement différentes. Lorsque Swift est sorti, il était bogué, les fonctionnalités étaient limitées et la syntaxe était grossière. Et les gens avaient les mains pleines avec Objective-C. Il a été amélioré depuis de nombreuses années, toutes les erreurs y ont été corrigées. Mais maintenant, je pense que Swift est aussi bon qu'Objective-C. Même si Apple utilise toujours les deux dans ses projets. Les langues sont largement interchangeables et complémentaires. Les structures et objets d'une langue peuvent être transformés en objets et structures d'une autre langue. C'est bien de connaître les deux options, mais pour les débutants, Objective-C semble souvent intimidant et déroutant."

formation

« Lors de mon premier emploi, mon patron m'a formé, m'a aidé à mettre en œuvre et à monter le projet », raconte Marat, « Mais travailler simultanément sur Android et iOS est difficile. Il faut du temps pour se reconstruire, passer de projet en projet, de langue en langue. En fin de compte, j'ai décidé que je devais choisir une direction et l'étudier. J'ai été séduit par l'interface de Xcode et la syntaxe simple de Swift."

Marat est entré dans le département de développement iOS chez GeekBrains. Au début, c'était très facile, car il savait beaucoup de choses grâce à son expérience professionnelle. Le cours annuel est divisé en quatre trimestres. Selon Andrey, le premier ne donne que les bases : « Les bases du langage Swift, la connaissance des frameworks de base, la mise en réseau, le stockage des données, le cycle de vie des applications, le contrôleur, les architectures de base, les principales bibliothèques que tout le monde utilise, le multithreading et le parallélisme dans applications."

Le deuxième trimestre ajoute Objective-C. Un cours est dispensé sur l'architecture et les modèles de programmation de base. Au troisième trimestre, ils enseignent le style correct d’écriture du code. Il explique ce qu'est une usine, comment écrire correctement des tests, créer des projets, ce qu'est Git-Flow, l'intégration continue via Fast Lane. Le quatrième et dernier trimestre est consacré au travail en équipe, aux travaux pratiques et aux stages.

"Le premier trimestre a été facile", explique Marat, "mais j'ai ensuite commencé à apprendre la programmation en Objective-C, à étudier les modèles de conception, les principes de Solid, Git-Flow, l'architecture de projet, les tests unitaires et UI des applications, la mise en place d'animations personnalisées. - et puis c'est devenu intéressant d'étudier."

"Cela n'a pas commencé très bien pour moi chez GeekBrains", explique Boris Pavlov, et son chemin vers le développement iOS en général n'a pas été des plus directs. Le garçon a été élevé par sa grand-mère. Elle était architecte, mathématicienne et designer et a inculqué à Boris l'amour du design, lui a appris à dessiner à la main et à dessiner. Son oncle était administrateur système et intéressait son neveu dans les ordinateurs.

Boris était un excellent élève, mais il a perdu tout intérêt pour les études et a quitté l'école après neuf années. Après l’université, il s’est mis au cyclisme et les ordinateurs sont passés au second plan. Mais un jour, Boris a subi une blessure à la colonne vertébrale qui l'a empêché de poursuivre sa carrière sportive.

Il a commencé à étudier le C++ avec un professeur de l’Institut de physique solaire et terrestre d’Irkoutsk. Puis je me suis intéressé au développement de jeux et j’ai essayé de passer au C#. Et enfin, comme Marat, il fut captivé par la langue Swift.

«J'ai décidé de suivre le cours d'introduction gratuit chez GeekBrains. Pour être honnête, il était très ennuyeux, lent et incompréhensible », se souvient Boris, « le professeur parlait des particularités de la langue, mais se précipitait d'un sujet à l'autre sans en révéler l'essence. À la fin du cours, je ne comprenais toujours rien.

Ainsi, après le cours d'introduction, Boris ne s'est pas inscrit à une formation d'un an, mais à une formation courte de trois mois, où ils enseignent les bases mêmes du métier. « J’y ai trouvé de très bons professeurs et ils m’expliquaient tout très clairement. »

« Nous sommes souvent critiqués, nos manuels de formation ne seraient pas entièrement à jour et il y aurait des inexactitudes. Mais les cours sont constamment mis à jour et les professeurs parlent toujours d'innovations. Parmi les groupes que je dirige, beaucoup trouvent un emploi après le premier trimestre. Bien entendu, il s'agit généralement de personnes ayant une expérience en programmation », explique Andreï. « D'un autre côté, toutes les connaissances ne peuvent pas être transmises dans un seul cours. L'interaction avec les clients du réseau dans la vie ne peut pas se résumer à dix conférences de deux heures. Et si vous suivez uniquement des cours et ne faites rien d’autre, vous n’aurez pas suffisamment de connaissances. Si vous étudiez tous les jours pendant toute l'année, à ce rythme, seuls les paresseux ne trouveront pas de travail. Parce que la demande dans le métier est très forte.»

À quoi s'attendre si vous souhaitez devenir développeur iOS

Vous pouvez voir le plus dernières offres d'emploi pour les développeurs iOS et abonnez-vous à de nouveaux.

travail

Mais ni Marat ni Boris n’ont trouvé un emploi aussi facilement.

« Certaines grandes entreprises développent depuis longtemps des applications iOS en Objective-C et continuent de conserver l'ancienne base de code. Malheureusement, je n'ai pas d'argument convaincant pour les forcer à utiliser exclusivement Swift. Surtout ceux qui utilisent la règle « ne touchez pas à ce qui fonctionne », déclare Marat, « Peu d'attention est accordée à la direction Objective-C chez Geekbrains. Il s'agit plutôt d'un message informatif. Mais toutes les entreprises pour lesquelles j'ai interviewé ont posé des questions sur Objective-C. Et comme mes études sont axées sur Swift, comme mes travaux précédents, j'ai reçu des refus lors d'entretiens.

"Après mes études, je ne connaissais par moi-même que les bases les plus superficielles, à l'aide desquelles je pouvais créer l'application la plus simple", explique Boris. "Pour le travail, bien sûr, ce n'était pas suffisant, mais j'en étais content. " Il était difficile de trouver un emploi à Irkoutsk. Pour être plus précis, pas du tout. J'ai décidé de chercher dans d'autres villes. En termes de nombre de postes vacants, Krasnodar, Moscou et Saint-Pétersbourg se sont révélés les plus pertinents. J'ai décidé d'aller à Saint-Pétersbourg - plus près de l'Europe.

Mais tout s’est avéré moins rose. Même un junior se verra pardonner ce qu’il ne peut pas savoir. Je n'ai pas encore trouvé de travail. Je travaille pour « merci », j’acquiers de l’expérience. Je comprends que ce n’est pas ce que je voulais, mais je suis intéressé et cela me motive. Je veux acquérir des connaissances.

Andrey estime que les nouveaux arrivants devraient rechercher des stages plutôt que des emplois. Si vous avez très peu de connaissances, il est normal que le stage ne soit pas rémunéré. Andrey conseille de postuler aux postes vacants juniors auprès des grandes entreprises où le processus de travail est déjà établi.

« Lorsque vous comprendrez comment fonctionne le processus de développement logiciel, il deviendra beaucoup plus facile de s'y retrouver et de trouver du travail supplémentaire, en fonction de vos désirs. Certaines personnes se lancent dans le développement indépendant, créent elles-mêmes des jeux, les téléchargent sur le magasin et les monétisent elles-mêmes. Certains travaillent pour une grande entreprise avec des règles strictes. Certaines personnes gagnent de l'argent dans de petits studios qui créent des logiciels personnalisés, et là, elles peuvent suivre l'intégralité du processus, depuis la création d'un projet à partir de zéro jusqu'à sa livraison au magasin.

Les salaires

Le salaire d'un développeur iOS, comme tout autre, dépend de la question « Moscou ou Russie ». Mais en raison des spécificités du secteur - beaucoup de travail à distance, des possibilités de délocalisation et de travail en dehors du marché régional - les chiffres se rapprochent de plus en plus.

À quoi s'attendre si vous souhaitez devenir développeur iOS

Selon le calculateur de salaire My Circle, le salaire moyen d'un développeur iOS est légèrement inférieur 140 roubles 000.

« Un junior à un niveau très bas travaille souvent gratuitement ou pour de l'argent symbolique - 20 30 à 50 80 roubles. Si un junior est délibérément nommé à son poste, il recevra de 100 150 à 200 200. Les intermédiaires en reçoivent de 200 à 300, et parfois même jusqu'à 300. Les seniors n'en reçoivent pas moins de XNUMX. Je pense que leur salaire se situe entre XNUMX et XNUMX euros. Et pour les chefs d’équipe, c’est donc plus de XNUMX. »

À quoi s'attendre si vous souhaitez devenir développeur iOS

Entretiens

« Le premier entretien a eu lieu sur Skype. À ma grande surprise, c'était Google", se souvient Boris, "alors je venais de déménager à Saint-Pétersbourg et j'ai commencé à chercher du travail. J'ai reçu une candidature pour un poste de développeur iOS. Ni junior, ni intermédiaire, ni senior - juste un développeur. J'ai été ravi et j'ai commencé à correspondre avec le directeur. On m'a demandé d'accomplir une tâche technique : je devais rédiger une application pour des blagues sur Chuck Norris. Je l'ai écrit. Ils m'ont dit que tout allait bien et ont programmé un entretien en ligne.

Nous nous sommes appelés. Une gentille fille m'a parlé. Mais ils n'ont posé aucune question sur la maîtrise de la langue - seulement divers problèmes logiques, par exemple : « Il est 15h15, combien de degrés y a-t-il entre les aiguilles des heures et des minutes ? » ou « Un poteau mesure 10 mètres de long, un l'escargot rampe de 3 mètres de haut pendant la journée et descend de 1 mètre la nuit. Dans combien de jours va-t-elle ramper jusqu’au sommet ?“, et quelques autres similaires.

Ensuite, il y a eu des questions très étranges : pourquoi j'aime Apple et ce que je ressens pour Tim Cook. J'ai dit que l'entreprise dans son ensemble est positive, mais plutôt négative à son égard, car pour lui l'argent est important, pas les produits.

Lorsque les questions sur Swift ont commencé, mes connaissances ne suffisaient que pour les modèles de programmation et les bases de la POO. Nous nous sommes dit au revoir, une semaine plus tard, ils m'ont rappelé et m'ont dit que je n'étais pas apte. En fait, j’en ai acquis une énorme expérience : il faut des connaissances, il en faut beaucoup – à la fois en théorie et en pratique.

Andrey dit que « la première chose qu'on demande à chacun lors d'un entretien est le cycle de vie du contrôleur. Ils aiment vraiment demander un modèle de programmation simple. Ils vous poseront certainement des questions sur votre expérience d’utilisation des bibliothèques populaires. Il y aura certainement une question sur les différences entre les types de valeur Swift et les types de référence, sur le comptage automatique des références et la gestion de la mémoire. Ils peuvent se demander comment ils ont mis en œuvre le stockage des données dans les applications et s'ils ont mis en œuvre les requêtes réseau. Ils poseront des questions sur les bases de REST et JSON. Il ne sera pas demandé au junior des choses et des subtilités spécifiques. Au moins, je ne le demande pas. »

Boris a vécu une expérience différente : « Même lorsque je demandais des stages, accomplissais des tâches techniques et disais que le salaire n'était pas important pour moi, tant qu'il suffisait de louer un appartement, on me refusait toujours. J'ai lu des articles, essayé de comprendre ce qu'un recruteur attend d'un nouvel arrivant. Mais ils ont surtout échoué sur le plan théorique. Pour une raison quelconque, ils ont posé des questions aux ligues majeures qui ne concernent pas les nouveaux arrivants.

Marat a eu plus de chance. Il travaille désormais dans une entreprise de transport et est seul responsable du département iOS, tout en poursuivant ses études à la faculté. "Comme je suis le seul responsable d'iOS, mon travail s'apprécie uniquement par ma capacité à mettre en œuvre les tâches qui me sont assignées, et non par mes connaissances théoriques."

Communauté

Andrey vit à Nijni Novgorod et dit que même là, une grande communauté s'est formée. Il était une fois un développeur backend en Python, mais ses amis l'ont entraîné dans le développement mobile - et maintenant il encourage lui-même tout le monde à le faire.

« La communauté mondiale communique généralement via Twitter. Les gens écrivent leurs propres blogs, enregistrent des vidéos sur Youtube, s'invitent à des podcasts. Un jour, j'ai eu une question sur une présentation où le chef de l'équipe HQTrivia s'exprimait. Il s'agit d'un jeu de quiz américain auquel jouent simultanément plusieurs millions de personnes. Je lui ai écrit sur Twitter, il m'a répondu, nous avons discuté et je l'ai remercié. La communauté est extrêmement sympathique, ce qui est formidable.

Liste de littérature recommandéeNiveau DEBUTANT:

Niveau intermédiaire:

Niveau avancé:

Source: habr.com

Ajouter un commentaire