¿Debería uno trabajar en grandes empresas (Apple, Google, etc.) primero y luego pasar a nuevas empresas (Airbnb, Uber, etc.), o debería ser al revés, para maximizar el crecimiento como ingeniero de software?

El punto de partida ideal para cualquier ingeniero de software centrado en el desarrollo de software comercial es una conocida empresa multinacional de software, como Google, Facebook, Amazon o Microsoft.

Cuando recién comienza, es muy útil tener una estructura, enfocarse en una parte específica de la ingeniería de software y tener una buena tutoría, instalaciones, herramientas y procesos. También ayuda tener una demanda y requisitos reales de lo que estás produciendo, en lugar de especulaciones y aspiraciones. Aprende a desarrollarse como parte de un equipo, a familiarizarse con las herramientas utilizadas en la industria y las prácticas estándar de la industria, la mayoría de las cuales existen porque funcionan. Puede llevar este conocimiento a cualquier otro lugar donde trabaje después.

Como una ventaja adicional, trabajar en una compañía de software ‘nombre’ es un pedigrí en su currículum. Te hace ser buscado por las otras compañías de nombre, y una gran cantidad de empresas de software y nuevas empresas emergentes. Le presenta a las personas que conocerá por el resto de su vida que se despliegan en una miríada de otras compañías, aumentando su red de personas para ayudarlo a encontrar los mejores trabajos.

Trabajar en una startup, por otro lado, es una verdadera bolsa de mano. El pago generalmente no es tan bueno. El trabajo está más disperso, a veces no tiene nada que ver con ser un ingeniero de software. El valor de lo que está haciendo y lo que está aprendiendo puede variar enormemente de una compañía a otra. En el peor de los casos, terminas dos años de 70 horas semana quemadas, en quiebra y sin ninguna experiencia, nadie lo reconocerá.

Cuando comience su carrera como ingeniero de software, trabaje en una gran empresa si puede. Conseguir un trabajo con uno a través del reclutamiento en el campus es la mejor manera de hacerlo, y el camino más fácil que tendrá para obtener entrevistas y conseguir un trabajo con dicha empresa.

Si por “crecimiento” quieres decir aprender más y convertirte en un mejor ingeniero de software más rápido, esta podría ser una pregunta un poco incorrecta.

En mi experiencia, lo que marca la diferencia es con quién puedes trabajar. Ya sea en una gran empresa o en una startup, podrías involucrarte con otros ingenieros al mismo nivel que tú (de quienes aprenderás menos), o con personas más importantes para ti.

Cuando comencé con la programación, las personas de las que más aprendí eran personas que habían estado codificando más tiempo que yo, particularmente si asumían que sabía más que yo, porque eso me obligó a trabajar realmente para estar a la altura de sus necesidades. Expectativas. Hay muchas cosas que puede aprender incluso de una conversación informal todos los días, sobre cómo otra persona piensa acerca de los problemas y qué partes de un problema cree que son importantes, e internaliza algo de eso: hágase la pregunta, cuando discuta un problema técnico, ¿qué debe pensar esta persona que es importante decir lo que está diciendo, y qué haría que alguien lo vea de esa manera? Lo mismo ocurre al leer el código de otras personas.

El punto es que desea trabajar con personas que lo hacen mejor que usted, porque es donde es más probable que aprenda. Esa podría ser una gran empresa, o una pequeña, eche un vistazo a las personas con las que estaría trabajando. Eso es lo que hará la diferencia.

Y si bien a todos les gusta escribir cosas nuevas, busque algo en lo que vaya a pasar al menos parte del tiempo manteniendo algo que otros escribieron, preferiblemente algo hecho de manera competente. Cuanto más grande, mejor, ya que encontrarás más ideas de esa manera. Puedes tener una idea de cómo alguien pensó en los problemas, incluso si no están cerca, al ver cómo los resolvió.

En última instancia, todo esto se alimenta de su propia visión de cómo resolver problemas, y algunos se mantendrán y otros no (y otros no): cuantas más formas de pensar sobre los problemas que encuentre, más herramientas tendrá en su caja de herramientas. .

Una de mis cororas favoritas, Gayle Laakmann McDowell, hizo un excelente comentario al respecto en una de sus respuestas. Ella recomendó que un ingeniero junior tratara de pasar al menos un par de años trabajando para una gran compañía de tecnología de “marca” como Google, Facebook, Microsoft o Amazon antes de pasar a nuevas empresas menos establecidas.

Su razonamiento es que una vez que tenga “Ingeniero de software en Google” en su currículum, nunca tendrá problemas para volver a entrevistarse, y es probable que obtenga un aumento significativo en la antigüedad cuando decida ingresar al mundo de las startups. Sabrá cómo se ven las cosas “a escala” y cuáles son las mejores prácticas de la industria. Todo esto se puede aplicar a una empresa joven que todavía está resolviendo los problemas que su empresa más grande ya ha refinado a una ciencia.

Si le da la vuelta a esto y decide comenzar en una empresa pequeña y relativamente desconocida antes de dirigirse a una empresa más grande, es posible que le resulte más difícil obtener una entrevista si nadie ha oído hablar de su inicio fallido. Del mismo modo, las prácticas de desarrollo que desarrolló allí pueden no estar alineadas con los estándares de las empresas más grandes, y eso puede hacer que tenga dificultades para eliminar los malos hábitos percibidos cuando comience a trabajar para esa gran empresa.

Por lo tanto, en general, pasar de una gran empresa a una empresa más pequeña tiene sus ventajas. Dicho esto, el alcance del trabajo y la responsabilidad serán muy diferentes entre los dos. Si desea profundizar en un campo como, por ejemplo, el aprendizaje automático o los sistemas distribuidos, una empresa más grande le permitirá trabajar con algunas de las mentes más importantes en el campo elegido. Sin embargo, si te gusta ir a lo ancho , una startup te permitirá usar muchos más sombreros. Tendrá más responsabilidad y, a menudo, trabajará en más cosas fuera de su alcance.

Finalmente, señalaría que empresas como Uber y Airbnb, los llamados “unicornios”, son básicamente grandes empresas, por lo que todo lo que se dice sobre Google también se aplica de manera similar a ellos.

ObDisclosure: Mi experiencia comenzó hace 25 años, YMMV.

La ventaja de comenzar con una startup es que aún puedes vivir delgado y con hambre. Si trabajas primero en Google & tc, si eres bueno te acostumbrarás rápidamente a tener un ingreso constante considerable, y eso será muy difícil de dejar atrás. Aún más difícil si haces cosas como comprar una casa y formar una familia. Por supuesto, no hay nada de malo en solo trabajar en Google & tc, si funciona para usted.

Un problema con el trabajo en las startups en estos días es que las startups son mucho más delgadas que hace 20 y 30 años. En estos días, puedes ser una propiedad exitosa bastante grande con solo diez o veinte personas a bordo, mientras que en los años 90 tendrías 60 o 70 personas y todavía estarías ganando impulso en la pista. Obviamente, no todos son lo suficientemente fuertes como para estar en el grupo más pequeño.

Comentarios de otros de WRT acerca de la necesidad de ser bien equilibrado y el comercio de todos en un inicio, en mi humilde opinión, esta es una gran ventaja. En un lugar como Google, puede pasar años ajustando un .1% adicional de un proyecto de $ BB. Eso puede ser muy interesante, pero probablemente no va a maximizar su tasa de crecimiento. En una startup, tendrás que aprender un montón de cosas solo porque alguien tiene que hacerlo. ¡Quizás encuentres algo que no sabías que te interesaba! Además, las personas con las que trabajas serán una variedad más amplia y es más probable que se desplieguen en la industria (mientras que en las grandes empresas, la mitad de las personas con las que trabajas todavía estarán allí en 10 años).

Voy a volver a mi comentario anterior sobre solo quedarte en Google; no pienses que necesitas hacer la startup solo porque eso es lo que hace la gente. Puede ganarse la vida REALMENTE bien trabajando en algún lugar como Google durante toda su carrera.

Recomendaría un primer trabajo en una compañía de software establecida con más de 50 empleados, que tengan un historial de entrega de software.

No desea un inicio, ya que necesita ser un gato de todos los intercambios allí, y este es su primer trabajo.

Los gigantes pueden estar bien, pero para mí, parecen tener expectativas muy altas sobre sus solicitantes que simplemente no necesita para su primer trabajo.

Quieres salir de ella

  • Para aprender un idioma y una cadena de herramientas
  • Colaborar
  • Tener un proceso formal de liberación
  • Para escribir código de producción: probado, mantenible
  • Para enviar parte de ese código y extenderlo y admitirlo

Esas son las actividades fundamentales de un codificador profesional. Todas las compañías de software deben hacerlo, de lo contrario no se envían, y como es un poco más fácil ingresar a una compañía mediana ‘Sin nombre’, apuntaría a eso.

Entonces, tu segundo trabajo en un gigante, si eso es lo que crees que quieres, es un poco más fácil de conseguir.

Debes descubrir adónde quieres ir antes de elegir un punto de partida. Si quieres ser ingeniero de software, es mejor trabajar en grandes empresas. Obtendrá mucho más trabajo técnico desafiado que muchas nuevas empresas.

Por otro lado, las startups son un buen punto de partida si quieres terminar haciendo trabajos de administración o roles relacionados con el negocio. Si está en una empresa grande, a menos que esté en un nivel muy alto, como director o vicepresidente, solo se ocupará de trabajos técnicos.

Estoy de acuerdo con muchas de las respuestas aquí, y lo calificaré con la versión corta de mi biografía.

Tuve la suerte de conseguir un trabajo en IBM justo después de la universidad. No fue el trabajo más desafiante: en su mayoría fueron correcciones de errores para salvar al mundo de Y2K, así que hay cuánto tiempo he estado en esto, pero ese año y medio (fue un concierto por contrato) realmente me ayudó a descubrir dónde Quería concentrarme más en mi carrera. También trabajé con algunas personas muy, muy inteligentes que llenaron los vacíos que quedaban de la escuela. Significado: es posible que haya aprendido sobre las herramientas y cómo usarlas en un entorno controlado donde la única consecuencia del mal trabajo fue una mala calificación; pero no cómo aplicarlos en “el mundo real”.

Después de esa experiencia, pasé muchos años en empresas más pequeñas y nuevas empresas hasta que finalmente encontré el camino de regreso a un lugar más grande y más establecido. Y espero quedarme allí por muchos años.

Creo que la ventaja que los lobos arrojaron de inmediato, por así decirlo, surgió lista para trabajar en compañías más pequeñas (léase: donde tengo capital e interés invertido para ver que la compañía tenga éxito) con experiencia a escala global: todo eso. mi equipo estaba desplegado en todos los campus de IBM en el mundo. Y tener a IBM en mi currículum (y mi increíble gerente anterior como una gran referencia) definitivamente me ayudó a poner mi nombre en la cima y avanzar.

Dicho esto, no consideraría a Uber o Airbnb una startup. Ya están operando a una escala bastante masiva. Para mí, trabajar en una startup implica construir para llegar a dicha escala … si llega tan lejos, por supuesto. Aprender a trabajar en ese entorno sobre la marcha será un desafío excepcional y probablemente no en el buen sentido. Como alguien más sugirió, trabajar dentro de una base de código establecida y probada puede ser el mejor maestro que encontrarás. Hay muchas formas de resolver problemas similares y exponerse a soluciones que claramente TRABAJAR es mucho mejor para usted y su carrera que aprenderlo de la “manera difícil”.

Una de las mejores maneras de aprender rápidamente es comenzar a trabajar en una empresa relativamente pequeña. Te ayudará a crecer profesionalmente más rápido. Le brindará la oportunidad de echar un vistazo a los diferentes aspectos del trabajo y usar diferentes sombreros que le proporcionarán una indicación de lo que disfrutará principalmente en los próximos años.

Comience en pequeñas empresas con la oportunidad de aprender más, crecer profesionalmente más rápido, tener muchas responsabilidades diferentes.

¡Retírese en una gran compañía o en compañía propia!

¿Qué considera “maximizar el crecimiento”?

Esa es la pregunta clave para mí.

¡Todo depende de lo que quieras!

Lo que quería de joven es muy diferente a mis metas hoy.

¿Pero “crecimiento”? ¡Sinceramente, no sé lo que eso significa!

Creo que los problemas que enfrentan las grandes empresas son problemas de escala que solo las grandes empresas enfrentan. Entonces, si bien esa experiencia es extremadamente valiosa, es aplicable principalmente a las grandes empresas. Ex. La mayoría de las nuevas empresas nunca tendrán que lidiar con la tecnología de escalado para millones de usuarios diarios.

Creo que cuando comienzas tu carrera en ingeniería de software, tu objetivo debe ser cometer tantos errores en muchas áreas diferentes (y aprender de cada una) para que puedas encontrar las cosas que disfrutas. Comience su carrera descubriendo lo que le apasiona y luego vaya a compañías donde puede aplicar esa pasión; grande o pequeño.

Además, las probabilidades de que tenga un gran impacto en una pequeña empresa son mucho mayores que las probabilidades de tener un pequeño impacto en una gran empresa.

More Interesting

La carta de oferta de trabajo se lee como si hubiera aceptado comenzar en diez días, pero todavía estoy hablando con otra compañía. ¿Cómo responder graciosamente?

Tengo 28 años. ¿Es demasiado tarde para convertirse en ingeniero de garantía de calidad de software?

¿Cuál es el mejor país del mundo para trabajar como desarrollador de software y por qué?

¿Cómo pasaste de profesor a desarrollador, cuánto tiempo te llevó?

Si quiero ser pasante de ingeniero / desarrollador de software en compañías como Apple, Google o Palantir, ¿cuáles son algunos tipos de programas que debo conocer?

¿Qué hace que un trabajo de software sea frustrado en mncs?

¿Es necesario tener experiencia en programación de desarrollo al principio, para convertirse en un gerente de producto de software?

Mi compañía me está pagando 30k como desarrollador de software junior, el promedio en la ciudad (Vancouver) por el mismo rol es de 45k, no tengo el lujo de renunciar y buscar trabajo. ¿Qué tengo que hacer?

Cómo hacer una transición en la carrera del campo de la ingeniería al campo del software

Como gerente de contratación de un ingeniero de software, ¿cree que los candidatos con trabajos a tiempo completo son más competitivos que los candidatos por contrato?

Cómo comenzar una carrera como ingeniero de software

¿Es crítico llevar el bootcamp de desarrollo de software en la ciudad en la que quiero trabajar?

Compare y contraste los roles de un desarrollador de software y un probador de software. ¿Cuál es mejor para un más fresco?

¿Qué habilidades necesitaría para ser desarrollador de software / pasante de programación en Duolingo?

Al comenzar mi carrera profesional como desarrollador, ¿cómo sé si mi software es lo suficientemente bueno?