Programação de alto nível vs. baixo nível. Eu realmente tenho que escolher? [fechadas]


13

De vez em quando me perguntam em entrevistas que eu gosto do nível mais baixo ou mais alto. Parece-me que a mensagem implícita é que ambos são uma especialidade e querem saber em que direção estou indo. O problema é que pareço gostar de ambos. Nível baixo é extremamente desafiador e geralmente requer uma grande quantidade de conhecimento esotérico. Alto nível é onde todas as coisas sexy acontecem: aplicativos que as pessoas usam diretamente, resultados que podem ser facilmente demonstrados (exibidos) de uma maneira acessível a todos, e você começa a trabalhar com ferramentas realmente avançadas e a interagir com novas tecnologias.

Eu adoraria fazer as duas coisas, mesmo que isso signifique alternar entre elas (duvido que haja trabalhos que me permitam fazer as duas coisas simultaneamente), mas acho que o setor recompensa os especialistas mais do que os generalistas. Será realmente uma carreira problemática, se eu nunca escolher um sobre o outro? É prático alternar entre os dois, no sentido de que, se eu deixasse um emprego fazendo um deles, não sentiria "atrito" tentando conseguir um emprego fazendo o outro (assumindo que estou razoavelmente informado)? Existem oportunidades de carreira em que você consegue fazer as duas coisas?

Eu realmente tenho que escolher um sobre o outro?


Você pode querer olhar para esta pergunta em SO: stackoverflow.com/questions/919568/…
user281377

Respostas:


5

Primeiro, qualquer que seja o caminho escolhido, lembre-se de que o ambiente pode mudar. :)

Além disso, acho que você não precisa escolher entre um ou outro. Em vez disso, suas opções dependem mais do projeto e do grupo com o qual você está trabalhando.

  • É provável que, ao se candidatar a um emprego especializado em uma grande corporação, você ache difícil executar outras tarefas.
  • Também é provável que um papel generalista não lhe dê tempo para aprofundar uma pequena parte.
  • É igualmente provável que ter algumas habilidades generalistas o torne mais eficiente no trabalho especializado, uma vez que você não precisará depender tanto dos outros para seguir em frente.
  • Também é possível que um papel generalista precise de algum conhecimento especializado e, se você procurar uma pequena empresa ou startup que trabalha na área em que se especializa, poderá ter muitas oportunidades de brilhar em seu campo de especialização.

Na verdade, estou enfrentando esses problemas no meu trabalho atual.

Eu me especializei em C ++, OpenGL, simulações em 3D, arquitetura de mecanismos de jogos e outras coisas, mas no ano passado eu tenho usado bastante um ferro de solda (misturando placas USB, protótipos, servos e motores, além de ajustes e programar esses servocontroladores). Talvez eu também precise criar protótipos de sites para alguns serviços de que precisamos.

É muito divertido, mas eu não gostaria de fazer isso para sempre, pois minha especialização diminui um pouco, e provavelmente há outros que são melhores nisso de qualquer maneira. Espero que a empresa cresça e possamos contratar mais engenheiros. Somos apenas dois caras de C ++ / Python no momento (comigo gastando 60-75% do meu tempo em hardware).

Portanto, selecione seus projetos com cuidado e você não precisará abandonar nada, mas precisará verificar para onde sua carreira está indo de vez em quando (como todos).


12

Na minha experiência, empresas maiores precisam de especialistas e empresas menores precisam de generalistas. Se você deseja ser generalista, procure e inscreva-se em empresas menores.


3
Apenas para dizer que as empresas maiores são as que podem pagar as taxas mais altas exigidas pelos especialistas.
Oded

3
Não é o salário que determina a distinção especialista / generalista, tanto quanto o número de programadores que sua empresa possui. Com muitos programadores, é mais eficiente atribuir pessoas específicas a produtos específicos. Com um punhado de programadores, eles precisam cobrir todas as necessidades de desenvolvimento da empresa.
dan04

2

Em nosso campo, acho que temos que ser generalistas em algum nível enquanto desenvolvemos uma especialidade ou mesmo algumas especialidades. Nunca é demais desenvolver nossas habilidades em muitas áreas, pois alguns projetos podem exigir que você seja versátil. Como foi mencionado, quanto maior a empresa, maior será a probabilidade de você precisar se concentrar em apenas uma área. Nessas situações, acho que a pergunta de sua preferência é mais do que provável tentar descobrir onde eles o colocariam se o contratassem.


2

Eu acho que é bom fazer essa pergunta, para que eles saibam o que você está buscando, mas a explicação que você postou aqui também é uma resposta muito boa: "Eu gosto de fazer as duas coisas". Idiomas de alto e baixo nível atraem diferentes tipos de pessoas, enquanto idiomas de baixo nível atraem pessoas que realmente gostam de conhecer os pequenos detalhes do sistema, como ele funciona etc., idiomas de alto nível atraem pessoas mais interessadas no processo de negócios e na organização em si. Muitas pessoas realmente gostam de idiomas de alto nível, mas não conseguem suportar um nível baixo (ou o contrário).

Portanto, é muito importante solicitar seu perfil e intenções, mas sua resposta ao postar é totalmente aceitável.


1

Você não precisa escolher, embora sua vida fosse mais fácil (se não mais feliz), se você escolher. A maioria das empresas procura um ou outro, mas se você encontrar um lugar onde eles querem alguém que conhece os dois mundos, você ganhará o jackpot.

O que você absolutamente não deve fazer é aplicar a abordagem errada a um problema.

E, claro, às vezes as coisas não saem como o planejado, comecei com um amor pela montagem e C e com uma desconfiança de tudo OO e me tornei um desenvolvedor Java. Agora, acho difícil voltar, porque perdi dez anos de aprendizado e novas tecnologias. Portanto, a lição aqui é que, se você quiser mudar, mantenha contato.

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.