Browsing articles from "abril, 2015"
Abr 28, 2015
alvaro
Comentarios desactivados en Tendencias del 2014 y 2015 (1)

Tendencias del 2014 y 2015 (1)

Movimientos en la programación Web/Móvil entre 2014 y 2015

En la actualidad estamos viendo que la velocidad y capacidad de la red crece sin aplicaciones que usen todo su potencial. La base de todas esas aplicaciones son los lenguajes de programación, siendo algunos más populares que otros, que suelen avanzar más lentamente.

La necesidad de nuevas opciones, frameworks, acceso a multimedia o aplicaciones interactivas, web o de escritorio, motivan a los profesionales a aprender nuevos lenguajes. Pese que suelen estar relacionados o tener estructuras similares, aparecen nuevos con filosofías o arquitecturas completamente diferentes.

En 2014 se observaba que los lenguajes se enfocarían más en el entorno web/móvil que en escritorio. Lo que significaba que se necesitarían nuevos lenguajes para las diferentes plataformas (tanto hardware como software).

Las ventajas del desarrollo en web benefician a los programadores al no tener que depender de las instalaciones o mantenimiento del hardware donde se van a usar, ya que los navegadores web interpretan el código independientemente (excepto Adobe Flash y sus problemas inherentes a las licencias).

Retrospectivamente vemos…

Desde el inicio de la informática se ha desplazado la carga del proceso entre los servidores y los clientes. Sistemas operativos centrales (mainframes) llevaban el proceso soportando numerosos equipos ligeros con la suficiente potencia para acceder y modificar dichos datos.

Más tarde, la facilidad para conseguir nuevos procesadores, más memoria y más almacenamiento y con la bajada de los precios, adquirimos equipos tan potentes como algunos servidores de años atrás.

El siguiente paso sería el uso de la virtualización de servidores y procesos en clústeres permitiendo una estabilidad, velocidad y potencia. Los procesos tendrían una carga continua y los clientes accederían al llamado Big Data o la nube sin muchos requerimientos a parte de la conectividad y la suficiente autonomía para mantener dichas aplicaciones.

Han aparecido nuevos lenguajes y frameworks, como Spring, Hybernate, Bootstrap, Lively Web, Go, que utilizan más sencilla y eficientemente las versiones de lenguajes de programación previos o implementan nuevos. Javascript, Html5, CSS3 permiten (sin la necesidad de applets o intérpretes de terceros) navegar con fluidez y el uso de procesos críticos.

Toda esta evolución además implica la necesidad y aparición de nuevos IDEs para implementarlos, véase Android Studio, Intellij Idea, Intel XDK, Xcode, como muchos otros.

La velocidad de dichas apariciones, la necesidad de las mismas y el uso por parte de las empresas es algo más relativo. Al igual que hay empresas que quieren usar las últimas tecnologías y usarlas como medio de promoción o publicidad, otras prefieren usar lenguajes de programación con mayor bagaje, proporcionando estabilidad y mayor conocimiento entre los profesionales.

Si analizamos algunos análisis, como el de Indiatimes.com en noviembre del 2014, vemos que el salario mejor pagado es de Ruby on Rails ($109,460), seguido por Objective C ($108,225) y Python ($100,717). Lenguajes más conocidos como Java o C++ ($94,908 y $93,502 respectivamente) sorprenden por su cuarta y quinta posición, posiblemente en relación por la ley de la oferta y la demanda, pero también en contraposición del bagaje mencionado.

Veamos las fases de aprendizaje…

Desde http://www.vikingcodeschool.com/posts/why-learning-to-code-is-so-damn-hard

Fases de aprendizaje de un lenguaje informático

Si tomamos en cuenta la dificultad de aprendizaje de un lenguaje de programación no es algo sencillo, tiene sus “capítulos” o fases para el “estudiante” difíciles de superar. Muchos profesionales apuestan por la certificación en cada uno de ellos, pese que supone un gasto adicional económico, el valor añadido merece la pena. Indican que hay cuatro fases en el aprendizaje, brevemente serían…

La llamada fase Hand Holding Honeymoon, inicial en el proceso, relaciona la confianza con la competencia. Inicialmente dicha relación puede ser perniciosa. Las guías o manuales pueden introducirte pero los retos o necesidades funcionales avanzadas son pasos necesarios para el aprendizaje, conocimiento y experiencia en dicho lenguaje. Estamos estudiando la sintaxis básica del lenguaje, la base, de una forma intensiva.

Llegamos a un pequeño punto de inflexión (Cliff of confusion) en dicho lenguaje en el que nos sentimos cada vez menos seguros mientras vamos adquiriendo nuevos conocimientos. Los pequeños inconvenientes en los primeros proyectos suponen un trabajo extra en el análisis y comprensión de nuestros errores. Es agobiante, requiere tiempo extra inesperado y un reto importante. Se podría decir que al ir viendo la cantidad de opciones y la necesidad de “especialización” requerida, tendemos a desmoralizarnos erróneamente provocando la tercera fase, Desert of Despair. Fase en la cual estaremos dando vueltas.

Hasta que llegamos al punto en que la asimilación, experiencia, feedback positivo y el cambio de nuestra actitud (incluida la auto-estima que también suele ser afectada) nos provoca un aprendizaje exponencial. Éste puede llevarnos al nivel de competencia y confianza para trabajar de forma independiente y segura (Upswing of Awesome). Los proyectos empezaran a fluir y ser estables con facilidad con una gratificación, estabilidad y mérito más que evidente.

 

 

 

Abr 28, 2015
alvaro
Comentarios desactivados en Fases de un proyecto de páginas web

Fases de un proyecto de páginas web

Hace ya unos cuantos años, allá por febrero del 2011, encontré o redacté para Sena Virtual, apenas recuerdo ahora mismo, un pequeño índice de lo que podrían ser las fases de un proyecto web.

Es curioso que años más tarde, los lenguajes han evolucionado, existen nuevas formas para visualizar y compartir la información.

Sin embargo, gran parte de las fases siguen siendo importantes e imprescindibles a realizar para conseguir un buen objetivo.

Estudio del proyecto

  • Estudio de la competencia
  • Posibilidades y líneas de de negocio con la web
  • Necesidades reales del proyecto
  • Pensar en el medio plazo para proveer como puede crecer el proyecto
  • Como fusionar lo que tenga esa empresa con lo que va a tener: On-line – Off-line

Diseño del site

  • Estructura y usabilidad del site
  • Diseño gráfico de todas las paginas

Maquetado

  • Hacerlo compatible con los principales navegadores (Explorer, Mozila Firefox y Chrome)
  • Pulir el código para dejarlo lo más accesible para Google (SEO)

Programación

  • Diseñar la bases de datos
  • Programar todas las funcionalidades
  • Crear y personalizar el BackOffice para que el cliente pueda gestionar los contenidos de la web

Revisión

  • Revisar la web una vez montada para ver si se ve bien en los navegadores
  • Comprobar que el BackOffice gestione correctamente los contenidos y menús
  • Ver que todas las funcionalidades operan correctamente

SEO

  • Estudio e implementación de los mejores títulos, descripciones y palabras clave para cada sección para que Google nos encuentre.
  • Informar a Google del alta de la web y alta del Site Map

Otros

  • Configuración/integración Google Analytics, FaceBook, Twitter, otros…
  • Preparar parte de los contenidos (Fotos, textos, vídeos) finales de la web y en muchas ocasiones subirlos directamente
  • Publicación de la web y nueva revisión general

Dichas fases coinciden en la mayoría con las se están enseñando en los ciclos formativos DAW/DAM como el que estoy realizando en la actualidad.

Si bien, tocaría actualizarlas y comparar que es lo que ha cambiado desde el 2011 en este mundo.