La historia de nuestra profesión es poco conocida por sus practicantes. Pocos conocen quiénes son John McCarthy, Peter Naur o Douglas Engelbart entre otros. Menos aún se conoce sus trabajos y la influencia que tuvieron tanto en los lenguajes de programación como en la tecnología que usamos. Según Alan Kay, “nuestra cultura es una cultura pop… desconocemos nuestra historia y por eso nos pasamos reinventando la rueda pinchada”. Este curso tiene los siguientes objetivos: 1) Repasar la historia de nuestra profesión en lo que respecta a lenguajes de programación, quiénes los hicieron, bajo qué principios filosóficos y/o comerciales (si los hubo), en qué contextos históricos se crearon, etc. 2) Conocer a los personajes detrás de ellos, su manera de pensar, qué lograron y qué no. 3) Hacer un ejercicio con cada lenguaje, cuando lo amerite, para poder compararlos de manera práctica 4) Principalmente, discutir entre nosotros estos temas y sacar conclusiones para no comprar nueva tecnología sin conocer de qué se trata y no reinventar la "rueda pinchada"
¿Te gustaría saber qué es un closure y por qué los lenguajes que los incluye son más productivos? ¿Alguna vez te preguntaste si es necesario tener una jerarquía de Excepciones tan grande como la que proveen los lenguajes de programación? ¿Estás cansado de tener diseños complejos por más que uses patrones de diseño? ¿Querés saber cuál es la diferencia real entre un Decorator, Adapter o Proxy? ¿Querés tener más claro cuando usar un patrón de diseño y cuando no? ¿Tenés ganas de perderle el miedo a la meta-programación o querés saber qué es un lenguaje 'meta-circular' y practicar seriamente con uno de ellos? Si alguna vez te hiciste alguna de estas preguntas ¡entonces este curso es para vos!
¿Viste objetos en la facultad, sabes programar en Java, C# u otro lenguaje pero sentís que te falta aprender algo más? ¿Alguna vez te preguntaste cómo surgió el paradigma de objetos, qué bases teóricas lo sustentan, cómo se compara con el paradigma funcional y cuáles son sus ventajas y desventajas? ¿Te cuesta ponerle buenos nombres a las clases, y te preguntás por qué el paradigma se llama orientado a objetos cuando lo único que parece que escribís son clases? ¿Te cuestionaste por qué te cuesta tanto mantener los sistemas que desarrollas? ¿Por qué dicen que desarrollar con Ruby es más fácil que con Java pero con Java es más 'seguro' que con Ruby? ¿Tenés dudas sobre qué decisión de diseño es mejor, sabes que tenés que buscar mínimo acoplamiento y máxima cohesión pero no estás seguro qué significa en términos de objetos? ¿Te preguntaste cómo afectan tus diseños los lenguajes estáticamente tipados y dinámicamente tipados? o ¿por qué JavaScript no utiliza clases o qué es un closure? Si alguna vez te hiciste alguna de estas preguntas, ¡entonces este curso es para vos!
Novedades sobre la Academia
Sobre 10Pines