Cosa aspettarti se vuoi diventare uno sviluppatore iOS

Cosa aspettarti se vuoi diventare uno sviluppatore iOS

Dall'esterno di iOS, lo sviluppo può sembrare un club chiuso. Per lavorare hai sicuramente bisogno di un computer Apple; l’ecosistema è strettamente controllato da un’unica azienda. Dall'interno a volte puoi anche sentire delle contraddizioni: alcuni dicono che il linguaggio Objective-C è vecchio e goffo, mentre altri dicono che il nuovo linguaggio Swift è troppo rozzo.

Tuttavia, gli sviluppatori entrano in quest'area e, una volta lì, sono soddisfatti.

Questa volta Marat Nurgaliev e Boris Pavlov ci hanno raccontato la loro esperienza: come hanno imparato la professione, come hanno superato i primi colloqui, perché hanno ricevuto dei rifiuti. E Andrey Antropov, il preside, ha agito come esperto Facoltà di sviluppo iOS su GeekBrains.

Nel 2016, Marat Nurgaliev della regione di Astrakhan è venuto a trovare lavoro come sviluppatore mobile presso una compagnia televisiva locale. Questa è stata la sua prima intervista. Era appena tornato dall'esercito, senza pratica ed esperienza, avendo dimenticato anche la teoria, con la quale aveva già problemi. L’unica esperienza di Marat nello sviluppo mobile è stata la sua tesi sull’analisi dei flussi di fuga di informazioni attraverso le applicazioni Android. Durante l'intervista gli è stato chiesto dei suoi studi, dell'OOP e di altre teorie, ma Marat non è riuscito a nascondere le lacune nelle sue conoscenze.

Tuttavia, non gli è stato rifiutato, ma gli è stato affidato un compito pratico: implementare la visualizzazione di un elenco di notizie utilizzando l'API in due settimane. Sia per iOS che per Android. "Se avessi avuto esperienza con Android, non esisterebbe nemmeno uno strumento per creare una versione iOS. L'ambiente di sviluppo dell'applicazione iOS è disponibile solo su Mac. Ma due settimane dopo sono tornato e ho mostrato cosa potevo fare su Android. Con iOS ho dovuto capirlo al volo. Alla fine mi hanno preso. Poi ho vissuto ad Astrakhan. Qualsiasi lavoro IT con uno stipendio superiore a venti mi andava bene.

Chi sono gli sviluppatori iOS?

Gli sviluppatori mobili realizzano applicazioni per qualsiasi dispositivo portatile. Smartphone, tablet, smartwatch e tutte le altre piattaforme che supportano Android o iOS. I principi fondamentali dello sviluppo mobile non sono diversi dallo sviluppo convenzionale, ma grazie a strumenti specifici è stato separato in una direzione separata. Utilizza i propri strumenti, linguaggi di programmazione e framework.

“Per lavorare con iOS, hai bisogno di un MacBook, perché solo lui ha l'ambiente di sviluppo Xcode necessario. È gratuito e distribuito tramite AppStore. Per l'installazione è necessario avere il proprio ID Apple e nient'altro. In Xcode puoi sviluppare applicazioni per qualsiasi cosa: telefono, tablet, orologio. C’è un simulatore ed editor integrato per tutto”, afferma Andrey Antropov, preside del dipartimento di sviluppo iOS di GeekBrains.

“Ma l’ambiente di sviluppo può essere installato su Windows se usi Hackintosh. Questa è un'opzione funzionante, ma indiretta: nessuno degli sviluppatori seri lo fa. I principianti acquistano un vecchio MacBook. E quelli esperti di solito possono permettersi l’ultimo modello.”

Lingue: Swift o Objective-C

Quasi tutto lo sviluppo di iOS viene eseguito utilizzando il linguaggio di programmazione Swift. È apparso cinque anni fa e ora sta gradualmente sostituendo il vecchio linguaggio Objective-C, che Apple utilizza in tutte le sue applicazioni da più di 30 anni.

“In Objective-C è stata accumulata un’enorme base di codice, quindi sono ancora necessari sviluppatori in entrambi i linguaggi, a seconda dell’azienda, dei suoi compiti e delle sue applicazioni. Le applicazioni scritte molti anni fa sono basate su Objective-C. E tutti i nuovi progetti sono sviluppati in Swift per impostazione predefinita. Ora Apple sta facendo molto per rendere il più conveniente possibile lo sviluppo simultaneo per telefono, tablet, orologio e MacBook. Lo stesso codice può essere compilato ed eseguito ovunque. Questo non accadeva prima. Per iOS abbiamo sviluppato in Swift, per MacOS abbiamo utilizzato Objective-C."

Secondo Andrey, Swift è un linguaggio molto semplice, adatto ai principianti. È rigorosamente digitato, il che consente di rilevare molti errori nella fase di compilazione del progetto e il codice errato semplicemente non funzionerà.

“Objective-C è un linguaggio abbastanza vecchio, la stessa età del linguaggio C++. Al momento in cui è stato sviluppato, i requisiti per le lingue erano completamente diversi. Quando uscì Swift, era pieno di bug, la funzionalità era limitata e la sintassi era approssimativa. E le persone erano molto occupate con Objective-C. È stato migliorato per molti anni, tutti gli errori sono stati corretti. Ma ora penso che Swift sia buono quanto Objective-C. Sebbene anche Apple li utilizzi ancora entrambi nei suoi progetti. Le lingue sono in gran parte intercambiabili e reciprocamente complementari. Strutture e oggetti di una lingua possono essere trasformati in oggetti e strutture di un'altra lingua. È bene conoscere entrambe le opzioni, ma per i principianti Objective-C spesso sembra intimidatorio e confuso."

formazione

“Nel mio primo lavoro, il mio capo mi ha formato, mi ha aiutato a implementare e impostare il progetto”, afferma Marat, “Ma lavorare contemporaneamente su Android e iOS è difficile. Ci vuole tempo per ricostruire, passare da progetto a progetto, da lingua a lingua. Alla fine, ho deciso che dovevo scegliere una direzione e studiarla. L'interfaccia di Xcode e la semplice sintassi di Swift mi hanno convinto."

Marat è entrato nel dipartimento di sviluppo iOS di GeekBrains. All'inizio è stato molto facile, perché sapeva molte cose per esperienza lavorativa. Il corso annuale è diviso in quattro trimestri. Secondo Andrey, il primo fornisce solo le nozioni di base: “Le basi del linguaggio Swift, conoscenza dei framework di base, networking, archiviazione dei dati, ciclo di vita delle applicazioni, controller, architetture di base, principali librerie che tutti utilizzano, multithreading e parallelismo in applicazioni."

Il secondo trimestre aggiunge Obiettivo-C. Viene condotto un corso sull'architettura e sui modelli di programmazione di base. Nel terzo trimestre insegnano lo stile corretto di scrittura del codice. Spiega cos'è una factory, come scrivere correttamente i test, creare progetti, cos'è Git-Flow, Integrazione continua tramite Fast Lane. Il quarto e ultimo trimestre è dedicato al lavoro di squadra, agli incarichi pratici e ai tirocini.

“Il primo trimestre è stato facile”, racconta Marat, “ma poi ho iniziato a imparare a programmare in Objective-C, studiando design pattern, i principi di Solid, Git-Flow, architettura di progetto, Unit e UI testing delle applicazioni, impostando animazioni personalizzate - e poi è diventato interessante studiare."

"Non è iniziato tutto nel migliore dei modi per me in GeekBrains", afferma Boris Pavlov, e il suo percorso verso lo sviluppo iOS in generale non è stato dei più diretti. Il ragazzo è stato allevato da sua nonna. Era un architetto, matematico e designer e ha instillato in Boris l'amore per il design, gli ha insegnato a disegnare a mano e a disegnare. Suo zio era un amministratore di sistema e interessava suo nipote ai computer.

Boris era uno studente eccellente, ma perse interesse per lo studio e lasciò la scuola dopo nove classi. Dopo il college, ha iniziato a pedalare e i computer sono passati in secondo piano. Ma un giorno Boris ha subito un infortunio alla colonna vertebrale, che gli ha impedito di continuare la sua carriera sportiva.

Ha iniziato a studiare C++ con un insegnante dell'Istituto di fisica solare-terrestre di Irkutsk. Poi mi sono interessato allo sviluppo di giochi e ho provato a passare a C#. E infine, come Marat, rimase affascinato dalla lingua Swift.

“Ho deciso di seguire il corso introduttivo gratuito presso GeekBrains. Ad essere onesti, era molto noioso, lento e incomprensibile”, ricorda Boris, “l'insegnante parlava delle caratteristiche della lingua, ma si precipitava da un argomento all'altro senza rivelarne l'essenza. Alla fine del corso ancora non capivo niente”.

Pertanto, dopo il corso introduttivo, Boris non si è iscritto a un corso di formazione di un anno, ma a un breve corso di tre mesi, dove vengono insegnate le basi della professione. “Lì ho trovato degli insegnanti molto bravi e mi hanno spiegato tutto molto chiaramente.”

“Siamo spesso criticati, presumibilmente i nostri manuali di formazione non sono del tutto aggiornati, ci sono delle imprecisioni. Ma i corsi sono costantemente aggiornati e gli insegnanti parlano sempre di novità. Dei gruppi che dirigo, molti trovano lavoro dopo il primo trimestre. Naturalmente, di solito si tratta di persone con esperienza di programmazione", dice Andrey, "d'altra parte, non è possibile trasmettere tutta la conoscenza in un corso. L'interazione del cliente in rete nella vita non può essere racchiusa in dieci lezioni di due ore. E se frequenti solo i corsi e non fai nient’altro, non avrai abbastanza conoscenze. Se studi tutti i giorni per tutto l'anno, a questo ritmo solo i pigri non troveranno lavoro. Perché la domanda nella professione è molto alta.”

Cosa aspettarti se vuoi diventare uno sviluppatore iOS

Puoi vedere di più ultimi posti vacanti per gli sviluppatori iOS e iscriviti a quelli nuovi.

Lavoro

Ma né Marat né Boris trovarono lavoro così facilmente.

“Alcune grandi aziende hanno sviluppato da tempo applicazioni iOS in Objective-C e continuano a mantenere il vecchio codice base. Sfortunatamente, non ho argomenti convincenti per costringerli a utilizzare esclusivamente Swift. Soprattutto quelli che usano la regola “non toccare ciò che funziona”, dice Marat, “in Geekbrains viene prestata poca attenzione alla direzione Objective-C. Ha più carattere informativo. Ma ogni azienda per cui ho intervistato mi ha chiesto informazioni su Objective-C. E poiché i miei studi sono focalizzati su Swift, come il mio lavoro precedente, ho ricevuto rifiuti ai colloqui”.

"Dopo aver studiato, conoscevo da solo solo le basi più superficiali, con l'aiuto delle quali potevo creare l'applicazione più semplice", dice Boris. “Per lavoro, ovviamente, non era abbastanza, ma ne ero felice. È stato difficile trovare lavoro a Irkutsk. Per essere più precisi, per niente. Ho deciso di cercare in altre città. In termini di numero di posti vacanti, i più rilevanti sono Krasnodar, Mosca e San Pietroburgo. Ho deciso di andare a San Pietroburgo, più vicino all'Europa.

Ma tutto si è rivelato non così roseo. Anche un giovane sarà perdonato per ciò che non può sapere. Non ho ancora trovato un lavoro. Sto lavorando per “grazie”, acquisendo esperienza. Capisco che non è quello che volevo, ma mi interessa e questo mi spinge. Voglio acquisire conoscenza."

Andrey ritiene che i nuovi arrivati ​​dovrebbero cercare stage piuttosto che posti di lavoro. Se hai pochissime conoscenze, è normale che lo stage non sia retribuito. Andrey consiglia di candidarsi per posti vacanti junior in grandi aziende in cui il processo di lavoro è già stato stabilito.

“Quando capisci come funziona il processo di sviluppo del software, diventerà molto più facile navigare e trovare ulteriore lavoro, a seconda dei tuoi desideri. Alcune persone si dedicano allo sviluppo indipendente, creano giochi per se stessi, li caricano nello store e li monetizzano da soli. Alcuni lavorano per una grande azienda con regole rigide. Alcune persone guadagnano in piccoli studi che realizzano software personalizzato, e lì possono osservare l'intero processo, dalla creazione di un progetto da zero alla consegna al negozio.

stipendio

Lo stipendio di uno sviluppatore iOS, come qualsiasi altro, dipende dalla domanda "Mosca o Russia". Ma a causa delle specificità del settore - molto lavoro a distanza, opportunità di delocalizzazione e lavoro al di fuori del mercato regionale - i numeri si avvicinano sempre più l'uno all'altro.

Cosa aspettarti se vuoi diventare uno sviluppatore iOS

Secondo il calcolatore salariale di My Circle, lo stipendio medio di uno sviluppatore iOS è leggermente inferiore 140 000 rubli.

“Un junior di livello molto basso lavora spesso gratuitamente o per denaro simbolico: 20-30 mila rubli. Se un junior viene portato intenzionalmente al suo posto, riceverà da 50 a 80mila. I medi ricevono da 100 a 150, e talvolta anche fino a 200. Gli anziani non ricevono meno di 200. Penso che il loro stipendio sia intorno ai 200-300. E per quanto riguarda i team leader, di conseguenza, sono oltre 300”.

Cosa aspettarti se vuoi diventare uno sviluppatore iOS

Interviste

“La prima intervista è avvenuta su Skype. Con mia sorpresa, era Google”, ricorda Boris, “poi mi ero appena trasferito a San Pietroburgo e ho iniziato a cercare lavoro. Ho ricevuto una domanda per una posizione di sviluppatore iOS. Non junior, non middle, non senior: solo uno sviluppatore. Ero felice e ho iniziato a corrispondere con il manager. Mi è stato chiesto di completare un compito tecnico: dovevo scrivere un modulo per battute su Chuck Norris. L'ho scritto io. Mi hanno detto che tutto andava benissimo e hanno programmato un colloquio online.

Ci siamo chiamati. Una brava ragazza mi ha parlato. Ma non hanno fatto domande sulla competenza linguistica - solo vari problemi logici, ad esempio: "Sono le 15:15, quanti gradi ci sono tra le lancette delle ore e dei minuti?" o "Un palo è lungo 10 metri, un la lumaca striscia per 3 metri durante il giorno e scende per 1 metro di notte. In quanti giorni riuscirà a strisciare fino in cima?“, e un paio di altri simili.

Poi ci sono state domande molto strane: perché amo Apple e cosa provo per Tim Cook. Ho detto che l'azienda nel suo complesso è positiva, ma piuttosto negativa nei suoi confronti, perché per lui sono importanti i soldi, non i prodotti.

Quando sono iniziate le domande su Swift, la mia conoscenza era sufficiente solo per i modelli di programmazione e le basi dell'OOP. Ci siamo salutati, una settimana dopo mi hanno richiamato dicendomi che non ero adatto. In realtà, da questo ho acquisito un’enorme esperienza: ci vuole conoscenza, ce n’è molta, sia teorica che pratica.”

Andrey afferma che “la prima cosa che viene chiesta a tutti durante un'intervista è il ciclo di vita del controller. A loro piace davvero chiedere qualche semplice schema di programmazione. Ti chiederanno sicuramente della tua esperienza nell'utilizzo delle librerie popolari. Ci sarà sicuramente una domanda sulle differenze tra i tipi di valore Swift e i tipi di riferimento, sul conteggio automatico dei riferimenti e sulla gestione della memoria. Potrebbero chiedere come hanno implementato l'archiviazione dei dati nelle applicazioni e se hanno implementato le richieste di rete. Chiederanno le basi di REST e JSON. Al junior non verranno chieste cose e sottigliezze specifiche. Almeno non te lo chiedo."

Boris ha avuto un'esperienza diversa: “Anche quando ho chiesto stage, completato compiti tecnici e ho detto che lo stipendio non era importante per me, purché fosse sufficiente per affittare un appartamento, mi è stato comunque rifiutato. Ho letto articoli, ho cercato di capire di cosa ha bisogno un reclutatore da un nuovo arrivato. Ma per lo più hanno fallito con le teorie. Per qualche ragione, hanno posto domande ai principali campionati che non riguardano i nuovi arrivati”.

Marat è stato più fortunato. Ora lavora in un'azienda di trasporti ed è responsabile da solo del dipartimento iOS, pur continuando gli studi in facoltà. "Dato che sono l'unico responsabile di iOS, il mio lavoro viene valutato solo dalla mia capacità di implementare i compiti che mi sono stati assegnati e non dalla mia conoscenza teorica."

Comunità

Andrey vive a Nizhny Novgorod e dice che anche lì si è formata una grande comunità. Una volta era uno sviluppatore backend in Python, ma i suoi amici lo hanno trascinato nello sviluppo mobile e ora lui stesso incoraggia tutti a farlo.

“La comunità globale solitamente comunica tramite Twitter. Le persone scrivono i propri blog, registrano video su Youtube, si invitano a vicenda ai podcast. Un giorno ho avuto una domanda su una presentazione in cui ha parlato il team leader di HQTrivia. Questo è un gioco a quiz americano a cui giocano simultaneamente diversi milioni di persone. Gli ho scritto su Twitter, mi ha risposto, abbiamo parlato e l'ho ringraziato. La comunità è estremamente amichevole, il che è fantastico.”

Elenco della letteratura consigliataLivello principiante:

Livello medio:

Livello avanzato:

Fonte: habr.com

Aggiungi un commento