¿El lenguaje Swift es beneficioso para un nuevo estudiante de informática?

Descargo de responsabilidad: no estoy totalmente calificado para responder esta pregunta, pero tengo opiniones de todos modos.

Depende mucho del enfoque que esté utilizando para construir un plan de estudios. El plan de estudios tradicional de CS es bastante ascendente, y al menos al principio de la etapa CS1 / 2 no utilizará mucho de ningún lenguaje de programación. Esto es así por diseño, ya que CS es tan importante sobre teoría como práctica; La mayor parte de todo lo que haga implicará implementar las estructuras y algoritmos que usará más adelante para una codificación de alto nivel. Es probable que cualquier lenguaje diseñado después de alrededor de 1985 tenga los tipos de contenedor básicos, etc., integrados en la biblioteca estándar o (en el caso de Perl, por ejemplo) en el lenguaje mismo. Si todo lo que está haciendo es codificar, nunca necesitará implementar una clasificación rápida o una cola de prioridad usted mismo; el currículum tradicional de CS, por otro lado, supone que hay muchas posibilidades de que usted sea quien escriba la biblioteca para que otra persona la use.

Sin embargo, echemos un vistazo a lo que está haciendo el MIT con su introducción 6.01 al curso EECS versus su antigua estructura e interpretación 6.001 de programas de computadora. Cuando el MIT hizo el cambio, hubo un error al reemplazar Scheme como el lenguaje de enseñanza con Python, pero eso ni siquiera comienza a cubrir lo que realmente cambió en su enfoque (UC Berkeley todavía enseña un SICP modificado en Python, por lo menos al menos algunas personas la distinción es irrelevante). Gerald Sussman, uno de los autores del texto del SICP, apoyó plenamente el cambio a pesar de la molestia de algunos tradicionalistas, y basó su apoyo en la idea de que el ejercicio fundamental de la programación ya no es el enfoque de abajo hacia arriba que era tradicionalmente enseñó, pero fue más una cuestión de escribir código de pegamento entre bibliotecas. (Sussman es miembro de la junta de la Free Software Foundation, por lo que es justo decir que fue una parte fundamental de ese cambio cultural, pero esa es otra historia completamente). Aquí es donde un lenguaje más nuevo como Swift se vuelve útil.

Cuando comienzas a mirar el código de usuario en gran medida como código de pegamento en lugar de los fundamentos del sistema, se convierte en algo así como enseñar matemática primaria con calculadoras: eventualmente necesitas saber cómo hacer lo básico, pero evitando las cosas de bajo nivel que realmente tiene más sentido en un curso avanzado hace que sea más fácil saltar al diseño de nivel superior. (Además, ¿es realmente justo obligar a un estudiante principiante a tener que lidiar con punteros nulos? Es por eso que C ++ agregó referencias). La biblioteca estándar de Swift se basa en Cocoa FoundationKit, que tenía la reputación de ser muy bien diseñada y práctica. el camino de regreso a los primeros días de NeXT. Solo hay tres tipos principales de colecciones en Swift estándar, pero puedes hacer muchísimo con esos tres tipos. (Lo mismo se aplica a Python, que parece haberse convertido en la respuesta de 2010 a la básica de 1980 para enseñar a los niños a programar incluso fuera del MIT. No veo ningún problema con esto).

En general, diría que es bastante útil para proyectos personales porque puedes poner lo que estás aprendiendo a usar más rápido con un lenguaje mucho más moderno que C, Pascal o incluso Java. Sin embargo, como lenguaje de instrucción, no creo que los currículos de CS realmente hayan alcanzado el estado actual del arte, y dependiendo de su curso, podría ser difícil de integrar.

Es un lenguaje moderno muy genial que acelera el desarrollo. Sin embargo, lo “malcriará” si no aprende otros lenguajes heredados populares como C ++ y Java. Habrá muchos casos en los que necesitará usar lenguajes heredados y podría quedarse atascado porque no tiene ciertas características a las que está acostumbrado en Swift.

Swift me parece demasiado especializado desde el principio porque te limita al ecosistema de Apple. Sugeriría Ruby o Python como lenguajes de uso general, o incluso C # o Java.

More Interesting

Actualmente estoy haciendo un B.Tech en ECE en segundo año desde Punjab. ¿En qué tema debería centrarme?

¿Vale la pena rechazar una oferta de IIMB si puedo ingresar a IIMA el próximo año?

¿Es la financiación un buen campo para entrar?

¿Cuál es el futuro después de estudiar B.Arch de una universidad privada o gobierno? universidades?

¿Con cuánto detalle debería hablar sobre mis proyectos de pregrado y proyectos de la industria en mi SOP de estudio de posgrado?

¿Qué es mejor: MBA en biotecnología o un MSC en biotecnología si soy un estudiante de BSC en India?

Obtuve un buen rango en el EAMCET. Puedo obtener un asiento en JNTU, pero escuché que un curso de CA se puede completar pronto y puede ser de gran valor. ¿Qué es mejor, hacer un B.Tech en JNTU o tomar un curso de CA? ¿Cuáles son las ventajas y desventajas de CA?

¿Hay alguna manera de obtener una maestría en bioinformática mientras se tiene un trabajo a tiempo completo?

¿Es el grado de animación una opción relativamente buena sobre la genética?

¿Qué clases de CS debo tomar si quiero trabajar en Quora?

¿Puedes obtener un doctorado en campos científicos sin tener una licenciatura?

¿Cómo es crecer en un hogar con un alto nivel socioeconómico en términos de educación y preparación profesional?

¿Cuáles son las perspectivas laborales para los graduados de MA (inglés) de la Universidad de Delhi? ¿Necesitaré más educación para obtener un trabajo decente?

¿Cómo se convierte uno en CA y CS?

¿Qué trabajo puedo obtener con un título de educación?