Tengo cierta experiencia como tutor de programación para jóvenes. Mi consejo es aprender un poco sobre lo que el estudiante quiere hacer. Debe lograr un equilibrio entre cubrir los grandes fundamentos (la programación funcional es uno de ellos) y construir un sistema de software que haga algo divertido e interesante. Algunas personas no pueden interesarse en ideas importantes a menos que las apliquen a algo inmediatamente útil. No soy una de esas personas, pero tendrás que hacer algunas concesiones si así es como es tu estudiante.
La otra cosa sobre la programación funcional es que, para un programador inexperto, puede ser difícil ver qué lo hace genial. Puede parecer un poco diferente y extraño. Me introdujeron a la programación funcional desde el principio, pero fue solo cuando comencé a construir sistemas más complejos (por ejemplo, escribí un compilador de lisp a x86 en lisp para una de mis clases) que comencé a darme cuenta de las ventajas en términos de abstracción barata, composición del programa y facilidad de depuración. Entonces, si bien es bueno aprender desde el principio, debe tratar de motivar el concepto comparando y contrastando con enfoques imperativos para el mismo problema.
Editar: si está buscando un buen libro sobre lenguajes funcionales para trabajar,
Estructura e interpretación de programas de computadora es un clásico
Cómo diseñar programas también es bueno.
- Soy muy bueno programando y lo disfruto mucho. ¿Tomar un trabajo en pruebas de software sería bueno para mí? PD: Estoy más fresco y la competencia por los trabajos es muy alta.
- ¿Cuáles son ejemplos de experiencias o conocimientos de probadores para probar un software?
- ¿Cómo puedo hacer que mi computadora se comporte como una súper computadora con técnicas de programación paralelas? ¿Como funciona esto?
- ¿Cuáles son las ventajas de una arquitectura basada en encuestas sobre una arquitectura basada en eventos?
- ¿Prefieres ser un ingeniero mediocre en un equipo de alto rendimiento, o un alto rendimiento en un equipo de ingenieros mediocres?