Soy un estudiante universitario de 21 años de la India en mis últimos años de cursos de 4 años en Ciencias de la Computación e Ingeniería.
La idea misma de escribir esto era decir que India es mucho más que un centro de subcontratación. Espero que Occidente lo vea así y, en lugar de absorber talento, Occidente debería establecer más centros en India. Hay algo de contenido ofensivo por delante, pero si entiendes el panorama general, entenderás lo que estoy tratando de decir.
La educación en la India se encuentra en un estado muy inquietante con una fuerza laboral producida cada año que no tiene o tiene habilidades técnicas absolutamente horrendas. El sistema educativo no es del todo competitivo en términos de innovación o emprendimiento. Esto ha llevado a nuestro país a grandes vergüenzas, como la reciente computadora de $ 10 desarrollada localmente (que resultó ser una tableta china barata basada en Android, solo mantenida por una empresa india), o un reclamo anterior de otro avance tecnológico (que resultó ser una memoria USB). Los institutos de educación están totalmente desconectados del mundo real de la tecnología y están más interesados en que los estudiantes reinventan la rueda, todo en nombre de la innovación. institutos educativos, todos los odian.
Llegando a lugares donde al menos espera aprender algunas habilidades de desarrollo:
He estado expuesto a algunas instalaciones de capacitación en India, aparte de mis institutos educativos. La programación y el desarrollo de software ocurren en dos niveles, el desarrollo a nivel de aplicación y el desarrollo a nivel de sistema .
Para el desarrollo de aplicaciones, la mayoría de los estudiantes de primer año en India son reclutados en masa por las empresas para reclamar un banco de programadores y obtener más proyectos. Al final del día, hay una calidad comprometida porque el proceso de contratación es completamente estúpido. A veces, el talento se desperdicia haciendo que las personas sean buenas en su trabajo, en cosas estúpidas como crear marcos Java y crear simples interfaces de usuario WinForm y ASP.NET solamente (Estoy hablando de nuevos reclutamientos y como algunos afirman, aunque no estoy seguro). Si no se consideran buenas prácticas de ingeniería de software, ese tipo de codificación puede ser realizado por un alumno de 7º grado.
Pero al mismo tiempo, hay programadores y desarrolladores independientes que tienen un gran interés en las cosas. Son como los héroes anónimos que han perdido toda esperanza y están menos interesados en cambiar el mundo. Todo lo que quieren es sacar el máximo provecho de sus habilidades, por lo que se trata de dinero e ir al extranjero. Mientras que nuestros cursos son sumamente limitadas a software del sistema (programación C utilizando TurboC !!! durante 4 años jodidos, estúpida y vaga C ++ sin conceptos adecuados orientados a objetos utilizando cout en un programa en C ++ no es C, ASM y más programación en C usando gcc), cuando estamos en una empresa, estamos hechos principalmente para desarrollar aplicaciones (ASP.NET, WinForms, J2EE). Básicamente, un ingeniero informático está hecho para hacer el trabajo de un ingeniero de software. Sí, conocer la informática ayuda, pero no conocer la ingeniería de software adecuada obstaculiza demasiado el proceso, y llega a caer en picado todo el sistema. Es un #fail.
Citaré un ejemplo simple. Me uní a un instituto de capacitación para mi proyecto de último año y querían que creara un sitio web ASP.NET que sería algo así como un sistema de inventario (reserva de hotel, CRM ese tipo de cosas). Sí, no es una tarea fácil, pero en mi opinión no vale la pena trabajar en un proyecto. Simplemente reinventará la rueda y estos proyectos son enormes por naturaleza en la vida real. Entregado en 6 meses por un grupo de 3, puede comprender el tipo de sistema inutilizable reducido que resultará de esto. Los institutos no se estresan demasiado y están más interesados en "no asustar al estudiante diciéndoles demasiado" y "dar una visión general y dejar que aprendan el resto por su cuenta". Al final, lo que la gente desarrolla en los proyectos ni siquiera es un prototipo completamente probado,
Tomé mi propio tema, un sistema de navegación en tiempo real guiado por voz. Estoy usando WPF, API de Google Maps y todo lo último en tecnología que puedo. Para una buena práctica de ingeniería de software, estoy usando el control de código fuente, usando MVVM y daré una mirada exhaustiva a cualquier otra cosa que conozca. Tengo 21 años y soy graduado. Supongo que a mi edad, las personas en el oeste todavía están en la fase de aprendizaje y se gradúan más tarde. Eso hace que los graduados occidentales sean mucho mejores y más conocedores. Tenemos cantidad pero no calidad.
En India, el nivel de trabajo que estoy haciendo para mi proyecto generalmente no se espera de un proyecto de pregrado de último año. Pero lo haré porque quiero. Al mismo tiempo, hay otros en mi grupo que se sienten cómodos haciendo un proyecto en ASP.NET, hacen 5-7 páginas, ejecutan consultas de bases de datos, llenan las vistas de cuadrícula y no les importa la seguridad. Demonios, incluso esos sitios web independientes tienen mejores ofertas de trabajo (clon de YouTube, Google instantáneo + X = Y Mashup ...)
Seis meses después, encontrará las mismas personas que trabajan en una empresa a la que externaliza su negocio y también me encontrará allí. La gente les gusta, supera en número a las personas como yo diez a 1 :(
Para ser exactos y no despotricar, en toda mi carrera educativa y en el conocimiento de más de ~ 500 personas, he visto exactamente 4 que tenían el nivel de experiencia que los consideraría para trabajar en un proyecto conmigo)
Finalmente, todos los graduados indios escribirán buena documentación porque es teoría, pero no esperan ningún código infalible de ellos.
En cuanto al software del sistema, el mismo es el caso. Un amigo mío está trabajando con el NDK de Android y está trabajando en un proyecto en vivo en una empresa. Tiene la suerte de tener este proyecto y lo envidio, pero este nivel de trabajo también ocurre en India. Otro estudiante de último año de mi universidad desarrolló un clon Kinect (ratón multitáctil, como en informes de minorías) en su proyecto de último año utilizando solo 2 cámaras web baratas. Igualmente, hay otros que copian códigos de Internet y de alguna manera obtienen un grado reinventando la rueda.
Mi palabra final, no espere una calidad comprometida en toda la India, y no tome a los indios por sentado como mantenedores de software baratos y adecuados para la subcontratación solo para trabajos de mantenimiento.
Además, no espere que alguien que tenga una buena formación académica en términos de marcas escriba un buen software. El sistema educativo de la India está totalmente orientado a la teoría, no hay énfasis en lo práctico, a veces, saber más o la voluntad de saber más puede causarle problemas a los maestros que se sienten intimidados. Sin embargo, los buenos programadores buscan pastos más verdes en una mejor carrera y no solo un buen trabajo, hay otros que quieren conseguir un buen "trabajo", conducir por una ciudad de Honda, comer en China continental y vivir felices para siempre. .
Estoy más en Audi por cierto. :)