VíctorGraciaWeb

Reclutadores del sector IT en busca del oro perdido

¿Cómo trabajan los reclutadores de perfiles responsables de la transformación digital de las compañías tecnológicas?

En la entrada de hoy, os hablaré sobre la actividad de los profesionales reclutadores encargados de “Vender” los proyectos de la mejor manera posible a los talentos del sector IT. Los perfiles a los que se dirigen en la mayoría de los casos son: 

  • Desarrolladores web
  • Diseñadores de apps
  • Analistas de datos en general
  • Project manager 
  • Otros perfil del sector vinculado a la transformación digital

Demanda actual de profesionales del sector IT

Como muchos de vosotros sabéis, los perfiles del sector IT encargados de la transformación digital de las empresas, es un bien muy apreciado además de demandado por las consultoras y Start Up. En la última década, debido a la alta demanda del sector, estudiar una de las muchas ramas del del ámbito tecnológico es una apuesta segura para obtener un puesto de trabajo de calidad y bien remunerado “medianamente”.

Debido a este déficit de profesionales, las compañías se ven obligadas a poner mucha énfasis en sus departamentos de RRHH. Estos han pasado a ser también denominados “Departamento del talento”. Parece que esta última nomenclatura vende bastante más… nada fuera de la realidad, viene siendo los mismo, pero con profesionales responsables de reclutar a estos perfiles más formados en el área (O eso quieren demostrar en ocasiones).



Diferentes forma de actuar por los reclutadores

Algunas compañías tienen sus propios departamentos de reclutamiento, pero otras externalizan estos servicios en terceros. Estas últimas, están dotadas de empleados, que en la mayoría de los casos poseen estudios de RRHH, psicología y similares, pero que nunca han trabajado en el sector IT y esto a mi parecer es un gravísimo error, desconocen el sector en gran medida por mucho que piensen lo contrario. 

Cuando recibes una llamada o un correo electrónico de alguno de estos “Cazatalentos”, muestran un gran interés por conocerte, incluso más del necesario a mi parecer para intentar venderte el proyecto de su cliente. Aquí es donde viene el problema, la gran mayoría de estos profesionales en numerosas ocasiones se piensan que están tratando con “Ganado”. Qué no se equivoquen, somos profesionales en un sector en auge que merecemos un respeto. En mi caso, me he encontrado en varios procesos de selección (Suelen ser bastante largos, en ocasiones duran meses), en los cuales tras pasar varias fases, ha desaparecido el famoso “Cazatalentos” sin ofrecerme una respuesta por parte de su cliente.

“Eso demuestra una gran falta de respeto entre personas.”

Sin respuesta a llamadas ni a correos electrónicos, pues estos magníficos profesionales deben estar demasiado ocupados para ofrecerte una respuesta o informarte acerca del estado de tu candidatura durante el proceso de selección en cuestión. Posiblemente anden reclutando a otro posible perfil como auténticos “lobos”.

Errores de campeonato

En ocasiones, tanto por Linkedin como por correo electrónico he recibido mensajes por parte de reclutadores del sector IT ofreciéndome un proyecto, pero con una situación bastante curiosa. Estos han comenzado con el nombre de otra persona. Ni siquiera han destinado el tiempo ya no ha personalizar el correo electrónico, que a mi parecer sería lo mínimo. A lo que me refiero es que no han prestado atención siquiera de cambiar el nombre de la persona destinataria del mensaje. Esto ofrece un claro indicativo de la forma de trabajar de este grupo de profesionales.

En otras ocasiones, he realizado pruebas de nivel técnico, que tras destinar más de 6 horas en la realización de la misma, no he recibido respuesta alguna por parte de la compañía.

“¿Qué broma es esta?.”

Solución a estos problemas

Tras debatir en numerosas ocasiones con algunos compañeros responsables de la transformación digital de varias Start Up, con perfiles similares a desarrolladores web y desarrolladores de dispositivos móviles o incluso en la modalidad Freelance, (que es la fórmula que actualmente ofrezco a las empresas para ayudarles en su transformación digital), hemos sacado en conclusión lo siguiente. En muchos casos los reclutadores del sector IT ya ni siquiera respondemos a las peticiones de estos reclutadores, pues conocemos ya la manera de actuar de estos. Es posible que en un futuro, mostremos mas respeto por ellos, pero esto llegará a ser cuando sea algo recíproco bajo mi punto de vista.

¿Cómo creéis que evolucionará esta situación, se podrán las pilas? ¡No dudéis en comentar!



Mi nueva etapa como nómada digital

¿Aún no sabes lo que es un nómada digital?

Tras varios años desarrollándome profesionalmente como programador para diversas compañías en desarrollo de aplicaciones web y apps, y habiendo obtenido un gran listado de recursos, buenas prácticas y ampliación de mis conocimientos de otros lenguajes y Frameworks, finalmente he decidido volver a mis orígenes trabajando como Freelance en colaboración con otros compañeros según los recursos necesarios de cada nuevo proyecto que mis clientes me confíen. En este post hablaré sobre mi nueva etapa como nómada digital.

Esta decisión requiere una serie de objetivos en los cuales deberé trabajar para alcanzar una meta durante este año 2020. La meta es poder vivir como nómada digital de forma solvente.

Pero y ¿Tú quien eres?

Para los que no me conocéis, he trabajado como Freelance y co-fundado varias Start Up en materia IT. Junto con mis equipos, he estado ofreciendo servicios tecnológicos en desarrollo de software y aplicaciones móviles. Además mencionar otro de los puntos clave, Ayudar en la transformación digital a las PYMES. Una ellas, Offing Web Solutions, ubicada en Barcelona, a fecha de hoy sigue en funcionamiento y por lo que me consta este año 2020 será un gran año para el equipo al cual acompañé durante mi etapa en esta Start Up hace unos años.

Vivir como nómada digital es un auténtico reto. La meta principal es poder viajar por diversos países y ciudades, conociendo sus respectivos lugares, personas y culturas (Creo que estos aspectos son vitales para nuestra mejora tanto personal como profesional).

Últimamente estoy siguiendo a varios de estos nómadas digitales. Visitando tanto sus sitios web como sus redes sociales, estoy aprendiendo bastante sobre cómo debo enfocar y orientar las acciones que me permitan conseguir vivir como Freelance full-remote.

Aunque ya estuve años atrás viviendo como Freelance web desarrollando aplicaciones web y apps siempre estuve viviendo en mi ciudad natal.

“Para los que no lo sabéis soy de Zaragoza”.

Es por ello que es necesario introducir el parámetro “Nómada” para ser un auténtico nómada digital.


Un reto constante

No nos engañemos, muchas compañías y agencias del sector IT, así como un gran número de consultoras, desean que acudas diariamente a tu puesto de trabajo religiosamente todos los días. (En estos momentos me cuesta interpretar cuan necesario es esto), pues en mis 10 años de experiencia como desarrollador de software, he trabajado con diversos clientes a los cuales les he facturado, entregado un producto y tan siquiera nos hemos conocido en persona. Esta es sólo una de las ventajas de trabajar como desarrollador web freelance. No necesito una presencia física diaria en la oficina con el cliente.

Bueno, quizás alguna reunión puntual pueda ser interesante, pero nada que me haya podido impedir trabajar a distancia desde otro punto geográfico.

Como punto positivo, creo que cada día somos más los profesionales del sector IT conscientes de que es una evolución necesaria trabajar en remoto y a distancia. Ya sea desde diferentes ciudades e incluso países. Pero claro está, siguen existiendo compañías que desean verte sentado en una silla en tu puesto de trabajo de forma inamovible. Pero resumiendo, es cuestión de tiempo que estas se adapten si quieren seguir sobreviviendo en este ecosistema.



Solicitud de visados para trabajar en otros países

Existe una gran ventaja al ser ciudadano de la Unión Europea. Esta es que podemos movernos por la misma sin restricción alguna entre los países miembro y asociados y por ende, acceder a los mercados laborales de estos países. Esto es maravilloso creerme. Llevo varios años viviendo y trabajando en países como Irlanda y Reino Unido (a este último en pocos meses le podemos decir adiós desde la Unión Europea), pues como todos sabemos, el Brexit se va a ejecutar en pocas semanas.

Pero también existen numerosos países como Estados Unidos a los que interesa acceder, por ambas partes (Empresa y profesional), como desarrolladores de software. En la mayoría de estos casos, es necesario un visado para ello, pero gracias al trabajo en remoto, toda esta parafernalia se soluciona. La compañía puede contratar los servicios de un profesional Freelance full o part time a distancia y no es necesaria la obtención de ningún tipo de visado para ello. El trabajo será desarrollado 100% en remoto.

Solución a este problema “Trabajo en remoto vía Freelance”

Gracias a mi nueva etapa como nómada digital, con reuniones mediante videoconferencias y el uso de una serie de herramientas para el seguimiento de proyectos de Software el cual me permita conocer al cliente el estado del mismo, así como otros datos sobre costes y recursos destinados a cada Item del proyecto en cuestión, estos problemas se solventan. Una de mis herramientas preferidas para ello es Jira Software. Os dejo el enlace a los que aún no la conocéis. Ofrecen servicios en la nube alojados en servidores proporcionados por el equipo de Atlassian así como también te facilitan el proyecto y documentación para instalarlo en tu propio servicio. En cuestión de unos pocos minutos puedes tener Jira en tu servidor.


Conclusión

Las compañías tecnológicas están adaptándose a las necesidades del mercado las cuales evolucionan a un ritmo bastante elevado. Aunque algunas ofrecen 1 o 2 días en remoto a sus empleados, te quieren seguir viendo en la oficina calentando la sillita. Algunas de estas creo que padecen de “Sillitis”. Pero este modelo está desapareciendo, aunque en España cueste hacerlo realidad, será cuestión de tiempo que este modelo sea implantado en su mayoría…

¿Tienes algún comentario o aportación sobre mi nueva etapa como nómada digital? ¡escríbeme!



Desarrollo de App nativo vs híbrido

Desarrollo de App nativo vs híbrido

En la entrada que os he preparado esta semana, he pensado tratar el tema del desarrollo de aplicaciones móviles. Además, desglosaré la serie de ventajas y desventajas del Desarrollo de App nativo vs híbrido que ofrece el uso Frameworks de desarrollo de Apps híbridas frente al código fuente nativo de cada una de las plataformas mas usadas por los usuarios como son Android e iOS.

Hoy en día existen multitud de Frameworks de Desarrollo de App y otras tecnologías que nos hacen a los desarrolladores de aplicaciones web y dispositivos móviles la vida mas fácil. Esto se debe a que el desarrollo de Software es un sector altamente competitivo y ello hace que salgan prácticamente todos los días nuevas tecnologías. Pero solo algunas de ellas destacan y por tanto se establecen en el mercado, siendo aceptadas por la comunidad del Desarrollo de Aplicaciones.

De lo primero que hablaré, será sobre los diferentes Frameworks de desarrollo de Apps Híbridas mas usados en la actualidad. Será Detallando con un breve resumen sobre cada uno de ellos junto una pequeña reseña personal acerca de la implementación de los mismos y los posteriores resultados, ya que este último punto será el que el equipo o cliente podrá valorar finalmente.

Xamarin

Siendo propiedad de Microsoft y fundada en el año 2011. Con una base de código compartido de C #, la comunidad de desarrolladores pueden usar las herramientas que Xamarin proporciona para escribir aplicaciones nativas de Android, iOS y Windows con interfaces de usuario totalmente nativas. Algunos desarrolladores opinan que por excelencia, es el mejor Framework de Apps Híbridas. Por el contrario, aún no me he encontrado con el momento de implementarlo en mis proyectos. Ver web oficial.

Ionic Framework

Es un proyecto 100% libre y de código abierto. Con licencia bajo MIT. Además, siempre será de uso gratuito e impulsado por una comunidad mundial. Esto se debe a que apuestan cada día mas fuerte por esta tecnología. Actualmente Ionic 3 es la versión mas actual. Bajo mi punto de vista creo que es el punto de entrada para comenzar a desarrollar Apps Híbridas. Una de sus ventajas mejor valoradas es que está construido con Angular. Otro punto fuerte es que tan sólo necesitaremos poseer conocimientos en CSS, HTML5 y Sass para poder programar nuestras AppsVer web oficial.

Appcelerator Titanium

Está desarrollado en tecnología Javascript y usa XML personalizado junto con la API de Appcelerator para obtener algunas características nativas. Posee soporte completo para Android e iOS. El código compilado, es una combinación de nativo y Javascript que hace mejorar el rendimiento de la App en cada dispositivo móvil. Mencionar que cuando este Framework salió hace ya unos años, la comunidad del desarrollo apostaba fuerte por el. Pero ciertamente existen en la actualidad otros Frameworks mas potentes. Ver web oficial.

 Ventajas y desventajas

Llega el momento de la despedida y compartirlo por las redes sociales. ¡Hasta la próxima!

¿Necesitas una App para dispositivos móviles? Contacta conmigo.

ventajas y desventajas entre Mysql vs MongoDB

¿Cuáles son las ventajas y desventajas entre Mysql vs MongoDB?

Hacía ya semanas que no escribía nada sobre desarrollo web en mi Blog. Esto se debe a la carga de trabajo con la que me estoy encontrando en esta etapa profesional de mi vida y es por eso que hoy os quiero hablar sobre las ventajas y desventajas entre Mysql vs MongoDB.

Con las bases de datos relacionales, siempre hemos diseñado y desarrollado nuestro sistema de almacenamiento de datos de nuestras aplicaciones web siguiendo unos patrones que nos otorguen una relación de las tablas que componen nuestra Base de datos con claves primaria y foráneas. Esto en ocasiones es magnífico por nos genera un sistema de almacenamiento de datos totalmente estructurado. Pero el problema viene cuando nos encontramos con nuevos evolutivos en nuestras aplicaciones web, que nos obliguen a realizar modificaciones en nuestro modelo conceptual de la Base de datos y sobre todo si requieren los mismos de cambios entre claves primarias y foráneas entre tablas.

Este problema con las bases de datos NoSQL quedaría resuelto por la flexibilidad que nos ofrecen las base de datos documentales, ya que estas bases de datos trabajan con datos en formato JSON.

Pero además, a continuación detallaré un listado de ventajas y desventajas con sistemas como pueden ser Mysql vs MongoDB.

Mysql ventajas:

  • Podemos ejecutar Sentencias SQL directamente en nuestra base de datos.
  • Posibilidad de abstracción de nuestra base de datos con algún ORM estilo Doctrine o Hibernate.
  • Almacenamiento de datos totalmente organizado y jerarquizado con claves primarias y foráneas.
  • Nos permite evitar la duplicidad de registros.
  • Mejora notable en mantenimiento de datos en relación a la seguridad requerida de los mismos.

Mysql desventajas:

  • Si nuestro sistema escala y evoluciona, tendremos que haber diseñado nuestra base de datos conforme a estos posibles nuevos requerimientos.
  • Requiere mas espacio de almacenamiento frente a una base de datos NoSQL.
  • Transacciones de datos mas pesadas frente a las bases de datos NoSQL.
  • Límites en campos de las tablas que nos podrán hacer perder datos si no los configuramos adecuadamente según el tamaño del dato que nos puedan introducir los usuarios.

MongoDB ventajas:

  • La escalabilidad y su carácter descentralizado hacen que soporten estructuras distribuidas.
  • Permiten realizar sistemas mas abiertos y flexibles debido a su fácil adaptación de nuevas evoluciones de nuestras aplicaciones web.
  • No se requieren potentes recursos para poder trabajar con bases de datos NoSQL.
  • Optimización en las consultas en base de datos para grandes cantidades de datos almacenados.

MongoDB desventajas:

  • Problemas con sentencias SQL ya que no admiten el 100% de las consultas existentes.
  • Los sistemas de bases de datos NoSQL carecen de interfaces gráficas para su uso y por tanto es posible que nos veamos obligados a trabajar mediante la consola de comandos.
  • Falta de estandarización entre las diferentes bases de datos NoSQL.

Espero que el listado anterior de ventajas y desventajas entre Mysql vs MongoDB puedan ayudaros a definir el tipo de base de datos a implementar en los futuros proyectos web según el listado de requisitos establecidos, y recuerda si necesitas ayuda, contacta conmigo.

Eso es todo por el momento, esperamos todos vuestro comentarios.

¡Hasta la próxima!

Desarrollo web stack MEAN (MongoDB – Express – Angular – Node.JS)

¿Que es el Desarrollo web stack MEAN?

El Desarrollo web stack MEAN hace que podamos realizar potentes aplicaciones web. Ya sea tanto del lado cliente como servidor con sólo Javascript con ayuda de MongoDB, Express, Angular y Node.JS.

Actualmente estas tecnologías son la gran apuesta por la comunidad de desarrolladores y empresas del sector a nivel mundial. El sólo uso de Javascript en todo nuestro proyecto, hace que el desarrollo del mismo sea una tarea mas sencilla de realizar. Quizás la curva de aprendizaje no sea tarea sencilla. Lo bueno, podemos estar seguros que nuestras expectativas laborales se verán notablemente mejoradas gracias al aprendizaje de las mismas. A continuación definiré las tecnologías que componen el Desarrollo web stack MEAN:

  • MongoDB: Como base de datos NoSQL, es una base de datos documental que almacena objetos JSON y por tanto no es relacional. El concepto de almacenamiento de datos entre NoSQL y relacional ofrece un cambio por completo en diseño, uso y arquitectura de la misma.
  • Express: En un Framework basado en Node.JS mediante el cual podremos generar una potente API REST para nuestros proyectos web de forma rápida y sencilla. Usar Express junto a Node.JS será una tarea necesaria para poder desarrollar de forma intuitiva.
  • AngularJS: Por excelencia el Framework para desarrollar aplicaciones web de lado Frontend. La experiencia del usuario al usar aplicaciones web realizadas con Angular es magnífica gracias al formato SPA (Single Page Application).
  • Node.JS: Potente Framework JavaScript basado en V8 para realizar aplicaciones web tanto del lado cliente como servidor. Gracias a la implementación de Node.JS en nuestras aplicaciones web, podremos generar nuestro propio servidor con tecnología Javascript.

Beneficios de usar el stack MEAN en nuestros desarrollos web

Los beneficios que aporta el uso del Desarrollo web stack MEAN frente a otros lenguajes o tecnologías como pueden ser Java, PHP o Python con ayuda de algunos de sus Frameworks son variadas. Entre las diferentes ventajas, citaré las siguientes:

  • Podremos desarrollar toda nuestra aplicación web usando javascript como único lenguaje, si bien las librerías que se usan en el front-end son distintas, de las que se usan en el lado del back-end con Node.JS.
  • La carga de datos e interacción con nuestra base de datos de MongoDB hace que nuestra aplicación web sea muy ágil gracias al uso de objetos en JSON para su almacenamiento.
  • El crecimiento de esta tecnología no se puede comparar con ninguna otra, pues el Desarrollo web stack MEAN ha sido enormemente acogido por la comunidad de desarrolladores tanto del lado Backend como Frontend.

Arquitectura del stack MEAN

“Como una imagen vale mas que mil palabras”

os muestro en detalle la arquitectura del Desarrollo web stack MEAN y que tecnología se encarga de cada tarea. Como podréis observar, Node.JS junto con Express se encargan de realizar toda la magia de nuestra aplicación web. Ver documentación oficial.

¿Que proyectos puedo desarrollar con stack MEAN?

La tipología de proyectos que podemos realizar con el Desarrollo web stack MEAN es infinita. Desde E-commerce hasta potentes paneles de administración. Todo con tecnologías Javascript.

Por todo ello, puedo valorar desde mi punto de vista que es una gran apuesta a futuro aplicar esta tecnologías a nuestros proyectos web. Si necesitas ayuda con esta tecnología, contacta conmigo.

Y tú, ¿que opinas al respecto?

Apertura nueva cuenta Github

Hola a todos comunidad de seguidores. En esta ocasión voy a informaros sobre la apertura de mi nueva cuenta Github a la cual iré subiendo a los distintos repositorios que iré creando.

Algunos proyectos personales que pueda hacer públicos serán principalmente los que iré subiendo a los distintos repositorios. Estos proyectos irán documentados además de venir integrados con su código fuente. Os irán muy bien para comenzar a ir trabajando en los diferentes lenguajes de programación y Frameworks relacionados.

Descargar código de otros desarrolladores es fundamental para mejorar nuestros conocimientos. Es algo vital. Además podremos aportar nuestro granito de arena colaborando en otros proyectos.

Pero, ¡si aún no se que es Github!

Para aquellos que hasta el momento no saben que es la plataforma de código abierto para el almacenamiento de repositorios de la comunidad de desarrolladores por excelencia denominada Github, estáis invitados a leer el post de escribí hace tan sólo unos días. Allí podréis saber mas acerca de la plataforma y sus diferentes usos, así como enlaces a la web oficial.

¿Que tipo de proyectos subiré a los repositorios de mi nueva cuenta Github?

La idea principal de la apertura de esta nueva cuenta, es en definitiva que todos los desarrolladores que se encuentren durante el proceso de iniciación e introducción en el desarrollo de Software, puedan apoyarse en estos repositorios para que puedan ir experimentando por ellos mismos la evolución de sus conocimientos y mejorando su nivel de destreza en el desarrollo y diseño de aplicaciones web.

¿Cuantos repositorios existen en mi cuenta de Github actualmente?

En estos momentos, tan sólo he subido un único repositorio que os invito a que visitéis y os descarguéis desde este enlace. Durante los próximos días, iré subiendo nuevos repositorios. Por tanto si consideráis que suba algún tipo de proyecto en concreto, os invito a que me escribáis directamente desde la sección de contacto o me dejéis un comentario al final de esta entrada.

Por hoy esto es todo community developers, espero vuestros comentarios y aportaciones. Pero sobre todo, compartirlo con todos los demás por las redes sociales.

¡Hasta la próxima!

GIT como control de versiones

GIT como control de versiones

El control de versiones es un sistema que registra los cambios realizados sobre un archivo o conjunto de archivos a lo largo del tiempo, de modo que puedas recuperar versiones específicas más adelante. Si eres diseñador o desarrollador web y quieres mantener siempre de forma segura la evolución de tus proyectos, deberás comenzar a trabajar con GIT como control de versiones.

¿Que es un repositorio GIT?

Cada vez el mundo del desarrollo del Software evoluciona mas rápido. Por ello que necesitamos trabajar con las mejores herramientas de la actualidad.

En esta entrada hablaré sobre los fundamentos iniciales de GIT como control de versiones., ya que es una herramienta imprescindible para poder desarrollar nuestro software entre los diferentes integrantes del equipo técnico que se ocupan de tales cometidos.

GIT es un control de versiones, existen otros como Subversión etc.

Pero y si trabajo sólo, ¿también lo necesito?

Correcto, trabajar con un control de versiones significa trabajar con buenas prácticas. Aunque trabajes solo, es posible que quieras mantener un control total de los cambios que tu aplicación irá sufriendo. Claro está, si trabajas en equipo, no existe otra opción, pues todos y cada uno de lo integrantes del equipo aportará su granito de arena al proyecto, eso significa que todo el proyecto se deberá encontrar siempre en su versión mas evolucionada de forma accesible dentro de un servidor remoto.

Trabajando con repositorios remotos

Todos los cambios que se realizan en cada versión local de cada desarrollador web del proyecto, se deben de subir al servidor remoto para tener siempre accesible la versión mas actual del proyecto. De esta manera, cuando finaliza la jornada, todos los integrantes del equipo o los responsables, suben las ramas realizadas con los cambios al servidor central. Esto se define com hacer un “PUSH” al repositorio remoto. Con ello conseguimos que cuando un desarrollador comienza su jornada, solicita una comprobación de posibles cambios sufridos en el servidor remoto, si existen se los descarga y ya puede comenzar a codificar.

¿Cuales son los repositorios remotos mas conocidos para nuestros proyectos?

En la actualidad existen 2 que son los mas conocidos entre la comunidad de desarrolladores:

  • Github
  • Bitbucket

El primero de ellos es quizás el mas conocido, es gratuito siempre y cuando no te importe que el código fuente del proyecto esté de forma pública a la comunidad de desarrolladores. Si deseas que tu repositorio se encuentre de forma privada y por tanto sólo accesible al equipo de desarrollo seleccionado, deberás de abonar una cuota que ronda desde los 7€ a los 200€ mensuales en función del número de repositorios que necesites en una misma cuenta y el número de desarrolladores web que tendrán acceso al mismo.

La otra opción, Bitbucket. Está opción es totalmente gratuita (Con unas limitaciones) para trabajar con repositorios de forma privada. También tiene su versión de pago, pero sólo será necesario si el número de integrantes o repositorios en una misma cuenta se te queda corto.

Bajo mi punto de vista, según la opción que escojas para mantener tus repositorios, será buena con sus pros y contras.

Git-flow ¿Que es eso?

Implementar git-flow a nuestros proyectos significa trabajar con unas reglas o pautas de ramas de manera sistemática en todos nuestro repositorios. Es una buena práctica trabajar con git-flow ya que el equipo técnico podrá trabajar cómodamente con estas reglas sabiendo en cada momento en que rama debe de trabajar en función del tipo de tarea que se encuentre realizando.

A continuación citaré las diferentes ramas existentes para trabajar con git-flow y su finalidad:

Ramas master y develop

El trabajo se organiza en dos ramas principales:

  • Rama master: cualquier commit que pongamos en esta rama debe estar preparado para subir a producción
  • Rama develop: rama en la que está el código que conformará la siguiente versión planificada del proyecto

Cada vez que se incorpora código a master, tenemos una nueva versión estable.

Además de estas dos ramas, Se proponen las siguientes ramas auxiliares:

  • Feature
  • Release
  • Hotfix

Cada tipo de rama, tiene sus propias reglas, que resumimos a continuación.

Feature

feature branches

  • Se originan a partir de la rama develop.
  • Se incorporan siempre a la rama develop.
  • Nombre: cualquiera que no sea master, develop, hotfix-* o release-*

Estas ramas son utilizadas para el desarrollo de nuevas características de nuestra aplicación. Una vez finalizadas se integran con la rama develop.

Release

  • Se originan a partir de la rama develop
  • Se incorporan a master y develop
  • Nombre: release-*

Estas ramas son utilizadas para preparar nuestra nueva versión de producción. En estas ramas son realizados los últimos ajustes y son corregidos los últimos bugs antes de incorporar las mismas a la rama master.

Hotfix hotfix branches

  • Se origina a partir de la rama master
  • Se incorporan a la master y develop
  • Nombre: hotfix-*

Esas ramas se utilizan para corregir errores y bugs en el código en producción. Funcionan de forma parecida a las Releases Branches, siendo la principal diferencia que los hotfixes no se planifican.

¿Necesitas ayuda para manejar GIT como control de versiones.? Contacta conmigo y te ofreceré un presupuesto personalizado.

El viaje para convertirte en desarrollador web profesional

Es posible que se te haya pasado por la mente realizar tu propia página web, sitio web, E-commerce o cualquier tipo de aplicación de entorno web en algún momento de tu vida y te habrás preguntado ¿Como lo hago?. Incluso hayas pensado en convertirte en desarrollador web profesional. Es por eso que en este post os informaré sobre los pasos que deberéis seguir para introduciros en el mundo del desarrollo de Software y convertirse en desarrollador web profesional.

Conozco a gente que anteriormente se ha querido introducir en este mundo y han querido convertirse en desarrollador web profesional, nada fuera de la realidad, deberás ser constante, disciplinado y autodidacta para manejar con soltura los diferentes Frameworks, lenguajes de programación y un sin fin de herramientas que te mencionaré a continuación.

Para comenzar, citaré 3 tipos de perfiles de desarrolladores:

  • Frontend Developer: Se basan en trabajar el aspecto visual de las interfaces gráficas con las que interactúa el usuario con nuestro sistema. La experiencia por parte de los usuarios conocido por sus siglas por UX es un punto a tener muy en cuenta es diseño de nuestra aplicación web.
  • Backend Developer: El profesional que trabaja en esta sección, es el encargado de hacer magia en nuestra plataforma web. Será el responsable de hacer posible todas las funcionalidades establecidas.
  • Full-stack Developer: El desarrollador web Full-Stack es el mas solicitado, por ello son los profesionales mejor pagados. Por contra, deben de manejar muchas herramientas y lenguajes de desarrollo tanto del lado Front como Back.

Una vez que ya sabes los diferentes perfiles de Desarrolladores web que existen en la actualidad, comenzaré a nombrar las diferentes herramientas que deberás de usar durante tu aprendizaje:

Diseño de bases de datos

Todo sistema web mas o menos potente, es gestionado mediante una base de datos, en la mayoría de ocasiones estas son de tipo relacionales. Aunque las bases de datos relacionales tan sólo un tipo de variante existente en la actualidad. Las bases de datos comprenden el lenguaje SQL. Entre los diferentes sistemas de gestión de bases de datos nos encontramos con Mysql, Oracle, SqlServer etc. Por tanto, si deseas ser un desarrollador de aplicaciones web profesional, deberás de dominar con bastante soltura alguno de estos sistemas gestores de bases de datos.

Diseño web

El leguaje interpretado por los navegadores es HTML. Actualmente en su versión 5. Son un listado de etiquetas. Popularmente como lenguaje de marcas. A estas etiquetas les asociamos una serie de estilos mediante propiedades CSS. Gracias a estos estilos aplicados conseguiremos dotar a nuestro sitio web del formato y estilo deseado. Esta tarea se denomina Maquetación de nuestro sitio web.

Lenguajes de Programación

En este apartado tan sólo mencionaré algunos pocos lenguajes de programación para entorno web, pero existen en la actualidad varias decenas de ellos. Por tanto necesitarás conocer algunos de ellos, citaré los siguientes:

  • Javascript
  • Php
  • Java
  • ASP.NET
  • Jsp
  • Python
  • Ruby
  • Perl

Frameworks de desarrollo web

En la actualidad, existen muchos Frameworks de desarrollo. Ellos nos hacen el día a día mas fácil para producir nuestro código fuente. Un Framework se define como un listado de librerías ya desarrolladas para construir nuestros Aplicativos con ayuda de unas funciones y clases de las que el Framework en cuestión nos ofrece a los desarrolladores. Con todo ello el desarrollador web se deberá de centrar únicamente en escribir sus sitios web en función de los requisitos establecidos junto con el cliente.

Existe una curva de aprendizaje para dominar el Framework. Pero una vez lo manejas con soltura, producirás código mucho mas rápido y de mejor calidad. Si tu deseo es convertirse en desarrollador web profesional, también deberás de conocer, entre los diferentes Frameworks de desarrollo web de la actualidad algunos de los que cito a continuación:

  • Symfony
  • Zend Framework
  • Yii
  • Laravel
  • Struts
  • Angular

Manejo y conocimientos básicos de CMS

Para convertirse en desarrollador web profesional implica que en algunos proyectos, por su naturaleza, serán mas fáciles de ser realizados con ayuda de un CMS o conocido coloquialmente como gestor de contenidos. Entre los diferentes CMS de la actualidad podemos encontrarnos con WordPress, Joomla o Prestashop. Cada uno tiene sus ventajas y desventajas muy bien definidas, por ello es tarea del encargado del proyecto, establecer con cual de ellos se realizará el sitio web en cuestión.

Control de versiones

Ya trabajes sólo de manera Freelance o en equipo en una empresa, deberás de trabajar con un control de versiones todos tus proyectos. Es una muy buena práctica de desarrollo. Siempre existirá un control de la fase del diseño y desarrollo del producto. Entre los diferentes programas de control de versiones existentes tan sólo mencionaré GIT. Por excelencia la Herramienta ideal para tales cometidos.

Conocimientos básicos sobre servidores

Deberás de tener conocimientos básicos de los diferentes tipos de almacenamientos en la nube como pueden ser servidores:

  • Compartidos
  • Virtuales
  • Dedicados

Los tenemos en Linux o Windows. También deberás trabajar con algún programa cliente de FTP para subir tus archivos a los servidores remotos. Existen muchas opciones. Filezilla es una de ellas. Podrás descargarlo de forma gratuita desde el sitio web oficial.

Metodologías ágiles

El desarrollo de nuestra aplicación web, podrá ser realizado mediante el uso de metodologías ágiles de desarrollo como son SCRUM o KANVAN. Gracias a la aplicación de estas formulas en nuestra fase de desarrollo, nuestro Software crecerá y se irán realizando entregas al cliente cada 15 o 20 días.

¿Cómo empieza el viaje para convertirse en desarrollador web profesional?

Podrás acudir a la universidad o a centros de formación profesional para estudiar titulaciones regladas y oficiales. También podrás estudiar de forma autodidacta realizando cursos online en plataformas como Udemy.

¿A que esperas a comenzar tu formación en desarrollo web? contacta conmigo si necesitas ayuda.

No olvides dejar tus comentarios y compartir en las redes sociales.

Enjoysoft Consulting, desarrollo y diseño web a medida

Post actualizado: Enjoysoft Consulting ya no ofrece servicios por decisión estratégica de negocio. Hola a todos, después de este tiempo sin dar señales de vida os vengo a contar los nuevos acontecimientos de mi vida profesional, además de hablar sobre nuestros servicios sobre desarrollo y diseño web a medida.

“Actualmente me he embarcado en el mundo del emprendimiento; soy CEO  y fundador de Enjoysoft Consulting.

Enjoysoft es una empresa de reciente creación pero con gran proyección ya que cuenta con un equipo humano de profesionales en continuo aprendizaje dado que este sector es lo que requiere. Juntos nos esforzamos por satisfacer diariamente las necesidades de nuestros clientes.



Enjoysoft es una empresa de reciente creación pero con gran proyección ya que cuenta con un equipo humano de profesionales en continuo aprendizaje dado que este sector es lo que requiere. Juntos nos esforzamos por satisfacer diariamente las necesidades de nuestros clientes.

¿Qué ofrecemos a nuestros clientes?

  • Diseño y desarrollo de aplicaciones web totalmente a medida
  • Desarrollo de E-commerce (PrestaShop)
  • Desarrollo de gestores de contenidos (WordPress)
  • Diseño y desarrollo de Apps
  • Diseño web Responsive Corporativo
  • Marketing online

En definitiva analizamos tu proyecto, te asesoramos y lo realizamos ajustándonos a tus necesidades. Nuestro equipo técnico está preparado para abordar tu proyecto, nos encargamos desde el análisis inicial, catálogo de requisitos, desarrollo del producto, la puesta en producción y por último el posterior mantenimiento. Además todas las evoluciones que requiera el proyecto, nosotros seremos capaces de realizarlas usando para ello las herramientas y lenguajes de desarrollo mas actuales, tanto en Backend como Frontend. ¿Pero y Apps?, correcto, también diseñamos y desarrollamos aplicaciones para dispositivos móviles.

Por otro lado, realizamos formaciones a otras entidades mediante nuestros breves pero potentes cursos formativos.

Enjoysoft está ubicada en Zaragoza y tenemos clientes repartidos por toda España. ¡A que esperas, contacta con nosotros!

desarrollo y diseño web a medida

Os invito también, desde este enlace, a echar un vistazo a una entrevista que realicé recientemente acerca de emprendimiento en la que podréis conocer aún mejor tanto a mi empresa como a mí.

¿Aún no has quedado claro nuestro catálogo de servicios? Visita la sección de servicios.

AsyncTask: Tareas Asíncronas Android

Hola de nuevo a todos, en esta ocasión vamos a hablar un poco sobre la clase en desarrollo android AsyncTask. Es una clase que nos proporciona android.

¿Para que sirve en desarrollo android AsyncTask?

Anteriormente, cuando nuestra aplicación android requería de conectarse a un servicio REST para poder interactuar con nuestra información alojada en servidores de la red, teníamos que trabajar con conexiones mediante hilos. Manejar estos hilos era una tarea algo laboriosa.

Por ese motivo, y por la necesidad que existía de hacer la vida mas sencilla a los desarrolladores de aplicaciones android, nació la clase AsyncTask. No es ni mas ni menos que una clase que nos proporciona para la realización de peticiones al servidor de una forma mucho mas rápida, ágil e intuitiva.

En este post no se va a profundizar en la explicación de los hilos en android. Si deseas obtener mas información acerca de los mismos, puedes adentrarte más en ello leyendo en otros blogs relacionados.

¿Como funciona en desarrollo android AsyncTask?

La clase AsyncTask posee los siguientes métodos que nos permitirán coordinar la ejecución de las tareas que deseas ubicar en segundo plano. Estos métodos tienen los siguientes propósitos:

  • onPreExecute(): En este método van todas aquellas instrucciones que se ejecutarán antes de iniciar la tarea en segundo plano. Normalmente es la inicialización de variables, objetos y la preparación de componentes de la interfaz.
  • doInBackground(Parámetros…): Recibe los parámetros de entrada para ejecutar las instrucciones especificas que irán en segundo plano, luego de que ha terminado onPreExecute(). Dentro de él podemos invocar un método auxiliar llamado publishProgress(), el cual transmitirá unidades de progreso al hilo principal. Estas unidades miden cuanto tiempo falta para terminar la tarea. Esto irá en función de la velocidad y prioridad que se está ejecutando.
  • onProgressUpdate(Progreso…): Este método se ejecuta en el hilo de UI luego de que publishProgress() ha sido llamado. Su ejecución se prolongará lo necesario hasta que la tarea en segundo plano haya sido terminada. Recibe las unidades de progreso, así que podemos usar algún View para mostrarlas al usuario para que este sea consciente de la cantidad de tiempo que debe esperar.
  • onPostExecute(Resultados…): Aquí puedes publicar todos los resultados retornados por doInBackground() hacia el hilo principal.
  • onCancelled(): Ejecuta las instrucciones que desees que se realicen al cancelar la tarea asíncrona.

Gracias a estos métodos que nos proporciona esta clase, nuestro manejo de hilos nos va hacer la vida mucho mas sencilla a la hora de realizar peticiones mediante servicios REST.

Conclusión

La siguiente ocasión que necesites realizar este tipo de conexiones, no dudes en utilizar la clase AsyncTask ya que te facilitará en gran medida en manejar las peticiones a los diferentes servidores.

Ahora para ponerlo en práctica, os comparto un ejercicio de nuestra web amiga hermosaprogramacion

No dudes en compartir este post con otros desarrolladores, les será de gran ayuda.

Hasta la próxima!

Abrir chat
1
Hola ¿En qué puedo ayudarte?
Powered by