Programación de alto nivel vs. bajo nivel. ¿Realmente tengo que elegir? [cerrado]

13

De vez en cuando me preguntan en las entrevistas cuál me gusta más: nivel bajo o nivel alto. Me parece que el mensaje implícito es que ambos son una especialidad y quieren saber en qué dirección me dirijo. El problema es que parece que me gustan ambos. El bajo nivel es extremadamente desafiante y a menudo requiere una gran cantidad de conocimiento esotérico. El alto nivel es donde suceden todas las cosas sexys: aplicaciones que las personas usan directamente, resultados que pueden demostrarse fácilmente (mostrarse) de una manera accesible para todos, y puedes trabajar con herramientas realmente avanzadas e interactuar con nuevas tecnologías.

Realmente me encantaría hacer ambas cosas, incluso si eso significa alternar entre ellas (dudo que haya trabajos que me permitan hacer ambas cosas simultáneamente), pero supongo que la industria recompensa a los especialistas más que a los generalistas. ¿Será realmente problemático en mi carrera si nunca elijo uno sobre el otro? ¿Es práctico alternar entre los dos en el sentido de que si tuviera que dejar un trabajo haciendo uno de ellos, no debería experimentar "fricción" al tratar de hacer un trabajo haciendo el otro (suponiendo que estoy razonablemente al tanto)? ¿ Hay oportunidades de carrera donde puedes hacer ambas cosas?

¿Realmente tengo que elegir uno sobre el otro?

EpsilonVector
fuente
Es posible que desee ver esta pregunta en SO: stackoverflow.com/questions/919568/…
user281377

Respuestas:

5

Primero, cualquiera que sea el camino que elija, tenga en cuenta que su entorno podría cambiar. :)

Además, no creo que tenga que elegir entre uno u otro. Por el contrario, sus opciones dependen más del proyecto y del grupo con el que está trabajando.

  • Es probable que al solicitar un trabajo especializado en una gran corporación, le resulte difícil realizar otras tareas.
  • También es probable que un rol generalista no te dé tiempo para profundizar en una pequeña parte.
  • Es igualmente probable que tener algunas habilidades generalistas lo haga más eficiente en el trabajo especializado, ya que no tendrá que depender tanto de otros para seguir adelante.
  • También es posible que un rol generalista necesite un poco de conocimiento especializado, y si busca una pequeña empresa o startup que trabaje en el área donde se especializa, podría tener una amplia oportunidad para brillar en su campo especializado.

En realidad estoy enfrentando estos problemas en mi trabajo actual ...

Me he especializado en C ++, OpenGL, simulaciones 3D, arquitectura de motores de juegos y esas cosas, pero el año pasado estuve usando bastante un soldador (uniendo placas USB, prototipos, servos y motores, así como afinando y programar estos servocontroladores). También podría tener que hacer algunos prototipos de sitios web para algunos servicios que necesitamos.

Es muy divertido, pero no me gustaría hacerlo para siempre, ya que mi especialización disminuye un poco, y probablemente hay otros que son mejores en eso de todos modos. Esperemos que la empresa crezca y podamos contratar más ingenieros. Solo somos dos chicos de C ++ / Python en este momento (conmigo gasto el 60-75% de mi tiempo en hardware).

Por lo tanto, seleccione sus proyectos con cuidado y no tendrá que abandonar nada, pero debe verificar hacia dónde se dirige su carrera de vez en cuando (al igual que todos).

Macke
fuente
12

En mi experiencia, las compañías más grandes necesitan especialistas y las compañías más pequeñas necesitan generalistas. Si quiere ser generalista, busque y postule en compañías más pequeñas.

Scott Whitlock
fuente
3
Solo para decir que las empresas más grandes son las que pueden pagar las tarifas más altas que demandan los especialistas.
Oded
3
No es el salario lo que determina la distinción especialista / generalista tanto como el número de programadores que tiene su empresa. Con muchos programadores, es más eficiente asignar personas específicas a productos específicos. Con un puñado de programadores, tienen que cubrir todas las necesidades de desarrollo de la compañía.
dan04
2

En nuestro campo, creo que tenemos que ser generalistas en algún nivel al mismo tiempo que desarrollamos una especialidad o incluso algunas especialidades. Nunca está de más desarrollar nuestras habilidades en muchas áreas, ya que algunos proyectos pueden requerir que seas versátil. Sin embargo, como se mencionó, cuanto más grande sea la empresa, más probable será que necesites que puedas concentrarte en un solo área. En estas situaciones, creo que la pregunta de cuál prefieres es más que probable tratar de resolver dónde te pondrían si te contrataran.

Kenneth
fuente
2

Creo que es bueno hacer esta pregunta, para que sepan a qué apunta, pero la explicación que publicó aquí también es una muy buena respuesta: "Me gusta hacer ambas cosas". Los idiomas de alto nivel y de bajo nivel atraen a diferentes tipos de personas, mientras que los idiomas de bajo nivel atraen a las personas que realmente les gusta conocer los pequeños detalles del sistema, cómo funciona, etc., los idiomas de alto nivel atraen a las personas más interesadas en el proceso comercial y la organización sí mismo. A muchas personas realmente les gustan los lenguajes de alto nivel, pero no soportan el bajo nivel (o al revés).

Por lo tanto, preguntar es muy importante para obtener su perfil e intenciones, pero su respuesta al publicar es completamente aceptable.

JSBach
fuente
1

No tiene que elegir, aunque su vida sería más fácil (si no más feliz) si lo hace. La mayoría de las compañías buscarán una u otra, pero si encuentras un lugar donde quieren a alguien que conozca ambos mundos, ganarás el premio gordo.

Lo que absolutamente no debe hacer es aplicar el enfoque incorrecto a un problema.

Y, por supuesto, a veces las cosas no salen según lo planeado, comencé con un amor por el ensamblaje y C y una desconfianza de todo OO y me convertí en un desarrollador de Java. Ahora me resultaría difícil regresar, porque me perdí diez años de aprendizaje y nuevas tecnologías. Entonces, la lección aquí es que si desea cambiar, asegúrese de mantenerse en contacto.

biziclop
fuente