Recientemente terminé mi Maestría en Ciencias en Ingeniería de Software, y estoy a punto de comenzar mi carrera profesional en unas pocas semanas. Mi rol será como Desarrollador Junior para una compañía que desarrolla software utilizando Java y tecnologías relacionadas (entre ellas Spring e Hibernate). Para ser honesto, estoy realmente entusiasmado con lo que viene, especialmente porque quiero desarrollar mi carrera como desarrollador de Java. También estoy muy interesado en adquirir experiencia en el campo. Además, esta será mi primera experiencia laboral como desarrollador profesional, así que realmente quiero hacer lo mejor desde el principio.
Me gustaría saber qué habilidades y habilidades, tanto blandas como técnicas, serían más apreciadas en un nuevo profesional (Desarrollador Junior) que podría ser parte de su equipo y en qué habilidades debería centrarme para lograr una carrera exitosa como Software Ingeniero.
fuente
Respuestas:
Muchos de estos son ciertos sin importar en qué parte de su carrera se encuentre, pero podrían ser especialmente importantes para alguien que recién está comenzando.
fuente
Aquí hay una lista rápida de la parte superior de mi cabeza:
fuente
Dos cosas: la voluntad de aprender y la capacidad de aprender.
fuente
La curiosidad, el entusiasmo, establece un alto estándar para usted, la voluntad de aprender, la voluntad de admitir que no saben, el interés en lo que hace el negocio y cómo afecta el trabajo que produce. (Todas las buenas cualidades, incluso si tiene 20 años de experiencia)
Un buen conocimiento técnico es excelente, pero debe mostrar cómo aplicaría este conocimiento.
Sobre todo, el entrevistador debe poder verte trabajando allí haciendo una contribución y queriendo quedarse. Si eres demasiado bueno, eso puede retrasar a algunas personas más rápido que estar por debajo del promedio. ;)
fuente
Motivación. ¿Sabes cómo motivarte? ¿Sabes qué tácticas pueden funcionar mejor que otras? Esto se trata de la autoconciencia que algunas personas pueden esperar que usted sepa de toda la educación que ha realizado para descubrir esto de manera independiente.
Pruebas básicas y habilidades de depuración. ¿Sabes qué es una prueba unitaria? ¿Conoces algunas formas de depurar un problema? No se trata de saber específicamente qué hacer en un entorno, sino más bien de la idea general de cuáles pueden ser las pruebas más básicas y qué estrategias tener para analizar un problema.
Habilidades de comunicación. ¿Qué tan preciso eres con el lenguaje? ¿Qué tan bien puedes pasar de técnico a no técnico? Es cierto que esto es algo para desarrollar, pero es algo para tener en cuenta y, en algunos casos, salvar a alguien que puede meterse en problemas al no comprender las implicaciones de lo que dicen. ¿Qué tan bien te llevas con la gente? No es que sea un requisito estricto, pero si puede tener buenas relaciones con compañeros de trabajo, puede hacer que algunos trabajos sean un poco más fáciles de manejar. La honestidad y la integridad también se incluyen en este grupo de habilidades, ya que generalmente puede haber preguntas sobre qué tan bien dice lo que quiere decir y lo que dice. "Espacio de oficina" tiene muchos ejemplos de mala comunicación y, si bien el trabajo es ficticio, puede haber muchas escenas realmente cercanas a la realidad para algunas personas en términos de trabajo en entornos de oficina.
Versatilidad. Las nuevas personas en el equipo pueden obtener un amplio conjunto de responsabilidades, por lo que si se encuentra en una empresa pequeña, es posible que tenga que configurar bases de datos, redes, servidores web y otras cosas que están fuera del desarrollo. Contribuir para ayudar a un equipo a cumplir un plazo sería otro ejemplo aquí.
fuente
Para mí, como desarrollador junior sin ningún título, mi disposición a trabajar duro y mejorarme me ha ayudado mucho en mi carrera. También noté que mis superiores apreciaban poder hacer frente a algunas críticas (positivas o no) y poder hacer un seguimiento.
En cuanto a un nuevo entorno: recomendaría seguir la corriente durante la primera semana más o menos. Cometí el error de intentar demasiado, eso no fue apreciado.
fuente
Estoy de acuerdo con todo lo que ya se ha dicho, pero quiero enfatizar que nunca debes olvidar estas habilidades generales (y blandas) en lugar de ser un experto técnico. Deberías trabajar en ambos, pero prefiero tener un intermediario que pueda comunicar lo que saben y luego tener un maestro que prefiera trabajar solo.
Además, no pase demasiado tiempo con la nariz en un libro. Los libros son buenos, incluso buenos, pero si pasas la mayor parte del tiempo leyendo y menos tiempo trabajando, no obtendrás la mitad de esos libros.
fuente
Grandes respuestas a todos. Solo agregaría, desde mi limitada experiencia de vuelo, ¿sabes lo que llaman una licencia de piloto?
Una licencia para aprender.
fuente
Muchas respuestas geniales.
Incluso si no trabajo para los 'grandes' y no soy un gurú, agregaré mis 2 centavos.
Sé amable con la gente .
Intente socializar con sus colegas, pase un poco de su tiempo con algunos de ellos todos los días si es posible. Ve a cenar con ellos de vez en cuando, ríete con ellos.
En otras palabras, intente construir una "comunidad" si no hay una, o formar parte de ella si es que existe.
Conocer a tus colegas te ayudará a llevarte bien con ellos más fácilmente. Además, las probabilidades son buenas, te divertirás haciéndolo.
fuente
Además de todas las cosas buenas presentadas por la comunidad (arriba), también esperaría ver evidencia de algunas habilidades difíciles. No son poderes de perfección o super geek, sino un buen conocimiento práctico de los conceptos básicos y básicos. Ya obtuviste el trabajo (¡ felicidades por cierto !) Así que estás prácticamente allí.
Pero actualizar sus conocimientos y / o ponerse al día con las herramientas, los idiomas y las tecnologías que utiliza su empresa significará que comenzará a funcionar y creará una buena primera impresión.
Un desarrollador junior hipotético perfecto conocerá los fundamentos de cosas tales como
y así. Podrá concentrarse en adquirir nuevas habilidades sin tener que detenerse y aprender lo básico. Podrá continuar (haciendo tantas preguntas sensatas como quiera; a la mayoría de los desarrolladores senior les encanta que les hagan preguntas técnicas razonables ) con la tarifa de rutina de los formularios en línea, páginas de administración que muchos juniors enfrentan durante los primeros meses. Convertirse en un desarrollador confiable y junior puede ser su primera prueba de iniciación de equipo ;-)
Cuando comencé como junior en el equipo web de una gran corporación, la mayor parte del trabajo inicial que me asignaron fue poco inspirador, pero me gravó hasta el punto en que golpeaba los libros todas las noches para poder entender lo que iba a hacer. tener que hacer al día siguiente . Lo superé, pero eso fue estresante cinco o seis meses después del relativo lujo de mi curso de maestría ;-)
Si puede hacer todas las cosas básicas de manera eficiente, obtendrá cosas más interesantes que hacer con bastante rapidez y, por supuesto, esto ayudará a avanzar en su carrera.
Y haciéndose eco de lo que muchos han dicho anteriormente, el mundo de las computadoras y el código está en constante evolución. Tendrá que aprender cosas nuevas cada dos días. Mantenga su mente abierta e intente ver por qué se ha embarcado en esto en primer lugar, porque lo <3. En los años venideros, puede haber momentos en que esto no esté en la vanguardia de su mente. El entusiasmo lo ayudará a superar la mayoría de los obstáculos y obstáculos.
Habiendo dicho todo eso, mi experiencia de los últimos doce años sugiere que la mayoría de los jóvenes no se quedan en su primera compañía para siempre, así que no se obsesionen con ser 'perfectos'. Cometer errores es parte del proceso que lo llevará de junior a donde quiera terminar. He estado haciendo esto por un tiempo y casi borro una base de datos de producción casi al menos un par de veces al año.
Buena suerte con tu carrera.
fuente
(1) Una mente abierta. No desea que alguien que esté institucionalizado utilice el lenguaje X y el entorno Y para cada proyecto. Desea alguien que pueda reconocer cuando una tecnología en particular no resolverá limpiamente un problema y ofrecerá buenas alternativas. Además de eso, desea a alguien que pueda desafiar el pensamiento convencional y encontrar soluciones que motiven al negocio. Puede experimentar esto usted mismo, pero he descubierto que las personas se acostumbran tanto a un proceso que no lo cambian, pero aún se quejan de la cantidad de dolor que les causa. Por lo general, cuando llego, veo cómo mejorar eso y ofrecer soluciones a mi gerente. Ahora, también diría, que el personal debe ser "diplomático" sobre sus sugerencias :)
(2) Buenas habilidades de modelado de dominio. Esta es una muy grande que he encontrado que algunas personas pasan por alto. En algunos de los lugares en los que trabajé, aprender sobre el negocio es 'ensuciarse las manos' y la gente evita problemas puramente técnicos, como integrar correctores ortográficos en el control de versiones, etc. y no invierten mucho tiempo en mejorar el negocio. Ser capaz de mirar un negocio y crear modelos (simplificaciones) a partir de él y comunicarlo a varias audiencias, ya sea oral, visual (UML, SSADM o lo que sea) o un poco de ambos, quieres a alguien con esa mentalidad.
Dos libros que puedo recomendar sobre el tema son: El programador apasionado y El programador pragmático . Ambos libros ofrecen buenos consejos a los programadores junior y senior por igual.
fuente
Tomando la iniciativa. He tenido muchas personas que no hacen esto y siempre esperan que me digan exactamente qué hacer. Si ve algo que debería mejorarse, hágalo. ¿Tienes una idea para mejorar algo? Tráelo adelante. ¿Necesitas otra habilidad para mejorar algo? Aprenderlo.
Demuestra que te importa lo que estás haciendo y que quieres mejorar.
fuente
Para no asustarte en absoluto, pero una cosa que te voy a advertir en contra de eso en cada una de las compañías en las que he trabajado, son los métodos de desplazamiento enormes y sucios, y los objetos mal nombrados que te dan miedo abrir los archivos de origen. Conmoción y horror de tal desorden. Los lugares en los que generalmente los encontrará son los controladores de eventos para los botones "Aceptar" en los cuadros de diálogo o el botón "Enviar" en las páginas web.
Te lo ruego desde el fondo de mi corazón. Instale una campana de alarma mental, que cuando un método comienza a verse grande, y por grande, me refiero a más de 10 líneas más o menos, piense en crear otro método ... tantos métodos más tarde, comprenderá cuánta responsabilidad objeto en el que se está desarrollando tiene.
La próxima campana de alarma que recomendaría, es el máximo de 2-3 parámetros en un método. Si ve métodos con unos 10 parámetros de entrada, salude a la programación funcional en un lenguaje OO ...
Perdón por la ligera frustración expresada en esta respuesta, simplemente no puedo gritar lo suficiente lo beneficioso que es aprender a escribir código limpio.
Por favor, consiga una copia de Robert. C Martins Clean Code . Léalo semanalmente, sáquelo para la cena, duerma con él debajo de la almohada, tenga una copia en el inodoro e imprima algunas páginas y péguelas en el techo para que cuando se vaya a dormir, pueda leerlas antes te asientes;).
Te deseo todo lo mejor en tu carrera. Su pasión en este punto ya muestra que lo hará muy bien.
fuente
El único consejo que puedo ofrecer es que nunca dejes de aprender. La forma en que esos desarrolladores de rockstar llegaron allí es tomando tiempo para aprender nuevas técnicas y lenguajes, es su propio tiempo libre. Si bien es genial si te quedas allí durante 10 años, cuando salgas solo conocerás Java + Spring + Hibernate. Es por eso que en mi tiempo libre miro la plataforma .NET, Python y el código ocasional de C ++ para permanecer activo. Como alguien que está trabajando en una MS en info sec, el tiempo puede ser valioso y debe gastarse sabiamente.
fuente
La capacidad de usar google. De Verdad.
No es que nunca ayudaría a nadie, especialmente a un colega junior. Pero no hay nada más frustrante que tener a alguien que no esté haciendo la diligencia debida para resolver problemas de forma continua.
Mi consejo para junior soft. Los ingenieros deben hacer su debida diligencia para resolver los problemas. Use google, wikipedia o stackoverflow de manera diligente y metódica cuando no sepa algo.
No espere demasiado antes de pedir ayuda a un compañero de trabajo de más antigüedad, eso depende del tipo de organización. En una buena compañía donde las personas se ayudan entre sí, si pasas más de medio día tratando de encontrar una respuesta, no dudes en detener tu propia investigación para pedir ayuda.
En otras organizaciones donde las personas siempre son malas entre sí, es posible que deba pasar unos días por su cuenta (documentando todo lo que ha hecho y en todos los lugares donde ha investigado) antes de pedir ayuda. En tales compañías, documentar lo que hiciste ayuda para que puedas mostrarles que "lo hiciste en Google" porque esa será la primera respuesta que te lanzarán.
Pero independientemente, la esencia de lo que buscaría en un ingeniero junior es hacer su debida diligencia para tratar de resolver un problema en lugar de esperar que se le administren respuestas todo el tiempo. En pocas palabras, muéstrame que puedes usar google.
fuente
Pasión por el trabajo.
Dispuesto a aprender más y más y más ...
honestidad
consistencia
fuente
Grandes respuestas allí, si sigues todo lo que dice la gente aquí, estoy seguro de que cualquiera será bueno en lo que está haciendo,
Solo quiero enfatizar algunos puntos.
Todo lo mejor en tu trabajo
fuente
Una habilidad que no creo que tengan muchos programadores Jr, pero es una muy buena, la capacidad de crear tus propias herramientas. Puede ahorrar MUCHO tiempo y esfuerzo con algunas herramientas personalizadas bien hechas. Y no tienen que ser nada sofisticados, la mayoría de los míos son scripts de shell de 3 líneas, aunque algunos son mucho más largos.
Pero aprender a automatizar las cosas te facilitará la vida. (E impresione a sus compañeros de trabajo cuando pueda hacer bien las cosas)
fuente
fuente