Rompere l'intervista iOS

Apr 02 2023
iOS è una piccola nicchia nello sviluppo di software e l'ambito delle conoscenze che devi coprire è abbastanza stabile nel corso degli anni. Prepararsi per un colloquio iOS non è molto diverso da un colloquio frontend.
Foto di JESHOOTS.COM su Unsplash

iOS è una piccola nicchia nello sviluppo di software e l'ambito delle conoscenze che devi coprire è abbastanza stabile nel corso degli anni.

Prepararsi per un colloquio iOS non è molto diverso da un colloquio frontend . Lo sviluppo lato cliente è un'abilità che possiamo facilmente mettere in mostra, ne consegue che le aziende si aspettano spesso un portafoglio di progetti su cui hai lavorato.

La concorrenza in aziende prestigiose è agguerrita con migliaia di candidature dei migliori ingegneri di tutto il mondo. Indipendentemente dal tuo livello tecnico e dalla posizione di candidatura, ecco 5 fattori che avranno una grande influenza sul tuo modo di cercare lavoro:

  1. Competenza tecnica — Problem solving, sviluppo ios.
  2. Anni di esperienza — Più sono e meglio è, da 3 a 5 sono preferiti.
  3. Progetti personali: app dell'App Store, repository open source.
  4. Ex datori di lavoro: più prestigiosi sono, meglio è.
  5. Capacità di intervistare: pensare ad alta voce, raccontare storie, fare domande.
  1. Colloquio telefonico con responsabile assunzioni (0–1)
  2. Intervista telefonica con i membri del team (1–3)
  3. Porta a casa il compito (0–1)
  4. Colloquio in loco (1)
  5. Negoziazione dell'offerta (0-n)

Competenza tecnica

Che tu ami o odi le strutture dati e gli algoritmi, devi dedicare molto tempo alla pratica. La maggior parte delle aziende lo sta utilizzando e non cambierà presto.

iOS è una piccola nicchia nello sviluppo di software e l'ambito delle conoscenze che devi coprire è abbastanza stabile nel corso degli anni. Nel 2022, dovresti avere una conoscenza decente dei seguenti argomenti:

Conoscenza di base

  • Swift (protocolli, generici)
  • Pattern (MVC, MVVM, VIPER)
  • Pacchetti (SwiftPM, CocoaPods, Cartagine)
  • Concorrenza (GCD, Async/Await, Attività, Attori)
  • Programmazione reattiva (Combina, RxSwift)
  • Archiviazione (app, scene, coredata, realm)
  • Rete (URLSession, Alamofire)
  • Strumenti (Xcode, TestFlight, AppStore)
  • Linee guida (API, interfaccia, acquisto in-app)
  • Fondazione, SwiftUI, UIKit
  • XCTests, Combina, CoreData
  • CloudKit, StoreKit, PhotoKit
  • CoreGraphics, CoreAnimation
  • Alamofire — Elegante rete HTTP
  • Martin pescatore : scarica e memorizza nella cache le immagini
  • SnapKit — Autolayout DSL per iOS e OS X
  • RxSwift — Programmazione reattiva
  • Reame : database mobile
  • Lottie — Animazioni vettoriali di After Effects
  • SkeletonView — Fantastiche viste di caricamento
  • Eroe — Transizione elegante

Assegnazione da portare a casa

Dovresti dedicare del tempo a lavorare sulla tua app da inserire nell'App Store. Non deve essere super stravagante: solo qualcosa che funziona e ha abbastanza per dimostrare che sai come muoverti su iOS. Un'app abbastanza buona e non avrai mai più questo tipo di sfide di merda.

Alcuni degli esempi più comuni di compiti da svolgere sono:

  • Recupera alcuni JSON e visualizza i risultati.
  • Aggiungi una nuova funzionalità a una base di codice esistente.
  • Trova un bug in un progetto esistente.
  • Implementare una caratteristica aziendale specifica e fondamentale.

Per avere successo nel tuo progetto da portare a casa, assicurati che:

  • Deve essere facile da eseguire, costruire e profilare.
  • Deve essere ben testato e documentare di conseguenza.
  • Deve seguire un modello di progettazione chiaro (MVC, MVVM).
  • Evita a tutti i costi di utilizzare librerie di terze parti.
  • La base di codice deve essere pulita, senza errori, senza avvisi.
  • Non superare mai il limite di tempo assegnato dall'intervistatore.

Risorse di apprendimento

  • Siti tutorial: swiftbysundell.com , raywenderlich.com , nshipster.com , objc.io , byby.dev
  • Lavori da remoto: iOS Dev Jobs , RemoteOK , Remotive , Remote , We Work Remotely
  • Sfide pratiche: API pubbliche , ispirazione per l'interfaccia utente del design mobile
  • Domande dell'intervista: Swift , SwiftUI