¿Debería centrarme en ser profundo o amplio [cerrado]

10

He sido desarrollador profesional durante poco más de medio año y me ha sorprendido lo grande que es realmente el mundo fuera de la universidad. Continué aprendiendo en mi tiempo libre, pero me pregunto dónde debería concentrarme.

ENFOQUE 1) La pila de desarrollo utilizada por mi empresa. El pago más rápido en mi desarrollo diario. # Profundo

ENFOQUE 2) Un lenguaje diferente con el mismo paradigma. Vea si puedo generalizar mi conocimiento y forma de pensar.

FOCO 3) Lenguaje diferente, paradigma diferente. Expande mis fronteras y aprende nuevas formas de hacer las cosas. #Broadest

Si alguien tiene un enfoque diferente, siéntase libre de exponerlo.

Bob Roberts
fuente

Respuestas:

18

Si.

Yo diría que necesitas hacer ambas cosas. Comience con el n. ° 1, ya que tiene la recompensa inmediata, y no ha estado haciendo esto durante mucho tiempo. Pero definitivamente necesitas hacer algunos de los n. ° 2 y n. ° 3.

Marcie
fuente
Buen plan, volverme más útil de inmediato aumentará mi valor en la empresa, mientras que los dos últimos aumentarán mi valor como desarrollador en general.
Bob Roberts
Exactamente. Aunque creo que lo encontrará durante su carrera, hacerse valioso como desarrollador en general también aumentará su valor en la empresa. Sin embargo, el resultado puede ser un par de años.
Marcie
1
Quizás la respuesta debería ser "Ambos" en lugar de "Sí". Mirando el título de la pregunta y la respuesta, estoy confundido.
Amr
1
Descubrí que a medida que aprendo un nuevo lenguaje o paradigma, me vuelvo más efectivo en el n. ° 1: creo que esto se debe a que tener una experiencia más amplia le brinda diferentes perspectivas sobre cómo resolver un problema en particular. La misma lección aprendida que: si solo tienes un martillo, cada problema comienza a parecerse a un clavo.
Bryan Rehbein
25

Cuando la gente me pide consejos de carrera, su pregunta es una de las primeras preguntas que les hago. No creo que nadie pueda responder esta pregunta por ti; Creo que tienes que decidir por ti mismo si concentrarte en profundidad o amplitud es más probable que cumplas tus objetivos profesionales.

La última vez que cambié de equipo tuve dos oportunidades: trabajar en el equipo de herramientas para desarrolladores de XBOX o trabajar en el equipo compilador de C #. Me di cuenta de que todo se reducía a amplitud vs profundidad. En el equipo de XBOX podría trabajar en sistemas de seguridad un día, sistemas de audio al siguiente, video, redes, interfaz de hardware, lo que sea. Claro, algunas personas son expertas, pero todos tienen que saber un poco sobre todo. En el equipo del compilador de C # pude sumergirme en un lenguaje y un compilador y realmente entender todo en profundidad.

Lo pensé mucho y decidí que estaba más preparado para ser un experto en una cosa que para un diletante. Esa fue una buena opción para mí, pero puede que no sea para ti. Algunas personas tienen mucho éxito sabiendo un poco de todo.

Mi consejo, por lo tanto, es cambiar la pregunta. Averigüe qué tipo de persona es y luego vea si su empresa tiene oportunidades para alguien como usted. Si no, encuentra uno que lo haga.

Eric Lippert
fuente
En retrospectiva de quién eres, esta publicación es realmente épica. :)
cenizas999
12

Ser un especialista puede hacerte más caro. Pero las oportunidades de trabajo que requieren ese alto nivel serán limitadas, tanto en número como geográficamente.

Ser un generalista quizás paga menos, pero le abre una amplia variedad de oportunidades de trabajo, potencialmente en todo el mundo.

También para trabajos de nivel superior y gerenciales se prefiere tener una persona con experiencia en una variedad de cosas, técnicas y tecnologías. Conocer los bordes y poder ver una imagen completa lo convierte en un activo valioso.


fuente
Oh, ni siquiera pensé más allá de mi empleo actual (aunque espero que sea una estadía a largo plazo).
Bob Roberts
3

Creo que en su etapa de desarrollo, obtener cierta profundidad es la primera prioridad. Veo demasiadas personas que saben un poco sobre un montón de cosas pero no pueden dejar de hacer el trabajo de nivel de entrada porque todos sus conocimientos son de nivel de entrada.

Si quisiera ser un especialista, claramente, construir profundidad es la mejor primera opción.

Si quiero ser un generalista, primero construya profundidad (llegue al menos a un nivel intermedio) en una pila y luego bifurque a otros idiomas. Si desarrolla algo de profundidad primero, puede que le resulte más fácil construir profundidad en varios idiomas, ya que tiene más conceptos disponibles y sabe más de lo que le gustaría aprender. Entonces me ramificaría un poco en otra cosa. Luego regrese y desarrolle profundidad al nivel avanzado, luego bájese nuevamente y aprenda más cosas que son muy diferentes de lo que ya sabe. Luego expanda esa profundidad en un área diferente a un nivel intermedio, aprenda algo más nuevamente, etc.

Advertencia: soy un especialista, así que claramente favorezco la profundidad del conocimiento

HLGEM
fuente
1

Ambas opciones tienen su lugar. Centrarse en la pila de desarrollo utilizada por su empresa lo ayudará en su trabajo, pero aprender sobre otras tecnologías lo ayudará en su carrera.

A fines de la década de 1990, las empresas que necesitaban preparar su software para el año 2000 tenían gran demanda de las habilidades de COBOL. Pero cualquiera que todavía conozca solo COBOL hoy en día tendrá más dificultades para encontrar trabajo.

De la misma manera, la tecnología de hoy será obsoleta mucho antes de que la mayoría de nosotros estemos listos para retirarnos, por lo que aprender nuevas habilidades y tecnologías es esencial.

Bruce Alderman
fuente
0

Anímate y aprende algo como Haskell o un Lisp. Aprender un lenguaje funcional realmente me ha ayudado a desacoplar mi código, lo que facilita la depuración en general. El único problema que puede encontrar es que no desea regresar.

http://book.realworldhaskell.org/read/

http://lisperati.com/haskell/

http://learnyouahaskell.com/

Theo Belaire
fuente
Eso es correcto, aprenda programación funcional, en cuanto a mí, voto por OCaml o F #
0xFF
F # se integraría bien con C # u otras cosas .net en las que esté trabajando. Sólo algo para tener en cuenta. Clojure funciona bien con Java.
Theo Belaire