Profissão
Engenheiro de Software
Descrição da atividade
- O engenheiro de software é capaz de trabalhar no projeto, 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.
- Dependendo da empresa o Engenheiro de Software pode assumir a missão de avaliar o Estado da Arde da Tecnologia da Informação e ser resposável por definir, implantar e acompanhar a implantação de novas tecnologias com linguagens, frameworks e plataformas.
- O mercado de trabalho para o engenheiro é vasto, existe carência na área em todo o Brasil e mundo, 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.
- Responsabilidades básicas:
- Desenvolver softwares e aplicativos.
- Elaborar documentação e relatórios técnicos.
- Estar sempre atualizado com a evolução tecnológica
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 do Engenharia de Software são abordadas 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 outros padrões, 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.
- Efetivamente o resultado tangével é composto de:
- Código versionado e disponível. GItHub, por exemplo
- Resultados dos testes unitários e de sistema
- Documentação completa com escopo, requisitos funcionais e requisitos não-funcionais
Apresentação
- Apresentação de um 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?
- 02. Como é a sequência normal na carreira de um profissional na sua linha de trabalho?
- 03. Em toda a empresa, existe essa segmentação clara nas responsabilidade de cada um?
- 04. É interessante atuar como free-lancer? Cite uma forma de ser descoberto?
- 05. O que é uma aceleradora? Qual a diferença de uma incubadora?
- 06. O que significa Viablidade de projeto?
- 07. É importante avaliar as Boas Práticas de uma determinada atividade? Cite uma consequência drástica que pode acontevcer?
- 08. O que é Scrum e porque usá-lo?
Tecnologia a ser pesquisada
- Git e GitHub
- Para que servem?
- Para que no processo de desenvolvimento de um sistema, se possa fazer o Deploy. Entenda por Deploy a fase de entrada em produção de um sistema. É fundamental termos um ferramenta que ajude no processo, obrigatório quando temos pessoas equipes codificando cada requisito em paralelo
- Diferença entre os dois
- Git é a ferramenta que permite o versionamento e GihHub é o local que mantém os códigos versionados
- Outras soluções no mercado
- CVS e Subversion
- Como funciona?
- Ao terminar a edição de um código (gradativamente), devemos fazer o Commit, ou seja, atualizar a versão do código. Neste momento, o Git cria um snapshot que registra o momento de cada Commit. A partir daí podemos ter acesso a todas as versões e eventualmente, cloná-las, criar um branch, merge ou outras funções interessantes. Dessa forma, temos um total controle sobre o código mesmo que esteja sendo atualizado por inúmeras pessoas.
- Exemplos de uso:
- Link
- Para que servem?