Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

1027 artículos publicados

Rendimiento de algoritmos y notación Big-O

En programación el rendimiento o la complejidad de un algoritmo se suele medir utilizando una notación denominada Big-O, y también conocida como Notación Asintótica o Notación Landau.
Ya os hemos contado aquí la importancia que tiene aprender a crear ciertos algoritmos aunque no los vayas a usar en el día a día. Pero además, en cualquier documentación o en cualquier libro o página que describa un algoritmo nos vamos a encontrar con la notación Big-O, por lo que es muy importante conocerla.
¿Qué significa esto exactamente y por qué nos importa?... [Más]

Swift vs Objective-C: 5 preguntas indispensables para aprender a programar para iOS

Swift es el nuevo lenguaje de Apple, llamado a sustituir al vetusto Objective-C en el que se han basado históricamente todos los desarrollos para iPhone/IPad y Mac OS X. Se lanzó oficialmente durante el verano de 2014, o sea, ya hace casi dos años, pero sigue siendo el "nuevo" y todavía quedan dudas sobre todo lo que lo rodea, especialmente si vas a iniciarte en la programación para iPhone/iPad o Mac OS X.
En este artículo vamos a tratar de contestar a las dudas más habituales para ayudarte a comparar mejor ambos lenguajes y a tomar decisiones respecto a su aprendizaje. [Más]

Ser mejor programador aprendiendo algoritmos (y de paso Swift)

Los algoritmos. Esos conceptos abstractos que se estudian en la teoría de computación y que luego raramente los usas en tu trabajo diario programando. ¿Cuándo fue la última vez que creaste una lista enlazada o diseñaste un algoritmo para búsqueda eficiente de datos? Probablemente nunca. De hecho, cualquier lenguaje o plataforma que se precie te ofrecerá "de serie" el 90% de los algoritmos que vas a necesitar usar alguna vez...

Sin embargo, cualquier problema que debas resolver usando un programa se reduce al final a crear un algoritmo, una serie de pasos lógicos y ordenados que te permiten resolver el problema de la manera más eficiente posible. Conocer la teoría y los conceptos que hay debajo de los algoritmos comunes (los que ya te da resueltos el propio lenguaje), aunque puedan parecer abstractos, en realidad marcan la diferencia entre un buen programador y un gran programador. [Más]

Migrando aplicaciones de .NET al nuevo .NET Core - Preguntas y respuestas

.NET Core es la nueva generación de tecnologías basadas en .NET y orientadas a la nube. No se trata de una nueva versión llamada a sustituir a la anterior, sino que es una nueva tecnología que se mantendrá en paralelo a la tecnología actual. Tiene unos objetivos diferentes: sobre todo que sea multi-plataforma (Windows, Linux y Mac), que ofrezca más rendimiento y menos uso de recursos para su uso en la nube, y que sea totalmente modular. En un artículo te explicábamos hace poco en qué consiste .NET Core, qué contendrá y qué esperar de esta tecnología en el corto plazo.Hace poco el equipo de .NET Core sacó un artículo en el que explicaban a vista de pájaro qué opciones existen para poder migrar tus aplicaciones desde la versión completa de .NET a la más liviana y multi-plataforma nueva versión, que por otro lado no ha sido lanzada todavía... [Más]

Los 10 lenguajes de programación de 2016

En los últimos años son numerosos los nuevos lenguajes de programación que van ganando aceptación entre los desarrolladores. Estos lenguajes revolucionaron la industria tecnológica, llegando en algunos caso a superar en popularidad a los lenguajes “de toda la vida”, como por ejemplo sucedió con Go de Google o Rust de Mozilla en su momento de mayor apogeo. Sin embargo, a excepción de Swift, cuya adopción parece imparable, de acuerdo con los datos publicados por la empresa RedMonk, los desarrolladores siguen prefiriendo los lenguajes establecidos. La figura que se muestra a continuación ha sido extraída de los datos publicados por RedMonk (véase enlace anterior) y por lo tanto es propiedad de RedMonk. En un post anterior ya os explicamos con qué propósito realizan este ranking de lenguajes y cómo llevan a cabo el análisis, por lo que ahora... [Más]

Pattern matching en lenguajes de programación funcionales

El pattern matching (se podría traducir como búsqueda de patrones) es otro concepto traído de la programación funcional que (como la propia programación funcional, de hecho) está tomando cada vez más importancia. ¿Pero… en qué consiste exactamente? Muchos lenguajes tienen este concepto, aunque no todos con el mismo nivel de profundidad. En este artículo hablaremos un poco del pattern matching , su importancia y veremos algunos ejemplos. En la actualidad ECMAScript ya dispone de ciertas capacidades de patrones y se está valorando incluirlo en C# 7, por lo que conviene ir aprendiendo sobre el asunto. Nota: Aunque los conceptos son genéricos, el lenguaje que vamos a usar para los mismos es Elixir. Elixir es un lenguaje funcional que se ejecuta bajo BEAM, la máquina virtual de Erlang. La razón para escojer Elixir es que el pattern ... [Más]

¿Qué es la recursividad o recursión? - Un ejemplo con JavaScript

Un concepto que siempre le cuesta bastante a los programadores que están empezando es el de recursión o recursividad (se puede decir de las dos maneras). Aunque es un concepto que puede llegar a ser muy complejo, en esencia es muy sencillo: La recursividad consiste en funciones que se llaman a sí mismas, evitando el uso de bucles y otros iteradores. En este post vamos a ver claro el concepto... [Más]

El panorama de .NET en 2016: ¿plataforma completa o .NET Core?

En Julio del año pasado, justo antes de que lanzasen Visual Studio 2015, escribí un post muy detallado sobre todo el lío de versiones que se nos venía encima con la aparición de lo que se conocía entonces como ASP.NET "vNext", y el enorme fiasco que había montado el equipo de desarrollo con la numeración de versiones que habían elegido.

Aunque creo que te interesará y deberías leerlo, si no quieres hacerlo ahora, como resumen te diré que lo que hicieron con el versionamiento del producto daba a entender a la gente que todo lo nuevo que están haciendo iba a ser una nueva versión de lo anterior, sustituyéndolo, cuando en realidad son dos proyectos distintos que trabajarán en paralelo. [Más]