O que esperar se você deseja se tornar um desenvolvedor iOS



No lado do iOS, o desenvolvimento pode parecer um clube fechado. Para funcionar, você definitivamente precisa de um computador da Apple, o ecossistema é monitorado de perto por uma empresa. Às vezes, também se ouvem contradições internas - alguém diz que a linguagem Objective-C é antiga e desajeitada, e alguém que a nova linguagem Swift é muito bruta.

No entanto, os desenvolvedores entram nessa área e, tendo chegado lá, estão satisfeitos.

Dessa vez, Marat Nurgaliev e Boris Pavlov nos contaram sobre sua experiência - como estudaram a profissão, como foram as primeiras entrevistas, por que foram recusadas. E o especialista foi Andrei Antropov, reitor do departamento de desenvolvimento iOS da GeekBrains.

Em 2016, Marat Nurgaliev, da região de Astrakhan, conseguiu um emprego como desenvolvedor móvel em uma empresa de televisão local. Esta foi sua primeira entrevista. Acabara de voltar do exército, sem prática e experiência, esquecendo até a teoria com a qual havia problemas. A única experiência em desenvolvimento móvel da Marat foi uma tese sobre a análise de fluxos de vazamento de informações através de aplicativos Android. Na entrevista, ele foi questionado sobre estudos, OLP e outras teorias, mas Marat não conseguiu esconder as lacunas de conhecimento.

No entanto, ele não foi recusado, mas recebeu uma tarefa prática - implementar a exibição da lista de notícias usando a API em duas semanas. Tanto no iOS quanto no Android. “Se eu tinha alguma experiência no Android, não havia sequer uma ferramenta para criar a versão do iOS. O ambiente de desenvolvimento ios está disponível apenas no Mac. Mas duas semanas depois voltei, mostrei que podia no Android. Com o iOS, eu precisava sair de viagem. Como resultado, eles me levaram. Então eu morei em Astracã. Qualquer trabalho em TI com um salário superior a vinte me convinha.

Quem são os desenvolvedores do iOS


Os desenvolvedores móveis criam aplicativos para qualquer dispositivo portátil. Smartphones, tablets, relógios inteligentes e todas as outras plataformas compatíveis com Android ou iOS. A base fundamental do desenvolvimento móvel não difere do habitual, mas por causa das ferramentas específicas, ele foi destacado em uma direção separada. Ele usa suas próprias ferramentas, linguagens de programação e estruturas.

“Para usar o iOS, você precisa de um macbook, porque somente ele possui o ambiente de desenvolvimento necessário para o Xcode. É gratuito e distribuído pela AppStore App Store. Para instalar, você deve ter seu ID Apple e nada mais. No Xcode, você pode desenvolver aplicativos para qualquer coisa - um telefone, tablet, relógio. Há um simulador e editor embutidos para tudo ”, diz Andrei Antropov, decano do Departamento de Desenvolvimento iOS da GeekBrains.

“Mas o ambiente de desenvolvimento também pode ser colocado no Windows, se você usar o Hackintosh. Esta é uma opção funcional, mas indireta - nenhum dos desenvolvedores sérios faz isso. Iniciantes compram um MacBook antigo. E os experientes geralmente podem pagar o modelo mais recente. ”


Idiomas - Swift ou Objective-C


Quase todo o desenvolvimento do iOS é feito usando a linguagem de programação Swift. Ele apareceu há cinco anos e agora está substituindo gradualmente a antiga linguagem Objective-C que a Apple usa em todos os seus aplicativos há mais de 30 anos.

“O Objective-C possui uma enorme base de códigos, portanto os desenvolvedores ainda são necessários nos dois idiomas, dependendo da empresa, de suas tarefas e aplicativos. Os pedidos escritos há muitos anos são baseados no Objective-C. E todos os novos projetos são desenvolvidos por padrão no Swift. Agora, a Apple está fazendo muito para realizar o desenvolvimento simultâneo do telefone, tablet, relógio e MacBook o mais conveniente possível. O mesmo código pode ser compilado e executado em qualquer lugar. Este não era o caso antes. Para iOS, desenvolvemos no Swift, para MacOS, usamos Objective-C. ”

Segundo Andrey, o Swift é uma linguagem muito simples e amigável para iniciantes. É fortemente digitado, isso permite que você capture muitos erros no estágio de compilação do projeto, e o código incorreto simplesmente não funcionará.

“O Objective-C é uma linguagem bastante antiga - da mesma idade que o C ++. No momento em que foi desenvolvido, os requisitos para idiomas eram completamente diferentes. Quando o Swift apareceu, havia muitos bugs, a funcionalidade era limitada, a sintaxe era difícil. E no Objective-C, as pessoas tinham uma mão cheia. Ele melhorou por muitos anos, todos os erros foram corrigidos. Mas agora, acho que Swift não é inferior ao Objective-C. Embora até a Apple ainda use os dois em seus projetos. Os idiomas são amplamente intercambiáveis ​​e se complementam mutuamente. Estruturas e objetos de um idioma podem ser transformados em objetos e estruturas de outro idioma. Seria bom conhecer as duas opções, mas para iniciantes, o Objective-C geralmente parece intimidador e incompreensível ".


Treinamento


“No meu primeiro emprego, o chefe me treinou, ajudou na implementação e configuração do projeto”, diz Marat, “mas trabalhar no Android e iOS é difícil ao mesmo tempo. Leva tempo para reconstruir, alternar de projeto para projeto, de idioma para idioma. No final, decidi que precisava escolher uma direção e estudá-la. Fui subornado pela interface do Xcode e pela simples sintaxe do Swift. ”

Marat entrou no departamento de desenvolvimento iOS da GeekBrains. No começo, foi muito fácil, porque ele sabia muitas coisas de sua experiência profissional. A taxa anual é dividida em quatro trimestres. De acordo com Andrei, apenas a base é dada na primeira: “A base da linguagem Swift, conhecimento de estruturas básicas, interação de rede, armazenamento de dados, ciclo de vida do aplicativo, controlador, arquiteturas básicas, as principais bibliotecas que todos usam, multithreading e simultaneidade nos aplicativos”.

No segundo trimestre, o Objective-C é adicionado. Um curso de arquitetura, padrões básicos de programação. O terceiro trimestre é ensinado a maneira correta de escrever código. Diz o que é uma fábrica, como escrever testes corretamente, formar projetos, o que é Git-Flow, Integração Contínua através do Fast Lane. O quarto e último trimestre é dedicado ao trabalho em equipe, trabalhos práticos e estágios.

“O primeiro trimestre foi fácil”, diz Marat, “mas depois o estudo da programação no Objective-C, o estudo dos padrões de design, os princípios do Solid, Git-Flow, a arquitetura do projeto, os aplicativos de teste de unidade e interface do usuário, configurando a animação personalizada e, então, comecei Tornou-se interessante estudar.


“Tudo no GeekBrains não começou muito bem”, diz Boris Pavlov, e seu caminho para o desenvolvimento do iOS em geral não foi o mais direto. O cara foi criado por sua avó. Ela era arquiteta, matemática e designer e incutiu em Boris um amor pelo design, ensinada a desenhar à mão e desenhar. Seu tio era administrador de sistemas e interessava seu sobrinho com computadores.

Boris era um excelente aluno, mas perdeu o interesse em estudar e saiu da escola após nove aulas. Depois da faculdade, ele passou a andar de bicicleta, e os computadores foram pelo caminho. Mas uma vez que Boris sofreu uma lesão na coluna vertebral, o que não lhe permitiu continuar sua carreira esportiva.

Ele começou a estudar C ++ com um professor no Instituto Irkutsk de Física Solar-Terrestre. Então ele se interessou pelo desenvolvimento de jogos e tentou mudar para C #. E, finalmente, como Marat, ele foi subornado por Swift.

“Decidi fazer um curso introdutório gratuito no GeekBrains. Para ser honesto, ele era muito chato, letárgico e incompreensível ”, lembra Boris,“ o professor falava sobre as características da linguagem, mas passava de um tópico para outro sem revelar a essência. Quando o curso terminou, eu ainda não entendi nada. "

Portanto, após o curso introdutório, Boris entrou não em um curso de um ano, mas em um curto curso de três meses, onde são ensinados os princípios básicos da profissão. “Lá me deparei com professores muito bons e expliquei tudo com muita clareza.”


“Muitas vezes somos criticados, supostamente não temos manuais de treinamento relevantes, existem imprecisões. Mas os cursos são atualizados constantemente, e os professores sempre falam sobre inovações. Dos grupos que lidero, muitos já estão empregados após o primeiro trimestre. Naturalmente, geralmente são pessoas com experiência em programação ”, diz Andrey,“ por outro lado, todo o conhecimento não pode ser transmitido em um curso. A interação do cliente de rede na vida não pode caber em dez palestras por duas horas. E se você for apenas para cursos e não fizer mais nada, não haverá conhecimento suficiente. Se você pratica todos os dias durante todo o ano, nesse ritmo apenas os preguiçosos não funcionam. Porque a demanda na profissão é muito grande ".

imagem

Você pode ver as vagas mais recentes para desenvolvedores do iOS e se inscrever para novas.


Trabalho


Mas nem Marat nem Boris acharam um trabalho fácil.

“Algumas grandes empresas desenvolvem aplicativos iOS há muito tempo no Objective-C e continuam a oferecer suporte à antiga base de códigos. Infelizmente, não tenho um argumento forte para forçá-los a usar exclusivamente o Swift. Especialmente aqueles que usam a regra “não toque no que funciona” ”, diz Marat,“ pouca atenção é dada à direção do Objective-C na Geekbrains. É mais provável que seja um caráter exploratório. Mas todas as empresas que entrevistei perguntaram sobre a Objective-C. E como meus estudos estão focados em Swift, assim como meu trabalho anterior, recebi recusas em entrevistas. ”

“Depois de estudar, eu sabia apenas o básico mais superficial com o qual poderia criar a aplicação mais simples", afirma Boris. “É claro que não foi suficiente para o trabalho, mas fiquei feliz com isso. Foi difícil encontrar trabalho em Irkutsk. Mais precisamente, nada. Eu decidi procurar em outras cidades. Pelo número de vagas, as mais relevantes foram Krasnodar, Moscou e São Petersburgo. Eu decidi ir para São Petersburgo - mais perto da Europa.

Mas tudo acabou não tão róseo. Até o júnior é solicitado pelo que ele não pode saber. Ainda não encontrei um emprego. Eu trabalho para "obrigado", ganhando experiência. Entendo que não era isso que eu queria, mas estou interessado, e isso me impulsiona. Eu quero obter conhecimento ".

Andrei acredita que os recém-chegados não devem procurar trabalho, mas estágios. Se houver muito pouco conhecimento, isso é normal quando o estágio não é pago. Andrei aconselha a contratação de vagas juniores para grandes empresas, onde o processo de trabalho já foi estabelecido.

“Quando se trata de entender como o processo de desenvolvimento de software funciona, será muito mais fácil navegar e encontrar mais trabalhos, dependendo de seus desejos. Alguém entra em desenvolvimento independente, faz jogos para si mesmo, ele mesmo os joga na loja e monetiza ele mesmo. Alguém trabalha para uma grande empresa com regras estritas. Alguém ganha dinheiro em pequenos estúdios que fabricam software sob encomenda, e lá eles podem observar todo o processo - desde a criação de um projeto do zero até a colocação na loja. ”


Salários


O salário de um desenvolvedor de iOS, como qualquer outro, depende da pergunta "Moscou ou Rússia". Mas, devido às especificidades do setor - muito trabalho remoto, oportunidades de realocação e trabalho fora do mercado regional - os números estão se aproximando cada vez mais.

imagem

De acordo com a calculadora de salários "My Circle", o salário médio de um desenvolvedor de iOS é de pouco menos de 140.000 rublos .

“Um júnior de nível muito baixo geralmente trabalha de graça ou com dinheiro simbólico - 20 a 30 mil rublos. Se o júnior for propositadamente levado à sua posição, ele receberá de 50 a 80 mil. Os Middles recebem de 100 a 150 e, às vezes, até 200. Os assinantes com menos de 200 não. Eu acho que o salário deles é de 200 a 300. E os Timlids, respectivamente, por 300 ".




Entrevistas de emprego


“A primeira entrevista foi no Skype. Para minha surpresa, era o Google ”, lembra Boris,“ então me mudei para São Petersburgo e comecei a procurar trabalho. Eu recebi uma resposta do desenvolvedor do iOS para vaga. Nem um júnior, nem um meio, nem um signor - apenas um desenvolvedor. Fiquei encantado, comecei a me corresponder com o gerente. Me pediram para concluir a tarefa técnica: tive que escrever um pedido de piada sobre Chuck Norris. Eu escrevi. Foi-me dito que tudo é legal e agendou uma entrevista online.

Nós ligamos. Uma garota legal falou comigo. Mas eles não fizeram perguntas sobre o conhecimento do idioma - apenas tarefas lógicas diferentes, por exemplo: "Hora 15:15, quantos graus existem entre os ponteiros das horas e minutos?" Ou "Pilar 10 metros, o caracol se arrasta 3 metros à tarde, desce 1 metro à noite. Quantos dias ela vai rastejar até o topo? ”, E mais alguns assim.

Depois, houve perguntas muito estranhas - sobre o que eu amo a Apple e como me sinto em relação a Tim Cook. Eu disse que era positivo para a empresa como um todo, mas negativo, porque o dinheiro é importante para ela, não para os produtos.

Quando as perguntas sobre o Swift começaram, meu conhecimento era suficiente apenas para padrões de programação e noções básicas de OOP. Nos despedimos, uma semana depois eles me ligaram de volta e disseram que eu não era adequado. Na verdade, aprendi muito com isso: é necessário conhecimento, muito é necessário - tanto teoria quanto prática. ”

Andrei diz que “a primeira coisa que todos pedem durante uma entrevista é o ciclo de vida do controlador. Eles gostam de pedir algum padrão de programação simples. Certifique-se de perguntar sobre a experiência do uso de bibliotecas populares. Definitivamente, haverá uma pergunta sobre as diferenças entre os tipos de valor Swift e os tipos de referência, sobre a contagem automática de referência e o gerenciamento de memória. Eles podem perguntar como implementaram o armazenamento de dados em aplicativos e se as solicitações de rede foram implementadas. Pergunte sobre o básico do REST e JSON. Junior não pedirá coisas e sutilezas específicas. Pelo menos não estou perguntando.

Boris, por outro lado, teve uma experiência diferente: “Mesmo quando pedi estágios, realizei tarefas técnicas e disse que meu salário não era importante, se bastasse apenas alugar um apartamento, eles ainda me recusavam. Eu li artigos, tentei entender o que um recrutador precisa de um iniciante. Mas amontoou-se principalmente na teoria. Por alguma razão, eles fizeram perguntas da Premier League, que não dizem respeito a iniciantes. ”

Marat teve mais sorte. Agora ele trabalha em uma empresa de transporte e um é responsável pela direção do iOS, continuando seus estudos na faculdade. "Como eu sou o único responsável pelo iOS, meu trabalho é avaliado apenas pela capacidade de realizar as tarefas definidas para mim, e não pelo conhecimento da teoria."


Comunidade


Andrei mora em Nizhny Novgorod e diz que mesmo ali uma excelente comunidade se formou. Era uma vez um desenvolvedor de back-end em Python, mas seus amigos o arrastaram para o desenvolvimento móvel - e agora ele mesmo está agitando todos a fazê-lo.

“A comunidade mundial geralmente se comunica via twitter. As pessoas mantêm seus blogs, gravam vídeos no Youtube, ligam-se em podcasts. Um dia, tive uma pergunta sobre uma apresentação em que o líder da equipe do HQTrivia se apresentou. Este é um questionário americano que é jogado por vários milhões de pessoas ao mesmo tempo. Eu o twitei, ele me respondeu, conversamos, agradeci. A comunidade é extremamente amigável, e isso é ótimo. ”

Lista de leitura recomendada
Nível iniciante:

Nível intermediário:

Nível avançado:

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


All Articles