¿Por qué no pueden codificar muchas especialidades informáticas incluso después de 3-4 años aprendiendo sobre su campo?

Hay una gran diferencia entre la informática teórica y la ingeniería de software. Algunas de las personas cs más sorprendentes que he conocido fueron codificadores horribles (aunque rara vez funciona de otra manera). CS trata sobre la teoría de la computación, la programación y las computadoras resultan ser la herramienta más conveniente para la computación. Como dijo Edsger Dijkstra, “la informática se trata tanto de las computadoras como la astronomía de los telescopios”.
A los estudiantes de CS se les enseña teoría y deben aprender los aspectos prácticos en otro lugar. Un ingeniero estructural puede diseñar un edificio, muchos no pueden soldar, albañilería, plomería o cualquier otra cosa que se requiera para realizar su diseño. Los ingenieros mecánicos pueden diseñar un dispositivo, no todos son maquinistas que pueden tomar un trozo de metal o plástico y darle la forma que necesitan. Los ingenieros eléctricos pueden diseñar un CI, la mayoría no sabe cómo hacer una máscara fotográfica o ejecutar el equipo para grabar el silicio.

Básicamente es por la mentalidad laboral.
Estudiaron lo que estudiaron para poder graduarse, conseguir un trabajo y luego quizás obtener un MBA. No eligieron CS porque les gustaba codificar o les apasionaba. Lo eligieron porque querían ser asignados a un escaso salario.

Necesitamos volver a la práctica educativa anterior en informática. Por supuesto, la informática se trata de teoría, no de codificación. Es por eso que no creo que aprender un lenguaje de programación en particular sea digno de crédito académico. Sin embargo, los estudiantes de informática deberían estar haciendo experimentos, y estos experimentos requieren un buen conocimiento de la programación. Solía ​​ser que los proyectos a término de los estudiantes con frecuencia involucraban escribir y depurar un programa no trivial, aunque ese no era el objeto del trabajo.

Mi analogía favorita es con la enseñanza de la escritura creativa. El profesor espera que sus alumnos escriban historias (o algo así). Aunque no enseña ortografía y gramática, espera que las historias de los estudiantes sean correctas en estos aspectos.

La tasa de lavado cuando más departamentos hicieron que los estudiantes escribieran mucho código fue mala para los ingresos.

Joel Spolsky reportó 40-70% en The Perils of JavaSchools.

Entrevistando a candidatos de mi alma mater, nuestra tasa de rechazo pasó de ser insignificante a alrededor del 50% después de que el profesor de estructuras de datos fue reemplazado por uno que no calificó a los estudiantes en función de qué tan bien su código aprobó las suites de pruebas automatizadas, lo que sugirió una disminución radical en la caída tasa de salida.

Algunos (tal vez la mayoría) de esto son el resultado de escribir software que involucra aptitudes que no todos poseen o que se les puede enseñar (tal vez después de que hayan envejecido y sus cerebros se hayan vuelto menos plásticos).

Saeed Dehnadi escribió un artículo sobre la aptitud más básica para formar un modelo mental consistente de asignación. El camello tiene dos jorobas con el título que hace referencia al par de golpes en lugar de una curva de campana vista en una clase de programación introductoria y menciona la recursividad y la concurrencia como otro aptitudes

En los viejos tiempos escribí un compilador para la mayor parte de ‘C’ con un objetivo VAX en Compiler Construction y mis estructuras de datos La asignación del árbol B + fue lo suficientemente buena, ahí es donde comencé en la industria cuando necesitaba indecisiones de árbol B + paginables para mi archivo estructurado de registro sistema.

Es como preguntar por qué todas las personas en este mundo no son buenos oradores, cuando todos pueden hablar un idioma o dos.