10 lugares con retos y competiciones de programación

por:

10 lugares con retos y competiciones de programación

Una vez que una persona ya ha aprendido lo básico sobre un lenguaje de programación, se suele preguntar qué hacer después. Hoy te enseño 5 sitios donde probar tu nivel y aprender con retos.

¿Por qué realizar retos de programación?

Normalmente en el día a día, se realiza una serie de cosas que suelen ser parecidas, por lo que ya las dominas. Sin embargo, el lenguaje es muy amplio y seguramente desconozcas mucho sobre el mismo. Estas son algunas de las cosas que te pueden aportar los retos y competiciones de programación:

  • Ampliación y asentamiento de los conceptos de programación (algoritmos, estructuras de datos, etc)
  • Mejora en la compresión de tu lenguaje
  • Un camino para aprender otros lenguajes cuando ya sabes programar
  • Descubrir nuevos paradigmas de programación
  • Conocer otras formas de enfrentarte a problemas, que quizás nunca hayas tenido

Leer más

¿Cómo elegir un buen hosting para tu proyecto?

por:

¿Cómo elegir un buen hosting para tu proyecto?

Hoy en día, un gran porcentaje de los proyectos que se desarrollan son páginas webs. Por ello, es muy importante elegir un buen hosting o servidor web donde alojar tu proyecto web. Esto es debido a que un mal servidor hará que tu aplicación deje de funcionar, vaya lenta y multitud de efectos desagradables que querrás evitar. Sin embargo, elegir un buen servidor no es nada sencillo ya que hay que valorar:

  • Localización del servidor: por cuestiones de SEO, latencias, etc.
  • Recursos necesarios: memoria, CPU, espacio de disco, conexiones de red…
  • Escalabilidad: uso por horas, balanceamiento, ajuste de recursos según demanda, etc.
  • Tecnologías que soporten: Windows server o Linux, discos SSD, etc.
  • Versiones que soportan: PHP7 o mayor, para WordPress por ejemplo.
  • Seguridad: hosting compartido, dedicado, etc.

Como ves, muchas características a analizar y por ello, la frase: “el mejor hosting es X“, suele ser algo bastante discutible. Seguramente haya empresas de hosting muy buenas para algunos proyectos, pero que para otro tipo de proyectos se quedan cortas o simplemente no lo soportan. En mi caso, siempre prefiero contratar con una empresa de alojamiento que me permita administrar el servidor, ya que cuento con conocimientos sobre ello y así puedo afinar y ajustar la configuración que busco.

Leer más

Como crear una base de datos de ejemplo en 5 minutos

por:

Como crear una base de datos de ejemplo en 5 minutos

Uno de los problemas habituales que podemos tener al querer probar una nueva tecnología, es la necesidad de tener una base de datos de ejemplo con información.

¿Qué es una base de datos de ejemplo?

Una base de datos de prueba no es más que un conjunto de datos relacionados, con los que poder trabajar. Esto es muy útil en multitud de casos:

  • Aprender un lenguaje de consultas, como SQL
  • Conocer cómo usar los conectores de base de datos de cada lenguaje
  • Hacer pruebas de rendimiento a nuestra base de datos
  • Testear configuraciones

¿Cómo crear una base de datos de test?

Para crear este conjunto de datos, podemos seguir dos alternativas principales. Crear una copia de datos que actualmente tengamos nosotros ya en una base de datos, o utilizar conjuntos de prueba disponibles en la red. En mi opinión, si se va a utilizar de manera interna tiene sentido utilizar datos propios. Sin embargo, liberar estos datos para que otros los utilicen pueden entrañar problemas de seguridad. Por ello, voy a utilizar la segunda opción.

Leer más

El lenguaje de programación más fácil

por:

El lenguaje de programación más fácil

Una de las primeras preguntas que se hace un programador es descubrir cuál es el lenguaje de programación más facil, para empezar por el mismo.

Empezar a programar por el lenguaje más sencillo

Desde mi punto de vista, la afirmación anterior es un gran error. Aprender bien a programar requiere conocer una serie de conceptos que son comunes a todos los lenguajes y que, por lo tanto, no deberían aprenderse para un lenguaje en concreto. Para iniciar el proceso de aprendizaje yo empezaría por conocer cuestiones como:

  • Cómo funciona un ordenador
  • Tipos de datos básicos (carácteres, cadenas, número enteros y reales).
  • Lógica binaria (Álgebra de Boole)
  • Diagramas de flujo

Lenguajes de programación más fáciles

Una vez conocido lo anterior, está claro que hay lenguajes con una mayor sintaxis y complejidad que otros. Por lo que siempre es bueno, no empezar por el lenguaje más complicado. En los siguientes apartados podrás conocer algunos lenguajes sencillos y por qué han sido seleccionados como buenos para aprender.

Leer más

¿Qué tecnologías aprender en 2018?

por:

¿Qué tecnologías aprender en 2018?

Estando este año 2017 prácticamente finalizado, hoy te traigo una recopilación de las tecnologías a aprender para 2018. Como todos los artículos de este tipo, este también es subjetivo ya que se basa en aquellas cuestiones en las que he notado una gran demanda recientemente.

Docker y los microservicios

En primer lugar, considero que Docker va a tener un crecimiento amplísimo en 2018, ya que las ventajas que presenta frente a otros competidores como Vagrant son muy importantes. Si no conoces Docker, te lo puedo resumir en un software que permite crear contenedores (una especie de máquinas virtuales) donde residen de manera desacoplada aplicaciones o recursos.

Actualmente el soporte de Docker sobre Linux es muy amplio, lo cual unido a su facilidad de uso, la gestión de recursos bajo demanda y la no necesidad de un elemento externo que actúe como virtualizador, lo convierten en, para mí, el mejor sistema para gestionar la infraestructura web.

Leer más

Mejora tus repositorios añadiendo insignias

por:

Mejora tus repositorios  añadiendo insignias

Si eres usuario habitual de GitHub, te habrás dado cuenta de que los repositorios cada día son más importantes. Además, los mismos se están convirtiendo en un punto de encuentro para los desarrolladores, donde se acumula multitud de información. Una forma de expresar esa información son las clásicas insignias que hoy te enseño a utilizar.

Metadatos de insteres en tus repositorios

Además del código, hay muchos datos sobre el repositorio que pueden ser de mucha importancia para tus usuarios, como por ejemplo:

  • La licencia.
  • El número de: commits, colaboradores, releases
  • Si los test han pasado correctamente.
  • Las versiones que se están utilizando del lenguaje, plugins, etc.

Toda esta información, permite no solo conocer cómo se realizan cada una de las funciones y la arquitectura del desarrollo, sino que también transmite cómo se trabaja en ese repositorio.

El repositorio de SendGrid muestra algunas insignias de interés.

En la imagen superior podéis ver uno de los repositorio de SendGrid, con un conjunto de insignias que indican lo siguiente:

  • El código ha pasado todos los test.
  • Está disponible en NuGet en la versión V9.9.0
  • Hay 43 suscriptores para ser informados del lanzamiento de nuevas relaseses
  • La licencia utilizada es la MIT
  • Su cuenta de Twitter cuenta con 20.000 seguidores
  • En el repositorio han contribuido 53 usuarios.

Leer más

Por qué deberías usar Git como sistema de control de versiones

por:

Por qué deberías usar Git como sistema de control de versiones

Seguramente, como visitante de esta página, estarás acostumbrado a programar y a trabajar en algunos proyectos más o menos extensos, ¿pero lo estás también a usar un sistema de control de versiones?. Es muy posible que la respuesta a esta pregunta sea que no.

¿Qué es un sistema de control de versiones?

Un sistema de control de versiones es un software que permite mantener un histórico de las distintas versiones de un desarrollo. Este sistema básicamente y a grandes rasgos, consiste en almacenar copias de los ficheros que contienen el código fuente del proyecto en cada uno de sus estados. Esto permite tener siempre a mano el código fuente disponible de un programa, en cada una de sus versiones y/o en una fecha concreta.

Ventajas del uso de un sistema de control de versiones

Utilizar un sistema de control de versiones tiene, entre otras, las siguientes ventajas:

  • Permite mantener un histórico de todo el desarrollo del proyecto.
  • Añade trazabilidad al desarrollo de software, ya que se puede ver qué cambios se han hecho en el código en cada versión.
  • Muestra mucha información estadística de cómo se está desarrollando el proyecto (principales autores, número de versiones, cambios, etc.).
  • Facilita mucho el trabajo en equipo.
  • Permite desarrollar varias versiones de un mismo programa a la vez.

Inconvenientes del uso de un sistema de control de versiones

Los principales inconvenientes del uso de un sistema de control de versiones son:

  • Presentan una curva de aprendizaje un poco elevada.
  • Sólo se aprovechan de manera completa si se tiene este sistema en un servidor siempre disponible.
  • Su uso sin interfaz gráfica puede resultar bastante complejo.

 

Como puedes ver, las ventajas superan ampliamente a las desventajas, pero todavía hay en muchas organizaciones que no se utilizan. Esto es debido, en muchos casos, a que sus empleados no están formados en el uso de estas herramientas. Por ejemplo, en mi universidad no se enseña a usarlos y en los grados de formación profesional que conozco, tampoco.

Leer más

Las 3 mejores tipografías para programar

por:

Las 3 mejores tipografías para programar

El mundo de la programación, es un sector que ha evolucionado de manera muy rápida en los últimos años. Esta evolución ha permitido el nacimiento de multitud de lenguajes y tecnologías. Pero hay otras cosas que no han cambiado tanto, como los editores o las fuentes que estos mismos utilizan.

La programación y la tipografía

Cuando uno piensa en tipografía y en programación, siempre se le viene a la cabeza las fuentes monoespaciadas. Aquellas que dedican el mismo espacio a cada símbolo. Sin embargo, hay otros conceptos que no se tienen presentes:

  • En programación se hace un uso intensivo de los símbolos, ya que forman estos forman parte de la sintaxis de muchos lenguajes. Por ejemplo, ‘#’ en Markdown, <= para hacer comparaciones, ! para negar un valor…
  • Se utilizan mucho los números. En un documento de texto o en un libro no es muy frecuente su uso, pero en programación suelen utilizarse de manera constante.
  • La programación saca partido de la identación, al contrario de los documentos textuales clásicos.

Entonces, si el código tiene sus propias características y es muy distinto a los textos comunes, por qué se utilizan las mismas tipografías. La respuesta es simple, porque hasta hace poco no había nada que mejorase lo que se tenía.

Leer más