Tipos de programadores

quantos tipos de programadores conhece? E, se você é um desenvolvedor, a que tipo você se refere? No mundo real, as fronteiras entre diferentes tipos de desenvolvedores são desfocadas. Quanto mais profissional você se tornar, mais tipos você vai caber. Então vamos ver, quantos tipos de desenvolvedores estão disponíveis na indústria de desenvolvimento de software.Antes de começarmos, gostaríamos de agradecer a Lorenzo Pasqualis, cujo artigo nos inspirou a criar este material.

para ser honesto, a maioria de nós reconhece apenas três tipos de desenvolvedores de software: frontend, backend e fullstack. Isso é óbvio, mas isto é apenas metade da verdade. Hoje em dia diferentes desenvolvedores com as mesmas pilhas de tecnologia improvável pode aplicar suas habilidades e conhecimento para a área diferente. É como pedir ao seu programador móvel para trabalhar na criação de um jogo. Ele pode conhecer as ferramentas, mas não é um desenvolvedor de jogos. E isso faz uma enorme diferenciação nos tipos de desenvolvedores.

vamos começar com os principais tipos:

Frontend

ontem escrevemos o maior artigo com a Folha Cheat para frontenders. Então, quem são eles? Este é um tipo de desenvolvedores que se especializam em interfaces visuais de usuário, estética e layouts. Seu código é executado em um navegador web, no computador do usuário do site. Eles trabalham na criação de aplicativos e websites. Hardware não é o que os especialistas do frontend normalmente pensam.

seu trabalho requer uma compreensão da interação homem-máquina e princípios de design mais do que a teoria da ciência da computação.

competências de desenvolvimento do Frontend:

  • design of user interface (UI)
  • design of user experience (UX)
  • CSS
  • JavaScript
  • HTML
  • IU frameworks.

os devs Frontend precisam estar familiarizados com frameworks como Bootstrap, Foundation, Backbone, AngularJS, e EmberJS, que asseguram um conteúdo de grande aparência, não importa o dispositivo, e bibliotecas como jQuery e menos, que empacotam o código em uma forma mais útil, de economia de tempo. Um monte de listas de tarefas de desenvolvedor front-end também exigem experiência com Ajax, uma técnica amplamente utilizada para usar Javascript que permite páginas carregadas dinamicamente baixando dados do servidor em segundo plano.

infra-estrutura

o segundo tipo mais popular de desenvolvedores. O desenvolvedor da infra-estrutura é especializado no design, implementação, lógica de núcleo funcional, desempenho e escalabilidade de um pedaço de software ou sistema rodando em máquinas que são remotas do usuário final. Eles integram uma vasta gama de serviços, tais como bases de dados, cache, logging, sistemas de E-mail, etc.

o que torna possível o front-end de um site? Onde estão armazenados todos esses dados? Estas são as questões para o desenvolvimento de infra-estruturas. A infra-estrutura de um site consiste de um servidor, uma aplicação e um banco de dados. Um desenvolvedor de infra-estrutura constrói e mantém a tecnologia que alimenta os componentes que, em conjunto, permitem que o lado virado para o utilizador do site exista mesmo em primeiro lugar.

Back-end do desenvolvimento de competências:

  • Java
  • C, C++
  • Ruby
  • Python
  • Scala
  • Ir, etc.

eles também usam ferramentas como MySQL, Oracle, e SQL Server para encontrar, Salvar ou alterar dados e servi-lo de volta para o usuário em código front-end. As aberturas de trabalho para desenvolvedores de backend muitas vezes também requerem experiência com frameworks PHP como Zend, Symfony, e CakePHP; experiência com software de controle de versões como SVN, CVS, ou Git; e experiência com Linux como um sistema de desenvolvimento e implementação.

Fullstack

Call this developer a wizard, but he (or she) does both frontend and backend work. O desenvolvedor fullstack tem as habilidades necessárias para criar uma aplicação web totalmente funcional. Considera-se que trabalhar tanto do lado do servidor quanto do lado do cliente profissionalmente abre mais oportunidades. São valetes de todos os ofícios.

a complexidade do desenvolvimento completo da pilha pode ser ilustrada com esta imagem (claro, há mais tecnologias):

imagem via TechCrunch

:

  • para definir e configurar servidores Linux
  • para escrever APIs do lado do servidor
  • para mergulhar no JavaScript do lado do cliente ligar uma aplicação
  • para ativar um “projeto de olho” para o CSS

Mobile developer

Este é um desenvolvedor que escreve código para aplicativos que são executados de forma nativa no consumidor de dispositivos móveis, como smartphones e tablets. Este tipo apareceu após o boom dos dispositivos móveis no início dos anos 2000 e a explosão do mercado de smartphones. Antes disso, o desenvolvimento móvel foi considerado um subconjunto de desenvolvimento embedded (vamos escrever sobre Desenvolvedores embedded neste artigo também).

Um desenvolvedor móvel entende as complexidades de sistemas operacionais móveis, como iOS e Android, e o ambiente de desenvolvimento e frameworks utilizados para escrever software de sistemas operacionais.

capacidade de desenvolvimento móvel:

  • Java
  • Swift
  • objective-C
  • C, C++ e Java
  • Interfaces de Programação de Aplicativo (API), como o Apple iOS, Android, Windows Mobile e Symbian
  • Web desenvolvimento de linguagens como o HTML 5 e CSS
  • móvel multi-plataforma suites, como a Antena e o AMPLIFICADOR ( gestão de contas de Gestão-Promoção)

desenvolvedor de jogos

Cada jogo viciado criança quer se tornar um desenvolvedor de jogos no futuro. Mas esta ocupação é tão romântica e divertida como complicada e exigente.

desenvolvedor de jogos é especializado em Escrever jogos e pode cair em uma das outras categorias de desenvolvedores, mas muitas vezes eles têm conhecimentos e habilidades específicas na concepção e implementação de experiências de jogos envolventes e interativos.

habilidades para desenvolvedores de jogos:

  • DirectX, OpenGL, Unity 3D, WebGL frameworks
  • languages such as C, C++, and Java
  • JavaScript and HTML5
  • Swift and Java for mobile devices.Este tipo de desenvolvedor escreve programas de software para analisar conjuntos de dados. Eles são muitas vezes encarregados de análise estatística, aprendizagem de máquinas, visualização de dados e modelagem preditiva. Muito romântico, não é? Mas a lista de habilidades que um cientista de dados deve ter cobre um monte de coisas relacionadas à ciência:
    • Estatística linguagens de programação, como o R ou Python, e uma consulta ao banco de dados linguagens como SQL
    • Entender as estatísticas e técnicas diferentes que são (ou não são) uma abordagem válida
    • Familiaridade com a máquina de métodos de aprendizagem
    • Sabendo Multivariável de Cálculo e Álgebra Linear princípios
    • Saber como lidar com as imperfeições de dados (incluindo a falta de valores, inconsistente de seqüência de caracteres de formatação, etc.)
    • Visualização e comunicação de dados é incrivelmente importante
    • Tendo uma forte engenharia de software fundo
    • Capacidade de resolver alto nível de problemas

    DevOps developer

    Este é um tipo de desenvolvedor familiarizado com tecnologias para desenvolver, implementar e integrar o sistema e administrar o back-end de software e sistemas distribuídos.

    para explicar o caminho:

    1. Um desenvolvedor (programador) cria aplicações
    2. Ops, implanta, gerencia, monitora aplicações
    3. DevOps cria aplicativos E implanta/gerencia/monitora-los.

    DevOps foi possível por causa da nuvem e das ferramentas/plataformas para tornar a implantação e gestão fácil. Competências necessárias ao devops:

    • Kubernetes
    • Docker
    • Apache Mesos
    • the HashiCorp stack (Terraform, Vagrant, Packer, Vault, Consul, Nomad)
    • Jenkins, etc.

    Engenheiro de desenvolvimento de Software no teste

    este tipo de desenvolvedor é responsável pela escrita de software para validar a qualidade dos sistemas de software. Eles criam testes, ferramentas e sistemas automatizados para garantir que os produtos e processos funcionem como esperado. Competências necessárias para os engenheiros nos testes:

    • Python
    • Ruby
    • selénio.

    desenvolvimento incorporado

    o desenvolvimento incorporado trabalha com hardware que não é comumente classificado como computadores. Por exemplo, microcontroladores, sistemas em tempo real, interfaces eletrônicas, set-top boxes, dispositivos de consumo, dispositivos IoT, drivers de hardware e transmissão de dados em série são incluídos nesta categoria.

    desenvolvedores de sistemas Embarcados, muitas vezes, o trabalho com idiomas como:

    • C, C++
    • Assembly
    • Java ou tecnologias proprietárias, quadros, caixas de ferramentas e

    Com o embedded developer definição, gostaríamos de finalizar a lista de developer’ tipos. Nomeamos para você os tipos de desenvolvedor principais que são fundamentalmente diferentes. Mas você também podia ouvir sobre:

    – web developer (com a finalidade de desenvolvimento web é óbvio)

    desenvolvedor de aplicativos (que é proficiente na criação de diferentes tipos de aplicações)

    – segurança do desenvolvedor (que cria sistemas, métodos e procedimentos para testar a segurança de um sistema de software)

    – CRM developer (eles ficam com a SAP, Salesforce, Sharepoint, e de Planejamento de Recursos Empresariais)

    Big data developer (raramente encontrado, este tipo de desenvolvedores utilizam sistemas de armazenamento distribuído e processamento de enormes quantidades de dados, tais como o MapReduce, do Hadoop, e Faísca)

    – desenvolvedores gráficos (eles se especializam em escrever software para renderização, iluminação, sombreamento, sombreamento, abate e gestão de cenas)

    Subscreva a nossa newsletter semanal para encontrar coisas mais interessantes sobre o desenvolvimento de software!