Ciber Geek >

programacion

Aprender a programar con Adam Savage de Cazadores De Mitos

Actualmente hay cada vez mas recursos para aprender a programar, y a su vez hay mas gente interesada, pero un problema común es que luego de leer un manual, hacer un curso en alguna de las opciones para aprender y practicar online, como CodeAcademy, los usuarios no saben que hacer y se atascan. Pero no desesperen, porque Adam Savage tiene algunos tips para ustedes, y si bien los escribió pensando en la comunidad “Hazlo tu mismo”, casi todos se aplican a la programación, sobre todo al proceso de aprendizaje.

mythbusters

Los 10 mandamientos de Adam

  1. Hacé algo. Cualquier cosa.
    No es necesario que hagas el nuevo Facebook, empezá por algo sencillo, no esperes a tener la idea de tu vida para empezar a programar. Ojo, si hacés el próximo Facebook inspirado por este post, con un 1% me conformo.
  2. Hacé algo que mejore tu vida.
    Relacionado con lo anterior, no tiene que ser algo para cambiar el mundo, tal vez podés empezar con un pequeño script para automatizar alguna tarea que tengas que hacer, o porque no, hacer una nueva versión de alguna aplicación que no te convence.
  3. No esperes.
    No esperes a ser un guru del lenguaje que estás aprendiendo, cuanto antes empieces mas rápido vas a aprender. Y como en la matemática, en la programación, la practica es fundamental, bueno, tienen bastante en común.
  4. Usá un proyecto para aprender una habilidad.
    Una de las mejores maneras de sentirse motivado es empezar un proyecto que nos interese e incluya lo que sea que quieran aprender. Además, al realizar un proyecto podemos practicar algo más que programación y resolución de problemas, también puede plantearse objetivos y poner fechas, como para ir tomándole el gustito a la planificación.
  5. Preguntá. Pedí ayuda.
    Si bien en Stack Overflow están las respuestas a una cantidad de preguntas, siempre es bueno tratar de conseguir a alguien que quiera enseñarnos y tenga el conocimiento y experiencia suficientes para resolver nuestras dudas, obviamente no es necesario que lo haga en todas las ocasiones, porque con la tecnología no hay nadie que todo lo sepa.
  6. Compartí tus métodos y conocimiento. No mantengas secretos.
    Éste es un punto un poco mas complejo, escribir sobre lo que están aprendiendo es un excelente ejercicio, y hacer tutoriales aún mas, ya que debemos pensar en todas las dudas que tuvimos cuando aprendían, y las dudas que pueden tener quienes lean el tutorial, pero hay que considerar una cosa, si apenas están aprendiendo un lenguaje, framework, paradigma, tómense su tiempo para hacer tutoriales al respecto, o al menos asegúrense de aclararlo.
    Además, en la programación hay algo extra que con las cosas físicas no se puede hacer, y es compartir algo sin perderlo, pueden subir su código gratis a sitios como Github, algo que además, si lo que suben es interesante y está bien hecho, pueden sumar para su curriculum.
    En cuanto a lo de los secretos, si están trabajando en un proyecto con fines comerciales e identifican una funcionalidad que hace diferente a su producto, mediten antes de liberar el código al mundo.Y si comparten código y reciben criticas, siempre que sean fundamentadas, escuchen a quienes los critican y piensen acerca de lo que le dicen, no vayan a ser como algunos de los programadores que andan dando vueltas por ahí que se rehúsan a reconocer vulnerabilidades en su código.
  7. La perdida de entusiasmo y el fracaso son parte del proceso.
    Seguramente en algún punto van a sentir que no pueden continuar, que algo es muy difícil, que configurar x cosa es imposible. Pero no se rindan, busquen, pero si no encuentran nada la documentación es su mejor amiga. Si se traban con algo y tienen otras cosas para hacer, sigan con eso otro, muy a menudo pasa que se nos ocurren ideas para problemas que tuvimos antes sin necesidad de estar pensando en ello.
  8. Medí con cuidado.
    Esta está complicada, pero lo podemos llevar para el lado de la Ingeniería de Requerimientos, pero me parece que va mas allá de alguien que está empezando a aprender programación, bah, muchas veces va mas allá de cualquier persona sin importar su nivel, ya que la volatilidad de lo que quiere la gente es difícil de manejar.
  9. Hacé cosas para los demás.
    Mientras aprendés podes ir haciendo cosas para los demás, una pequeña pagina en HTML+Javascript (no Java) para que tu hijo practique las tablas, una aplicación para que tu mamá tenga todas sus recetas en la PC o también para administrar las facturas de servicios/compras. Hacer éste tipo de cosas puede motivarte al ver la reacción de la otra persona, además, puede hacer que la otra persona te motive, unas palabras de aliento y aprecio no le vienen mal a nadie. ALERTA, no todo es sencillo, y seguramente en algún momento te vas a ligar una puteada porque tu super programa borró una receta, etc.
  10. Usá mas liquido refrigerante.
    Ok, estemm ¿A esta como la pinto? A ver que sale de ésto, es importante que mientras estés en la PC te mantengas hidratado, que apliques la técnica 20-20-20, cada 20 minutos mira un punto a al menos 20 metros por 20 segundos, tus ojos te lo van a agradecer, y si no tenes nada lejos para mirar cerra lo ojos por 30 segundos. Además, cada 1 hora levántate y camina un poco. MANTENÉ LA POSTURA!!

El vídeo de Adam (en inglés).

Si se les ocurre algo mas no duden en dejarlo en los comentarios. Prometo ignorar sus comentarios como los de cualquier otra persona.

PHP vs Ruby vs Python

Infografia PHP vs Ruby vs Python

Una infografía en inglés que cubre varios aspectos de estos lenguajes que tienen una gran presencia en la Web, de los 3 yo he probado PHP y Python, Ruby solo he leído código pero nunca he hecho nada útil.

Entre los datos presentados se encuentra la facilidad para el aprendizaje, popularidad, ofertas de trabajo, cantidad de desarrolladores, expresividad (cantidad de lineas de código necesarias para resolver un problema), rapidez promedio y otros datos.

PHP

PHP es el lenguaje mas popular de los 3, WordPress esta codificado con dicho lenguaje, al igual que la Wikipedia y Facebook, aunque en Facebook usan un “traductor” a C++ para mejorar la performance.

Algo atractivo de PHP es la cantidad de codigo, herramientas disponibles (frameworks, CMSs) y documentación, en español.

Si están interesados en dedicarse al desarrollo freelance PHP es la mejor opción, ya que posee el mayor mercado laboral, pero también mayor competencia.

Python

Python debe su popularidad a la limpieza de su código y a su expresividad, también un poco a Google y la NASA que lo usan en muchos de sus proyectos, sin dudas 2 instituciones que siempre atraen la mirada Geek.

Entre los 3 lenguajes es el mas rápido y mi favorito por lo cual no quiero opinar mucho, mi imparcialidad se ve afectada =p.

Una característica es la cantidad de librerías que posee, algo que muchas veces se toma a modo de chiste diciendo que los programadores en Python solo tienen que importar librerías.

Algo que merece la pena mencionar es el excelente framework llamado Django, sin lugar a duda uno de los mas maduros que andan dando vueltas.

Ruby

Ruby es el lenguaje detrás de nada mas y nada menos que Groupon y Twiiter, aunque a Twitter probablemente ya no use el framework Ruby on Rails.

Verdaderamente no tengo mucha experiencia con éste lenguaje, aunque tiene similitudes con Smalltalk, que para quienes no saben es el lenguaje con el que se comenzó con el paradigma de orientación a objetos, y solo como dato anecdotico fue creado por Xerox, la empresa que la mayoria conoce por sus fotocopiadores y que verdaderamente merece un post aparte.

 

php vs python vs ruby

Infografia PHP vs Python vs Ruby

Via geekndev

Como suenan los algoritmos de ordenamiento

Algoritmos de ordenamiento artísticos

En YouTube encontré un peculiar video que nos muestra diferentes algoritmos de ordenamiento y ademas le agregan sonido, así que podemos escuchar como suenan los distintos algoritmos, si les pasa como a mi van a recordar el sonido del pacman el 90% del tiempo.

Guion bajo vs guion del medio en Google

Diferencia entre guion bajo y guion del medio y como afecta al SEO

Quienes tengan un poco de experiencia en el posicionamiento en buscadores sabrán que siempre es recomendable utilizar el guion del medio para separar palabras en un URL, pero hasta ahora, al menos yo, sabía que era así pero no la razón por la que se seguía esa convención.

¿Por que es mejor utilizar el guion del medio antes que el guion bajo?

Según Matt Cutts, el guion bajo se interpreta como un carácter mas porque en los comienzos de Google los programadores tomaron la decisión basados en el código fuente de cualquier programa, donde en general los nombre de funciones, variables y demás se separan con un guion bajo cuando están compuestos por mas de una palabra, y por ésta razón Google toma las cadenas separadas por guion bajo como una sola cadena.

El guion del medio en cambio es un carácter que es interpretado como un separador de cadenas, cuando se encuentra un guion del medio las cadenas se interpretan por separado, lo que mejora la obtención de keywords por parte de la araña de Google.

¿Como afecta al Ranking?

En realidad, el impacto en el ranking de un sitio por el uso de los guiones es muy pequeño, ya que Google utiliza muchos otros factores a la hora de calcular el PageRank, por lo cual Matt dice que si ya tenemos un sitio establecido que utiliza el guion bajo como separador no deberíamos preocuparnos, solamente se recomienda tener en cuenta el uso del guion medio en proyectos nuevos.

Si quieren pueden ver el vídeo de Matt Cutts hablando del tema, aunque está en inglés.

 

NOTA: En la actualidad como separador se utiliza mucho el Camel Casing, pero esto a mi parecer es algo que viene mas de la programación orientada a objetos.

Libros de Diseño y Programacion Web, gratis

logo_librosweb

Encontrar libros digitales de calidad no es difícil, ahora, encontrar libros digitales de calidad que no sean versiones pirata y que estén en español, es casi imposible. Pero por suerte para quienes busquen libros de Diseño y Programación Web pueden entrar a Librosweb.es.

En librosweb.es ofrecen libros de CSS, XHTML, JavaScript, AJAX y Symphony (framework para PHP).

Yo he leido los de CSS y XHTML, y la verdad lo recomiendo para aquellos que quieran empezar con cualquiera de los 2 lenguajes. El de JavaScript aun no lo he terminado pero lo que llevo visto esta muy bueno.

Los ebooks se actualizan casi constantemente, cada un par de meses se actualizan y agregan capitulos.

Estos libros son totalmente gratuitos, que creo es la mejor parte, gratis y bueno, raro ¿no?