| Linha 101: | Linha 101: | ||
<br> | <br> | ||
Disponibilidade: | * Disponibilidade: | ||
- Preocupação em ajudar | v**- Preocupação em ajudar | ||
- Não conhece nenhum de vocês e gastou muito tempo para gravar este vídeo | **- Não conhece nenhum de vocês e gastou muito tempo para gravar este vídeo | ||
<br> | |||
Formação: | * Formação: | ||
- 5a. turma de SI | **- 5a. turma de SI | ||
- PET | **- PET | ||
- IC | **- IC | ||
Atribuições: | * Atribuições: | ||
- Engenheiro de SW | **- Engenheiro de SW | ||
- Empresa StationFy | **- Empresa StationFy | ||
- Fundada por brasileiros da UFU (Paulo Martins e Rodrigo Reis) | **- Fundada por brasileiros da UFU (Paulo Martins e Rodrigo Reis) | ||
- Empreendedor no Vale do Silício | **- Empreendedor no Vale do Silício | ||
- Engenheiro de SW em Chicago | **- Engenheiro de SW em Chicago | ||
- Envolvido com projetos e produtos | **- Envolvido com projetos e produtos | ||
<br> | |||
Evolução: | * Evolução: | ||
- Suporte internet na Algar Tech | **- Suporte internet na Algar Tech | ||
- Graduação | **- Graduação | ||
- Estágio numa Startup em Android | **- Estágio numa Startup em Android | ||
- Bolsas de IC para se manter | **- Bolsas de IC para se manter | ||
- Cedro Technologies como desenvolvedor | **- Cedro Technologies como desenvolvedor | ||
- Pegando projetos por fora como freelancer | **- Pegando projetos por fora como freelancer | ||
- Começou na StationFy part-time (4 hs) | **- Começou na StationFy part-time (4 hs) | ||
- Resultados interessantes EUA e Canadá | **- Resultados interessantes EUA e Canadá | ||
- Vaga em aceleradora | **- Vaga em aceleradora | ||
- Sai da Cedro e full-time na StationFy | **- Sai da Cedro e full-time na StationFy | ||
- Não curtiu web mas serviu de base | **- Não curtiu web mas serviu de base | ||
- Passou de analista para Eng Sw | **- Passou de analista para Eng Sw | ||
<br> | |||
Requisitos: | * Requisitos: | ||
- Web, Java, JSF, primefaces | **- Web, Java, JSF, primefaces | ||
- Dev Mobile: Trainee, Jr, Pl e Sr | **- Dev Mobile: Trainee, Jr, Pl e Sr | ||
<br> | |||
Atribuições: | * Atribuições: | ||
- Conceito varia muito as responsabilidades | **- Conceito varia muito as responsabilidades | ||
- Programador faz tudo que um analista | **- Programador faz tudo que um analista | ||
- Analista não faz nem o que faz um programador | **- Analista não faz nem o que faz um programador | ||
<br> | |||
Tecnologias: | * Tecnologias: | ||
- Tablet, IoS, Web, Java, JSF, Primefaces | **- Tablet, IoS, Web, Java, JSF, Primefaces | ||
- Android, Ipads, Iphones | **- Android, Ipads, Iphones | ||
- Arquitetura de SW - não importa mais o device | **- Arquitetura de SW - não importa mais o device | ||
- Engenharia de SW: Boas práticas e Padrão de Projeto | **- Engenharia de SW: Boas práticas e Padrão de Projeto | ||
- Análise de Requisitos: Interação direta | **- Análise de Requisitos: Interação direta | ||
<br> | |||
Requisitos: | * Requisitos: | ||
- Trabalho em equipe: Grande sincronismo com a equipe | **- Trabalho em equipe: Grande sincronismo com a equipe | ||
- Capacidade de liderança técnica | **- Capacidade de liderança técnica | ||
- Melhores talentos para cada finalidade | **- Melhores talentos para cada finalidade | ||
- Pensar no futuro: garantir Escalabilidade | **- Pensar no futuro: garantir Escalabilidade | ||
- Ser eficiente: evitar Retrabalho | **- Ser eficiente: evitar Retrabalho | ||
- Interatividade com pessoas: contato com cliente e com equipe de requisitos | **- Interatividade com pessoas: contato com cliente e com equipe de requisitos | ||
- Padronização: De 10, 8 trabalham com frameworks básicos | **- Padronização: De 10, 8 trabalham com frameworks básicos | ||
- Inovação e novos desafios: Ex: BD relacional => BD não relacional | **- Inovação e novos desafios: Ex: BD relacional => BD não relacional | ||
<br> | |||
Ferramentas | * Ferramentas | ||
- Linguagens de programação | **- Linguagens de programação | ||
- GitHub | **- GitHub | ||
- Dispositivos: Iphone, Ipad | **- Dispositivos: Iphone, Ipad | ||
- ObjectVC: poderosa | **- ObjectVC: poderosa | ||
- Swift: Apple Developer | **- Swift: Apple Developer | ||
- Android: Java com Android SDK | **- Android: Java com Android SDK | ||
- IDEs: xCode, Eclipse e Android Studio | **- IDEs: xCode, Eclipse e Android Studio | ||
- Gerenciamento de projetos: Microsoft Project: Cronogramas | **- Gerenciamento de projetos: Microsoft Project: Cronogramas | ||
- Gerenciamento de tarefas: Trello e Assana :Tarefas | **- Gerenciamento de tarefas: Trello e Assana :Tarefas | ||
<br> | |||
Atividade atual | * Atividade atual | ||
- Desenvolve usando ferramentas e tecnologias do estado da arte | **- Desenvolve usando ferramentas e tecnologias do estado da arte | ||
- Não é só desenvolvedor: entra diretamento em projetos | **- Não é só desenvolvedor: entra diretamento em projetos | ||
- Avalia viabilidade de projetos: se compensa implementar | **- Avalia viabilidade de projetos: se compensa implementar | ||
- Analisa riscos | **- Analisa riscos | ||
- Faz pré-projetos | **- Faz pré-projetos | ||
<br> | |||
Oportunidades: | * Oportunidades: | ||
- Fora do Brasil: possibilidades de estudar e/ou trabalhar | **- Fora do Brasil: possibilidades de estudar e/ou trabalhar | ||
- Preocupação: pense na sua própria carreira | **- Preocupação: pense na sua própria carreira | ||
- O mundo clama por profissionais qualificados (especialistas) | **- O mundo clama por profissionais qualificados (especialistas) | ||
- Exige foco, dedicação e especialização | **- Exige foco, dedicação e especialização | ||
- Interessante sites de freelancer | **- Interessante sites de freelancer | ||
- Acumule pontos no (GitHub): vale muito a reputação | **- Acumule pontos no (GitHub): vale muito a reputação | ||
- Crie sua Rede de Contatos é muito importante | **- Crie sua Rede de Contatos é muito importante | ||
<br> | |||
Orientações: | * Orientações: | ||
- Não gosta de programar? Não desanime. Até final do curso eu também não gostava | **- Não gosta de programar? Não desanime. Até final do curso eu também não gostava | ||
- Gaste tempo tentando descobrir o que mais gosta | **- Gaste tempo tentando descobrir o que mais gosta | ||
- Não tire a conclusão à primeira vista | **- Não tire a conclusão à primeira vista | ||
<br> | |||
Resultado tangível: | * Resultado tangível: | ||
- Sationfy: https://arena.im/ | **- Sationfy: https://arena.im/ | ||
<br> | |||
https://www.linkedin.com/in/maarcosilva/detail/recent-activity/posts/ | * Atualmente: | ||
** https://www.linkedin.com/in/maarcosilva/detail/recent-activity/posts/ | |||
Edição das 19h29min de 30 de agosto de 2018
Profissão
Engenheiro de Software
Descrição da atividade
O engenheiro de software é capaz de trabalhar no desenvolvimento e teste de variados programas computacionais, dentre eles estão: aplicativos, jogos, plataformas digitais para atividades educacionais, sistemas embarcados e sistemas específcos, como médicos e bancários, de forma a garantir maior desempenho e produtividade.
O mercado de trabalho para o engenheiro é vasto, existe carência na área em todo o Brasil, podendo atuar, por exemplo, em empresas do setor privado, em órgãos públicos ou em instituições de pesquisa e desenvolvimento de softwares. Porém o principal mercado para este profissional são os polos de tecnologia. Requisitos mínimos Desenvolver softwares e aplicativos. Elaborar documentação e relatórios técnicos.
Requisitos mínimos
- Desenvolvimento de software mobile (Android, iOS).
- Experiência com versionamento e revisão de código.
- Programação, depuração e testes.
- Habilidades em desenvolvimento de sistemas embarcados (hardware e software).
- Manutenção de software
- Gerência de configuração de software
- Gerência de engenharia de software
- Processos de Engenharia de Software
- Ferramentas e Métodos de Engenharia de Software
- Qualidade de software
Ferramentas usadas
Dentre as diversas ferramentas utilizadas, são de maior destaque as IDEs (ambientes de desenvolvimento integrado), que suportam outras ferramentas,como:
- Editor
- Debug
- Geração de código
- Modelagem
- Deploy
- Testes não automatizados
- Testes automatizados
- Refatoração (Refactoring)
- Gestão de Riscos nos projectos de Software
- Uso da Prototipagem na Eng. de Requisitos
Tecnologias envolvidas
Na área de engenharia de software é abordada diversas tecnologias, porém existem aquelas que são de maior importância e que são mais utilizadas, por exemplo, a linguagem de programação, banco de dados e paradigmas de programação, que trabalham com outras tecnologias, como:
- Programação estruturada
- Programação funcional
- Programação orientada a objetos
- Componentes de Software
- Programação orientada a aspecto
Exemplo de resultado tangível
O Engenheiro de Software é um profissional de suma importância dentro de uma empresa, devido as qualidades que possui, que muitas das vezes, um simples programador não tem, como por exemplo, a capacidade de organizar, produzir o resultado esperado, com uma qualidade maior. Muita das vezes, para desenvolvimento de software "pequenos", não é necessário, entretanto, para um software complexo que exige várias funções, interface gráfica, vários pacotes e até mesmo vários programadores, exige planejamento e toda uma ilustração do software, sendo assim, o responsável por estas ações será o Engenheiro de Software.
Apresentação
Foi apresentado para a turma o vídeo criado pelo Engenheiro Marco Silva, abordando vários fatos sobre a profissão, além de algumas dicas para quem deseja trabalhar fora do Brasil.
Link para download do vídeo -> Clique aqui
Facebook do Marco Silva -> Clique aqui
Dúvidas
- 01. O que vem a ser a sigla B2B e B2C?
- Significa Business-To-Business e Business-To-Consumer. No contexto de TIC, denota que as soluções poderão ser criadas e entregues para dois públicos distintos: B - empresas e portanto com um porte e requisitos adequados ou C - consumer, para pessoas individuais.
- Exemplo: Facebook
- Versão tradicional, onde o usuário individual se cadastra e tem acesso com seu usuário ou email
- Versão corporativa: A empresa paga para ter uma versão parecida com o Face normal mas para usar na sua intranet.
- 02. Como é a sequência normal na carreira de um profissional na sua linha de trabalho?
- Normalmente começa como Trainée, se demonstrar vontade e tiver boa performance, pode ser contratado como Analista ou Engenheiro Jr. Depois que começa a participar de projetos se demonstrar competência pode ser promovido para Pleno. A partir dai, mostrando resultados expressivos deve evoluir naturalmente para Senior, tanto pela experiência adquirida quanto pela importância dentro de um equipe e ou de um projeto.
- 03. Em toda a empresa, existe essa segmentação clara nas responsabilidade de cada um?
- Não, nem sempre! Em algumas empresas o programador faz o papel do Analista e de Engenheiro de Software. Em outras, o Analista não faz nem o que deveria fazer, ou seja, muitas vezes, um profissional assume responsabilidades de outras funções e alguns não conseguem entregar (produzir) o que deveriam.
- 04. É interessante atuar como free-lancer? Cite uma forma de ser descoberto?
- Em alguns casos sim, o free-lancer permita que você compare suas habilidades frente a desafios de qualquer lugar do mundo e ainda complemente sua renda financeira. Importante sempre cumprir os compromissos assumidos em questões de tempo e qualidade.
- Atualizando sempre o GitHub.
- 05. O que é uma aceleradora? Qual a diferença de uma incubadora?
- Incubadora apoiam micro e pequenas empresas de acordo com alguma diretiva governamental ou regional. Para isso, a empresa deve apresentar um Plano de Negócios que será avaliado pela Incubadora que tem uma série de critérios formais para incubar um projeto.
- Aceleradora é focada não em uma necessidade prévia, mas sim em empresas que tenham o potencial para crescerem muito rápido e seu modelo de trabalho é buscar startups escaláveis (e não somente uma pequena empresa promissora). Interessante que a empresa tenha um Plano de Negócio mas a Aceleradora busca principalmente uma boa ideia.
- 06. O que significa Viablidade de projeto?
- Significa que o profissional pode assumir o desafio de avaliar técnica, econômica e operacionalmente um detereminado desenvolvimento.
- Para isso tem que fazer uma análise dos riscos do projeto, exigir um pré-projeto delimitando tempo e custo. Neste contexto, tem que conhecer muito bem as habiliidades da equipe. No final, decidir se uma projeto vai ou não em frente. Imaginar a frustração da empresa ou das pessoas envolvidas se ele chegar a conclusão que não e a responsabilidade dele se disser que sim.
- 07. É importante avaliar as Boas Práticas de uma determinada atividade? Cite uma consequência drástica que pode acontevcer?
- É essencial! Entender as Boas Práticas mostra que estaremos avaliando a experiência de outros profissionais para tentarmos fazer o melhor projeto possível. Entendam que se errarmos na escolha de uma plataforma, de uma linguagem, de um banco ou de um sistema qualquer talvez não tenhamos como voltar atrás e se tivermos que "remendar", o custo, prazo e qualidade certamente serão afetados.
- Escalabilidade,ou seja, quando o sistema crescer, aumentar nro de usuários, de transações, etc poderá degradar a performance, gerar bugs ou até ficar inviável seu uso.
- Retrabalho: Outro fator crítico que pode onerar um sistema, pelo simples fato de ter que refazer algo que poderia ter sido feito de uma maneira melhor. Como comparação, imaginem o esforço e custo para trocar toda a fiação de um prédio depois de ter moradores pelo fato de que a bitola dos fios não suportam a carga elétrica atual.
- 08. O que é Scrum e porque usá-lo?
- Scrum é uma metodologia usada em desenvolvimento ágil que permite gestionar e planejar projetos de software. No Scrum. Para isso, o desenvolvimento é segmentado em Sprints (ciclos de desenvolvimento) onde um conjunto de atividades é executado.
- Porque permite algumas condições, como:
- Transparência: Todos podem estar cientes da evolução. Para isso existe um quadro de tarefas (Kanban) e um gráfico Burndown que compartilham informações
- Feedback contínuo: a frequência com que se obtém informações sobre o projeto faz muita diferença. Reuniões diárias e revisões dos Sprints ajudam muito a saber se as ações estã dando resultado
- Melhoria contínua: A cada etapa entregue existem ações para refinar o Backlog do produto (lista de requisitos a serem desenvolvidos)
- Entrega contínua de valor: Disponibilizar para o "cliente", gradativamente partes do desenvolvimento. É como se numa casa, eu construísse primeiro o quarto e mostrasse ao cliente, depois a sala e mais uma entrega, depois a cozinha e assim por diante.
- Alta velocidade: O Scrum permite que times multifuncionais atinjam o seu pleno potencial e alta velocidade conseguindo reduzir o tempo de desenvolvimento e aumentando a eficiência.
Avaliação Vídeo
- Disponibilidade:
v**- Preocupação em ajudar
- - Não conhece nenhum de vocês e gastou muito tempo para gravar este vídeo
- Formação:
- - 5a. turma de SI
- - PET
- - IC
- Atribuições:
- - Engenheiro de SW
- - Empresa StationFy
- - Fundada por brasileiros da UFU (Paulo Martins e Rodrigo Reis)
- - Empreendedor no Vale do Silício
- - Engenheiro de SW em Chicago
- - Envolvido com projetos e produtos
- Evolução:
- - Suporte internet na Algar Tech
- - Graduação
- - Estágio numa Startup em Android
- - Bolsas de IC para se manter
- - Cedro Technologies como desenvolvedor
- - Pegando projetos por fora como freelancer
- - Começou na StationFy part-time (4 hs)
- - Resultados interessantes EUA e Canadá
- - Vaga em aceleradora
- - Sai da Cedro e full-time na StationFy
- - Não curtiu web mas serviu de base
- - Passou de analista para Eng Sw
- Requisitos:
- - Web, Java, JSF, primefaces
- - Dev Mobile: Trainee, Jr, Pl e Sr
- Atribuições:
- - Conceito varia muito as responsabilidades
- - Programador faz tudo que um analista
- - Analista não faz nem o que faz um programador
- Tecnologias:
- - Tablet, IoS, Web, Java, JSF, Primefaces
- - Android, Ipads, Iphones
- - Arquitetura de SW - não importa mais o device
- - Engenharia de SW: Boas práticas e Padrão de Projeto
- - Análise de Requisitos: Interação direta
- Requisitos:
- - Trabalho em equipe: Grande sincronismo com a equipe
- - Capacidade de liderança técnica
- - Melhores talentos para cada finalidade
- - Pensar no futuro: garantir Escalabilidade
- - Ser eficiente: evitar Retrabalho
- - Interatividade com pessoas: contato com cliente e com equipe de requisitos
- - Padronização: De 10, 8 trabalham com frameworks básicos
- - Inovação e novos desafios: Ex: BD relacional => BD não relacional
- Ferramentas
- - Linguagens de programação
- - GitHub
- - Dispositivos: Iphone, Ipad
- - ObjectVC: poderosa
- - Swift: Apple Developer
- - Android: Java com Android SDK
- - IDEs: xCode, Eclipse e Android Studio
- - Gerenciamento de projetos: Microsoft Project: Cronogramas
- - Gerenciamento de tarefas: Trello e Assana :Tarefas
- Atividade atual
- - Desenvolve usando ferramentas e tecnologias do estado da arte
- - Não é só desenvolvedor: entra diretamento em projetos
- - Avalia viabilidade de projetos: se compensa implementar
- - Analisa riscos
- - Faz pré-projetos
- Oportunidades:
- - Fora do Brasil: possibilidades de estudar e/ou trabalhar
- - Preocupação: pense na sua própria carreira
- - O mundo clama por profissionais qualificados (especialistas)
- - Exige foco, dedicação e especialização
- - Interessante sites de freelancer
- - Acumule pontos no (GitHub): vale muito a reputação
- - Crie sua Rede de Contatos é muito importante
- Orientações:
- - Não gosta de programar? Não desanime. Até final do curso eu também não gostava
- - Gaste tempo tentando descobrir o que mais gosta
- - Não tire a conclusão à primeira vista
- Resultado tangível:
- - Sationfy: https://arena.im/