¿Cuál es la mejor manera de crecer a partir de un desarrollador junior?

Como dice mi biografía, soy más un guionista de PowerShell que un desarrollador formal, así que toma esto con una gran dosis de sal.

Desde mi experiencia como SDET (ingeniero de pruebas), aprenda un IDE, un sistema de administración de códigos, cómo programar en un grupo y cómo codificar para el fracaso.

Programar en grupo significa aprender un repositorio: estoy en el campo de distorsión de realidad de MSFT, así que estoy familiarizado con Visual Studio y Team Foundation Server, pero deberías aprender a usar Git y probablemente Eclipse si buscas trabajar en el entorno * nix (lea: el resto del mundo, además de Redmond.)

También significa desarrollar, implementar y probar interfaces con los componentes de otros miembros del equipo.

Al igual que con muchas listas, la última parte es la más crítica, y eso se cubrió en la primera lista: codificación de fallas / prueba de su código. En este mundo en red moderno, nunca asuma que la red siempre estará disponible, el almacén de datos es sólido, la memoria es ilimitada, etc. Trate de buscar escalar (compartir la carga) en lugar de escalar (reforzar la máquina).

En estos días, debe estar al menos familiarizado con la seguridad, los almacenes de datos en red y las API de la nube, además de conocer los algoritmos y las estructuras de datos.

Leerás mucho sobre las preguntas del código en las entrevistas. Sí, existen, pero la mayoría son justas: si te mantienes calmado, haz preguntas para asegurarte de que no estás actuando en base a suposiciones incorrectas y habla sobre lo que estás tratando de hacer mientras lo haces, debes encontrar un buen ajuste en un equipo.

==

Al revisar su pregunta, le aconsejaría encontrar un proyecto paralelo para aprender programación en grupo, seguido de un vínculo entre mantener un historial de empleo (trabajo a tiempo parcial) y el aprendizaje autodirigido (PluralSight o Microsoft Virtual Academy si desea unirse). el campo de distorsión de la realidad). Es posible que desee considerar trabajos contingentes con firmas de recursos técnicos como Insight Global y Mindtree. Te llevarán a la puerta, pero como ciudadanos de segunda clase.

Los blogs son buenos para leer, pero son demasiado aleatorios, incluso si sigues uno tópico (como Schneier en Seguridad; se trata de seguridad, pero todas sus posibles aplicaciones). No estoy diciendo que los evites; Aquí estoy en Quora, y he respondido una o dos preguntas sobre Stack Overflow.

Si desea las Certificaciones de Microsoft, le aconsejo que espere hasta que se convierta en un FTE y gane en la factura de la empresa.

En primer lugar, no se clasifique como ingeniero de XYZ.UVW, porque primero es un ingeniero de software y, siendo eso, tiene el potencial de hacer lo que quiera con su carrera. Su rol actual gira en torno a una tecnología específica, o un conjunto de tecnologías, pero realmente no debería especializarse en una pila, especialmente en esta carrera temprana. Quieres probar cosas diferentes antes de comprometerte a convertirte en un experto en el que realmente te apasionas.

Básicamente, sugiero unirse a una empresa de primer nivel como una forma óptima de crecer para un ingeniero joven, por muchas razones.

  • Tendrá una gran cantidad de ingenieros de alto nivel para aprender, y eso, en sí mismo, es increíble. Mucha gente verá su código, lo comentará y lo revisará, y verá tanto código que otros escribieron y sacaron conclusiones. La cantidad no es calidad, de forma predeterminada, pero cuando usted está en una empresa que mantiene altos cargos de contratación, sabe que está tratando con gente buena, entonces la cantidad es calidad. Cuando es un joven ingeniero en una pequeña oficina , estás aprendiendo de un grupo muy pequeño de personas y te conviertes en su clon, con todas sus virtudes y defectos. Por lo tanto, exponerse a muchos buenos ingenieros superiores y sacar el máximo partido.
  • También recogerá toneladas de procesos bien establecidos y aprenderá cómo funcionan las cosas en una de las escalas más grandes. Comprenderá cómo se forman los equipos, cómo se administran, cómo se definen los productos y las características, cómo se escriben las especificaciones y se realizan las revisiones. Comprenderá y apreciará la complejidad de la liga principal de ingeniería de software. Casi todo es cuesta abajo desde allí, donde quiera que vaya, y es importante que se acostumbre a todo esto lo antes posible, ya que lo hará más fuerte y más resistente. Cuando trabajas en una oficina pequeña, todo eso es mucho más simple.
  • No te molestes con la certificación MSFT. Esto realmente no te lleva mucho, en términos de crecimiento profesional y ni las grandes empresas de tecnología, ni la mayoría de las empresas realmente increíbles le prestan mucha atención.
  • Si está orientado a la Web, muévase lo más lejos que pueda del trabajo de front-end. Lo siguiente que sabes es que serás un “desarrollador de JavaScript” y terminarás haciendo un montón de trabajo de UI genérico que podría pagar bien las facturas hoy, pero no te hará crecer demasiado si te gusta la computadora. La ciencia, en general. Tantos problemas fantásticos deben resolverse en el ámbito de lo que realmente hace que los sitios web se ejecuten, cómo presentar sus datos es bueno y todo, pero no es muy emocionante (para mí, al menos).
  • No te comprometas con tu pasión. Cuando te aconsejo que te unas a una gran empresa, no estoy diciendo “elige uno al azar y dispárale”. Averigüe qué equipos en los que las empresas están alineadas con lo que desea trabajar. No es tan difícil entrar, en estos días, todos están contratando y expandiéndose a precios increíbles.

En última instancia, trabajar para una gran empresa con años de tradición significa que recibirá el conocimiento y la experiencia de cientos de grandes personas en una bandeja. No hace falta repetir sus errores. Los han hecho para ti, a lo largo de los años, y se han refinado hasta este punto, para que puedas recoger los frutos de su experiencia. Aprender de la experiencia de otras personas le ahorrará tiempo para repetirlos innecesariamente. Algunas experiencias tienen un gran valor, pero la mayoría no lo hacen, así que no reinvente la rueda.

En última instancia, haga que su trabajo y su hobby apunten a lo mismo. Si eres feliz, crecerás. No seas miserable en un lugar equivocado, porque alguien más eligió tu trayectoria profesional. Lo que es correcto para usted puede no serlo para otra persona, y viceversa. Buena suerte.

Leí toda tu pregunta y básicamente quieres trabajar para grandes empresas como Google o Microsoft. Les gusta la gente que puede escalar aplicaciones de software. Tienes un par de cosas que hacer para prepararte.

  1. Obtén una cuenta personal de Amazon o Microsoft Azure.
  2. Cree un proyecto paralelo que implique una plataforma de datos a la que se acceda mediante un front-end web.
  3. Cree scripts de prueba para simular la carga en el front-end y trabaje a través de un proceso para aumentar su escala (sin límites).
  4. Documente cada paso en un blog vinculado al historial de control de versiones en GitHub.

Aprenda todo lo que pueda para aumentar la escala del sitio. Leerá mucho, pondrá en práctica gran parte de lo que lee, formará pensamientos nuevos, pasará por ensayo y error. Como un científico estudioso, está refinando progresivamente su modelo de las características de rendimiento de ciertas opciones de diseño e implementación con la tecnología dada. Barry Roundtree en Quora ha escrito sobre esto.

Usted hace esto durante 4 años mientras trabaja, luego, cuando esté listo para hablar con Microsoft o Google, habrá acumulado una gran cantidad de trabajo. Este enfoque también puede ayudarlo en su aplicación de doctorado. Tendrá que encontrar una pregunta específica y enfocada que esté tratando de responder para su doctorado, y la ruta presentada anteriormente puede ser una especie de ensayo para demostrar el potencial y la dignidad de la inducción.

El tema principal en lo que he presentado es la persistencia y la perseverancia implacables. Si va a escalar plataformas web, tendrá un gran compromiso de su parte para lograr las habilidades, el conocimiento y la percepción para hacer eso posible. Tanto como individuo y como colaborador en un equipo. Si obtiene certificaciones en el camino, eso es una ventaja, pero siempre mantenga el enfoque en el conocimiento personal y directo de cómo aplicar los conceptos con o sin ellos.

Ivana

Los proyectos paralelos son una excelente manera de organizar tu aprendizaje y mantenerte motivado.

Intente encontrar un proyecto paralelo que produzca el software que usará todos los días. Si puede hacer eso, tendrá mucho más tiempo para dedicarlo y con él, por lo que el diseño será más realista. Aún mejor si puedes pensar en un proyecto que otras personas también querrán usar.

La visión plural es un gran recurso. Lo uso todo el tiempo. Hoy pasaré unas horas viendo el video de Douglas Crockford “JavaScript, The Good Parts” en Pluralsight. Cuando termine, leeré su libro de Kindle con el mismo título.

En cuanto a las certificaciones de MS, meh. Estoy seguro de que muchas personas que los tienen los han encontrado útiles, pero prefiero pasar el tiempo aprendiendo las cosas que he decidido que son útiles que pasar por todos los detalles de una certificación.

Si las empresas para las que quiere trabajar se preocupan por ellas, entonces adelante. La falta de certificaciones no me ha retenido ninguna. Mis clientes quieren saber que puedo hacer el trabajo. Mientras pueda probar eso, estoy bien.

Déjame saber si tienes alguna pregunta de seguimiento.

¡Espero que esto ayude!

Adán

Hacer preguntas.

Cuando llegue a un lugar donde esté tomando más de una hora (o menos si el problema fuera fácil) para resolver algo, comience a preguntarse si necesita la ayuda de un colega. Si su jefe se enoja porque está haciendo demasiadas preguntas, busque un jefe diferente. Preferiría mucho tener a alguien que haga preguntas que a alguien que se siente durante una semana tratando de encontrar algo que pueda mostrarle en una hora. Y cualquier jefe que no quiera que hagas preguntas es un jefe pobre, en mi opinión.

Está bien tratar de resolver algo por sí mismo, pero en un determinado momento debe poder identificar que necesita una nueva perspectiva y / o ayuda.

Lo único a lo que debe prestar atención es si constantemente hace la MISMA pregunta. Si eso está sucediendo, necesita apuntalar su comprensión básica de la programación volviendo a lo básico en su propio tiempo.