Etiqueta: visualeditor |
Etiqueta: visualeditor |
||
| Linha 93: | Linha 93: | ||
* Pratique conhecimentos de algoritmo e habilidades de criação de códigos. | * Pratique conhecimentos de algoritmo e habilidades de criação de códigos. | ||
* Domínio do Inglês. | * Domínio do Inglês. | ||
-'''Qual a diferença entre um desenvolvedor Back-End e um Engenheiro de Software?''' | |||
A principal diferença entre eles está na área de atuação e função de cada profissão, mesmo que os requisitos entre ambos são muito parecidos e podem ser encontrados no mesmo espaço de trabalho, as profissões em si estão distantes. O desenvolvedor Back-End utiliza de conhecimento e ferramentas já conhecidas para desenvolver sistemas/softwares mais eficientes e dinamizar atividades do cotidiano. Já o Engenheiro de Software, mesmo que pode ser encontrado em uma empresa fazendo algo parecido que o desenvolvedor Back-End, dedica seu tempo em pesquisas para criar técnicas computacionais melhores que podem ser usadas tanto por ele ou por qualquer outro desenvolvedor. | |||
- | - | ||
Edição das 02h10min de 22 de julho de 2017
Evolução na profissão
A Engenharia de Software surgiu em meados dos anos 1970 em uma tentativa de contornar a crise do software e dar um tratamento de engenharia ao desenvolvimento de sistemas de software complexos. Um sistema de software complexo se caracteriza por um conjunto de componentes abstratos de software encapsulados na forma de procedimentos, funções, módulos, objetos ou agentes interconectados entre si, compondo a arquitetura do software, que deverão ser executados em sistemas computacionais.
Atualmente existe um destaque todo especial para a Engenharia de Software na Web. Também utilizado por Presmann a sigla WebE, é o processo usado para criar WebApps de alta qualidade. Embora seus princípios básico sejam muito próximos da Engenharia de Software clássica, existem peculiaridades específicas e próprias.
Outra área de tendência em Engenharia de Software trata da aplicação de técnicas otimização matemática para a resolução de diversos problemas da área. A área, denominada Search-based software engineering, ou Otimização em engenharia de software em Português, apresenta vários resultados interessantes.
Eventos acadêmicos também mostram tópicos interessantes sobre futuras tendências de engenharia de software. O Brasil em 2013 sedia grandes eventos de engenharia como a Conferência Internacional de Engenharia de Requisitos e a Escola Latino Americana de Engenharia de Software.
O Brasil é o oitavo país no ranking mundial de desenvolvedores, fabricantes e distribuidores de softwares, movimentando cerca de 27 bilhões de dólares apenas com o mercado interno, sem considerar as exportações. Esse cenário mantém o setor aquecido para os engenheiros. O uso massivo de celulares e tablets pela população brasileira também eleva a busca por profissionais aptos a lidar com esses sistemas. Neste caso, o engenheiro de software é contratado para desenvolver jogos e outros aplicativos. O principal mercado para o profissional são os polos de tecnologia da Região Sudeste, além do Porto Digital, em Recife. A demanda internacional por esse engenheiro também é grande.
“Quase 14 mil companhias atuam no mercado brasileiro de Tecnologia da Informação, segundo a Associação Brasileira das Empresas de Software (Abes). Essas empresas dedicam-se ao desenvolvimento, à fabricação, à comercialização e à distribuição de hardwares e softwares (72% do total) e à prestação de serviços de informática (27%). Juntas, movimentaram 60 bilhões de dólares em 2015. As 1.600 empresas filiadas à Abes geram 120 mil empregos diretos.” - Guia do Estudante.
Descrição da atividade atual
O engenheiro desta área dedica-se ao desenvolvimento de softwares e programas computacionais. Desenhando e testando novos programas, além de fazer sua manutenção e revisão. Cria aplicativos, jogos, plataformas digitais para atividades educacionais, sistemas embarcados e sistemas específicos, como médicos e bancários, de forma a elevar seu desempenho e produtividade. O bacharel também pode trabalhar em empresas públicas ou privadas, na área de inovação em startups e em grandes companhias de tecnologia.
Requisitos mínimos para exercer a profissão
O principal atributo para ter sucesso na área está associado à capacidade de abstração e aprendizado. O conjunto de tecnologias evoluem muito rapidamente, é impossível se dizer expert em algo hoje em dia. Por outro lado ser capaz de entender o cenário e os componentes em horas é o mais relevante.
Domínio do Inglês não é opcional.
Estudar código com base em ao menos uma das seguintes linguagens de programação orientada a objetos: C++, Java ou Python.
Aprenda outras linguagens de programação: repertório com Java Script, CSS, HTML, Ruby, PHP, C, Perl, Shell, Lisp e Scheme.
Desenvolva raciocínio lógico e conhecimento em matemática discreta
Desenvolva conhecimentos fortes em sistemas operacionais e em algoritmos/estruturas de dados.
Aprenda UX Design, recursos online de inteligências artificiais, criptografia, programação paralela e como construir compiladores.
Pratique conhecimentos de algoritmo e habilidades de criação de códigos.
Ferramentas usadas no dia-a-dia
Jira - É uma ferramenta que permite o monitoramento de tarefas e acompanhamento de projetos garantindo o gerenciamento de todas as suas atividades em único lugar (licença comercial).
- Github - GitHub é uma plataforma de hospedagem de código para controle de versão e colaboração. Ele permite que você e outros trabalhem juntos em projetos de qualquer lugar. O GitHub usa o sistema de versionamento de projeto que hoje é conhecido como Git.
- IntelliJ - IDE para desenvolver em Java.
- Teamcity - é uma ferramenta de integração contínua, que consiste em integrar o trabalho diversas vezes ao dia, assegurando que a base de código permaneça consistente ao final de cada integração. Sua principal característica é a execução de testes automáticos.
- Jenkins - mesma função do Teamcity.
- Linux
Tecnologias envolvidas
- Todo o stack da internet+HTTP (Html, javascript, angular, jquery).
- Java (Full stack).
- Python.
- Shell.
Exemplo de resultado tangível
-Desenvolvimento de software.
-Manutenção de software.
-Aplicação de tecnologias e práticas de gerência de projetos.
-Inovações de tecnologias.
- sistemas de software completos, seguros, amigáveis, usáveis, com qualidade, fáceis de manter e custo justo.
Upload da apresentação
https://drive.google.com/open?id=0B10QLPXspoxvSGtGWkl6cm1WSm9NT3ZtenZGYUNLejg4MXc0
Dúvidas
-Qual a diferenca entre o engenheiro de software e gerente de projetos?
R: A gestão de projetos tende a buscar uma visão ampla e geral a respeito de quaisquer tipos de projetos. O profissional de gestão de projetos é capacitado para gerenciar projetos das mais variadas naturezas, tendo como foco o planejamento, adequação e tratativa de situações problema, envolvendo recursos variados, como o orçamento, prazos e capital humano.A engenharia de software trata, em geral, das estratégias diversas que o desenvolvimento de aplicações poderá utilizar, padrões, técnicas, modelos e tendências.A principal diferença está no fato de que, como gerente de projetos, você provavelmente irá lidar mais com pessoas que com aplicações, análise e desenvolvimento. Embora as duas áreas sofram com pouca mão de obra qualificada, um gerente de projetos, em geral, ganha mais que um engenheiro de software.
-O que faz o engenheiro de software?
R: A engenharia de software é o ramo da engenharia que se ocupa basicamente do desenvolvimento e manutenção de técnicas computacionais. O profissional desta área dedica-se à aplicação de inovações tecnológicas no desenvolvimento de novos sistemas computacionais podendo assim, desenvolver bancos de dados, novos softwares, jogos e programas interativos. O engenheiro de software pode atuar tanto em empresas públicas e privadas, assim como pode exercer a profissão como autônomo. O salário gira em torno dos 5.000 reais mensais.
-O que é engenharia de software?
R: Engenharia de software é uma área da computação voltada à especificação, desenvolvimento e manutenção de sistemas de software, com aplicação de tecnologias e práticas de gerência de projetos e outras disciplinas, visando organização, produtividade e qualidade.
-O que é preciso para se tornar um engenheiro de software bem sucedido?
R:
- Estudar código com base em ao menos uma das seguintes linguagens de programação orientada a objetos: C++, Java ou Python
- Aprenda outras linguagens de programação: repertório com Java Script, CSS, HTML, Ruby, PHP, C, Perl, Shell, Lisp e Scheme.
- Teste os seus códigos: aprenda a encontrar bugs, crie testes e quebre o seu próprio software
- Desenvolva raciocínio lógico e conhecimento em matemática discreta
- Desenvolva conhecimentos fortes em sistemas operacionais e em algoritmos/estruturas de dados
- Aprenda UX Design, recursos online de inteligências artificiais, criptografia, programação paralela e como construir compiladores.
- Trabalhe com outros programadores e em projetos fora da sala de aula, como criar e manter um site, construir um servidor ou fazer um robô.
- Trabalhe em um pequeno pedaço de um grande sistema, leia e compreenda o código existente, rastreie a documentação.
- Pratique conhecimentos de algoritmo e habilidades de criação de códigos.
- Domínio do Inglês.
-Qual a diferença entre um desenvolvedor Back-End e um Engenheiro de Software?
A principal diferença entre eles está na área de atuação e função de cada profissão, mesmo que os requisitos entre ambos são muito parecidos e podem ser encontrados no mesmo espaço de trabalho, as profissões em si estão distantes. O desenvolvedor Back-End utiliza de conhecimento e ferramentas já conhecidas para desenvolver sistemas/softwares mais eficientes e dinamizar atividades do cotidiano. Já o Engenheiro de Software, mesmo que pode ser encontrado em uma empresa fazendo algo parecido que o desenvolvedor Back-End, dedica seu tempo em pesquisas para criar técnicas computacionais melhores que podem ser usadas tanto por ele ou por qualquer outro desenvolvedor.
-