Siendo un novato, ¿cómo comienzas a ser un ingeniero de desarrollo empresarial exitoso?

He respondido la misma pregunta aquí, la respuesta de Ratnakar Sadasyula a ¿Cuáles son las habilidades esenciales, técnicas y no técnicas, de un desarrollador Java EE o Enterprise Java? Reproduciendo la misma respuesta.

Si está buscando ser un Desarrollador JEE realmente efectivo, estas son las siguientes habilidades que recomendaría.

Técnico

  • Conocimiento de los conceptos de POO.
  • Conocimientos básicos de cómo funciona JVM y conceptos como hashing.
  • Al menos un marco (Struts o Spring).
  • JSP y un lenguaje de script (Javascript, / JQuery). Le aconsejaría que también controle los fundamentos de HTML / XHTML. Los clientes hoy en día son muy particulares sobre el diseño de la interfaz de usuario.
  • EJB (el conocimiento de CORBA sería una ventaja).
  • Al menos un servidor de aplicaciones (Weblogic / Websphere / JBoss) sobre el que debería tener algún conocimiento.
  • Los servicios web, considerando que muchas organizaciones se están cambiando, como una mejor alternativa a los EJB.
  • Una herramienta ORM como Hibernate.
  • Conocimiento de una herramienta de gestión de configuración como CVS / SVN.
  • Conocimiento de cualquier herramienta de construcción como ANT.
  • Herramientas de prueba de unidades como JUnit.
  • Buena idea sobre las herramientas de código abierto disponibles en la red.
  • Conocimiento de patrones de diseño.

En general, un desarrollador JEE realmente bueno debería tener un conocimiento holístico de todo el proceso de desarrollo de aplicaciones. Los viejos tiempos, cuando los candidatos que sabían cómo programar Hello World en Java, fueron reclutados, se han ido.

No técnico

  • Las habilidades de comunicación son imprescindibles, interactuará con los clientes, sus gerentes, el equipo de control de calidad y la comunicación efectiva será de gran ayuda, especialmente en un entorno en red.
  • Buenas habilidades de presentación, estas serían útiles cuando buscas hacer un recorrido con el cliente o explicar una nueva herramienta al equipo.

Gracias por A2A.

En mi opinión, será importante sentirnos cómodos dejando al “ingeniero” de “ingeniero de desarrollo empresarial” si se desea tener éxito en el campo. En el espacio empresarial, la disciplina de los desarrolladores a menudo está dictada por la cultura de la organización; Los desarrolladores que se sientan en desacuerdo con esa cultura simplemente pasarán a otra posición o empresa. En mi experiencia, algunos lugares en los que he trabajado tienen una cultura de ingeniería muy saludable, otros han sido mucho más tontos y orientados a los resultados. He descubierto que este último es más común en el campo y todos los empleadores valoran la flexibilidad por parte del desarrollador.

La capacidad de incorporar documentación y poder trabajar de manera productiva en una tecnología nueva o desconocida rápidamente es una habilidad crítica para quienes trabajan en el espacio empresarial. Si bien podemos predecir, a grandes rasgos, qué tecnologías podrían estar en uso en una empresa en particular simplemente leyendo la publicación de posición (Java, .Net, etc.), a menudo hay una amplia variedad de otras herramientas y tecnologías en funcionamiento que tienen ha estado en vigencia durante muchos años o está en proceso de ingresar a la organización. El desarrollador que pueda ser productivo en su equipo más rápidamente se convertirá en el desarrollador más valioso.

Aprender en el trabajo es crítico, he encontrado aceptable decir “Necesito investigar esta herramienta, déjame contactarte en un par de días”. Nunca he tenido suerte con “No estoy familiarizado con esta tecnología, puedo le das esta tarea a alguien más?

En términos de visibilidad, descubrí que las grandes organizaciones buscan muchas de las mismas habilidades que las empresas más pequeñas. Contratan firmas de reclutamiento y, en mi experiencia, estas firmas están buscando perfiles vinculados y, a veces, perfiles vinculados de GitHub. A menudo buscan acrónimos o tecnologías coincidentes (Java EE, Hibernate, .Net Web API, etc.) Mantenga su perfil Linked In y su currículum actualizado, incluya todas las tecnologías que ha aprendido (incluso si siento que fue solo a nivel introductorio).

Por último, la construcción de relaciones con los reclutadores puede resultar beneficiosa para aquellos que desean trabajar en el espacio empresarial. Una vez más, la mayoría de las grandes empresas están contratando casi exclusivamente a través de reclutadores y tener una relación con el portero puede ayudarlo a obtener el tiempo de entrevista que necesita para encontrar un puesto. Si bien puede sonar un poco pesimista, creo que es importante entrevistar tanto como sea posible, ya que es algo así como un juego de números. Las credenciales y la capacidad son importantes, pero también hay un aspecto de interacción humana y cuanto más tiempo pase practicando, mejor.

En mi opinión, leer libros y artículos te hará técnicamente sólido. También obtendrá un conocimiento teórico que lo ayudará en su carrera.

Pero para ser un ingeniero de desarrollo empresarial exitoso, necesita experiencia. Por lo tanto, trabajar en una buena compañía de software que siga los estándares de desarrollo de software lo ayudará mucho. Trabajar como pasante también puede ayudar a este respecto.

Idiomas:

  • The Coding Standards Company
  • Los 10 lenguajes de programación más importantes
  • El mejor lenguaje de programación para aprender en 2014: actualización de mitad de año

Para el control de versiones, uso SVN. Aquí hay una revisión de los principales sistemas de control de versiones 7: 7 revisados ​​- Smashing Magazine

Libros que recomendaría:

  • Código limpio
  • El codificador limpio
  • El manual de diseño de algoritmos

Espero que esto ayude, y lo siento si no respondo sus otras preguntas, soy un desarrollador de juegos, así que hay algunas preguntas que no creo que se apliquen a mi situación. Si tiene alguna otra pregunta, no dude en preguntarme.

Aprenda arquitectura de software: la programación para la empresa lo necesita, incluso si no tiene el título de “arquitecto”.

Su camino para convertirse en un desarrollador empresarial exitoso también depende de su educación. No indicó si tiene un título en informática. Si no lo hace, ese es el primer paso. Si lo hace, su camino hacia el éxito radica en ganar experiencia en la construcción de sistemas empresariales. Habiendo construido tales sistemas, necesita ganar experiencia con los siguientes conceptos:
1. Modularidad y separación de preocupaciones.
2. Patrones
3. Comunicación asincrónica
4. Encabezado y programación paralela
5. Cola y mensajería
6. Escalabilidad y computación en la nube
7. Hadoop
8. Fiabilidad, pruebas de regresión y refactorización.

Ese es un buen comienzo … ¡Mis mejores deseos!

Da un paso a la vez en tu carrera, de todos modos no podrías hacerlo de otra manera. No puede caminar hasta que aprenda a gatear, y no puede correr hasta que aprenda a caminar.

Consigue un trabajo que puedas manejar, tal vez un poco fuera de tu zona de confort que te obligará a aprender y crecer, y cuando llegues al punto en el que sobresalgas en esa posición, continúa para encontrar otro concierto que requiera el siguiente nivel de competencia de programación que en términos continuos lo empujará a crecer, básicamente solo enjuague y repita este proceso durante los próximos 10 años, y lo siguiente que sabe es que habrá tenido una carrera exitosa en el desarrollo de software.

1. Elija una pila y un marco para comenzar (LAMP, JavaEE Spring, Play Akka, RoR, …).
2. Encuentre un proyecto para trabajar. Lo mejor es encontrar uno con usuarios amigables. Construye un sistema para ellos. Esto también puede ser en forma de pasantía.
3. Repita hasta que esté satisfecho.

Aprende Java Conozca la abominación llamada JavaEE o su contraparte moderna: Spring MVC.
Disfrute de la riqueza y la mediocridad que trae Java y permanezca siempre ignorante de las fuentes del paraíso que es C y los paradigmas funcionales del lenguaje de programación.