Debido a que no es el desarrollo de software lo que es difícil, es el hecho de que no hay suficientes personas que tengan una educación cuantitativa adecuada para retomar el desarrollo de software, y mucho menos la informática.
Como alguien que comenzó y administró empresas de tecnología educativa, diría que tenga cuidado con todo el bombo publicitario que rodea la educación CS.
Este es el por qué:
- ¿La introducción de herramientas de programación informática más sofisticadas reducirá la necesidad de conjuntos de habilidades de matemáticas e informática para la mayoría de los puestos de TI?
- Después de SQL, ¿qué debo aprender a continuación para poder crear un software básico por mi cuenta?
- ¿Cuál es el mejor actualizador de software para mantener actualizados todos mis programas de Windows?
- ¿Debo optar por un asiento de cuota de gestión en MPSTME CSE por 15 lakhs o RVCE ISE por 30 lakhs?
- ¿Hay alguna forma científica de comparar soluciones de software?
En cuanto a la ingeniería de software, fui autodidacta antes de la universidad. Nadie en mi familia sabe cómo usar correctamente una computadora (y ahora incluso están luchando con un iPad), pero tomé un libro y me enseñé a programar solo pasando innumerables horas leyendo y hurgando con mi 586.
Cuando comencé tenía 12 años, había conceptos que no pude entender hasta uno o dos años después, simplemente porque no había aprendido conceptos algebraicos o lógicos de alto nivel a mi edad que no podía comprender ciertas relaciones lógicas entre el software componentes. Los conceptos y las relaciones fundamentales para el desarrollo de software ya se enseñan en las escuelas, pero el problema es que no hay suficientes personas que estén terminando las escuelas.
He estado trabajando en el campo de la IA durante más de una década, y los estudiantes me han preguntado “¿por qué necesito educación formal? Solo necesito aprender ingeniería de software ”y mi respuesta es siempre la misma: debido a que los problemas del mundo real son complejos, por ejemplo, he trabajado en modelos cognitivos para la educación, esto requiere una comprensión íntima de cómo los humanos adquieren, almacenan y procesan información , y para emplear el aprendizaje automático para analizar comportamientos a escala comercial, debe conocer su álgebra lineal y estadísticas para diseñar algo que valga la pena. De manera similar, cuando empiezo a trabajar con el procesamiento del lenguaje natural, no puedes hacer ningún trabajo serio sin pasar suficiente tiempo entendiendo cómo los humanos manejan las palabras, oraciones y conversaciones, y la mayoría de las veces, hay lógica involucrada, hay estadísticas involucradas, hay son heurísticas involucradas. Debe aprender todo esto, de una forma u otra, para ser honesto, la educación formal es la forma más adecuada de hacerlo.
Después de la secundaria, fui a Carnegie Mellon para estudiar informática, ya que algunas personas pueden saber que CMU es una de las escuelas más prestigiosas para la disciplina. Y a decir verdad, las prestigiosas escuelas de informática como CMU, Stanford, MIT, Berkeley, etc. no están educando a los estudiantes sobre informática: estas escuelas son patios de recreo para que crezcan personas inteligentes y bien educadas, la mayoría de las veces de forma autónoma. moda dirigida.
¿Por qué digo eso?
Debido a que estas escuelas generalmente tienen profesores increíblemente inteligentes y talentosos a quienes realmente no les gusta enseñar a estudiantes de pregrado (o simplemente no les gusta enseñar en absoluto, punto), no tienen paciencia para ello, de hecho, la mayoría de ellos no ‘ Realmente ni siquiera sé enseñar.
Estas escuelas no están convirtiendo las alegrías promedio en informáticos, no se equivoquen, están tomando los mejores resultados de las escuelas secundarias, y luego les dan una tonelada de trabajo y oportunidades, y ven quién sobrevive al guante.
Cuando fallas en estas escuelas, hay poco o ningún apoyo para que vuelvas a estar en funcionamiento: tienes que ponerte de pie, desempolvarlo y seguir adelante. Tienes que esforzarte para volver al juego. Porque estás constantemente rodeado de personas que conocen bien muchas disciplinas diferentes, que son creativas y súper competitivas.
En otras palabras, no existe un atajo para simplemente educarse mejor.
Entonces, ¿por qué enseñar arquitectura de software a los niños es una mala idea?
Es simple, ¿por qué enseñarías a un niño que apenas puede comprender el concepto de equilibrio estático, algo tan especializado como la carpintería?
La arquitectura de software y la ingeniería de software son de la misma manera. Estas habilidades profesionales son objetivos cambiantes constantes. Hace 25 años, Windows y las aplicaciones de escritorio estaban de moda. Hace 15 años, se trataba de software basado en navegador. Hace 10 años, toda la arquitectura y las prácticas eran sobre aplicaciones móviles y contenido de redes sociales. ¿Y ahora? las cosas están cambiando a mensajes y chat.
¿Qué pasa si la computación cuántica se convierte en la corriente principal? Holy Moly, ahora gran parte de lo que aprendiste en ciencias de la computación e ingeniería de software antes puede ser irrelevante.
Un graduado en ciencias de la computación de Berkeley sobrevivirá a todo esto, porque fueron educados lo suficientemente bien como para aplicar habilidades analíticas y de razonamiento generales para adquirir nuevas habilidades profesionales.
Pero para un niño? Cada cinco años, lo que ha aprendido es una completa pérdida de tiempo, si nunca aprendió habilidades analíticas y de razonamiento más amplias. Es mejor invertir el tiempo de una persona en esto que en aprender ingeniería de software a una edad temprana.
Oh, por último, no nacemos con lógica. Tenemos algunas intuiciones lógicas.
Las inferencias lógicas aún necesitan ser enseñadas. Nuestras intuiciones innatas no son suficientes para comprender la informática y / o la ingeniería de software.