10 Habilidades que todo desarrollador debe aprender en este 2014

codigo

La siguiente publicación es un extracto del artículo original escrito por David Tucker (post original).

Determinar como invertir nuestro tiempo y energía para crecer como desarrollador es lo más importante que debemos tener en mente antes de emprender.

El siguiente listado recopila las diez destrezas clave que todo artesano de software debe invertir en el transcurso del 2014.

Aprender a desarollar para una plataforma móvil nativa

Existen varias formas de crear aplicaciones móviles, desde medios híbridos HTML  hasta lo que por renderizan controles nativos en otro lenguaje. Es conocido que estos métodos convierten todo en código nativo y si una empresa pretende desarrollar una aplicación debe buscar a una persona quien entienda este tipo de código.

Mejorar esta habilidad y ser quien entienda ese código incrementa su valor dentro de la organización ademas de mejorar su promoción personal como desarrollador.

Conocer un proceso de desarrollo ágil y sus herramientas relacionas

Para aclarar no estoy diciendo que todo desarrollador deba ser un gestor de proyectos. Digo que todo desarrollador necesita entender el proceso. Se necesita conocer como seguir cada proceso en las distintas tareas de un proyecto, además necesita saber como trabajar con otros desarrolladores para poder cumplir con los objetivos. Aún cuando un desarrollador trabaja solo en los proyectos el entender el desarrollo ágil y sus herramientas le permitirán mejorar al momento de medir las tareas y determinar como cumplir con sus compromisos.

Dentro del desarrollo ágil se encuentra Scrum, Kanban, Extreme Programming (XP) y otros. Las distintas herramientas relacionadas a estas metodologías son PivotalTracker o Trello.

Realizar estimaciones/cotizaciones efectivas

Es algo que todo desarrollador debe hacer y  al lograr un buen trato el éxito del mismo se basa no solo en nuestro trabajo sino en el costo final de nuestra cotización. Los jóvenes desarrolladores tienden a ser optimistas en el proceso de cotizar mientras que los desarrolladores más experimentados en el tema tienden a ser un tanto pesimistas.

Para ser realistas no existe una formula mágica que permita realizar esta tarea de una manera efectiva. La clave esta en aprender de cada proyecto, mientras que para cada equipo se debe buscar experiencias en proyectos anteriores y el tiempo de desarrollo para cada “story point”.

Cabe recordad que si se utiliza un proceso de desarrollo ágil se debe sacar provecho a las herramientas relacionadas a esta metodología y calcular nuestras cotizaciones.

Aprender JavaScript

Es algo que no lo hubiese escrito 3 años atras, pero es una verdad que JavaScript se ha vuelto universal. En la actualidad se lo utiliza para escribir aplicaciones móviles, aplicaciones servidor, crear plataformas de bloggin, en realidad casi cualquier cosa que puedas imaginar.

Uno de los mayores avances es la capacidad de utilizar JavaScript como una capa lógica  intermedia en iOS 7. La omnipresencia de las tecnologías web crece. Cabe denotar algo importante aquí, al hacer referencia de JavaScript no digo aprender jQuery. Me refiero a conocer y aprender el verdadero lenguaje.

Aprender un lenguaje de lado del servidor

Este es un elemento crucial, si eres un desarrollador front-end principalmente entonces necesitas conocer el funcionamiento de las cosas del back-end. Ser capaz de crear tanto el front y back-end además de la API y base de datos demuestra un conjunto único de habilidades. Afortunadamente existen varias opciones Java, .NET, Python y PHP. Una ventaja para quienes conocen JavaScript es el poder utilizar NodeJS, es increible la forma fácil de montar un servidor web, crear test simples o servicios para una aplicación móvil y el poder desplegar aplicaciones en la nube en servicios tal como Heroku y Nodejitsu.

Aprender HTML y CSS

Algo que podemos encontrar en casi toda tecnología web es su capacidad de renderizar contenido en HTML y aún cuando no trabaje en desarrollo web el entender HTML y CSS solo te beneficiará. Algo que recomiendo es que todo desarrollador deba tener un blog esto ayuda a mejorar su promoción personal y en muchas ocasiones se debe meter mano al código y modificar nuestra plataforma de bloggin.

Saber encontrar información de una manera rápida

Quiero analizar un dato importante y es la cantidad veces que dejamos de escribir código para dedicarnos a buscar información en internet, es verdad esto nos sucede y es en grandes cantidades. El poder encontrar información de una manera rápida nos ayudará a reducir el tiempo que pasamos lejos de nuestro ambiente de desarrollo.

Dar mantenimiento a un proyecto

Es necesario conocer como agregar código y en definitiva mejorar nuestro proyecto una vez que lo hayamos liberado. La clave es entender las distintas opciones  que tenemos como desarrolladores para cumplir con este objetivo y que no afecte la portabilidad y extensibilidad de nuestro código base. Como desarrollador o arquitecto debemos tomar en cuenta que cada opción tiene sus consecuencias.

Aprender Git (Y aprenderlo bien)

Git es más que un sistema de control de versiones ofrece un sistema eficiente de ramas (branching) lo que permite generar un nuevo flujo de desarrollo tanto para equipos de trabajo o desarrolladores independientes. Vincent Driessen propone una guía para el manejo de ramas dentro de Git.

Si eres nuevo en Git, dedicate a aprender!. Si eres un novato, mejora tus conocimientos de Git para convertirte en un mejor desarrollador.

Aprende a utilizar una herramienta de seguimiento de tareas y bugs

Realizar el seguimiento de tareas y bugs en un proyecto es esencial además de ser una tarea diaria para todo desarrollador. Existen un conjunto de herramientas gratuitas que cumplen esta función (Github Issues o Issue Tracker Bitbucket), en algunos casos los proyectos requieren herramientas mas sofisticadas como JIRA para su proceso de desarrollo.

Curso gratuito de JavaScript

JavaScript

El equipo de Antisacsor ofrece de manera gratuita el Curso JavaScript OnLine, las inscripciones son a partir del día 9 de Mayo hasta el día 31 de Mayo. El inicio del curso es el día 1 de Junio. Recomendado para todo desarrollador web.

Temario

  1. Módulo 1

  • ¿Qué es JavaScript?

  • Primer Script en JavaScript

  • Comentarios

  • Secuencias de Escape

  1. Módulo 2

  • Cadenas de Caracteres

  • Arrays

  • Sentencias if-else

  • While

  • For

  • Switch

  1. Módulo 3

  • Operadores aritméticos

  • Operadores de asignación

  • Operadores de comparación

  • Operadores lógicos

  1. Módulo 4

  • Objeto document

  • Objeto window

  • Objeto screen

  • Fecha y Hora

  1. Módulo 5

  • Hacer desaparecer / mostrar un elemento

  • Cambiar contenido de una etiqueta

  • Cambio de atributos a objetos

  • Asignar Clase Css o atributos Css

Inscripciones: Antisacsor Moodle

Patrones de Diseño con JavaScript & jQuery – eBook

Este eBook escrito por Addy Osmani, nos trae una serie de conceptos sobre Patrones de Diseño con JavaScript y varios Patrones con jQuery con este texto podemos aprender todos los detalles sobre estas técnicas de desarrollo.

Entre algunos Patrones de Diseño este eBook detalla:

  • Constructor Pattern
  • Singleton Pattern
  • Prototype Pattern
  • Facade Pattern
  • Composite Pattern
  • Proxy Pattern
  • Builder Pattern

Tutorial JavaScript Guía 001 #geekprogramando

Bienvenidos a este nuevo proyecto lo e tenido en mente por un largo tiempo pero al fin ve la luz. Es así que durante las próximas semanas (mejor dicho meses) cada día martes se publicará un articulo de este Tutorial JavaScript. Como literatura recomendada tenemos JavaScript the Definitive Guide 6th Edition de David Flanagan, la cual cubre ECMAScript 5 & HTML 5. 

Esta guía va dirigida a programadores que inician su aprendizaje de este magnifico lenguaje y para los programadores más experimentados que quieren actualizar sus conocimientos y trabajar bajo el nuevo estándar.

Recuerden dar un Follow a @carlosro_ec o buscar el HT #geekprogramando en Twitter para poder acceder a las publicaciones semana a semana.

Y sin más demora empecemos con la primera Guía.

Que es JavaScript? (algo de teoría no nos viene nada mal)

JavaScript es el principal lenguaje de la red basado en scripts, ahora es muy raro ver algún sitio web que no incorpore algún script dentro de su código, la mezcla de HTML, CSS junto a JavaScript a convertido a los antiguos sitios estáticos (fríos y sin movimiento) en verdaderas maravillas llenas de características que determinan la usabilidad del sitio.

Todo script que definamos en un sitio web se ejecutará dentro de nuestro navegador (tecnología Client/Side).

Hay que destacar que este lenguaje no es nuevo su primera aparición la hizo en el año 1995 de la mano de Nestcape Communications Corp, gracias al apoyo de Mozilla Fundation (si Mozilla lleva tiempo involucrado en el mundo de los navegadores)

El nombre real con el que se debería llamar a este lenguaje es ECMAScript (analizaremos su más actual versión la 5) la definición de su estándar, pero muchas empresas decidieron modificarlo e implementar detalles particulares para cada uno y por tal motivo existen varios tipos de este estándar. Un dato curioso es por que JavaScript lleva en parte el nombre Java, en sus épocas de creación Java estuvo en los titulares y mucho se hablaba de este lenguaje multiplataforma, debido a esto fue sencillo crear un nuevo tipo de marketing y hacer uso de Java en parte del nombre de JavaScript (<=aclaración=> JavaScript y Java son totalmente independientes un poco de el nombre del uno en el otro y no tienen mas en común)

Herramienta de Trabajo

En las primeras etapas de este Tutorial utilizaremos la Consola JavaScript que integra el navegador Chrome (pueden utilizar la consola de debugging parte de Firebug complemento del Navegador Firefox), esta consola funciona sobre el motor V8 uno de los más destacados por su velocidad y capacidad.

Menú Herramientas – Google Chrome

Consola JavaScript – Google Chrome

Detalles del lenguaje

  • Case Sensitive – asi que Function no es function, tener en mente siempre esto. Lo mismo sucede con las variables si definen una variable llamada estudiante no será la misma si luego quieren utilizarla llamándola Estudiante.
  • Comentarios – mucho de JavaScript en cuanto a estructura y características son tomadas del lenguaje C así que los comentarios son de la misma manera.
//Comentario num. 1

/* Comentario num. 2 */

/*

  * Comentario num. 3

  * Multilinea

  *

  */
  • Valores literales – son definiciones de valores que aparecen descritas en el script.
“Goodbye Moon”    //Cadena de texto

‘Moon’            //Cadena de texto

null              //Indica que variable hace referencia a NADA

true              //Valor booleano para verdadero

false             //Valor booleano para false
  • Variables – en JavaScript deben empezar con una letra, un guion bajo (_) o un signo dólar ($).
contador

a

_num

$total
  • Palabras reservadas – son identificadores propios del lenguaje, prohibido utilizarlas como variables.
break         delete        function              return        typeof

case          do            if                    switch        var

catch         else          in                    this          void

continue      false         instaceof             throw         while

debugger      finally       new                   true          with

default       for           null                  try

Para el ECMAScript 5 se reservan un conjunto extra de palabras:

class         const         enum                  export        import

super
  • Tipos de Datos

Valores Enteros – En JavaScript tenemos la posibilidad de almacenar valores enteros todos estos números deben encontrarse en base 10.

Valores de Punto Flotante – Estos valores pueden almacenar números con decimales, de la misma manera se pueden representa valores con el número seguido de la letra E (1.43234E-32)

  • Manejo de Fechas y Horas

JavaScript incluye el constructor Date() con el cual podemos representar fechas y horas.

//Crear fecha 25/10/1984

var fecha = new Date(1984, 9, 25);

//Crear fecha 25/10/1984 incluyendo hora 8:10:23pm

var fechaHora = new Date(1984, 9, 25, 20, 10, 23);

//Obtener la fecha actual

var fechaActual = new Date();

//Obtener el año actual

fechaActual.getFullYear();

//Obtener el mes actual

fechaActual.getMonth();

//Obtener el día actual (0 = Sábado, 5 = Viernes)

fechaActual.getDay();

//Obtener la hora Actual

fechaActual.getHours();

La proxima semana continuamos revisando las características del lenguaje. Hasta la próxima.