Para un ingeniero de software de nivel junior, ¿cuál es mejor para el crecimiento personal como ingeniero, una startup o una empresa establecida?

Una empresa más grande, pero quizás no la más grande.

Pasé los primeros 12 años de mi carrera en un desarrollador mediano de equipos de prueba y medición. La compañía tenía prácticas de ingeniería exigentes que se esperaba que los ingenieros de software siguieran. Había una comunidad de personas de software dentro de la empresa que se nutrían mutuamente. Había expectativas muy altas para la calidad de la ingeniería.

Posteriormente he trabajado en grandes empresas y startups. Pero siempre tomé las buenas prácticas que aprendí en mi primer trabajo conmigo. Me convirtió en un líder dentro de compañías más pequeñas, donde los desarrolladores jóvenes a menudo no tenían idea de cómo eran las buenas prácticas.

En Boeing, la gran compañía aeroespacial, hay un tipo cuyo trabajo es “747 ingeniero de bisagra inferior de la puerta de carga principal”. Pasó seis semanas diseñando la bisagra y 10 años guiándola a través de la ingeniería y la aprobación regulatoria. Estoy seguro de que en una gran empresa de software como Microsoft, existe una especialización similar. Quizás haya un desarrollador de “Botón de cancelar el cuadro de diálogo de abrir archivo común”. Entonces, tal vez la compañía más grande no sea la mejor. Pero tener algo de inteligencia de procesos hace que trabajar en el patio caótico de algunas startups sea mucho más fácil. Las startups a menudo tienen muy poca tutoría y, a menudo, muy poco en desarrolladores experimentados. Es mejor ir allí con experiencia que ir allí para obtener experiencia.

He trabajado en grandes empresas no tecnológicas (en realidad, el gobierno), pequeñas empresas tecnológicas y grandes empresas tecnológicas.

De los tres, el mejor entorno para el crecimiento es, con diferencia, las grandes compañías tecnológicas (que son tanto “startups” como “compañías establecidas”, si lo piensas).

Lo mejor de trabajar en una pequeña empresa cuando se trata de crecimiento es la cantidad de libertad que obtienes. Puede elegir su propia tecnología, la forma de abordar sus problemas; eres más libre con tu tiempo en general para que puedas reservar tiempo para aprender y explorar. Esa fue mi experiencia al menos. Mi codificación fue bastante audaz porque si algo no funcionaba, podía solucionarlo fácilmente y tenía una visión clara de todo lo que dependía de mi trabajo.

Sin embargo, en una gran empresa tecnológica, la principal ventaja es que estará rodeado de desarrolladores más experimentados (lo cual es realmente clave). Cuando su conocimiento es principalmente teórico u obtenido de trabajar solo, aprende a través de revisiones de código, trabajando en una base de código existente, adhiriéndose a cierto estilo y procesos probados. No es suficiente que su código funcione, tiene que ser elegante, eficiente, seguro, documentado y preparado para el futuro. Es muy difícil progresar en esos aspectos en una empresa muy pequeña.

Además, en una organización más grande, también es más fácil aprender y progresar en la parte no codificante de ser un ingeniero (que es realmente lo que hace a los ingenieros, ingenieros): escritura, enseñanza, presentación, reclutamiento, colaboración entre equipos y liderazgo en general.

Por supuesto, el hecho de que una empresa sea grande no significa que ofrezca estas oportunidades. Solo existen en entornos de ritmo rápido, y la mayoría de las organizaciones se ralentizan a medida que crecen. El número ideal de ingenieros es probablemente entre 300 y 5000.

Haciéndose eco de la respuesta de James Nance. Obtendrá una experiencia mucho más variada trabajando para una startup, y probablemente terminará trabajando muchas más horas. Aprenderás mucho Pero, hay una buena posibilidad de que la compañía se vaya a la quiebra y que todo su trabajo se pierda (sin embargo, todavía tendrá el conocimiento). Todas las nuevas empresas en las que trabajé terminaron en la cuneta. Uno logró producir una docena de productos antes de hundirse.

Después de trabajar en varios desarrolladores pequeños e inestables, decidí ir a trabajar para un gran desarrollador “estable”. Ese desarrollador cerró la semana después de que nos mudamos a nuestra casa.

Después de más de 20 años de desarrollo de software, he llegado a la conclusión de que no hay empleo garantizado y estable. Empresa establecida o no, como ingeniero de software, usted es un recurso costoso y prescindible.

Si bien es probablemente una preferencia personal, aquí está mi respuesta. He trabajado para ambos, varios de ambos, y aprendí toneladas más en las startups. Una de las grandes empresas en las que trabajé ni siquiera permitía que los desarrolladores tuvieran acceso root incluso a las máquinas de prueba, por lo que básicamente era imposible experimentar con el sistema, es decir, aprender / innovar / etc. Actualmente estoy de regreso en otra startup, y SOOOO mucho más feliz que cuando estaba en las más de 10,000 empresas de software de grandes empleados. Ah, y puede ir en contra de lo que piensas, pero al menos donde he trabajado, las startups son más estables. Todas las grandes empresas finalmente me despidieron y enviaron mi trabajo por mar a China e Inda. Sí, inicio todo el camino! Al menos para mi.

Una startup

La mayoría de las startups fallan. Asegúrese de tener un plan para lo que va a hacer cuando lo haga (es decir, no se endeude). Si puede manejar los riesgos asociados con eso, obtendrá un conjunto de experiencias mucho mayor en un puesta en marcha. También puede ganar algo de dinero si golpea el ocasional que tiene éxito.

More Interesting

¿Cuál es el salario y las oportunidades profesionales para un estudiante de comercio en el mundo de la codificación y cómo ser desarrollador de aplicaciones o ingeniero de software?

Como pasante de ingeniería de software, ¿cuánto código escribes?

Como ingeniero de software, ¿cuántas líneas de código escribe en un mes?

¿Por qué exactamente Google contrató a un sorprendente 8% de los graduados de MS en ingeniería mecánica como ingenieros de software de Carnegie Mellon en 2016?

¿Cómo se ve un buen sitio web junior de cartera de desarrolladores backend?

¿Cómo es trabajar en compañías gigantes como Google, Amazon y Facebook como ingeniero / desarrollador de software?

¿Es muy beneficioso realizar prácticas o trabajar en Uber para su futura carrera de ingeniería de software?

¿Crees que los ingenieros de software más antiguos / especializados tienen más dificultades en estos nuevos procesos de entrevista?

¿Qué cosas has aprendido en tus primeros 6 meses de trabajo como ingeniero de software?

Mi nuevo jefe amenaza con despedir a cualquiera que no use el IDE que ella usa. ¿Cómo debería lograr que nos deje usar el IDE que queramos?

Cómo ser un ingeniero de procesamiento de lenguaje natural calificado

He estado programando durante 2 meses y tengo un ingeniero de software altamente experimentado dispuesto a guiarme regularmente. ¿Cómo puedo utilizar mejor su ayuda?

¿Por qué tantos ingenieros de software usan MacBooks?

¿Cómo acceden los ingenieros de software de las empresas, como Facebook o Twitter, a los archivos para corregir errores o agregar nuevas funciones?

Cómo aprender la interfaz de la computadora del cerebro como ingeniero de software