Mostrando entradas con la etiqueta programacion. Mostrar todas las entradas
Mostrando entradas con la etiqueta programacion. Mostrar todas las entradas

lunes, 17 de agosto de 2015

¿ Eres un full stack developer ?

full stack developer http://andyshora.com/

Trabajar como programador hoy en dia es muy complicado, tenemos a nuestra disposición muchísimas herramientas que aprender. Años atras era mas facil.



2010:
  •     linux
  •     apache
  •     mysql
  •     php

2015:
  •     mongoDB
  •     AWS , Azure
  •     HTML5, CSS , JS
  •     ExpressJS
  •     NGINX
  •     SASS
  •     AngularJS,
  •     UX, UI
  •     NodeJS
  •     Big, Data, Scrapping, Metricas, MEAN , LAMP
  •     SEO y SEM
  •     Algo de hardware
  •     Mobile technologies
  •     etc, etc.

Y aun con todas las herramientas a nuestras disposición hay personas que se hacen llamar “Full stack Developer” lo cual considero que no es algo que se deba decir muy a la ligera.

Hace tiempo atrás las empresas contrataban “Full Stack developers” porque la mayoría estaban creando un producto por primera vez, lo que significaba que no sabían que cosas podían surgir en el camino, por lo que era mejor tener ingenieros flexibles que supieran de todo que personas que solo supieran hacer una sola cosa. Pero como vez con los años la cosa a cambiado.

Si miramos la lista de tecnologías y herramientas anterior es realmente complicado  manejar todo este conocimiento, por lo que tienes que tener mucho cuidado cuando dices que eres un “Full stack Developer” por que puede significar 2 cosas:

¿ Que tienes conocimiento sobre todos estos temas ? ó ¿ Eres un experto en todos estos temas ?

Cómo ves la lista es enorme y si estás  aspirando a puesto puedes meter la pata, hay que tener mucho cuidado con lo que en realidad quieres dar en entender. Para poder describir mejor que tipo de desarrollador eres tienes que identificar primero tus hablidades. 

¿ Eres mejor backend que frontend ?

 Prueba este juego para darte una idea: http://www.dungeonsanddevelopers.com/

Por ejemplo puedes ser alguien experto en backend pero tienes los conocimientos para trabajar en algo de frontend, lo que te da la posibilidad de trabajar con alguien que sea experto en frontend pero que tenga poco conocimientos en backend. Estas dos personas pueden complementarse y formar un gran equipo.

Las mayoria de las empresas estan deacuerdo que la mas importante habilidad que un “full stack developer” debería tener es:  “la habilidad para aprender” , en lugar de “yo se hacer todo”

Tener la habilidad de aprender y mantenerte actualizado con los constantes cambios en las tecnologías es lo más importantes para las empresas.  Tener un personal que pueda adaptarse a los cambios rápidos de tecnología es lo más valioso hoy en dia. Basta de decir:


  • Yo uso linux
  • Yo uso mac
  • Yo uso sublime text
  • Odio Microsoft
  • NodeJs es lo debes aprender
  • Phyton es mejor que php

Olvídate  de eso, tienes que ser capaz de adoptar nuevas tecnologías con más facilidad que nunca,  las tecnologías cambian y tu necesitas cambiar con ellas.

 “Full stack developer” significa tener la mente abierta hacia nuevas tecnologías, ensuciarte las manos con cada una de ellas , entender como una aplicacion web  puede ser hecha desde el concepto hasta el producto final terminado.

Al final lo que más  importa es ser capaz de trabajar con otras personas, hay muchos “full stack developer” por ahí diciendo que no necesitan trabajar con otras personas que ellos pueden hacerlo solos.  El asunto es que nadie puede ser master en todo y lo que se espera de un “full stack developer” es que sea una especie de conector entre equipos.

Por ejemplo puedes saber mucho de backend pero poco de frontend, entonces parte de tu trabajo es encaminar el proyecto de tal manera que el experto en frontend lo reciba sin ningun problema,  el sabra como continuar el trabajo y aportar sus habilidades, de esta manera lo que se buscan dentro de las empresa es que los programadores sepan hacer de todo, que se sean multifuncionales.

Y ahí es la parte donde los “full stack developer” son realmente muy valiosos, Trabajando en equipos que manejan diferentes tecnologías entre si.

"Ninguna tecnología hará brillar o decaer tu carrera,  mejor enfocate en ser un maestro en adaptarse y aprender cosas  nuevas" @slicknet

links:
http://andyshora.com/full-stack-developers.html
http://www.laurencegellert.com/2012/08/what-is-a-full-stack-developer/

sábado, 9 de agosto de 2014

Machotes y ejemplos de contratos de desarrollo Web y diseño grafico para usar en tus proyectos




Los contratos son un problema muy grande a hora de hacer un trabajo a una gran empresa o trabajar como freelancer, pero existen por una buena razón. Un buen contrato te asegura que tu y tu cliente tiene las mismas expectativas y te protegerá en caso de que las cosas vayan mal.

El contrato ideal debería de ser una combinación de estándares de la industria , protección legal y preferencias personales. Algunas preguntas muy comunes en antes de firmar un contrato serian:

¿ Cuanto sera el pago inicial para comenzar el proyecto ?
¿ Que pasa si el pago es retrasado ?
¿ Quien tiene todos los derechos sobre el trabajo realizado ?

Los contratos pueden ser muy complicados pero son algo que necesitamos. Por lo general nosotros los programadores web no sabemos nada de esto y tenemos que buscar un buen abogado para que nos asesore pero aveces el abogado no entiende de la industria del desarrollo web y ahi es cuando empezamos a tener problemas.

Hoy he encontrado un articulo muy interesante donde nos ponen a disposición ejemplos de contratos profesionales de la industria del desarrollo web y diseño gráfico usados en los Estados Unidos. La documentacion esta en ingles (si te dedicas a esto del desarrollo web , tienes que saber leer ingles) pero leyendo estos documentos tendrás una gran oportunidad de aprender de diseñadores y programadores experimentados de como ellos crean sus contratos.

Estos documentos están alojados en http://www.docracy.com/ que es un repositorio gratuito de documentos legales open source donde puedes contribuir con tus propios contratos.

Los mas importante es que no olvides que todo asunto legal es sensible y hay que tratar todos estos documentos como puntos de partidas para crear nuestros propios contratos. Con un buen abogado a tu lado  puedes revisar estos documentos y guiarte de como ajustar los tuyos para tu país, tus leyes  y proyectos locales.

Entre la lista del articulo original ya destaco estos :

  1. Acuerdo para desarrollo de proyectos web
  2. Acuerdo para servicios de diseño.
  3. Contrato corto de diseño
  4. Acuerdo como consultor.

El articulo original tiene 10 contratos destacados que puede revisar en el siguiente link:

link: http://www.smashingmagazine.com/2012/08/15/free-download-useful-legal-documents-for-designers-pdf/
link: https://www.docracy.com/







martes, 25 de febrero de 2014

Curso de programación de aplicaciones web desde cero


 http://codingonweb.com/

Curso de aplicaciones web para principiantes


Aprender a crear aplicaciones web nunca había sido tan fácil como ahora, la información abunda en Internet por ejemplo si escribes en Google "Tutorial de paginas web" veras muchos enlaces y vídeos que enseñan como hacerlo. Incluso recientemente yo publique un post con enlaces con muchos sitios en donde aprender.

A como yo lo veo conseguir la documentacion no es el problema pero si hay algo interesante que he notado, la cantidad de información sobre paginas web es enorme y creo que las personas que desean comenzar en este mundo de la web se podrían sentir abrumadas con toda esta información y no sabrían por donde empezar.

En mi opinión los principiantes mas que un profesor que les enseñe paso a paso como crear paginas web, necesitan a alguien que los guié y muestre el camino a seguir entre toda esa documentacion, enseñarles como buscar en google documentacion de calidad, que sitios son los adecuados para sus consultas  y como leer adecuadamente la documentacion oficial.

www.codingonweb.com es una web donde podrás conocer los pasos necesarios para aprender a programar paginas web. Al ser un curso para principiantes abordaremos temas muy básicos y sencillos por lo que personas que ya sepan lo básico se podrían aburrir en el curso. A continuación una lista que detalla el curso.

Los cursos son gratuitos, solo necesitas  inscribirte en la pagina y comenzar a aprender.






viernes, 21 de febrero de 2014

Lista de sitios donde puedes aprender sobre Diseño web.

Como comentaba en el post anterior, si quieres aprender algo solamente depende ti lograrlo. Toda la documentacion y tutoriales esta internet, solamente tenemos que encontrarla. En este campo de la programación web personalmente pienso que es mas fácil de cualquier otra, solo basta que escribas en Google : "Tutorial sobre diseño web" y recibirás muchos resultados donde aprender. 

Hoy quiero compartir con ustedes un articulo donde listan muchos lugares donde aprender programación y diseño web, con algunas opciones de pago y otras gratuitas, como siempre con estos temas de programación web la mejor documentacion esta en ingles pero tal vez a alguien mas le puedan ser útil esta información.

Yo personalmente he aprendido mucho de algunas de los sitios web que se listan ahi.



sábado, 1 de febrero de 2014

Consejos para hacer pruebas de rendimiento con Google Chrome

En un día normal cuando quieres probar alguna app web, usas Google Chrome como todo usuario normal lo haria, pruebas como cargan las paginas, imágenes, scripts, ect. Una vez terminado esto sacas tus tiempos y empiezas hacer optimizaciones.

No hay ningún problema con esto con excepción de que no es una prueba justamente adecuada, por que lo que necesitas es un entorno de pruebas limpio. Esto es importante cuando medimos la calidad y rendimiento de la experiencia web que creamos, cuanto mas rápida tu web mejor.

Esto normalmente es llamado una Cleanroom , que viene siendo que mantengas tu entorno ordenado y limpio antes de usarlo. Como desarrolladores tenemos múltiples extensiones instaladas , apps y programas por ahí en nuestro sistema operativo. Algunas de ellas corriendo en el background las cuales ya habíamos olvidado que estaban ahí hasta que las necesitamos de nuevo.

Para usuarios normales esto no causa de mayor problemas, pero como desarrolladores web necesitamos tener mucho cuidado con esto, por que estas apps y extensiones son susceptibles a las mismas reglas de uso de memoria y recursos del sistema como toda aplicación normal.  Ahora si estas probando tu aplicación en el navegador con todas estas extensiones y apps instaladas esto puede afectar los resultados de tus pruebas, los cuales no reflejan el verdadero resultado.

He leído de algunos desarrolladores que han pasado horas tratando de optimizar sus aplicaciones sin éxito solo para descubrir que el problema no era su aplicación sino una extensión que tenia instalada.

Con Google Chrome podemos tener una cleanroom para nuestras pruebas usando un perfil de usuario nuevo, guia para esto en este link :


Tambien Google nos enseña 2 opciones para crear una cleanroom para nuestras pruebas en este link :


En general algunas reglas a seguir para realizar nuestras pruebas :

Prueba tu navegador con un perfil de usuario limpio 
Asegurate que no tienes apps y extensiones corriendo
Cierra ventanas y tabs secundarias

Otros navegadores pueden ser configurados de la misma manera.