TesteUser1 (discussão | contribs)
 
(65 revisões intermediárias por 5 usuários não estão sendo mostradas)
Linha 1: Linha 1:
= Evolução na profissão =
= Evolução na profissão =
A carreira profissional de Carol Ozzy ainda e curta, porem com algumas boas realizações, como por exemplo participações no desenvolvimento do app santander on que já tem mais de 10 milhões de downloads na play store.


<p> Primeiramente um Desenvolvedor de Aplicativos mobile deve saber programar nas linguagens mais usadas no desenvolvimento das aplicações, fato que é ajudado por cursos técnicos extensivos ou por uma graduação em um curso da área, como Ciência da Computação e Sistema de Informação. Nos cursos técnicos, é aprendido diretamente as técnicas de programação, mostrando diretamente a linguagem que o futuro profissional deseja especializar-se. Já na graduação, aprende-se de tudo um pouco, com um nível um pouco menos detalhado, visto que deve se aprender diversas técnicas e linguagens, sendo assim, uma opção que garante um leque maior de conhecimentos. No caso de Nicolas, foi necessário cursos técnicos online e 6 períodos do curso de Ciência da Computação para começar a atuar na área.</p>
Em 2017 Carol foi contratada para um estágio na empresa zup innovation em Uberlândia, porem o estágio foi algo breve e logo foi promovida para a sessão de Q&A da empresa, falando rapidamente sobre a função exercida pela Carol, Q&A consistia em analisar os códigos escritos pelos desenvolvedores da empresa e verificar se tais códigos atendiam as obrigações requisitadas pelos clientes. Porem a profissional não estava feliz com tal função, e quando surgi-o uma oportunidade se tornou desenvolvedora dos apps que até então ela apenas analisava.  
<br>
<br>
<p>Após (ou durante) o período de aprendizado nesses cursos é muito recomendado os estágios, que são " amostras " do que você pode vim exercer em sua carreira. Nesses estágios se aprende geralmente sobre coisas técnicas e muito úteis, visando o aprimoramento profissional na sua área de estudo. Nesse percurso é de suma importância obter diversas certificações na área, para ter garantia da validade de seu conhecimento. Os mais famosos na área (ITIL, CISSP e DELL EMC) são os mais almejados pelos programadores, e podem ser obtidos por variados métodos, sendo eles de acordo com a especialidade das certificações. Nicolas, por sua vez não participou de nenhum estágio. Ele partiu direto para a prática, caso que também é muito recorrente em empresas recém criadas que procuram novos programadores.</p>
* Complemento:
<br>
** <p> Primeiramente um Desenvolvedor de Aplicativos mobile deve saber programar nas linguagens mais usadas no desenvolvimento das aplicações, fato que é ajudado por cursos técnicos extensivos ou por uma graduação em um curso da área, como Ciência da Computação e Sistema de Informação. Nos cursos técnicos, é aprendido diretamente as técnicas de programação, mostrando diretamente a linguagem que o futuro profissional deseja especializar-se. Já na graduação, aprende-se de tudo um pouco, com um nível um pouco menos detalhado, visto que deve se aprender diversas técnicas e linguagens, sendo assim, uma opção que garante um leque maior de conhecimentos. No caso de Nicolas, foi necessário cursos técnicos online e 6 períodos do curso de Ciência da Computação para começar a atuar na área.</p>
<p>Por fim, vale ressaltar também que, para um desenvolvedor, existem 3 níveis de cargo, sendo eles Júnior, Pleno e Sênior. O comum é um dev começar com tarefas de Dev Junior, com complexidade menor de tarefas, sem tantas exigências de competências profissionais e normalmente sem autonomia para decisões. Assim evoluindo, após um tempo de trabalho, para Dev Pleno, que tem complexidade maior de tarefas, maior maturidade profissional e capacidade ampla de tomada de decisões. E por fim, em seu cargo final, se torna Dev Sênior, que consta com  ampla complexidade de tarefas, exigência de maturidade profissional e emocional, poder de decisão e capacidade para assumir funções de liderança. No entanto, apesar da dificuldade crescer na medida em que o cargo cresce, o aumento salarial também cresce, sendo diretamente proporcional ao nível de complexidade do trabalho exigido. No caso de Nicolas, por tratar-se de um jovem programador, que ingressou a pouco mais de um ano na área, ele se enquadra como um Dev Júnior, apesar de estar trabalhando em um aplicativo que requer um grau de competência elevado.</p>
** <p>Após (ou durante) o período de aprendizado nesses cursos é muito recomendado os estágios, que são " amostras " do que você pode vim exercer em sua carreira. Nesses estágios se aprende geralmente sobre coisas técnicas e muito úteis, visando o aprimoramento profissional na sua área de estudo. Nesse percurso é de suma importância obter diversas certificações na área, para ter garantia da validade de seu conhecimento. Os mais famosos na área (ITIL, CISSP e DELL EMC) são os mais almejados pelos programadores, e podem ser obtidos por variados métodos, sendo eles de acordo com a especialidade das certificações. Nicolas, por sua vez não participou de nenhum estágio. Ele partiu direto para a prática, caso que também é muito recorrente em empresas recém criadas que procuram novos programadores.</p>
** <p>Por fim, vale ressaltar também que, para um desenvolvedor, existem 3 níveis de cargo, sendo eles Júnior, Pleno e Sênior. O comum é um dev começar com tarefas de Dev Junior, com complexidade menor de tarefas, sem tantas exigências de competências profissionais e normalmente sem autonomia para decisões. Assim evoluindo, após um tempo de trabalho, para Dev Pleno, que tem complexidade maior de tarefas, maior maturidade profissional e capacidade ampla de tomada de decisões. E por fim, em seu cargo final, se torna Dev Sênior, que consta com  ampla complexidade de tarefas, exigência de maturidade profissional e emocional, poder de decisão e capacidade para assumir funções de liderança. No entanto, apesar da dificuldade crescer na medida em que o cargo cresce, o aumento salarial também cresce, sendo diretamente proporcional ao nível de complexidade do trabalho exigido. No caso de Nicolas, por tratar-se de um jovem programador, que ingressou a pouco mais de um ano na área, ele se enquadra como um Dev Júnior, apesar de estar trabalhando em um aplicativo que requer um grau de competência elevado.</p>
<br>
<br>


= Descrição da atividade atual =  
= Descrição da atividade atual =  
* Definir o que deve ser feito para atingir o objetivo do programa.
Sendo assim deve-se desenvolver (codificar) o programa, acompanhar cada etapa do projeto passado para a equipe.
* Complemento:
** <p> Em seu dia-a-dia, atua no desenvolvimento de aplicativos ou sistemas, usando múltiplas linguagens de programação. Os principais sistemas operacionais mobile utilizados no mundo atualmente são o Android, da Google, e o iOS, da Apple. Além disso, é de suma importância sempre estar em contato com outras pessoas da área de TI, uma vez que sua profissão depende exclusivamente do trabalho conjunto de diversas pessoas. </p>
** <p>O mercado de trabalho para um dev mobile é bem amplo, dando diversas opções para o profissional. No entanto , para a atuação nessa área, é necessário ter experiencia comprovada a partir de certificações, além de saber falar inglês fluente, visto que no mundo da tecnologia, a língua inglesa é a mais utilizada. </p>


Em seu dia-a-dia, atua no desenvolvimento de aplicativos ou sistemas, usando múltiplas linguagens de programação. Os principais sistemas operacionais mobile utilizados no mundo atualmente são o Android, da Google, e o iOS, da Apple. Além disso, é de suma importância sempre estar em contato com outras pessoas da área de TI, uma vez que sua profissão depende exclusivamente do trabalho conjunto de diversas pessoas .
  O mercado de trabalho para um dev mobile é bem amplo, dando diversas opções para o profissional. No entanto , para a atuação nessa área, é necessário ter experiencia comprovada a partir de certificações, além de saber falar inglês fluente, visto que no mundo da tecnologia, a língua inglesa é a mais utilizada.
<br>
<br>


= Requisitos mínimos para exercer a profissão =
= Requisitos mínimos para exercer a profissão =
 
 
<p>Para exercer a função de Dev Mobile, é necessário ter conhecimento amplo em programação, além de ter experiencias em projetos anteriores de TI. Além disso, é de suma importância o conhecimento dos diversos sistemas operacionais existentes, para que os aplicativos sejam feitos com uma boa optimização para cada SO.  
'''Requisitos minimos''':
    Por outro lado, cumprir os valores estabelecidos pelos superiores é imprescindível, fato que melhora o ambiente de trabalho .  
 
* linguagem de programação adequada (Java,Kotlin,Switch para IOS)
* Fazer POCs (proof of concept)
*POC é um estilo de Q&A para apresentações com fins financeiros, para provar que o software avaliado realiza todos os requisitos exigidos pelo cliente. Para os desenvolvedores a POC é um meio de garantir o total funcionamento de seu código.  
* Proatividade
* Processos/modelos de gestão
* Complemento:
** <p> Além disso, é de suma importância o conhecimento dos diversos sistemas operacionais existentes, para que os aplicativos sejam feitos com uma boa optimização para cada SO. </p>
** <p>Por outro lado, cumprir os valores estabelecidos pelos superiores é imprescindível, fato que melhora o ambiente de trabalho.</p>
<br>
<br>


= Ferramentas usadas no dia-a-dia =
= Ferramentas usadas no dia-a-dia =
 
* Ferramentas
- JSON - Editor de JavaScript
** Versionamento:
- SQL Editor Usado para manuseio de banco de dados.
*** GitHub
- Postman e Apiary Facilitam a criação de API´s
*** GitLab
- Wunderlist - Gerenciador de tarefas e projetos
** Integração:
- Sketch - Editor de gráficos vetoriais/Designer gráfico
*** Jenkins
 
*** Beta
** Teste:
*** Postman
*** Cucumber)
** Gestão
*** Jira
*** Trello)
**  Editor de JavaScript                                                                                                                                                                                                            
*** JSON
** Manipulação de Banco de Dados.  
*** MySQL
** Criação de APIs
*** Postman e Apiary
** Editor de gráficos vetoriais/Designer gráfico  
*** Sketch
<br>
<br>


Linha 35: Linha 62:
Neste caso, escolher uma tecnologia e aprofundar a ponto de poder discutir em sala de aula
Neste caso, escolher uma tecnologia e aprofundar a ponto de poder discutir em sala de aula
Exemplos:
Exemplos:
* SO, Banco de Dados, Linguagens, Metodologia ágil para o Engenheiro de Software
* Redes de Computadores, Roteamento, sistemas de comunicação e comutação para o Analista de Redes
* Criptografia, Certificação Digital, Banco de Dados, Ambiente Web para Analistas de Segurança
* Banco de Dados, Normalização, Tuning, redundância para o DBA
* Banco de Dados, Normalização, Tuning, redundância para o DBA
* E assim por diante ....
* Linguagens de programação mobile: Objetive-C, Kotlin, HTML5, Java, Swift
* Banco de Dados: SQLite
* Sistemas operacionais mobile: Android e iOS, Windows Phone e web Os.
* Design Gráfico, softwares mobiles são sempre conhecidos por suas interfaces limpas, então o entendimento de design é sempre um diferencial.
* IDE's em geral, pois facilitam bastante no próprio desenvolvimento do app.
<br>
<br>


= Ética profissional =
= Ética profissional =
- Apontar qualquer situação em que é necessário ética. Seja alguma situação vivida pelo profissional ou que ele tenha tido conhecimento. Importante ressaltar o comportamento adequado do profissional dentro de uma empresa ou de um negócio.
- Um exemplo de ética que a Carol teve conhecimento dentro da empresa foi um foi um episódio de homofobia, onde dois colegas de trabalho estavam fazendo algumas piadas homofóbicas, apesar de ninguém ter realmente se ofendido com as piadas, (mesmo havendo um colega homossexual na empresa) , o pessoal do RH da empresa teve conhecimento do fato e deu um certo puxão de orelha nos envolvidos.  
- Caso o profissional não sugira nada, a equipe deverá pesquisar e discutir algum caso
- Os casos, tanto podem tratar de comportamentos éticos positivos quanto de situações onde a ética tenha sido desvirtuada.
<br>
<br>


= Exemplo de resultado tangível =
=Resultados tangíveis =
- Citar um exemplo de algum resultado real produzido pelo profissional. Aqui pode ser o exemplo de um equipamento, de um sistema embarcado, de um sistema web ou mobile, de um projeto ou documento que retrate a contribuição do convidado no negócio onde ele atua.
* Santander On
* Real Wave
* Claro flex
<br>
<br>


= Upload da apresentação =
= Upload da apresentação =
https://drive.google.com/file/d/1DFrPq9uC6iA9-5VD1kXAdkQXEuCrP46W/view
- https://docs.google.com/presentation/d/1qEfSIMWNjgiuGCg9m_SSdAFUbRNQqRw5LzZXiniRRQ0/edit#slide=id.g35f391192_04
<br>
<br>


Linha 59: Linha 87:
<br>
<br>


* 01. AWS, é importante para desenvolvimento de aplicações móveis? Por quê?
* 01. Exemplifique um requisito do usuário considerado inviável por você, ou seja, que entendeu que não era viável de ser implementado.
** A Amazon Web Services se trata de uma plataforma de serviços na nuvem , ela é de extrema importância no desenvolvimento de apps , pois é através dela que , a maioria dos desenvolvedores, hospedam os bancos de dados dos aplicativos , garantem a transferência de dados entre usuário e servidor , acontecem as chamadas da API's,entre outros.Além disso, tudo isso ocorre de forma rápida e segura , o que a torna uma ferramenta essencial no desenvolvimento mobile.
** Quando um usuário requisita algo inviável, tentamos convence-lo de que há uma alternativa melhor para chega ao resultado desejado. Em muitos casos o que se pede pode até mesmo ser realizado, mas não compensa pelo tempo que levará para ser feito, quando um cliente insiste é necessário fazer de uma forma não conveniente ou cheia de gambiarras devido à falta de tempo. Esse requisito pode ser qualquer coisa como por exemplo  uma tela com muitos pequenos detalhes, as vezes e algo que realmente não pode ser  realizado porquê e algo que o dispositivo não foi feito para fazer.
<br>
 
* 02. Java e Kotlin. Por que usar uma linguagem ou outra?
** Kotlin é uma linguagem estaticamente tipada, desenvolvida pela JetBrains, com uma sintaxe mais expressiva e concisa do que Java, pois a linguagem é baseada no jeito programação funcional de ser e possibilita a construção de códigos mais elegante do que outras linguagens. Kotlin roda sobre uma JVM e possui 100% de compatibilidade com a linguagem Java.
<br>
 
* 03. O significa Q&A e qual sua importância para o desenvolvimento de sistemas?
** Quality Assurance é uma alternativa para detectar problemas antes do lançamento de um determinado produto permitindo se necessária uma correção de "emergência" evitando o desgaste da empresa e  do produto no mercado.
<br>


* 04. O que é desenvolvimento nativo? E híbrido?
** Desenvolvimento Nativo: O app nativo é desenvolvido para utilização em uma plataforma específica,  como iOS ou Android. Dessa forma, o aplicativo nativo é capaz de explorar todas as potencialidades da plataforma para a qual foi criado. Consegue ter acesso a  diversos recursos dos aparelhos como GPS, câmera, calendário, lista de contatos, entre outros. E nem sempre os aplicativos nativos precisam da internet para seu  funcionamento.
** Desenvolvimento Hibrido: O app híbrido tem características do app nativo e da web, utilizando códigos de ambos  para sua criação. Assim, esse modelo de app pode usar recursos tanto da internet quanto do dispositivo e tem a capacidade de ser executado em diferentes plataformas. Porém, o app híbrido não consegue acessar as funcionalidades do dispositivo de forma direta, sendo necessário o uso de um framework que funcione como intermediário entre o aplicativo e o dispositivo.
<br>


* 05. O que é MVC? MVP? Como podem ser usados?
** MVC:É um padrão de arquitetura de software, separando sua aplicação em 3 camadas.
** 1 A interação do usuário (view)---> exibe os dados.
** 2 A camada de manipulação de dados (model) ---> Ele é responsável pela leitura e escrita  de dados, e também de suas validações.
** 3 A camada de controle (controller) ---> O responsável por receber todas as requisições  do usuário. Seus métodos chamados actions são responsáveis por uma página, controlando qual model usar e qual view será mostrado ao usuário.
** MVP: Produto minimo viável: pratica administrativa que consiste em lançar um novo produto ou serviço com o menor  investimento possível.
** Um MVP é uma versão mínima do produto, apenas com as funcionalidades necessárias para que ele cumpra a função para a qual foi planejado. A partir do MVP testa-se a eficiência do produto, sua usabilidade, aceitação no mercado, comparação com a concorrência, entre outras formas de validar.
<br>
<br>


* 02. O que é site responsivo? Cite algumas ferramentas que permite desenvolvê-lo.
* 06. CRM, o que significa e de que se trata?
** Os sites responsivos são aqueles que se encaixam  automaticamente com dispositivo utilizado , mudam sua aparência e disposição baseado no tamanho da tela que o usuário esta utilizando no momento.Alguns das melhores ferramentas para criação de sites responsivos são : WebFlow, Froont, Reflow, Macaw.
** CRM: significa Customer Relationship Management. Seu objetivo principal é colocar o cliente no centro dos processos da empresa de modo a viabilizar aquele tipo de percepção que permite antecipar as necessidades atuais e potenciais do cliente.
** Na estratégia ideal de CRM, não importa a forma como o cliente contata a empresa. O importante é como a empresa pode e deve aproveitar esse momento para dar continuidade ao processo de aprendizado sobre o seu cliente, visando fortalecer o relacionamento ou seja, visando a fidelização.
<br>
<br>


* 03. Quais as diferenças básicas entre Dev Jr, Dev Pleno e Dev Senior?
* 07. Descreve sua opinião sobre exemplos de ética (positivos ou negativos) apontados pela palestrante.  
** O Developer Jr é , em grande parte das vezes , o profissional que ainda não possui muita experiência no mercado e costuma ter conhecimento das ferramentas de desenvolvimento mas ainda não consegue desenvolver projetos sozinhos.O Dev Pleno é o profissional com certa experiência ,consegue desenvolver projetos sozinhos mas não interfere em decisões da arquitetura do projeto. O Dev Senior é o profissional que lida com toda equipe , consegue desenvolver projetos sozinhos e toma decisões referentes a arquitetura do projeto.
** Assim como em qualquer profissão, a ética tem que estar presente, como citado pela palestrante, onde existiu a falta da mesma, com uma tentativa com intenção maldosa, de sua colega que tentou a prejudicar. Acho isso uma atitude infantil, e que deve-se ser tomada atitudes por parte da empresa para que isso nao ocorra mais.
<br>
<br>


* 04. É interessante usarmos Bancos de Dados não-relacionais? Cite soluções de BD NoSQL.
* 08. Destaque o que mais te surpreendeu ou o que mais tenha gostado na apresentação. Explique o porquê.  
** No contexto de desenvolvimento mobile é muito interessante a utilização de BD NoSQL , uma vez que ao se desenvolver apps não se sabe a quantidade de usuários que utilizarão o app , logo a escalabilidade que o NoSQL oferece se torna de extrema importância,diferentemente do SQL , o qual é complexo e caro para escalar.
** O que mais me surpreendeu na apresentação foi as diversas ferramentas que se usa em um desenvolvimento mobile, pois nao sabia que existia tantas ferramentas que auxiliavam no desenvolvimento.
<br>
<br>


* 05. Por quê o palestrante veio citou a expressão "Cuida bem do seu código""?
* 09. Cite algumas características interessantes do Android. Que outros SOs competem com ele?
** O palestrante citou esta expressão , pois quando você é um Developer e trabalha em projetos próprios ou de empresas os códigos desenvolvidos por você serão utilizados durante muito tempo assim desenvolver um bom código devidamente comentado auxiliaria em possíveis futuros ajustes nesse código. Além disso , quando se trabalha em equipe ou em empresas os códigos desenvolvidos por você serão utilizados por diversos outros desenvolvedores e manter seu código bem organizado e comentado trará uma melhor imagem sua perante a empresa e a equipe , e isso costuma ser o diferencial entre desenvolvedores pleno e sênior.
** O Android é o sistema operacional mais usado em dispositipos moveis, principamente pela caracteristica de não ser preso a um unico hardware, sendo assim possivel de ser usado em diversos smartphone, de diversas marcas. Outra caracterista importate, é que ele é feito pela Google, empresa que o administra muito bem, e o mantem aberto para todos, ou seja, open source, para ser modificado para diversos dispositivos. E ainda ha propriedades do Linux voltado para dispositivos móveis. Outros SOs que competem com o Android é o IOS que é o sistema operacional dos iDevices da Apple, existia o  
<br>
<br>


* 06. O que é um Hackathon? Como funciona?
* 10. React, Angular JS, para que servem estas ferramentas?
** Hackathon é uma maratona de programação que reúne programadores ,designers , entre outros profissionais ligados ao desenvolvimento de softwares.O objetivo de uma Hackathon costuma ser desenvolver um software que atenda a um fim específico ou projetos que sejam inovadores e utilizáveis , essas maratonas podem durar entre um dia ou uma semana , essas maratonas costumam premiar os melhores classificados além de promover a interação de diferentes grupos de programadores em um ambiente específico de programação.
** React é uma ferramenta usada voltada para o desenvolvimento de interfaces de usuário(UI), mantida pelo Facebook e outras empresas, se torna uma otima ferramente para o desenvolvimento em interfaces de dispositivos mobile. O Angular JS é um framework desenvolvido pela Google, que contem diversos kits de templates e componentes que auxiliam na criação de interfaces de usuario.
<br>
<br>


* 07. React, Angular JS, para que servem estas ferramentas?
= Tecnologia a ser pesquisada =
** React e Angular JS são ambos frameworks,bibliotecas, de JavaScript , essas ferramentas auxiliam no desenvolvimento de interfaces para páginas web e de aplicações moveis.
<br>
<br>
* Kotlin
* Para que serve?
**Kotin é uma linguagem multiplataforma, que compila para Maquina Virtual Java, e tambem pode ser compilada em JavaScript.O Kotlin serve para desenvolvimento do Android, introduz muitos aprimoramentos para programadores como segurança de ponteiro nulo, funções de extensão e notação infixa.
* Outras soluções no mercado
**Outra soluçoes para o Kotlin é o Java e o C++ que são linguagens suportadas pelo Android e sao oficiais da Google.
* Como funciona?
**Os códigos funcionam de maneira muito semelhante aos do Java. Os primeiros passos na nova linguagem podem ser dados com a ajuda de um conversor automatizado de Java para Kotlin. Além disso, um aplicativo em Kotlin é tão rápido quanto o em Java equivalente
* Exemplos de uso
**Alguns exemplos de uso sao o Pinterest, plataforma de compartilhamento de imagens e designs, e o Evernote, que trabalha como um aplicativo de notas que salva informações na nuvem.

Edição atual tal como às 01h06min de 7 de maio de 2019

Evolução na profissão

A carreira profissional de Carol Ozzy ainda e curta, porem com algumas boas realizações, como por exemplo participações no desenvolvimento do app santander on que já tem mais de 10 milhões de downloads na play store.

Em 2017 Carol foi contratada para um estágio na empresa zup innovation em Uberlândia, porem o estágio foi algo breve e logo foi promovida para a sessão de Q&A da empresa, falando rapidamente sobre a função exercida pela Carol, Q&A consistia em analisar os códigos escritos pelos desenvolvedores da empresa e verificar se tais códigos atendiam as obrigações requisitadas pelos clientes. Porem a profissional não estava feliz com tal função, e quando surgi-o uma oportunidade se tornou desenvolvedora dos apps que até então ela apenas analisava.

  • Complemento:
    • Primeiramente um Desenvolvedor de Aplicativos mobile deve saber programar nas linguagens mais usadas no desenvolvimento das aplicações, fato que é ajudado por cursos técnicos extensivos ou por uma graduação em um curso da área, como Ciência da Computação e Sistema de Informação. Nos cursos técnicos, é aprendido diretamente as técnicas de programação, mostrando diretamente a linguagem que o futuro profissional deseja especializar-se. Já na graduação, aprende-se de tudo um pouco, com um nível um pouco menos detalhado, visto que deve se aprender diversas técnicas e linguagens, sendo assim, uma opção que garante um leque maior de conhecimentos. No caso de Nicolas, foi necessário cursos técnicos online e 6 períodos do curso de Ciência da Computação para começar a atuar na área.

    • Após (ou durante) o período de aprendizado nesses cursos é muito recomendado os estágios, que são " amostras " do que você pode vim exercer em sua carreira. Nesses estágios se aprende geralmente sobre coisas técnicas e muito úteis, visando o aprimoramento profissional na sua área de estudo. Nesse percurso é de suma importância obter diversas certificações na área, para ter garantia da validade de seu conhecimento. Os mais famosos na área (ITIL, CISSP e DELL EMC) são os mais almejados pelos programadores, e podem ser obtidos por variados métodos, sendo eles de acordo com a especialidade das certificações. Nicolas, por sua vez não participou de nenhum estágio. Ele partiu direto para a prática, caso que também é muito recorrente em empresas recém criadas que procuram novos programadores.

    • Por fim, vale ressaltar também que, para um desenvolvedor, existem 3 níveis de cargo, sendo eles Júnior, Pleno e Sênior. O comum é um dev começar com tarefas de Dev Junior, com complexidade menor de tarefas, sem tantas exigências de competências profissionais e normalmente sem autonomia para decisões. Assim evoluindo, após um tempo de trabalho, para Dev Pleno, que tem complexidade maior de tarefas, maior maturidade profissional e capacidade ampla de tomada de decisões. E por fim, em seu cargo final, se torna Dev Sênior, que consta com ampla complexidade de tarefas, exigência de maturidade profissional e emocional, poder de decisão e capacidade para assumir funções de liderança. No entanto, apesar da dificuldade crescer na medida em que o cargo cresce, o aumento salarial também cresce, sendo diretamente proporcional ao nível de complexidade do trabalho exigido. No caso de Nicolas, por tratar-se de um jovem programador, que ingressou a pouco mais de um ano na área, ele se enquadra como um Dev Júnior, apesar de estar trabalhando em um aplicativo que requer um grau de competência elevado.


Descrição da atividade atual

  • Definir o que deve ser feito para atingir o objetivo do programa.

Sendo assim deve-se desenvolver (codificar) o programa, acompanhar cada etapa do projeto passado para a equipe.

  • Complemento:
    • Em seu dia-a-dia, atua no desenvolvimento de aplicativos ou sistemas, usando múltiplas linguagens de programação. Os principais sistemas operacionais mobile utilizados no mundo atualmente são o Android, da Google, e o iOS, da Apple. Além disso, é de suma importância sempre estar em contato com outras pessoas da área de TI, uma vez que sua profissão depende exclusivamente do trabalho conjunto de diversas pessoas.

    • O mercado de trabalho para um dev mobile é bem amplo, dando diversas opções para o profissional. No entanto , para a atuação nessa área, é necessário ter experiencia comprovada a partir de certificações, além de saber falar inglês fluente, visto que no mundo da tecnologia, a língua inglesa é a mais utilizada.


Requisitos mínimos para exercer a profissão

Requisitos minimos:

  • linguagem de programação adequada (Java,Kotlin,Switch para IOS)
  • Fazer POCs (proof of concept)
  • POC é um estilo de Q&A para apresentações com fins financeiros, para provar que o software avaliado realiza todos os requisitos exigidos pelo cliente. Para os desenvolvedores a POC é um meio de garantir o total funcionamento de seu código.
  • Proatividade
  • Processos/modelos de gestão
  • Complemento:
    • Além disso, é de suma importância o conhecimento dos diversos sistemas operacionais existentes, para que os aplicativos sejam feitos com uma boa optimização para cada SO.

    • Por outro lado, cumprir os valores estabelecidos pelos superiores é imprescindível, fato que melhora o ambiente de trabalho.


Ferramentas usadas no dia-a-dia

  • Ferramentas
    • Versionamento:
      • GitHub
      • GitLab
    • Integração:
      • Jenkins
      • Beta
    • Teste:
      • Postman
      • Cucumber)
    • Gestão
      • Jira
      • Trello)
    • Editor de JavaScript
      • JSON
    • Manipulação de Banco de Dados.
      • MySQL
    • Criação de APIs
      • Postman e Apiary
    • Editor de gráficos vetoriais/Designer gráfico
      • Sketch


Tecnologias envolvidas

Conhecimento técnico e científico aplicado na atividade profissional utilizando ferramentas, processos e recursos físicos. Neste caso, escolher uma tecnologia e aprofundar a ponto de poder discutir em sala de aula Exemplos:

  • Banco de Dados, Normalização, Tuning, redundância para o DBA
  • Linguagens de programação mobile: Objetive-C, Kotlin, HTML5, Java, Swift
  • Banco de Dados: SQLite
  • Sistemas operacionais mobile: Android e iOS, Windows Phone e web Os.
  • Design Gráfico, softwares mobiles são sempre conhecidos por suas interfaces limpas, então o entendimento de design é sempre um diferencial.
  • IDE's em geral, pois facilitam bastante no próprio desenvolvimento do app.


Ética profissional

- Um exemplo de ética que a Carol teve conhecimento dentro da empresa foi um foi um episódio de homofobia, onde dois colegas de trabalho estavam fazendo algumas piadas homofóbicas, apesar de ninguém ter realmente se ofendido com as piadas, (mesmo havendo um colega homossexual na empresa) , o pessoal do RH da empresa teve conhecimento do fato e deu um certo puxão de orelha nos envolvidos.

Resultados tangíveis

  • Santander On
  • Real Wave
  • Claro flex


Upload da apresentação

- https://docs.google.com/presentation/d/1qEfSIMWNjgiuGCg9m_SSdAFUbRNQqRw5LzZXiniRRQ0/edit#slide=id.g35f391192_04

Dúvidas


  • 01. Exemplifique um requisito do usuário considerado inviável por você, ou seja, que entendeu que não era viável de ser implementado.
    • Quando um usuário requisita algo inviável, tentamos convence-lo de que há uma alternativa melhor para chega ao resultado desejado. Em muitos casos o que se pede pode até mesmo ser realizado, mas não compensa pelo tempo que levará para ser feito, quando um cliente insiste é necessário fazer de uma forma não conveniente ou cheia de gambiarras devido à falta de tempo. Esse requisito pode ser qualquer coisa como por exemplo uma tela com muitos pequenos detalhes, as vezes e algo que realmente não pode ser realizado porquê e algo que o dispositivo não foi feito para fazer.


  • 02. Java e Kotlin. Por que usar uma linguagem ou outra?
    • Kotlin é uma linguagem estaticamente tipada, desenvolvida pela JetBrains, com uma sintaxe mais expressiva e concisa do que Java, pois a linguagem é baseada no jeito programação funcional de ser e possibilita a construção de códigos mais elegante do que outras linguagens. Kotlin roda sobre uma JVM e possui 100% de compatibilidade com a linguagem Java.


  • 03. O significa Q&A e qual sua importância para o desenvolvimento de sistemas?
    • Quality Assurance é uma alternativa para detectar problemas antes do lançamento de um determinado produto permitindo se necessária uma correção de "emergência" evitando o desgaste da empresa e do produto no mercado.


  • 04. O que é desenvolvimento nativo? E híbrido?
    • Desenvolvimento Nativo: O app nativo é desenvolvido para utilização em uma plataforma específica, como iOS ou Android. Dessa forma, o aplicativo nativo é capaz de explorar todas as potencialidades da plataforma para a qual foi criado. Consegue ter acesso a diversos recursos dos aparelhos como GPS, câmera, calendário, lista de contatos, entre outros. E nem sempre os aplicativos nativos precisam da internet para seu funcionamento.
    • Desenvolvimento Hibrido: O app híbrido tem características do app nativo e da web, utilizando códigos de ambos para sua criação. Assim, esse modelo de app pode usar recursos tanto da internet quanto do dispositivo e tem a capacidade de ser executado em diferentes plataformas. Porém, o app híbrido não consegue acessar as funcionalidades do dispositivo de forma direta, sendo necessário o uso de um framework que funcione como intermediário entre o aplicativo e o dispositivo.


  • 05. O que é MVC? MVP? Como podem ser usados?
    • MVC:É um padrão de arquitetura de software, separando sua aplicação em 3 camadas.
    • 1 A interação do usuário (view)---> exibe os dados.
    • 2 A camada de manipulação de dados (model) ---> Ele é responsável pela leitura e escrita de dados, e também de suas validações.
    • 3 A camada de controle (controller) ---> O responsável por receber todas as requisições do usuário. Seus métodos chamados actions são responsáveis por uma página, controlando qual model usar e qual view será mostrado ao usuário.
    • MVP: Produto minimo viável: pratica administrativa que consiste em lançar um novo produto ou serviço com o menor investimento possível.
    • Um MVP é uma versão mínima do produto, apenas com as funcionalidades necessárias para que ele cumpra a função para a qual foi planejado. A partir do MVP testa-se a eficiência do produto, sua usabilidade, aceitação no mercado, comparação com a concorrência, entre outras formas de validar.


  • 06. CRM, o que significa e de que se trata?
    • CRM: significa Customer Relationship Management. Seu objetivo principal é colocar o cliente no centro dos processos da empresa de modo a viabilizar aquele tipo de percepção que permite antecipar as necessidades atuais e potenciais do cliente.
    • Na estratégia ideal de CRM, não importa a forma como o cliente contata a empresa. O importante é como a empresa pode e deve aproveitar esse momento para dar continuidade ao processo de aprendizado sobre o seu cliente, visando fortalecer o relacionamento ou seja, visando a fidelização.


  • 07. Descreve sua opinião sobre exemplos de ética (positivos ou negativos) apontados pela palestrante.
    • Assim como em qualquer profissão, a ética tem que estar presente, como citado pela palestrante, onde existiu a falta da mesma, com uma tentativa com intenção maldosa, de sua colega que tentou a prejudicar. Acho isso uma atitude infantil, e que deve-se ser tomada atitudes por parte da empresa para que isso nao ocorra mais.


  • 08. Destaque o que mais te surpreendeu ou o que mais tenha gostado na apresentação. Explique o porquê.
    • O que mais me surpreendeu na apresentação foi as diversas ferramentas que se usa em um desenvolvimento mobile, pois nao sabia que existia tantas ferramentas que auxiliavam no desenvolvimento.


  • 09. Cite algumas características interessantes do Android. Que outros SOs competem com ele?
    • O Android é o sistema operacional mais usado em dispositipos moveis, principamente pela caracteristica de não ser preso a um unico hardware, sendo assim possivel de ser usado em diversos smartphone, de diversas marcas. Outra caracterista importate, é que ele é feito pela Google, empresa que o administra muito bem, e o mantem aberto para todos, ou seja, open source, para ser modificado para diversos dispositivos. E ainda ha propriedades do Linux voltado para dispositivos móveis. Outros SOs que competem com o Android é o IOS que é o sistema operacional dos iDevices da Apple, existia o


  • 10. React, Angular JS, para que servem estas ferramentas?
    • React é uma ferramenta usada voltada para o desenvolvimento de interfaces de usuário(UI), mantida pelo Facebook e outras empresas, se torna uma otima ferramente para o desenvolvimento em interfaces de dispositivos mobile. O Angular JS é um framework desenvolvido pela Google, que contem diversos kits de templates e componentes que auxiliam na criação de interfaces de usuario.


Tecnologia a ser pesquisada


  • Kotlin
  • Para que serve?
    • Kotin é uma linguagem multiplataforma, que compila para Maquina Virtual Java, e tambem pode ser compilada em JavaScript.O Kotlin serve para desenvolvimento do Android, introduz muitos aprimoramentos para programadores como segurança de ponteiro nulo, funções de extensão e notação infixa.
  • Outras soluções no mercado
    • Outra soluçoes para o Kotlin é o Java e o C++ que são linguagens suportadas pelo Android e sao oficiais da Google.
  • Como funciona?
    • Os códigos funcionam de maneira muito semelhante aos do Java. Os primeiros passos na nova linguagem podem ser dados com a ajuda de um conversor automatizado de Java para Kotlin. Além disso, um aplicativo em Kotlin é tão rápido quanto o em Java equivalente
  • Exemplos de uso
    • Alguns exemplos de uso sao o Pinterest, plataforma de compartilhamento de imagens e designs, e o Evernote, que trabalha como um aplicativo de notas que salva informações na nuvem.