2010-11-04 16 views
11

Me gradué de mi universidad hace casi un año. Desde entonces he trabajado con muchas tecnologías diferentes, como PHP, JQuery, ASP.NET, C#, etc. Recientemente me he cambiado a una empresa donde se está utilizando powerbuilder para el desarrollo.Es una especialización necesaria en el desarrollo de software

El problema es que no he dominado ninguno de los idiomas anteriores. Puedo hacer cosas con ellos, pero cuando se trata de tareas complejas, a menudo me cuesta trabajo porque no tengo suficiente conocimiento profundo al respecto. Después de mirar a Powerbuilder por unos días, intuyo que esto volverá a suceder porque la mayoría del código de la aplicación se ha realizado utilizando algún tipo de biblioteca que requiera un nivel de habilidad avanzado en Powerbuilder.

Mi pregunta es, ¿está bien para mí trabajar en diferentes tecnologías sin dominar ni uno solo de ellos?

+0

No es el lugar correcto para esta pregunta, pero sí creo que necesita especializarse en un área/idioma/plataforma específicos. El mío es C# /. NET. – leppie

+0

Mejor en [Programadores] (http://programmers.stackexchange.com). Aunque creo que encontrará preguntas equivalentes ya hechas ... – dmckee

Respuesta

6

Si decide especializarse el que está tomando un coste de oportunidad al hacer no estar disponible para otros tipos de trabajo. Esto es bueno si puede estar seguro de que su especialización elegida durará un período de tiempo razonable. Sin embargo, puede garantizar (junto con la muerte y los impuestos) que el software cambiará. Siempre se le pedirá que aprenda algún nuevo marco o enfoque para mantenerse actualizado.

Para evitar encontrarse en un callejón sin salida intelectual (¿todavía se usan transputers en algún lugar?), Debe adoptar una doctrina de aprendizaje constante. El aprendizaje suele ser divertido y casi siempre conduce a la alegría de descubrir una nueva herramienta o diseño. Y nunca te olvides de este conocimiento (solo tiene una vida media de 18 meses). Comparte lo que has aprendido con otros.

Para responder a su pregunta: no se especialice.

4

Según el libro Pragmatic Programmer, uno de los consejos para un buen programador es:

Invest Regularly in Your Knowledge Portfolio 
Make learning a habit. 

Esto significa que usted tiene constantemente a utilizar, o aprender acerca de las nuevas tecnologías. Si bien convertirse en un maestro en una tecnología en particular puede ser gratificante, las tecnologías van y vienen, hoy más rápido que nunca. Un dominio en un lenguaje de programación, herramienta o API particular puede hacerte un gurú hoy, pero puede no significar nada mañana.

IIRC también recomendaron a los desarrolladores dominar varias tecnologías, pero permanecen versados ​​en muchos, al menos en el sentido de haber oído hablar de ellos, jugar con ellos y poder entablar una conversación sobre ellos.

lo tanto, yo diría que sí - la especialización es necesaria, pero esto no quiere decir que uno debe ignorar los dominios fuera de su propia.

+2

En otras palabras: http://www.agilemodeling.com/essays/generalizingSpecialists.htm –

+0

Desearía poder votarlo, pero no tengo la autorización necesaria :(. –

+0

Ahora tengo el privilegio: -d –

3

No hay "respuesta correcta a esta pregunta que no sea lo mejor, 'depende'.

Le resultará más fácil encontrar mejores trabajos si se especializa, como usted lo llama. Pensaría más en trabajar con un lenguaje/marco específico. Además, es importante resolver problemas difíciles y adquirir experiencia, independientemente del idioma elegido.

vez que haya aceptado lo anterior como un lugar común y especializado, entonces yo sugeriría que se ramifican y aprender nuevos idiomas. Afortunadamente, los idiomas se vuelven más fáciles de aprender cuando tienes más experiencia.

Sin embargo, más que nada, usted tiene que mirar a mantenerse interesados ​​durante un largo período de tiempo. Esa es la verdadera clave. Si tiene interés, continuará aprendiendo y adquiriendo experiencia. Tal vez eso signifique que haga algo que no sea particularmente relevante para la mayoría de los trabajos, como escribir un compilador de lenguaje. O tal vez descubra que la prisa de trabajar para grandes clientes en grandes proyectos es más importante que un lenguaje/marco específico.

Así que eso es - solo sigue interesado y sigue aprendiendo. Y, cuando sea posible, concéntrese en lo que le interesa, ya que eso le facilitará la búsqueda de empleo en el futuro.

+0

Ojalá pudiera votarlo, pero no tengo la autorización necesaria :( –

+0

+1 para ayudar a CAYO DEL CIELO –

2

Es importante estar especializado en al menos un lenguaje de programación/plataforma, especialmente al principio de su carrera. Por especializado me refiero a leer un libro sobre él, de principio a fin, y tener amplia experiencia práctica desarrollándolo, en el trabajo o participando en un proyecto de código abierto.

La idea detrás de esto es que cuando se especialice en un idioma, aprenderá muchos conceptos que puede trasladar a diferentes idiomas/plataformas. Por ejemplo: el maestro de un idioma puede dominar a otro con relativa facilidad.

Más adelante en su carrera, estar expuesto a muchas plataformas es algo bueno, cuando comienza a pasar de ser un desarrollador a un desarrollador/arquitecto, y necesita tomar decisiones sobre qué plataforma usar, los pros y los contras de cada plataforma y por lo tanto no.

Así que mi consejo es tratar de dominar al menos un idioma, junto con sus herramientas y marcos. Después de eso, puedes pasar a diferentes plataformas. Es importante utilizar la plataforma derecha para el proyecto actual , tendrá que determinar caso por caso, con la ayuda de un desarrollador sénior.

Cuestiones relacionadas