Quais são algumas especialidades conhecidas / comuns de desenvolvimento? [fechadas]


10

Em uma resposta que postei em outra pergunta, observei que é provável que haja cada vez mais especialização em desenvolvimento de software: existem especialistas ou especialistas para determinado tipo de programação.

Pergunto-me, que especialidades existem em quantidades razoáveis ​​no setor atualmente (não na academia), que não são específicas da tecnologia (por exemplo, para essa discussão, winforms não é uma especialidade)? Também estou interessado no setor em que esse especialista teria que trabalhar, se necessário.

Respostas:


18

Na minha opinião, existem duas categorias de especialização:

  1. especialização em um campo de programação específico;
  2. ou especialização em um domínio de problema.

Exemplos de um tópico de programação seriam:

  • embutido
  • GUI
  • Visualização
  • Teste

Depois, há especialização em um domínio de problema específico, como

  • Financeiro
  • Científico
  • Médico
  • Quase qualquer grande indústria pode ser considerada um domínio problemático

Eu acho que é uma distinção importante.


4

A programação de sistemas embarcados (na qual trabalho há mais de 30 anos) requer uma mentalidade bastante diferente da maioria dos outros tipos de desenvolvimento de software. O alcance da capacidade de computação varia muito, de microcontroladores de 8 bits que custam 30 centavos em quantidade a microprocessadores de 32 bits executando Linux ou algum outro sistema operacional comum. Atualmente, estou fazendo projetos nos dois extremos desta escala. A memória de código nos micros menores pode ter apenas alguns KB, com apenas algumas centenas de bytes de RAM. Um micro de 16 bits de gama média e custando US $ 3 em quantidade pode ter 256 KB de armazenamento de programa e 16 KB de RAM.

Além dos recursos limitados de memória, um dos aspectos da programação incorporada que é diferente de outras áreas do desenvolvimento de software é que o programador geralmente lida diretamente com o hardware no nível do registro - seja no próprio micro ou em um periférico conectado a ele. o micro via barramentos seriais como UART, SPI ou I2C. Por esse motivo, os micros embarcados low-end geralmente são programados em linguagem C ou assembly.

Os sistemas embarcados costumam lidar com eventos em tempo real; portanto, um programa de firmware incorporado geralmente possui muitas rotinas de interrupção e, possivelmente, um pequeno RTOS (SO em tempo real). A depuração desses sistemas geralmente requer assistência de hardware usando duas linhas dedicadas no micro, para que os pontos de interrupção possam ser definidos remotamente a partir de um PC. Analisadores lógicos, analisadores de barramento e osciloscópios são ferramentas adicionais usadas para depurar esses sistemas.

Devido aos aspectos de hardware do desenvolvimento incorporado, os desenvolvedores geralmente têm algum conhecimento em eletrônica. (Eu tenho diplomas em EE e CS).


1

A função / equipe "Developer DBA" existe, mas não é comum o suficiente ou é apreciada.

Falando sobre lojas maiores, uma equipe de DBA de produção pode ter algumas instâncias de 1000 SQL Server para gerenciar e monitorar, fornecer recuperação de desastres, estabelecer contato com equipes de SAN, rede e SO, etc.

Quem existe para as equipes de desenvolvimento? Tuning? Índices? Projeto? Padrões de codificação?

Dizendo que, como DBA de desenvolvedor, conheci muitos desenvolvedores de clientes que sabem mais sobre bancos de dados do que eu ... :-)

Obviamente, o conhecimento do negócio também é útil. se você é contratado para melhorar algum código que precifica derivativos complexos em banco de investimento, alguns conhecimentos no assunto são quase tão importantes quanto as habilidades de codificação.


0

Há também a distinção de conhecer um tipo específico de solução de software, como qualquer um dos seguintes:

  • Planejamento de Recursos Empresariais
  • Gerenciamento de Relacionamento com o Cliente
  • Sistema de gerenciamento de conteúdo

É provável que existam outros, mas essa é outra forma de especialidade em que se poderia trabalhar para quase qualquer tipo de empresa que potencialmente personalizasse as opções acima. No meu caso, trabalhei em um sistema de gerenciamento de conteúdo há alguns anos, agora que eu diria que é uma especialidade em certo sentido.

Algo como Desenvolvimento Web pode não ser específico o suficiente, pois pode haver muitas especialidades nessa área, ou contaria o que você deseja?


Hmm, espero especialidades diferentes das suas habilidades de implementação. Por exemplo, um especialista em IA não precisa usar C ++ / Prolog / qualquer idioma. Desenvolvimento web como eu vê-lo nos dias de hoje une o implemenation fortemente com as tecnologias (asp.net mvc = RoR - o conhecimento traduzível é a programação principalmente geral e conhecimentos plataforma)
Steven Evers
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.