lunes, 30 de enero de 2012

No apto para expertos: Windows Phone y yo

Desde fines del año pasado he tenido como meta iniciar una serie de post a través de los cuales enseñar a alguien que recien empieza a desarrollar para Windows Phone. Quien me conozca un poco, sabe que tengo la manía por tratar de explicar las cosas simples y que mi tipo de público no es experto, es más ese tipo de personas que saben poco y tienen prisa y para quien todo está demasiado avanzado para ser comprensible por que apenas y cuentan con nociones básicas de programación. Ni mucho menos espero ayudar con la prisa, pero si motivarlos a darse pausa y aprender.

Hoy día muchos desarrolladores experimentados (cabe aclarar que no lo soy) dan por sentado que muchos conceptos son de manejo general para la gente que empieza a programar, por tanto muchos promulgan lo fácil que es desarrollar para muchas tecnologías solo por que hoy las herramientas lo hacen más fácil, olvidando que ellos casi han crecido y evolucionado con las herramientas y por eso les resulta tan natural y comprensible, pues bien, eso es cierto, muchos además de ellos, pueden desarrollar y hacer cosas bastante avanzadas, pero entre esos "duros de la programación" muchos practican el arte de la imitación y copiar pegar y no tienen claros los conceptos detras de lo que hacen, cosa que a mi particularmente no me resulta agradable, que funcione no significa que está bien.

Por eso es este inicio, probablemente lento y pausado de acuerdo al tiempo que tendré disponible, pero si estas empezando, trataremos de ir bastante despacio, aclarando al menos un poco los conceptos asociados o al menos dejando la inquietud y los mejores recursos relacionados que pueda encontrarme por ahí. 

Pretendo seguir una buena idea que me dió @Warnov ¿Por qué no empezar a enseñar programación con Windows Phone? Sería una buena forma de capturar la atención de los que están empezando y aprender nuevas tecnologías al tiempo, sin embargo practicar esto en mi salón de clases no me parecio adecuado con la universidad en que trabajo, así que intentaré hacerlo en mi blog.

Por favor ten en cuenta que no pretendo enseñar a programar, la algoritmia y la lógica de programación (al menos estructurada) son bases que debes tener, ir tan atrás sería pretencioso de mi parte, de hecho la idea no es muy diferente a lo que otros hacen en la red, solo quiero ir dando ideas de lo que conozco y pues ya ustedes me ayudarán pidiendo explicaciones de cosas que deje en el aire o por qué no corrigiendome, yo también aprendo cada día.

Mis post no serán aptos para expertos, pero llevarán toda la buena vibra para quienes deseen aprender, como se lo decía a un amigo alguna vez no encuentro mejor forma de saber si yo misma entiendo, que tratar de explicarlo, si no puedo explicarlo, no lo entiendo, es así de sencillo. ;). 

Todo esto nació de intentar explicar el patrón MVVM usado por defecto en las plantillas de Windows Phone, explicar el uso de un patrón es un tema que unos hacen mejor que otros, entender las razones por las que deben aplicarse es algo que toma tiempo y tiene un trasfondo importante. De hecho soy partidaria de que si no entiendes el uso de patrones, sencillamente no los utilices, todo podría volverse un caos. Usa buenas prácticas de programación y construye tu código de forma ordenada antes que hacer cosas que no entiendes.

Para empezar les mencionaré algunos temas en los que evaluarse y preguntar cuanto los entendemos y de esa manera sabremos que tanto esfuerzo debemos colocar en aprender:

Comprensión de conceptos relacionados con orientación a objetos además de los típicos objetos, clases, encapsulamiento, herencia y polimorfismo, entender las raices de todo eso a través de los principios modularidad, reutilización, alta cohesión, bajo acoplamiento, un tanto de programación por capas y mucho más del concepto de frameworks y patrones en especial el patrón observer y de ahí adelante, MVP, MVC y MVVM. Además y obviamente programación básica con C# (Generics, herencia, eventos, delegados, interfaces...),  además Silverlight, XML, XAML, Web Services, ahmmm... y mucho más 

¿Todo un reto no? Viéndolo así no parece tan simple, pero ya verán que lo logramos ;)

Nos vemos en mi primer post ;)
Publicar un comentario