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

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

Do lado de fora do iOS, o desenvolvimento pode parecer um clube fechado. Para trabalhar, você definitivamente precisa de um computador Apple; o ecossistema é controlado de perto por uma empresa. Às vezes, você também pode ouvir contradições internas - alguns dizem que a linguagem Objective-C é antiga e desajeitada, e outros dizem que a nova linguagem Swift é muito grosseira.

Mesmo assim, os desenvolvedores entram nessa área e, uma vez lá, ficam satisfeitos.

Desta vez, Marat Nurgaliev e Boris Pavlov nos contaram sua experiência - como aprenderam a profissão, como passaram nas primeiras entrevistas, por que foram recusados. E Andrey Antropov, reitor, atuou como especialista Faculdade de Desenvolvimento iOS em 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. Acabava de voltar do exército, sem prática e experiência, esquecendo até a teoria, com a qual já tinha problemas. A única experiência de Marat em desenvolvimento móvel foi sua tese sobre análise de fluxos de vazamento de informações por meio de aplicativos Android. Na entrevista, ele foi questionado sobre seus estudos, POO e outras teorias, mas Marat não conseguiu esconder as lacunas em seu conhecimento.

No entanto, ele não foi recusado, mas recebeu uma tarefa prática - implementar a exibição de uma lista de notícias usando a API em duas semanas. Tanto para iOS quanto para Android. “Se eu tivesse alguma experiência com Android, não existia nem ferramenta para criar uma versão para iOS. O ambiente de desenvolvimento de aplicativos iOS está disponível apenas no Mac. Mas duas semanas depois voltei e mostrei o que podia fazer no Android. Com o iOS, tive que descobrir isso na hora. No final eles me levaram. Então morei em Astrakhan. Qualquer trabalho de TI com salário acima de vinte anos me convinha.”

Quem são os desenvolvedores 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. Os princípios fundamentais do desenvolvimento móvel não são diferentes do desenvolvimento convencional, mas devido a ferramentas específicas, foi separado em uma direção separada. Utiliza ferramentas, linguagens de programação e frameworks próprios.

“Para trabalhar com iOS você precisa de um MacBook, pois só ele possui o ambiente de desenvolvimento Xcode necessário. É gratuito e distribuído pela AppStore. Para instalar, você precisa ter seu ID Apple e nada mais. No Xcode você pode desenvolver aplicativos para qualquer coisa – telefone, tablet, relógio. Há um simulador e editor integrado para tudo”, diz Andrey Antropov, reitor do departamento de desenvolvimento iOS da GeekBrains.

“Mas o ambiente de desenvolvimento pode ser instalado 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 mais experientes geralmente podem comprar o modelo mais recente.”

Idiomas – Swift ou Objective-C

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

“Uma enorme base de código foi acumulada em Objective-C, portanto ainda são necessários desenvolvedores em ambas as linguagens, dependendo da empresa, suas tarefas e aplicações. Os aplicativos escritos há muitos anos são baseados em Objective-C. E todos os novos projetos são desenvolvidos em Swift por padrão. Agora, a Apple está fazendo muito para tornar o desenvolvimento simultâneo de telefone, tablet, relógio e MacBook o mais conveniente possível. O mesmo código pode ser compilado e executado em qualquer lugar. Isso não aconteceu antes. Para iOS desenvolvemos em Swift, para MacOS usamos Objective-C.”

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

“Objective-C é uma linguagem bastante antiga – a mesma idade da linguagem C++. Na época em que foi desenvolvido, os requisitos para idiomas eram completamente diferentes. Quando o Swift foi lançado, ele apresentava bugs, a funcionalidade era limitada e a sintaxe era difícil. E as pessoas estavam ocupadas com o Objective-C. Foi melhorado por muitos anos, todos os erros foram corrigidos. Mas agora acho que o Swift é tão bom quanto o Objective-C. Embora até a Apple ainda use ambos em seus projetos. As línguas são amplamente intercambiáveis ​​e mutuamente complementares. Estruturas e objetos de uma língua podem ser transformados em objetos e estruturas de outra língua. É bom conhecer as duas opções, mas para iniciantes o Objective-C muitas vezes parece intimidante e confuso."

treinamento

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

Marat entrou no departamento de desenvolvimento iOS da GeekBrains. No começo foi muito fácil, porque ele sabia muitas coisas por experiência profissional. O curso anual é dividido em quatro trimestres. Segundo Andrey, o primeiro dá apenas o básico: “A base da linguagem Swift, conhecimento de frameworks básicos, redes, armazenamento de dados, ciclo de vida da aplicação, controlador, arquiteturas básicas, principais bibliotecas que todos usam, multithreading e paralelismo em formulários."

O segundo trimestre adiciona Objective-C. Um curso é realizado sobre arquitetura e padrões básicos de programação. No terceiro trimestre, eles ensinam o estilo correto de escrever código. Explica o que é uma fábrica, como escrever testes corretamente, criar projetos, o que é Git-Flow, Integração Contínua via 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 comecei a aprender programação em Objective-C, estudando padrões de design, os princípios de Solid, Git-Flow, arquitetura de projetos, testes de unidade e UI de aplicativos, configurando animações personalizadas - e então eu. Tornou-se interessante estudar.”

“Não começou muito bem para mim na GeekBrains”, diz Boris Pavlov, e seu caminho para o desenvolvimento do iOS em geral não foi o mais direto. O menino foi criado pela avó. Ela era arquiteta, matemática e designer e incutiu em Boris o amor pelo design, ensinando-o a desenhar à mão e a desenhar. Seu tio era administrador de sistemas e interessou seu sobrinho por computadores.

Boris era um excelente aluno, mas perdeu o interesse em estudar e abandonou a escola após as nove séries. Depois da faculdade, ele começou a andar de bicicleta e os computadores ficaram em segundo plano. Mas um dia Boris sofreu uma lesão na coluna que o impediu de continuar sua carreira esportiva.

Ele começou a estudar C++ com um professor no Instituto de Física Solar-Terrestre de Irkutsk. Então me interessei pelo desenvolvimento de jogos e tentei mudar para C#. E finalmente, como Marat, ele foi cativado pela linguagem Swift.

“Decidi fazer o curso introdutório gratuito da GeekBrains. Para ser sincero, ele era muito chato, lento e incompreensível”, lembra Boris, “o professor falava sobre as características da língua, mas corria de um assunto para outro sem revelar a essência. Quando o curso terminou, eu ainda não entendia nada.”

Portanto, após o curso introdutório, Boris não se matriculou em um treinamento de um ano, mas em um curso curto de três meses, onde ensinam os fundamentos da profissão. “Encontrei lá professores muito bons e eles explicaram tudo com bastante clareza.”

“Muitas vezes somos criticados, alegadamente os nossos manuais de formação não estão totalmente atualizados, há imprecisões. Mas os cursos são atualizados constantemente e os professores sempre falam em novidades. Dos grupos que lidero, muitos encontram emprego após o primeiro trimestre. Claro, 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 da rede com o cliente na vida não pode caber em dez palestras de duas horas. E se você só fizer cursos e não fizer mais nada, você não terá conhecimento suficiente. Se você estudar todos os dias durante todo o ano, nesse ritmo só os preguiçosos não conseguirão emprego. Porque a demanda na profissão é muito grande.”

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

Você pode ver o máximo últimas vagas para desenvolvedores iOS e assine novos.

Работа

Mas nem Marat nem Boris encontraram emprego tão facilmente.

“Algumas grandes empresas desenvolvem há muito tempo aplicativos iOS em Objective-C e continuam a manter a antiga base de código. Infelizmente, não tenho um argumento convincente 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 de natureza informativa. Mas todas as empresas que entrevistei perguntaram sobre o Objective-C. E como meus estudos são voltados para Swift, assim como meus trabalhos anteriores, recebi recusas em entrevistas.”

“Depois de estudar, eu sabia sozinho apenas o básico mais superficial, com o qual poderia criar o aplicativo mais simples”, diz Boris. “Para o trabalho, claro, não bastava, mas fiquei feliz com isso. Foi difícil encontrar emprego em Irkutsk. Para ser mais preciso - de forma alguma. Resolvi procurar em outras cidades. Em termos de número de vagas, Krasnodar, Moscovo e São Petersburgo revelaram-se os mais relevantes. Decidi ir para São Petersburgo - mais perto da Europa.

Mas tudo acabou não sendo tão otimista. Até mesmo um júnior será perdoado por aquilo que não pode saber. Ainda não encontrei emprego. Estou trabalhando pelo “obrigado”, ganhando experiência. Entendo que não era isso que eu queria, mas estou interessado e isso me motiva. Quero adquirir conhecimento."

Andrey acredita que os recém-chegados deveriam procurar estágios em vez de empregos. Se você tem muito pouco conhecimento, é normal que o estágio não seja remunerado. Andrey aconselha a candidatura de vagas júnior a grandes empresas onde o processo de trabalho já esteja estabelecido.

“Quando você entender como funciona o processo de desenvolvimento de software, será muito mais fácil navegar e encontrar mais trabalho, dependendo de seus desejos. Algumas pessoas iniciam o desenvolvimento independente, criam jogos para si mesmas, carregam-nos na loja e monetizam-nos elas mesmas. Alguns trabalham para uma grande empresa com regras rígidas. Algumas pessoas ganham dinheiro em pequenos estúdios que fazem softwares customizados, e lá podem acompanhar todo o processo – desde a criação de um projeto do zero até a entrega na loja.”

Salários

O salário de um desenvolvedor iOS, como qualquer outro, depende da questão “Moscou ou Rússia”. Mas devido às especificidades do setor – muito trabalho remoto, oportunidades de relocação e trabalho fora do mercado regional – os números estão cada vez mais próximos uns dos outros.

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

De acordo com a calculadora salarial My Circle, o salário médio de um desenvolvedor iOS é um pouco menor rublos 140 000.

“Um júnior de nível muito baixo geralmente trabalha de graça ou por dinheiro simbólico - 20 a 30 mil rublos. Se um júnior for propositalmente levado ao cargo, receberá de 50 a 80 mil. Os médios recebem de 100 a 150, e às vezes até 200. Os idosos não recebem menos de 200. Acho que o salário deles está em torno de 200-300. E para líderes de equipe, portanto, são mais de 300.”

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

Entrevistas

“A primeira entrevista aconteceu pelo Skype. Para minha surpresa, foi o Google”, lembra Boris, “então eu tinha acabado de me mudar para São Petersburgo e comecei a procurar trabalho. Recebi uma inscrição para um cargo de desenvolvedor iOS. Nem júnior, nem intermediário, nem sênior - apenas um desenvolvedor. Fiquei encantado e comecei a me corresponder com o gerente. Pediram-me para realizar uma tarefa técnica: tive que escrever um aplicativo para piadas sobre Chuck Norris. Eu escrevi. Eles me disseram que estava tudo ótimo e agendaram uma entrevista online.

Ligamos um para o outro. Uma garota legal falou comigo. Mas eles não fizeram nenhuma pergunta sobre a proficiência no idioma - apenas vários problemas lógicos, por exemplo, “A hora é 15h15, quantos graus existem entre os ponteiros das horas e dos minutos?” ou “Um poste tem 10 metros de comprimento, um O caracol sobe 3 metros durante o dia e desce 1 metro à noite.” Em quantos dias ela chegará ao topo?”, e mais alguns semelhantes.

Depois surgiram perguntas muito estranhas - por que amo a Apple e como me sinto em relação a Tim Cook. Eu disse que a empresa como um todo é positiva, mas bastante negativa em relação a ele, porque o dinheiro é importante para ele, não os produtos.

Quando começaram as dúvidas sobre Swift, meu conhecimento era suficiente apenas para padrões de programação e o básico de OOP. Nos despedimos, uma semana depois me ligaram de volta e disseram que eu não era adequado. Na verdade, ganhei uma enorme experiência com isso: você precisa de conhecimento, você precisa de muito conhecimento – tanto na teoria quanto na prática.”

Andrey diz que “a primeira coisa que todos perguntam durante uma entrevista é o ciclo de vida do controlador. Eles realmente gostam de pedir algum padrão de programação simples. Eles certamente perguntarão sobre sua experiência no 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 contagem automática de referências e gerenciamento de memória. Eles podem perguntar como implementaram o armazenamento de dados em aplicativos e se implementaram solicitações de rede. Eles perguntarão sobre os conceitos básicos de REST e JSON. Não serão solicitadas ao júnior coisas e sutilezas específicas. Pelo menos não estou perguntando."

Boris teve uma experiência diferente: “Mesmo quando pedi estágio, fiz tarefas técnicas e disse que o salário não era importante para mim, desde que fosse suficiente para alugar um apartamento, ainda assim fui recusado. Li artigos, tentei entender o que um recrutador precisa de um recém-chegado. Mas eles falharam principalmente nas teorias. Por alguma razão, eles fizeram perguntas das ligas principais que não dizem respeito aos recém-chegados.”

Marat teve mais sorte. Agora ele trabalha em uma empresa de transportes e é o único responsável pelo departamento de iOS, enquanto continua seus estudos na faculdade. “Como sou o único responsável pelo iOS, meu trabalho é avaliado apenas pela minha capacidade de implementar as tarefas que me são atribuídas, e não pelo meu conhecimento teórico.”

Comunidade

Andrey mora em Nizhny Novgorod e diz que mesmo lá se formou uma grande comunidade. Era uma vez um desenvolvedor backend em Python, mas seus amigos o arrastaram para o desenvolvimento móvel - e agora ele mesmo incentiva todos a fazerem isso.

“A comunidade global geralmente se comunica via Twitter. As pessoas escrevem seus próprios blogs, gravam vídeos no Youtube, convidam-se para podcasts. Um dia tive uma dúvida sobre uma apresentação onde falou o líder da equipe HQTrivia. Este é um jogo de perguntas americano jogado simultaneamente por vários milhões de pessoas. Escrevi para ele no Twitter, ele me respondeu, conversamos e eu agradeci. A comunidade é extremamente amigável, o que é ótimo.”

Lista de literatura recomendadaNível iniciante:

Nível médio:

Nível avançado:

Fonte: habr.com

Adicionar um comentário