¿Cuáles son las cosas que desearía haber sabido antes de su primer trabajo como desarrollador de software?

Primero está la diferencia entre lo que desearía saber y lo que realmente hubiera hecho de manera diferente, después de haberlo sabido. Es un nivel de sabiduría hacer esta pregunta; Es otro nivel de sabiduría mucho más alto impacto actuar según el consejo. Te aplaudo por demostrar lo primero y te animo a que consideres lo último.

Sobre el salario (ya que muchos graduados universitarios parecen obsesionados con él):

  • El salario es mucho menos importante que la oportunidad de aprender y crecer . Cuando comencé mi carrera en 1998, tuve problemas para aceptar la oferta de Microsoft, que era la segunda más baja de las 12 ofertas que tenía en ese momento (no importa lo ridículo que me postulé a 12 empresas). En retrospectiva, ninguna de esas otras oportunidades me habría dado cerca de lo que aprendí en esos primeros años en Microsoft.
  • El salario inicial es un mal indicador del salario de mitad de carrera . No se deje engañar por grandes bonos de firma, etc. Cada compañía de tecnología tiene un sistema de compensación escalonado que aumenta de manera no lineal con su antigüedad. Un salario inicial adicional de $ 10-50k no tiene sentido cuando se ve desde una perspectiva profesional.
  • El salario compensa lo que carece de valor intrínseco . Por supuesto, esto es una generalización excesiva. Pero en general, cuanto mejor es un trabajo, menos tiene que pagar para atraer a alguien. Tuve un amigo que trabajó como instructor de esquí en Utah durante una temporada, me pagó mucho. Pero eso es porque el trabajo fue increíble . A riesgo de simplificar demasiado: las empresas aumentan el sueldo de un puesto específico hasta que puedan atraer el número correcto de candidatos calificados. Esta es la razón por la cual las nuevas empresas terribles tienen grandes ofertas de capital, y por qué los trabajos COBOL que adormecen la mente respaldan el camión de dinero.

En grados:

  • La maestría y el doctorado rara vez valen su tiempo . Debería obtener estos títulos por derechos de fanfarronear si su familia proviene de una cultura donde los títulos son importantes. Pero no te quedes en la escuela obteniendo estos títulos por el bien de tu carrera. Hay muy pocos trabajos de CS que requieren estos grados. El salario inicial adicional de estos títulos es fácilmente superado por el número equivalente de años de experiencia laboral.
  • La escuela importa un poco . Ignorando el valor de la educación en sí, las mejores escuelas de informática son reclutadas de manera mucho más activa por grandes compañías de software. Muchas de las escuelas de nivel medio e inferior son ignoradas en gran medida. Por supuesto, puede superar todo esto, incluso los que abandonan la escuela secundaria obtienen excelentes trabajos. Pero si todo lo demás es igual, la escuela puede ser un impulso.
  • Las pasantías importan . Mucho más que la escuela en sí, las pasantías realmente importan. Obtener experiencia en el mundo real es el uso de mayor aprovechamiento de su tiempo en la escuela. Comience temprano, incluso en el segundo año. Desarrolle año tras año para mejores y mejores pasantías (ya sea en mejores compañías o en roles más interesantes dentro de la misma gran compañía).
  • El trabajo del curso es importante . No tome esas clases de “informática” de cheezeball que sin duda ofrece su escuela de negocios. Tome los cursos de CS más difíciles que pueda. Enseñan cosas útiles; Lo que es más importante, es mucho más probable que conozcas compañeros de clase incondicionales que se convertirán en grandes colaboradores en el futuro.
  • Codifica todo el tiempo . Currículum vitae menos impresionante: “Codifiqué solo los proyectos mínimos requeridos en mi programa de CS”. Currículum más impresionante: “Apenas podía seguir el ritmo de la escuela porque estaba enviando tantas aplicaciones de iPhone que tuve que contratar a un contratista para cobrar mis cheques”.

En la elección del equipo / empresa:

  • Ignorar el salario . Al menos en aras de la honestidad intelectual, debe ignorar el salario al comparar los méritos relativos de diferentes ofertas. ¿Qué aprenderás en cada trabajo? ¿Cuáles son las oportunidades para crecer con el tiempo?
  • Empresa nueva o establecida . Aprende diferentes tipos de cosas de estos dos tipos de empresas. Las startups son una variación más alta para los graduados nuevos: o tienes suerte y te unes a la pequeña fracción de startups que tienen éxito (en cuyo caso eres universalmente elogiado como un genio de inmenso talento), o te unes a una de las muchas startups que se agotan después yendo a ninguna parte por años. Las compañías establecidas tienen una variación menor: no te convertirás en un favorito de los medios, pero seguramente aprenderás un conjunto de habilidades bastante útiles si te unes a la compañía correcta.
  • ¿Quiénes son tus compañeros de trabajo? ¿Quien es tu jefe? Las personas forman la columna vertebral de su experiencia laboral cotidiana. También dictan en gran medida si aprenderás mucho o aprenderás un poco. Si sus futuros compañeros de trabajo y su jefe se sienten personas realmente inteligentes que pueden enseñarle cosas, está en el camino correcto.
  • ¿La empresa está evolucionando? “Años de experiencia” es una mala medida de la verdadera experiencia porque la cantidad que aprende no es lineal con el tiempo. Encontrarás en la mayoría de los trabajos que hay ráfagas de varias semanas en las que realizas saltos cuánticos en el conocimiento, puntuados por períodos en los que no aprendes casi nada fuera de lo que te persigue. En una empresa que evoluciona, es más probable que su trabajo diario continúe enseñándole algo interesante.
  • ¿Es meritocrática la empresa? En mi trabajo de programación universitaria en la Universidad de Maryland, las personas fueron promovidas en función de la antigüedad. Entonces, la persona que dirige la oficina es esencialmente el último hombre / mujer en pie. Es abrumador estar en este tipo de situación. Debería encontrar una compañía donde su potencial esté limitado solo por su talento y la cantidad de energía que está dispuesto a invertir.
  • Elija un equipo con cuidado si está considerando una gran empresa . Microsoft es algo así como 90,000 personas. Google, Apple y Amazon son alrededor de 60,000. Esto es más grande que docenas de países del mundo. En organizaciones tan grandes, la experiencia de trabajo puede variar ampliamente dependiendo de la división y el equipo en el que se encuentre. Por lo tanto, no puede elegir la compañía, necesita investigar la división o equipo específico al que se le ha ofrecido una oferta. unirse. Pregunte a los antiguos empleados por sus impresiones. O empleados actuales en los que confía. Te sorprendería cuánto puede variar la reputación interna de varios equipos en estas grandes empresas.

En ti mismo:

  • La carrera es un viaje . No pienses demasiado en su comienzo. No persiga la precisión artificial con su primera opción. En cambio, su mejor movimiento es elegir lo que parece mejor al principio, pero luego reevaluar periódicamente cómo lo está haciendo. No vuelva a evaluar solo cuando tenga 30 años, o solo cuando su cónyuge lo deje. Lea la temperatura todos los años para ver si está aprendiendo y progresando.
  • La carrera no lo es todo . No te aburriré aquí con lo que ya sabes (y lo que ninguna cantidad de argumentación afecta de todos modos). Digamos que cuando comencé mi carrera, tenía un saco de dormir en mi oficina y le pedí a mi novia visitante que saliera a trabajar conmigo a las 10 p.m. mientras completaba un código. No todas estas decisiones parecen tan sabias en retrospectiva.
  • Esfuérzate por crecer . Si eres tan inteligente como todos los demás y trabajas tan duro como los demás, eres promedio (por definición). Encuentra mentores. Aprende cosas a un lado. Solicite retroalimentación explícitamente y elija actuar en consecuencia.
  • Las promociones son pistas falsas . Durante los primeros años de mi carrera, estaba obsesionada con las promociones y con la administración de equipos cada vez más grandes. Me encantaron las pruebas en la escuela, porque siempre me destaqué; Una vez que me uní a la fuerza laboral, descubrí que las revisiones y promociones eran la única afirmación extrínseca regular que podía esperar recibir. Así que perseguí esas cosas. ¿Pero sabes que? Después de un tiempo, te das cuenta de que el zumbido de una promoción desaparece rápidamente a medida que miras hacia el siguiente paso. (Recuerdo claramente una discusión de revisión en la que mi gerente apenas había terminado de felicitarme por un ascenso cuando comencé un aluvión de preguntas sobre cómo pasar al siguiente nivel). Y la escalada nunca termina. Siempre habrá alguien más alto que tú. Y si no (por ejemplo, si se convierte en CEO), notará que otros llegaron al mismo lugar a una edad más temprana, etc. Lo mejor que me sucedió en mi carrera fue darme cuenta de que necesitaba buscar motivación intrínseca y recompensas intrínsecas. . El trabajo se ha vuelto aún más agradable desde entonces.

Y para conocer al azar otra sabiduría relacionada con el trabajo que he aprendido de otros a lo largo de los años, considere esta publicación de blog: El mundo lo mejor que recuerdo.

Es genial que estés haciendo estas preguntas tan temprano en tu carrera. Ojalá tuviera la previsión en aquel entonces de haber formulado la pregunta o haber escuchado sus respuestas. Te deseo lo mejor.

Las comunidades de Internet en general y la comunidad de desarrolladores de código abierto en específico.

Como señala Seth Godin, el sentimiento de pertenencia a una comunidad es un deseo humano básico. Unirse a una gran empresa, además de permitirle ganarse la vida, también satisface este deseo y brinda oportunidades para socializar.

El mundo es diferente hoy. No tiene que estar en una empresa para ser parte de la comunidad. Puede buscar lo que quiera, desarrollar cualquier software que desee y ser parte de una comunidad que se reúne dos veces al año en diferentes partes del mundo. Como eres bueno en lo que estás haciendo, también serás contratado para hacer lo mismo por las compañías que lo quieren hacer.

Así que esencialmente, solo olvídate del trabajo y comienza a desarrollar lo que quieras y sientas. No solo te irá bien; pero serás lo mejor que puedas ser 🙂

Voy a mantener la respuesta breve y simple. Todavía soy estudiante de pregrado en cuarto año, B.tech y tuve mi colocación. Obtuve mi primer trabajo en Microsoft (me uniré en el verano de 2013). morir para conseguir un trabajo en una empresa tan gigante, pero el trabajo de esta empresa en nuestro país ha estado bajo cierto debate (especialmente las pruebas).
Si hubiera trabajado un poco más en algunas áreas de la informática, habría conseguido un trabajo más satisfactorio en Google (asistí a su entrevista) o Directi (es la empresa más competitiva en nuestro país después de Facebook).
Lo que lamento no haber hecho son:

  • Codificación competitiva: un poco más de Topcoder podría haber mejorado mis habilidades algorítmicas, especialmente la parte de DP (aunque generalmente no se pregunta en entrevistas de la compañía). También me mantuvo en contacto frecuente con la programación. Incluso hoy, me pongo nervioso mientras escribo código en papel, que es esencial durante las entrevistas.
  • Proyectos de código abierto : -Proyectos como GSoC habrían ayudado a construir mi currículum;
  • Head Start tardío: -Aunque la mayoría de mis amigos ya se estaban preparando para pasantías y colocaciones al comienzo del 3er año, tardé en comenzar mis preparativos. Las pasantías son importantes para construir tu currículum y si puedes obtener una pasantía en gigantes tecnológicos como Google, Microsoft, Facebook, etc., entonces ya ha hecho la mitad de su trabajo para las ubicaciones. Hay una alta probabilidad de que reciba una oferta previa a la colocación de estas compañías si se lleva bien durante las pasantías. Lo contratarán después de 1-2 entrevistas en comparación con 2 pruebas escritas + 3 entrevistas durante el reclutamiento en el campus.
  • Trabajar más duro : -Hubo momentos en que simplemente dejé de decir que “esto no se preguntará”. A veces tuve suerte, a veces no. Pero cada vez que tenía suerte, me animaba a apostar más. Es como una adicción, ya sabes. Sorprendentemente, los científicos no tienen un nombre para esta adicción, así que lo llamaría una ” adicción friki “.
  • Aunque estoy feliz de haber conseguido un trabajo en Microsoft, me habría alegrado si hubiera trabajado más duro y hubiera conseguido un trabajo en Google, donde tuve la oportunidad de ir. Mi maestro de décimo grado me dijo una vez que “eres inteligente pero no tienes ese instinto asesino que él (otro estudiante) tiene “. Ahora entiendo lo que quiso decir.
    Editar
    más puntos que me gustaría agregar entre remordimientos:
  • Codificación de los algoritmos básicos: aquí está la cosa y podría ayudar a otros que asistirán a colocaciones la próxima temporada. Cualquiera que sea el nuevo algoritmo que lea, debe intentar codificarlo en su idioma favorito. Debe mantener el comando sobre exactamente un idioma favorito (preferiblemente OOP). Frecuentemente omití la parte de codificación después de comprender el algoritmo que está a la mitad del aprendizaje del algoritmo. Si no codifica el algoritmo, nunca sabrá la estructura de datos esencial que se utilizará para tales problemas. Y créanme que las compañías tecnológicas como Google analizan su enfoque, las estructuras de datos utilizadas y alientan el uso de STL incorporados para codificarlos (escrito específicamente en la pregunta)
  • Combata sus miedos : – Voy a ser honesto. Soy un asco en la recursión. Cuando se trata de funciones recursivas, nunca estoy seguro. Si me pide que codifique un algoritmo: -puede haber dos soluciones 🙁 1) Usar recursividad lo que le llevará 5 minutos con solo unas pocas líneas de código. (2) Use la iteración mientras usa pilas explícitas y tome 30 minutos y cien líneas de código; Preferiría la opción (2), tal es mi miedo a la recursión. hasta que la recursión llega a ciertos niveles, pero después de eso se desborda mi cerebro. La recursión es una opción bastante fácil para aquellos que pueden manejarlos para escribir árboles y algoritmos de gráficos. No es una necesidad, pero puede ser un activo que puede conseguir un trabajo en estas empresas.
  1. Las capas de abstracción son muchas. Los fundamentos son lo más importante
  2. Aprender lenguajes de programación no es tan importante como aprender sus filosofías de programación subyacentes.
  3. “Los programas deben estar escritos para que la gente los lea, y solo de manera incidental para que las máquinas los ejecuten”.
  4. La genialidad de Git y GitHub
  5. CSS (je)

Estoy escribiendo esta respuesta como una respuesta a la respuesta de un usuario que se queja de no ser colocado en las principales empresas porque no se tomó en serio la codificación. Vamos creciendo, te colocan en una de las mejores empresas de la India, miles de ingenieros de toda la India sueñan con conseguir este trabajo, pero aún te quejas. Me colocan en la segunda compañía más competitiva de la India, según lo descrito por usted, y nunca hice la mayoría de las cosas que mencionó en su respuesta, pero aún así ingresé; Por qué, por el factor suerte. Incluso usted Si no ha hecho esas cosas y todavía ha llegado a Microsoft, entonces lady luck también le sonrió. Las ubicaciones en los campus en India son como el examen de examen de seis horas que tomamos un día y que decidió nuestra vida durante los próximos cuatro años. Se trata de suerte. Eso me lleva al punto más importante.

Tu primer trabajo como desarrollador de software en India a través de prácticas en campus es más sobre la suerte que sobre cualquier otra cosa. Si siente que su primer trabajo no está a la altura de su capacidad, no pierda la esperanza de seguir trabajando duro y seguramente tendrá un trabajo que se merece en unos pocos años. Si tienes un trabajo que es demasiado bueno para ti, agradece a tus estrellas y comienza a trabajar duro también aprovecha al máximo la oportunidad que se te ofrece.

¿Sé cómo se juzgará mi éxito?
¿Sé en qué tipo de cultura trabajaré?
¿Sé para qué tipo de gerente trabajaré?
¿Conozco todos los detalles del paquete de compensación, incluidos los detalles del seguro de salud y el tiempo libre pagado?
¿Cómo encaja este trabajo con mi carrera profesional general?

debe comparar a los empleadores antes de comenzar.

JobGuiding.com – Las mejores oportunidades de trabajo

Ese trabajo de software es trampa.

More Interesting

¿Cómo esperan las empresas que alguien obtenga 2 años de experiencia como desarrollador junior si casi todas las vacantes son para personas con 2 años de experiencia?

¿Por qué a algunos programadores no les gustan los reclutadores técnicos?

Cómo prepararme para posibles entrevistas de pasantía para desarrolladores de software

¿Cuál es un buen plan de un año para convertirse en desarrollador de software?

¿Cuáles son las compañías más seguras para desarrolladores / ingenieros de software en India?

En febrero de 2017, ¿la pizarra es una prueba útil durante las entrevistas con desarrolladores de software?

¿Cuál es la mejor manera de medir la productividad del desarrollador?

¿Dónde se almacenarían los lenguajes de programación en el cerebro de un desarrollador?

¿Cuál es la mejor manera de llegar al máximo de desarrolladores de software en Internet?

¿Qué características de Java apasionan a las personas?

¿Cómo es una empresa de desarrollo de software off-shore beneficiosa para los negocios?

Como desarrollador de software, ¿cuánto de su día diría que gasta productivamente?

¿Cuál será el futuro de Robotic Process Automation como desarrollador de software en la industria de TI en India?

¿Cuál es su historia de desarrollo de software desde una carrera más fresca a una profesional?

Como desarrollador de software con 1.3 años de experiencia, ¿cómo puedo obtener un trabajo como analista de negocios? ¿Qué herramientas necesito para dominar? ¿Qué tipo de preguntas de entrevista puedo esperar?