Hay que decir que CS y la programación de computadoras son dos cosas diferentes. Por lo general, hará un poco de programación en un título de CS, y posiblemente incluso mucho, pero la informática estudia la teoría de la informática, no la programación como una habilidad práctica.
Es muy probable que estudies la teoría de los lenguajes de programación en un curso de CS, pero no es un hecho que realmente escribirás mucho código. Por el contrario, un programador autodidacta puede no saber nada de análisis recursivo y gramáticas libres de contexto o lo que sea, pero aún puede ser un muy buen programador.
Por lo tanto, no es raro que las personas que han pasado un par de años enseñándose a sí mismos a programar sean mejores en programación que muchos graduados de CS.
- ¿Qué factores debo considerar al cambiar de carrera a DevOps?
- ¿Cuál es la mejor manera para que un desarrollador de aplicaciones web haga la transición a una carrera como probador de penetración?
- Llegué tarde a la programación, ¿cuánto tiempo necesito pasar para convertirme en desarrollador de software?
- Sin un B.Tech. o BE grado, ¿cómo debo construir mi carrera en la industria del software?
- Podría obtener una oferta de trabajo en un lugar muy orientado a Scrum / Agile. La mayoría de los equipos son de 5 a 7 personas grandes y la mayoría de las personas se sientan juntas. ¿Sufriría como una persona muy introvertida?
Como programador autodidacta, es muy probable que desarrolle una comprensión de muchas API, sistemas y técnicas que los graduados de CS pueden nunca haber encontrado, como AWS y una tonelada de bibliotecas e IDE, y cómo implementar varios tipos de software.
Por otro lado, los desarrolladores autodidactas como yo a menudo tienen una comprensión deficiente de la teoría de la informática.
También es cierto que ser autodidacta obviamente no garantiza que seas bueno en la codificación, y obviamente tomar un título de CS no significa que necesariamente no habrás aprendido a codificar muy bien. Para aprender a codificar bien, debe pasar mucho tiempo codificando, y si tiene o no un título de CS no es un indicador de hierro de si lo ha hecho o no.
Dado que el contenido de los grados de CS varía mucho, y dado que los desarrolladores de software varían enormemente en cuanto saben sobre la teoría y la práctica de la computación y el diseño de computadoras, es difícil comparar uno con el otro. La programación y la informática son simplemente diferentes. Saber sobre informática puede ser un gran beneficio para un desarrollador de software, pero generalmente no es esencial saber nada más allá de algunos conceptos mínimos. Saber cómo programar puede ser un gran beneficio para un estudiante universitario de CS, pero de nuevo, dependiendo de cuánto incluya la codificación de su curso de CS, no siempre es esencial ser bueno en la codificación.
En términos de conseguir un trabajo o escribir aplicaciones, un título de CS obviamente será útil, pero en última instancia, la fluidez con la codificación es lo que generalmente cambia el trato. En ese sentido, un desarrollador autodidacta a menudo puede tener habilidades esencialmente equivalentes a un graduado de CS desde el punto de vista de un empleador, o desde el punto de vista de qué tan bien puede escribir sus propias aplicaciones.
En cierto sentido, todos los desarrolladores son autodidactas. Tienes que pasar muchas horas programando para que el desarrollador tenga fluidez con la programación, con un grado de CS o no.
Tom Willis hace un comentario importante sobre esta respuesta … muchos títulos de CS son más como títulos en desarrollo de software. Pero también he escuchado de personas que dicen que su título de CS casi no contiene codificación, en el otro extremo.
Sospecho que la mayoría de las personas realmente querrían que su título de CS los capacitara para ser desarrolladores, por lo que están adquiriendo las mismas habilidades que si se enseñaran a sí mismos, pero el grado de CS es (idealmente, para ellos) asegurando que su conocimiento sea bien redondeado y no contiene grandes lagunas, además de que están aprendiendo probablemente alguna teoría que es útil saber y que un desarrollador autodidacta podría escatimar.
A veces esas personas obtienen lo que quieren, y otras veces no. A veces las personas realmente quieren estudiar ciencias de la computación, no ingeniería de software, y están decepcionadas en el otro sentido … no se encuentran estudiando la teoría de la computación lo suficiente para su gusto, sino estudiando la codificación y la estructura del programa, etc.
Es extraño que tengamos títulos de CS pero ningún título de Ingeniería de Software (del que he oído hablar, o al menos los títulos de “SE” no parecen ser comunes). Las dos materias se confunden entre sí, y el estudiante de CS no sabe qué esperar del título de la licenciatura.