¿Cómo puede un estudiante que no es de informática obtener un trabajo como ingeniero de software?

Recientemente escribí una guía completa sobre exactamente lo mismo (enlace aquí)

Construir una carrera sólida en tecnología sin una especialización en CS

Alice es estudiante de segundo año de ciencias de los materiales e ingeniería metalúrgica en IIT Bombay. Ella trabajó duro durante su preparación para JEE, pero terminó jodiendo a JEE. Ella aseguró un rango de alrededor de 2,000. Ella es de una familia de clase media y quería optar por la informática para poder construir una carrera en tecnología y apoyar a su familia y hacer que sus padres se sientan orgullosos. Sin embargo, durante el asesoramiento de JEE, pudo reducir sus opciones a lo siguiente:

  • Elige CS en una universidad de nivel 2
  • Elija IIT Bombay ciencia de materiales e ingeniería metalúrgica

Como había escuchado mucho sobre IIT Bombay, terminó eligiendo las ciencias materiales de IIT Bombay. Sin embargo, poco después de algunos cursos en el primer año, se dio cuenta de que no le gusta su transmisión y más bien quiere construir una carrera en tecnología. También se da cuenta de que es imposible cambiar su rama a Ciencias de la Computación porque la competencia es demasiado dura y su escaso 7 puntero está muy por debajo del límite de 9.6.

Ahora ella está atrapada con:

  • Bajas notas
  • Una rama que no le gusta
  • No puede perseguir su amor por la programación.
  • Preocupado por trabajos y colocaciones al final de pregrado

¿Eres también alguien que es como Alice? ¿También elegiste una sucursal por el simple hecho de obtener una mejor universidad? ¿Eres de una familia de clase media y quieres usar tu licenciatura para construir una carrera sólida en tecnología para que puedas apoyar a tu familia? ¿Eres el que ha perdido toda esperanza de tu carrera en tecnología después de tu primer año de pregrado?

Si la respuesta a estas preguntas es ‘sí’, tengo una sorpresa para ti. Sigue leyendo!

Déjame hablar un poco sobre mí. Soy un estudiante de cuarto año de ciencias de la computación e ingeniería en IIT Bombay. He pasado 3.5 años excelentes en IIT Bombay y tengo 3 meses más antes de graduarme. Este lugar es excelente, lleno de gente inteligente. Este lugar me ha dado mucho, yo era estudiante, este lugar me convirtió en ingeniero. Siento que le debo mucho a mi universidad.

Siempre he visto a personas quejarse de su rama. Esto es lo que escucho a menudo de mis amigos en otras ramas:

  • Siempre quise estudiar Ciencias de la Computación, pero ah, solo los primeros 50 rangos lo entienden, ni siquiera estaba entre los 500 mejores.
  • Mi rama es extremadamente aburrida. La mayor parte es abarrotada. ¡Es una mierda!
  • Ojalá pudiera volver y elegir Computer Science en esa universidad de nivel 2. ¿Por qué demonios elegí mi rama?

Hubo un comportamiento común entre todas estas personas: todos querían estudiar CS, pero no podían hacerlo. El rango JEE es el culpable. Lo que fue más sorprendente fue que la mayoría de ellos no utilizaron los miles de millones de recursos de programación disponibles en Internet que dicen convertirte en un programador.

Luego hablé con algunos de ellos y supe que están confundidos. A continuación se encuentran las preguntas más comunes:

  • ¿Cómo debo proceder adelante?
  • ¿Debo aprender desarrollo web?
  • ¿Debo probar el desarrollo de aplicaciones de Android?
  • ¿Qué lenguaje de programación debo aprender?
  • ¿Cuántos lenguajes de programación debo aprender?
  • ¿Cómo hacer un sitio web?
  • ¿Debería intentar trabajar independientemente?

Estuve en contacto cercano con una amiga mía que estaba en una situación muy similar a la de Alice. Llamemos a mi amigo como Bob. Bob estaba harto de su rama. Su único objetivo era entrar en la industria y ganar dinero y enorgullecer a sus padres. Como era de informática, intenté ayudar a Bob y en 2 años, esto es de lo que Bob se jacta:

  • Contratado como ingeniero de software en una empresa de tecnología decente con el doble del paquete promedio de un IITian. Sin duda, Bob tomó el paquete más alto en su departamento donde todas las demás personas estaban por debajo del paquete promedio
  • Pasantía de ingeniería de software en una startup con sede en Mumbai al final de su tercer año

Hoy, Bob está feliz y espera con ansias su vida como ingeniero de software exitoso. Está feliz de ganar lo suficiente para mantener a su familia y a sí mismo.

Muchos recursos en Internet afirman que le enseñan programación, pero el hecho es que ninguno de ellos proporciona una hoja de ruta adecuada y los estudiantes que no son CS encuentran realmente difícil determinar qué se debe hacer primero y qué se debe hacer después. Terminan eligiendo un tema difícil y luego se rinden fácilmente. Por ejemplo, Bob quería probar el desarrollo de aplicaciones de Android en su segundo año, pero se dio por vencido porque ni siquiera podía entender lo básico.

En esta publicación de blog, quiero apuntar a personas como Alice y Bob y quiero crear un recurso que ayude a cada estudiante que no sea CS a desarrollar una carrera como ingeniero de software. Mi visión al escribir esta publicación de blog es que cada estudiante tiene derecho a aprender programación de computadoras de la manera correcta. Cada estudiante debe tener suficientes recursos que puedan ayudarlo a construir una carrera como ingeniero de software.

Basta de contexto, comencemos 🙂

Supongo que probablemente estás en tu segundo / tercer / cuarto año de pregrado en un departamento que no es de CS, buscando desarrollar una carrera como ingeniero de software. Además, supongo que ha realizado un curso de programación básico, que generalmente es obligatorio en la mayoría de las universidades. Esto significa que conoce al menos uno de estos lenguajes de programación: C, C ++, Java, Python.

Primero un poco de motivación:

  • La demanda de ingenieros de software en India es muy alta y con más y más nuevas empresas, la demanda ciertamente aumentará.
  • Los salarios iniciales de los ingenieros de software en la India suelen ser el doble del salario de otras corrientes. Si eres de una universidad de nivel 1, espera aún más.
  • Alguna persona famosa ha dicho: la mejor inversión que puedes hacerte a ti mismo en la era actual es aprender a programar.

Permítanos ahora hablar sobre cómo debe ser exactamente su enfoque para lograr su objetivo de convertirse en ingeniero de software.

3er semestre

Al final del primer año, seguramente habría completado un curso básico de programación. Para su tercer semestre, debe aspirar a un curso de probabilidad y estadística. Casi todas las universidades ofrecen tales cursos y debes inscribirte en el curso ofrecido por tu instituto. Puedes elegir sentarte en el curso. Pero definitivamente tome una clase de probabilidad temprano en su plan de estudios. He oído que el curso ofrecido por MIT OCW es bastante bueno.

Tomar clases de probabilidad también lo ayudará a reforzar algunos de sus conceptos de álgebra lineal que son importantes para muchos cursos de CS.

4to semestre

Tome los siguientes 2 cursos:

  • Estructuras de datos y algoritmos
  • Matemáticas discretas

Las estructuras de datos y los algoritmos es un curso sin el cual no se puede avanzar en informática. Es un curso fundamental y cada estudiante debe tomar uno de esos cursos.

Este curso será un poco difícil. Es altamente técnico e incluso los mejores estudiantes se quedan boquiabiertos cuando se presentan problemas de estructuras de datos y algoritmos. Este curso literalmente será una prueba de su paciencia y, por lo tanto, sea paciente. Si puede completar este curso, estará un 50% más cerca de su objetivo.

Matemática discreta es un curso que te enseña matemáticas para la informática. Estudiarás inducción matemática, combinatoria y otras cosas.

Aquí están los recursos que recomendaría encarecidamente:

  • Algoritmos, Parte I – Universidad de Princeton | Coursera . Este es un excelente curso. El curso se imparte en Java. Si no conoce Java, está bien. Dedique un tiempo considerable a comprender lo que el profesor está enseñando e intente implementarlo en cualquier lenguaje de programación que conozca.
  • Matemáticas para la informática . Este curso es ofrecido por el MIT y se sabe que es bastante bueno.

Libros recomendados

  • Para estructuras de datos y algoritmos, recomendaría el libro sugerido por Robert Sedgewick. El otro libro recomendado es Cormen, pero es un poco más complicado y contiene matemáticas rigurosas que quizás no aprecies.
  • Para matemáticas discretas, recomendaría Kenneth Rosen, un excelente libro.

Recuerde: escriba todo el código que pueda. A menos que escriba código, no aprenderá. Intente implementar todo lo que aprende en la clase de estructuras de datos.

Vacaciones de verano después del 2do año

Use las vacaciones de verano para perfeccionar sus habilidades de programación. Dirígete a este enlace: Juez Esfera en línea (SPOJ). SPOJ es un juez en línea. ¿Que es eso?

SPOJ es un archivo de problemas que se resolverán escribiendo código. Considere este problema simple – SPOJ.com – PRUEBA del problema. Debe tomar la entrada del usuario hasta que el usuario ingrese ’42’. Deténgase tan pronto como tenga 42. Ahora, observe cómo resolver esto aquí: solución a TEST en C. Básicamente, los jueces de programación tienen pautas de presentación muy estrictas. No imprima “Ingrese un número:” cuando desee tomar un número como entrada. No funciona de esa manera. Envías el código sin imprimir basura. Simplemente imprima lo que se especifica en la declaración del problema. Lea los ejemplos de casos de prueba para tener una idea. Haga una búsqueda en Google para comprender cómo funcionan los jueces en línea.

Resuelve los primeros 100 problemas en el enlace que te di arriba. Confía en mí, te convertirás en un ninja de codificación si haces esto. Serás mejor que algunos de tus amigos de CS en la programación. No, no estoy mintiendo 🙂

100 problemas no es un gran objetivo. Intente resolver 2–3 por día y debe terminar en 1–1.5 meses dependiendo de su velocidad.

Pasa tiempo aquí. Si no puede encontrar una solución, intente más. Lea los comentarios para obtener pistas. Utiliza la búsqueda de Google para obtener pistas. Después de intentar durante unos 30 minutos, si no obtiene una solución, intente buscar una solución en Google: ‘Solución SPOJ X’, donde X es el código del problema.

Su objetivo debe ser aprender a escribir código, aprender las implementaciones de algoritmos comunes, aprender el uso de STL.

Después de que haya resuelto los primeros 5–10 problemas en SPOJ, también le recomendaría que eche un vistazo a este Primeros pasos con el deporte de la programación. Este documento te ayudará a comprender mejor las cosas.

5to semestre

Durante el quinto y sexto semestre, debe comenzar a buscar pasantías que pueda realizar al final de su tercer año.

Sin embargo, esa será una tarea paralela. La tarea principal durante el quinto semestre debe ser:

  • Aprender desarrollo web
  • Aprende el desarrollo de aplicaciones de Android

Debería obtener al menos 3 proyectos en su currículum al final del 5to semestre:

  • 2 proyectos de desarrollo web
  • 1 proyecto de desarrollo de aplicaciones para Android

Nuestra primera tarea sería aprender Django.

  • ¿Qué es? Es un marco de desarrollo web basado en Python.
  • ¿Por qué aprenderlo? Django tiene una gran demanda entre las nuevas empresas indias en estos días. Además, es fácil de aprender.
  • ¿Cómo lo aprendo? Dirígete directamente a este enlace: Tutorial de Django Girls. No estés triste por el nombre si eres un niño. Nada sexista aquí 🙂 Este es uno de los mejores tutoriales de Django que existen. Pasa una semana entendiéndolo. Dedique tiempo a comprender cómo funciona Django: modelo, vista, arquitectura del controlador. Si sigues este tutorial religiosamente, has logrado 3 cosas:
  • Ahora comprende los conceptos básicos del desarrollo web en Django
  • Acabas de aprender lo básico de Python
  • Tienes un proyecto decente para escribir en tu currículum
  • Una vez que hayas terminado con el tutorial de Django para chicas, lo siguiente que debes intentar es crear tu propia aplicación Django. Tengo algunas sugerencias para ti:
  • Cree una aplicación de galería de fotos: tome una etiqueta hash del usuario y use TwitterAPI para recopilar imágenes de esa etiqueta hash en una galería de fotos. Esto puede ser útil: amangoeliitb / Photo-Gallery-Web-Application
  • Una aplicación bancaria simple: intente crear una cuenta de cliente y de empleado.
  • Un tablero de instrumentos del alumno que muestra el rendimiento del alumno.
  • Oh, ya se me olvidó decir: crea una cuenta de Github. Github es una ‘red social’ para programadores. Las personas cargan sus códigos fuente en Github. También hay algo llamado ‘git’, que es un sistema de gestión de versiones. Tome este breve curso sobre git – Cómo usar el control de versiones en Git y GitHub | Udacity. Por cierto, vale la pena aprender git porque puedes incluirlo en tu currículum.
  • Hay otra cosa importante que olvidé decirte: stackoverflow. Como programador, está obligado a enfrentar errores y excepciones. ¿Qué hacer? Existe una técnica extremadamente simple para lidiar con los errores. Copia el maldito error, pégalo en tu barra de búsqueda y presiona enter. ¡Viola! Abra los primeros 3 enlaces que obtiene en la búsqueda de Google. Con una alta probabilidad, alguien ya se ha enfrentado al error que recibió y ha escrito una solución en stackoverflow. Los enlaces de Stackoverflow son generalmente confiables y puede esperar que le den la respuesta correcta. Se paciente. Lee y prueba. Su código podría romperse. Pero eso está bien. Usar deshacer Pero no tengas miedo de romper cosas que no aprenderás.

Genial, así que ahora sabes desarrollo web, Python y tienes 2 proyectos increíbles en tu currículum. Pasemos al desarrollo de aplicaciones de Android. Estos son los pasos a seguir:

  • Dirígete a este enlace: Android | Udacity. Udacity es una plataforma en la que las grandes compañías tecnológicas ofrecen cursos que puede tomar para aprender varias habilidades en ingeniería de software. Google ha creado algunos excelentes cursos de Android en Udacity y definitivamente deberías echarles un vistazo. Comience desde cursos de nivel principiante. Son muy simples y pueden completarse en uno o dos días. Debe pasar al menos 1–2 horas al día en estos cursos. Una vez que haya terminado con los cursos de nivel principiante, tome cursos de nivel intermedio. Por supuesto, haz los gratuitos. No hay necesidad de gastar dinero en ningún curso / nanogrado. La programación de aprendizaje debe ser gratuita para todos 🙂
  • Android puede ser un poco frustrante. El Java utilizado en Android es ligeramente diferente del Java habitual en el sentido de que es avanzado y tiene muchas funciones de biblioteca. No te atasques por eso. Recuerde, debe ser ingeniero de software. Los ingenieros de software somos conocidos por resolver problemas 😉 Como de nuevo, te sugiero que utilices mucho la búsqueda de Google para detectar cualquier error. Sé paciente porque Android es un poco difícil.
  • Al final, tendría 3 cosas más en su currículum:
  • Desarrollo de aplicaciones para Android
  • Java
  • Un proyecto basado en una aplicación de Android

Con todo esto en su currículum, seguramente obtendrá una pasantía.

6to semestre

En este semestre, debe tomarse en serio su pasantía (si aún no tiene una). De todos modos, aquí están los consejos para la pasantía:

  • AngelList es una excelente plataforma donde las nuevas empresas buscan pasantes. Haga una cuenta AngelList y agregue sus proyectos y habilidades en ella. Seguro que atraerá la atención de algunas nuevas empresas con esas increíbles habilidades de desarrollo web y Android.
  • Busca otros portales de pasantías. Mantente activo en LinkedIn.
  • Comience a prepararse para las entrevistas. La forma en que funciona la contratación en ciencias de la computación es que usted es preseleccionado para entrevistas basadas en su currículum. Durante las entrevistas, se le piden estructuras de datos y problemas basados ​​en algoritmos. El nivel de problemas sería similar a lo que ha estado haciendo en SPOJ para que pueda estar feliz de que su arduo trabajo finalmente valga la pena. Yo recomendaría continuar con la práctica de SPOJ. Es más fácil perder habilidades que aprender habilidades.
  • Para prepararse para las entrevistas, use las siguientes 3 excelentes fuentes:
  • Descifrando la entrevista de codificación: este libro es la biblia para programar entrevistas. Cómprelo o descargue un pdf (la piratería es mala). Intenta leer la teoría y resolver los problemas. Intenta implementar realmente las soluciones.
  • Codificación de preguntas de la entrevista: esta es una plataforma brillante para perfeccionar sus habilidades de entrevista.
  • GeeksforGeeks: este es un excelente blog / archivo de programación.

Además, sugeriría que se prepare con preguntas de sus proyectos del 5to semestre. Deberías poder explicar el código que escribiste. El entrevistador puede preguntarle sobre una biblioteca específica que utilizó. No se preocupe, debe tener una idea de alto nivel que pueda explicar. Nadie te preguntará la sintaxis.

Eso fue sobre pasantías. Además de la pasantía, debe intentar tomar algunos cursos diversos como:

  • Machine Learning – Machine Learning – Universidad de Stanford | Coursera
  • Introducción al curso de aprendizaje automático | Udacity
  • Criptografía – Criptografía aplicada y clase de cifrado en línea | Udacity

Estos cursos deberían ayudarlo a incluir 2 proyectos más en su currículum y también a ampliar su conocimiento de CS. Sin duda, también te abrirán más dominios de pasantías:

  • Ingeniero de datos / ML pasante
  • Ingeniero de seguridad en prácticas

Veranos al final del 3er año

Disfruta tu pasantía. Trabaja duro e intenta obtener una oferta de devolución

7º semestre

Prepárate duro para las ubicaciones durante esta sem. Los siguientes temas se preguntan durante las ubicaciones:

  • Estructuras de datos y algoritmos : el estándar de CS
  • Probabilidad : preguntas de estadísticas / problemas de nivel escolar. Estos deberían ser fáciles para ti
  • Bases de datos y sistemas operativos : todavía tenemos que hablar sobre esto

Como usted no es del departamento de CS, muchas empresas no estarán abiertas durante las ubicaciones. Pero no te preocupes. Muchas empresas estarían dispuestas a llevarte si has trabajado duro durante los últimos 2 años. Apunte específicamente a las posiciones de desarrollo web / android. Estos son fáciles de agarrar.

Ahora hablemos sobre bases de datos y sistemas operativos (SO):

  • Bases de datos : en su aplicación web Django, habría utilizado SQLite / MySQL / Postgres como su base de datos. Una base de datos es un tipo especial de estructura de datos que almacena datos en el disco duro. A algunas compañías les gusta hacer preguntas relacionadas con bases de datos a los candidatos. Al no ser un estudiante de CS, por supuesto, no se espera que haga un curso formal de bases de datos (si puede, ¡eso es una gran ventaja!). Busque preguntas de entrevistas en bases de datos para tener una idea básica de lo que se pregunta. Supongo que dejaré este punto abierto porque para entonces, te habrás vuelto lo suficientemente inteligente como para resolverlo tú mismo 🙂
  • Sistemas operativos : casi lo mismo se aplica aquí también. Hacer una búsqueda rápida en Google para las preguntas de la entrevista de los sistemas operativos le dará suficientes problemas de práctica que estarán bien para la mayoría de las entrevistas.

Si está interesado, debe tomar cursos en línea sobre bases de datos y SO:

  • Bases de datos de Stanford
  • Introducción a las bases de datos relacionales | Udacity
  • Introducción a los sistemas operativos | Udacity

Dicho esto, tenga en cuenta que las estructuras de datos y los algoritmos son algo muy importante para las ubicaciones y que InterviewBit debería ser el único lugar donde debería pasar su tiempo máximo.

Si ha seguido los puntos anteriores en serio y ha trabajado duro durante los 2.5 años, confíe en mí, su arduo trabajo dará sus frutos ahora. Seguro que empacará un paquete decente durante las ubicaciones. Bob fue ubicado justo en el día 3. Fue el único en su departamento que fue ubicado en la primera semana. Y su paquete era dos veces el paquete promedio de un IITian.

Octavo semestre

Durante este semestre, tienes múltiples opciones:

  • Si tienes un trabajo, puedes relajarte.
  • Si aún no tiene un trabajo (muy poco probable), debería considerar postularse a nuevas empresas en AngelList. Las nuevas empresas en AngelList están buscando activamente contrataciones a tiempo completo.
  • Tome más proyectos: puede continuar tomando cursos y continuar trabajando en varios proyectos. Aquí hay un recurso brillante para usted – Estudiantes – Guía para el desarrollo técnico – Google Careers
  • Pasante de forma remota en una startup; nuevamente, AngelList viene al rescate. Puede mantener la carga del curso menos y más bien hacer una pasantía remota al inicio. Esto no solo le dará experiencia, sino que si trabaja duro, podría terminar con otra oferta de trabajo.

Supongo que escribí mucho y concluiré ahora. Al final, me gustaría agregar algunos punteros básicos específicos para CS:

  • CS es fácil siempre que comprenda que necesita implementar cosas (escribir código real) de lo contrario no podrá aprender cosas.
  • No tengas miedo de probar cosas nuevas. No piense eso, oh, esto es demasiado difícil y está destinado a expertos. No. Nada está destinado a expertos. Todo lo que se necesita son esos 5 a 10 minutos de lectura sincera y puedo garantizar que no hay nada que no pueda recoger.
  • No tengas miedo de romper cosas. No pienses eso, oh, mi máquina podría romperse si hago eso. A lo sumo, puede terminar con un software dañado, que puede repararse fácilmente. Es poco probable que haga daño al hardware.
  • Aprende con amigos. Te sorprenderá ver cuán inteligentes son las personas que te rodean y puedes aprender mucho interactuando con otros.

Olvidé agregar un gran recurso que conocí recientemente: www.hackr.io. Es una gran plataforma para encontrar tutoriales sobre diversos temas en Internet.

¡Buena suerte y todo lo mejor para tu futuro y carrera!

No soy estudiante de CS y me asignaron a Qualcomm. Si desea un trabajo de software, puede hacer algunos de los cursos básicos de informática como

  • Estructuras de datos y algoritmos
  • Lenguajes de diseño y programación de compiladores
  • Arquitectura de Computadores
  • Bases de datos
  • Sistemas operativos, etc.

Pero si quieres entrar en compañías como Google, Facebook. Le digo que debe cambiar su sucursal para ingresar a los departamentos de Matemáticas o CS. Por su descripción, veo que no tiene otra opción a menos que sea un chico puntero de más de 9.5.

Si tiene la oportunidad, ingrese a Matemáticas o CS; de lo contrario, intente resolver problemas de programación diariamente comenzando de inmediato. Estas empresas buscan habilidades de programación realmente buenas. Únase a TopCoder, lea sus tutoriales, resuelva problemas. También puede resolver problemas desde CodeChef, Spoj. Después de ser realmente bueno, puede ir a Interview Street donde, al resolver problemas, puede recibir llamadas de empresas. Si tienes un rango realmente bueno, también puedes postularte sin conexión. Pero no veo la posibilidad de que me coloquen en el campus a menos que vayas al departamento de Matemáticas o CS.

Soy un estudiante que no es cs y obtengo un trabajo como ingeniero de software. Puedo escribir una respuesta larga al respecto, pero encontré un artículo, que es más útil. Así que solo sígueme y créeme, al final obtendrás un trabajo como ingeniero de software en algunas buenas empresas.

A continuación se muestra el enlace del artículo:

Construir una carrera sólida en tecnología sin una especialización de CS – Aman Goel – Medium

No creo que necesites aprender todas las materias de CS. más bien aprenda DSA bien y haga una programación competitiva.

More Interesting

Green Card: ¿Qué categoría de peticiones de green card (EB2 o EB3) patrocina Google / Facebook para sus ingenieros de software de nivel básico?

¿Qué bibliotecas de Javascript usan los ingenieros de software?

¿Pueden los ingenieros de software hacer videojuegos?

No me gusta mi trabajo y quiero prepararme para SSC CGL, pero dejar mi trabajo es una decisión difícil. ¿Qué tengo que hacer?

¿Qué es bueno para un ingeniero de software, un trabajo estable del gobierno o para trabajar en empresas privadas y crecer?

¿Cuáles son las ventajas y desventajas de trabajar como ingeniero de software en la industria financiera?

¿Cuál es la diferencia entre un desarrollador full stack y un desarrollador de software?

¿Cuál es su opinión honesta sobre las pruebas unitarias?

¿Cuáles son algunas buenas ideas de software que fallaron?

¿Es obligatorio que la persona que escribe la carta de roles y responsabilidades (documento notarial) para el Proceso de Relaciones Públicas de Australia (calificación + evaluación de trabajo, ej.) Esté dos grados por encima de mi nivel (ingeniero de software)?

¿Por qué muchos programadores se oponen a la programación en pareja?

Cómo encontrar un trabajo como desarrollador de software en los EE. UU. O Canadá

¿Cómo es trabajar en una empresa de TI / Software como ingeniero en Nueva Zelanda?

¿Hay alguien en ingeniería de software que esté por el dinero? ¿Lo disfrutas?

¿Qué habilidades carecen comúnmente los programadores autodidactas? ¿Qué debe estudiar un programador autodidacta para ponerse al día con sus compañeros con educación formal?