<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Arturo Maltos - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Descubre miles de cursos de programación escritos por expertos. Aprende Desarrollo Web, Ciencia de Datos, DevOps, Seguridad y obtén asesoramiento profesional para desarrolladores. ]]>
        </description>
        <link>https://www.freecodecamp.org/espanol/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Arturo Maltos - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/espanol/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Tue, 26 May 2026 16:03:26 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/espanol/news/author/arturo-maltos/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Cómo empezar con Pandas en Python - Una guía para principiantes ]]>
                </title>
                <description>
                    <![CDATA[ El paquete Pandas de Python ofrece un montón de funciones y características interesantes que ayudan a manipular los datos de manera más eficiente. También permite realizar numerosos pasos de limpieza y preprocesamiento de datos con muy poca dificultad. Es estupendo, ¿verdad? Aquí tienes una lista de algunas de las funciones ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/como-empezar-con-pandas-en-python-una-guia-para-principiantes/</link>
                <guid isPermaLink="false">605c2df1540cd708b5738a94</guid>
                
                    <category>
                        <![CDATA[ Python ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Arturo Maltos ]]>
                </dc:creator>
                <pubDate>Tue, 18 May 2021 03:21:07 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2021/03/photo-1485796826113-174aa68fd81b.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>El paquete Pandas de Python ofrece un montón de funciones y características interesantes que ayudan a manipular los datos de manera más eficiente. También permite realizar numerosos pasos de limpieza y preprocesamiento de datos con muy poca dificultad.</p><p>Es estupendo, ¿verdad? Aquí tienes una lista de algunas de las funciones y trucos de Pandas más utilizados para ayudarte a disfrutar de tu viaje de ciencia de datos.</p><h2 id="c-mo-eliminar-los-valores-faltantes-en-dataframe">Cómo eliminar los valores faltantes en DataFrame</h2><p>Deshacerse de los valores perdidos es una de las tareas más comunes en la limpieza de datos. Los valores faltantes pueden estar en una sola fila o columna o en varias filas y columnas.</p><p>Dependiendo de su aplicación y del dominio del problema, se pueden utilizar diferentes enfoques para manejar los datos que faltan - como la interpolación, la sustitución con la media, o simplemente la eliminación de las filas con valores perdidos.</p><p>Pandas ofrece la función <code>dropna</code> que elimina todas las filas (para axis=0) o todas las columnas (para axis=1) en las que hay valores perdido s. Algunos de los argumentos de la función dropna son los siguientes:</p><ul><li><code>axis</code> que especifica si se deben eliminar las filas (axis=0) o si se deben eliminar las columnas (axis=1)</li><li><code>subset</code> que especifica una lista de columnas para considerar los valores perdidos cuando axis=0</li><li><code>inplace</code> que especifica si se van a realizar cambios en el propio DataFrame existente</li></ul><p>Consulte los documentos enlazados <a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.dropna.html">aquí</a> para obtener información más detallada.</p><p>En el siguiente ejemplo, estamos creando un pequeño DataFrame con valores perdidos y luego descartamos las filas con valores perdidos en cualquier columna.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2021/03/image-4.png" class="kg-image" alt="image-4" width="600" height="400" loading="lazy"><figcaption>Eliminar los valores perdidos en Pandas</figcaption></figure><h2 id="c-mo-eliminar-duplicados-en-dataframe">Cómo eliminar duplicados en DataFrame</h2><p>Otra tarea común de limpieza de datos es la eliminación de filas duplicadas. La función <code>drop_duplicates</code> realiza esto con argumentos similares a <code>dropna</code> como:</p><ul><li><code>subset</code>, que especifica un subconjunto de columnas a considerar para el valor duplicado cuando axis=0</li><li><code>inplace</code></li><li><code>keep</code>, que especifica qué valores duplicados conservar. Mantener puede ser igual al primero, al último o Falso para eliminar todos los duplicados.</li></ul><p>Consulta los documentos enlazados <a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.drop_duplicates.html">aquí</a> para obtener información más detallada.</p><p>Dupliquemos algunas filas y eliminémoslas de nuestro dataset (conjunto de datos):</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2021/03/image-5.png" class="kg-image" alt="image-5" width="600" height="400" loading="lazy"><figcaption>Eliminar los valores duplicados en Pandas</figcaption></figure><h2 id="c-mo-eliminar-filas-con-valores-espec-ficos-de-la-columna">Cómo eliminar filas con valores específicos de la columna</h2><p>Supongamos que queremos mantener sólo las filas en las que el tipo de proyecto es Web o en las que el número de horas trabajadas es igual a 12. Así es como podemos hacerlo.</p><p>Con este método, podemos filtrar las filas en función de ciertos valores de columna específicos:</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2021/03/image-8.png" class="kg-image" alt="image-8" width="600" height="400" loading="lazy"><figcaption>Eliminar las filas con valores específicos de la columnas</figcaption></figure><h2 id="c-mo-convertir-dataframes-en-json">Cómo convertir DataFrames en<strong> JSON</strong></h2><p>Los DataFrames son estructuras optimizadas y geniales para trabajar. Y JSON es uno de los formatos de datos más populares para el intercambio de datos sin problemas.</p><p>Vamos a convertir nuestro DataFrame a JSON usando <code>to_json</code> que requiere argumentos como:</p><ul><li><code>orient</code>, que especifica cuáles deben ser los pares de clave y valor. Por defecto es columns (columnas), por lo que el nombre de la columna es la clave y cada columna es el valor.</li><li><code>date_format</code> que especifica el formato de la fecha. El valor por defecto es epoch.</li></ul><p>Mira el ejemplo siguiente:</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2021/03/image-11.png" class="kg-image" alt="image-11" width="600" height="400" loading="lazy"><figcaption>Convertir DataFrame a JSON</figcaption></figure><p>Podemos ver que <code>to_json</code> ha devuelto una cadena con el siguiente esquema:</p><pre><code>column_0 :
{ row_index_0: column_value_0, row_index_1:column_value_1, ...}, 
column_1:
{ row_index_0: column_value_0, row_index_1:column_value_1, ...}, 
...
column_N:
{ row_index_0: column_value_0, row_index_1:column_value_1, ...}
   </code></pre><p>Si queremos convertir cada fila en un diccionario, tenemos que especificar que <code>orient=records</code> y parsearlo usando el módulo JSON.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2021/03/image-12.png" class="kg-image" alt="image-12" width="600" height="400" loading="lazy"><figcaption>Convertir DataFrame a JSON con orient=records</figcaption></figure><h2 id="c-mo-contar-el-n-mero-de-valores-nicos-en-una-columna">Cómo contar el número de valores únicos en una columna</h2><p>Digamos que queremos saber cuántos tipos de proyectos diferentes existen. Podemos obtener esa información utilizando la función <code>nunique</code>.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2021/03/image-13.png" class="kg-image" alt="image-13" width="600" height="400" loading="lazy"><figcaption>Count number of unique values in a column</figcaption></figure><h2 id="c-mo-guardar-el-dataframe-como-archivo-csv">Cómo guardar el DataFrame como archivo .csv</h2><p>Sólo se requiere una línea de código para guardar el DataFrame como un archivo csv:</p><pre><code>dataset.to_csv("save_as_csv.csv")</code></pre><h2 id="c-mo-guardar-varias-listas-como-un-solo-archivo-csv">Cómo guardar varias listas como un solo archivo .csv</h2><p>Supongamos que tenemos tres listas separadas como fuente de datos y queremos guardarlas juntas en un archivo csv. Esto sólo implica dos pasos:</p><ul><li>convirtiéndola en un número de tuplas mediante zip,</li><li>y luego convirtiéndola en una lista.</li></ul><p>En el ejemplo siguiente, seguimos este enfoque para convertir las tres listas en un DataFrame que ahora podemos guardar como archivo .csv.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2021/03/image-15.png" class="kg-image" alt="image-15" width="600" height="400" loading="lazy"><figcaption>Save multiple lists as one csv file</figcaption></figure><h3 id="c-mo-leer-dataframes-de-forma-eficiente-en-t-rminos-de-la-memoria">Cómo leer DataFrames de forma eficiente en términos de la memoria</h3><p>A menudo tenemos que leer archivos tan grandes que no caben en la memoria. Para estos conjuntos de datos gigantescos, utilizamos un enfoque diferente.</p><p>Primero, creamos un objeto <code>TextFileReader</code>. Luego especificamos un parámetro llamado <code>chunksize</code> que especifica cuántas filas del archivo queremos leer a la vez, digamos 4 filas. Así que leemos 4 filas a la vez, realizamos algunas tareas en ese fragmento, y pasamos a las siguientes 4 filas.</p><p>Es más probable que los trozos pequeños quepan en la memoria que el archivo completo de miles de filas. El siguiente ejemplo muestra cómo funciona el chunking.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2021/03/image-16.png" class="kg-image" alt="image-16" width="600" height="400" loading="lazy"><figcaption>Leer DataFrame de manera eficiente en la memoria</figcaption></figure><p>Aquí leemos el conjunto de datos de <code>california</code> 1.000 filas a la vez, eliminamos todas las filas en las que la <code>median_income</code> es menor o igual a 3, y añadimos estos trozos reducidos para hacer un conjunto de datos más pequeño.</p><p>Puede ahorrar más memoria leyendo sólo las columnas que necesite y especificando tipos de datos más pequeños para las columnas, como se describe detalladamente en los documentos enlazados <a href="https://pandas.pydata.org/pandas-docs/stable/user_guide/scale.html">aquí</a>.</p><h2 id="c-mo-cambiar-todos-los-valores-de-un-dataframe-utilizando-apply">Cómo cambiar todos los valores de un DataFrame utilizando<strong> <code>apply</code></strong></h2><p>Volvamos a nuestro ejemplo de un DataFrame para ilustrar esto. Nos centramos en la columna `Hours_Worked`, incrementando la cuenta en 1 si es un número par y en 2 si es un número impar. Para este propósito utilizamos una función lambda.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2021/03/image-17.png" class="kg-image" alt="image-17" width="600" height="400" loading="lazy"><figcaption>Change all values in a DataFrame using apply</figcaption></figure><h2 id="conclusi-n">Conclusión</h2><p>Pandas es un poderoso paquete que a veces puede parecer desalentador debido a su inmensidad. Por eso he intentado enumerar algunas de las funciones más útiles que he encontrado.</p><p>Estas funciones de Pandas te ayudarán a acelerar tus tareas de análisis de datos. Gracias por tu tiempo y espero que hayas disfrutado leyendo este artículo.</p><p>Traducido del artículo de <strong><a href="https://www.freecodecamp.org/news/author/suchandra/">Suchandra Datta</a></strong> - <strong><strong><a href="https://www.freecodecamp.org/news/python-pandas-functions/">How to Get Started with Pandas in Python – a Beginner's Guide</a></strong></strong></p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Dos maneras de desplegar un sitio público de GitHub Pages desde un repositorio privado de Hugo ]]>
                </title>
                <description>
                    <![CDATA[ Mantén tus borradores fuera del ojo público haciendo uso de las herramientas de despliegue continuo para publicar tu sitio público de GitHub Pages - desde un repositorio privado separado. Herramientas como Travis CI y Netlify ofrecen algunas características bastante ingeniosas, como el despliegue sin problemas de tu sitio de GitHub ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/dos-maneras-de-desplegar-un-sitio-publico-de-github-pages-desde-un-repositorio-privado-de-hugo/</link>
                <guid isPermaLink="false">5fe026c88c7cd154bb97bd58</guid>
                
                    <category>
                        <![CDATA[ Programación ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Arturo Maltos ]]>
                </dc:creator>
                <pubDate>Sun, 11 Apr 2021 04:56:41 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2020/12/0_PIWDprt12aR7QsJ8.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <h4 id="mant-n-tus-borradores-fuera-del-ojo-p-blico-haciendo-uso-de-las-herramientas-de-despliegue-continuo-para-publicar-tu-sitio-p-blico-de-github-pages-desde-un-repositorio-privado-separado-">Mantén tus borradores fuera del ojo público haciendo uso de las herramientas de despliegue continuo para publicar tu sitio público de GitHub Pages - desde un repositorio privado separado.</h4><p>Herramientas como Travis CI y Netlify ofrecen algunas características bastante ingeniosas, como el despliegue sin problemas de tu sitio de GitHub Pages cuando los cambios son empujados a su repositorio. Junto con un generador de sitios estáticos como Hugo, el mantenimiento de un blog al día es bastante sencillo.</p><p>He utilizado Hugo para construir mi sitio durante años, pero hasta esta semana pasada nunca había conectado mi repositorio de Pages a ningún servicio de despliegue. ¿Por qué? Porque usar una herramienta que construya mi sitio antes de desplegarlo parecía requerir tener toda la receta en un solo lugar - y si estás usando GitHub Pages con la versión gratuita de GitHub, ese lugar es público. Eso significa que todas mis ideas brillantes de las tres de la mañana y los borradores desordenados sin terminar (y sin gracia) estarían disponibles públicamente - y ninguna conveniencia profunda iba a convencerme de hacer eso.</p><p>Así que mantuve las cosas separadas, con el desorden de Hugo detrás la escena en un repositorio Git local, y la carpeta generada <code>public/</code> empujando a mi repositorio remoto GitHub Pages. Cada vez que quería desplegar mi sitio, tenía que ir a mi portátil y a Hugo para construir mi sitio, luego <code>cd public/ &amp;&amp; git add . &amp;&amp; git commit</code>... etc etc. Y todo estaba bien, excepto por la persistente sensación de que había una mejor manera de hacer esto.</p><p>Hace poco escribí otro artículo sobre el uso de GitHub y Working Copy para hacer cambios en mis repositorios en mi iPad cuando estoy fuera de casa. Me parecía que no podía hacer todo excepto desplegar mi sitio desde mi iPad, así que me propuse cambiar eso.</p><p>Un par de ideas brillantes a las tres de la mañana y un token de acceso revocado (oops), ahora tengo no una, sino dos maneras de desplegar a mi repositorio público de GitHub Pages desde un repositorio de GitHub completamente separado y privado. En este post, te mostraré cómo lograr esto con <a href="https://travis-ci.com/">Travis CI</a> o usando <a href="http://netlify.com/">Netlify</a> y <a href="https://www.gnu.org/software/make/">Make</a>.</p><p>No hay nada de hacking en ello: mi repositorio público de GitHub Pages sigue teniendo el mismo aspecto que cuando lo empujo localmente desde mi terminal. Sólo que ahora puedo aprovechar un par de grandes herramientas de despliegue para que el sitio se actualice cada vez que empujo a mi repositorio privado, ya sea que esté en mi computadora portátil o fuera de casa con mi iPad.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://cdn-media-1.freecodecamp.org/images/BWGFKiySx83s7T-PKOSYkuokL5FLBYVDLZ10" class="kg-image" alt="BWGFKiySx83s7T-PKOSYkuokL5FLBYVDLZ10" width="800" height="600" loading="lazy"><figcaption>#YouDidNotPushFromThere</figcaption></figure><p>Este artículo asume que tienes conocimientos de Git y GitHub Pages. Si no es así, es posible que quieras abrir algunas páginas de mis artículos sobre el <a href="https://victoria.dev/blog/a-remote-sync-solution-for-ios-and-linux-git-and-working-copy/">uso de GitHub y Working Copy</a> y la <a href="https://victoria.dev/verbose/how-i-ditched-wordpress-and-set-up-my-custom-domain-https-site-for-almost-free/">construcción de un sitio con Hugo y GitHub Pages</a> primero.</p><p>¡Vamos a hacerlo!</p><h3 id="despliegue-de-github-pages-de-privado-a-p-blico-con-travis-ci">Despliegue de GitHub Pages de privado a público con Travis CI</h3><p>Travis CI tiene la capacidad incorporada (♪) para desplegar a GitHub Pages después de una compilación exitosa. Estos hacen un trabajo decente en la documentación explicando cómo añadir esta funcionalidad, especialmente si has usado Travis CI antes... lo que yo no he hecho. No te preocupes, he realizado la mayor parte de las cosas por ti.</p><ul><li>Travis CI obtiene todas sus instrucciones de un archivo de configuración en la raíz de tu repositorio llamado <code>.travis.yml</code></li><li>Necesitas proporcionar un token de acceso personal de GitHub como una variable encriptada segura, que puedes generar usando travis en la línea de comandos</li><li>Una vez que tu script termine de hacer con éxito lo que le has dicho que haga (no necesariamente lo que quieres que haga, pero eso es otra entrada del blog), Travis desplegará tu directorio de compilación en un repositorio que puedes especificar con la variable de configuración repo.</li></ul><h4 id="preparaci-n-del-archivo-de-configuraci-n-de-travis">Preparación del archivo de configuración de Travis</h4><p>Cree un nuevo archivo de configuración para Travis con el nombre de archivo <code>.travis.yml</code> (tenga en cuenta el "." inicial). Estos scripts son muy personalizables y me costó encontrar un ejemplo relevante para usar como punto de partida - ¡por suerte, no tienes ese problema!</p><p>Aquí está mi <code>.travis.yml</code> básico::</p><pre><code>git:
 depth: false

env:
 global:
 - HUGO_VERSION="0.54.0"
 matrix:
 - YOUR_ENCRYPTED_VARIABLE

install:
 - wget -q https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_VERSION}_Linux-64bit.tar.gz
 - tar xf hugo_${HUGO_VERSION}_Linux-64bit.tar.gz
 - mv hugo ~/bin/

script:
 - hugo --gc --minify

deploy:
 provider: pages
 skip-cleanup: true
 github-token: $GITHUB_TOKEN
 keep-history: true
 local-dir: public
 repo: gh-username/gh-username.github.io
 target-branch: master
 verbose: true
 on:
 branch: master</code></pre><p>Este script descarga e instala Hugo, construye el sitio con el garbage collection y <a href="https://gohugo.io/commands/hugo/#synopsis">las instrucciones</a> de minimificación, y luego despliega el directorio <code>public/</code> en el <code>repo</code> especificado - en este ejemplo, tu repositorio público de GitHub Pages. Puedes leer sobre cada una de las opciones de configuración de <code>deploy</code> aquí.</p><p><a href="https://docs.travis-ci.com/user/environment-variables#defining-encrypted-variables-in-travisyml">Para añadir el token de acceso personal de GitHub como una variable encriptada</a>, no necesitas editar manualmente tu <code>.travis.yml</code>. Los comandos de la gema <code>travis</code> que aparecen a continuación cifrarán y añadirán la variable por ti cuando los ejecutes en el directorio de tu repositorio.</p><p>Primero, instala <code>travis</code> con <code>sudo gem install travis</code>.</p><p>A continuación, <a href="https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line">genera tu token de acceso personal de GitHub</a>, cópialo (¡sólo aparece una vez!) y ejecuta los siguientes comandos en la raíz de tu repositorio, sustituyendo los asteriscos por tu token:</p><pre><code>travis login --pro --github-token xxxxxxxxxxxxxxxxxxxxxxxxxxx
travis encrypt GITHUB_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxx --add env.matrix</code></pre><p>Tu token encriptado aparece mágicamente en el archivo. Una vez que hayas incluido el archivo <code>.travis.yml</code> en tu repositorio privado de Hugo, Travis CI ejecutará el script y, si la compilación tiene éxito, desplegará tu sitio en tu repositorio público de GitHub Pages. ¡Magia!</p><p>Travis siempre ejecutará una compilación cada vez que empuje a su repositorio privado. Si no quiere desencadenar este comportamiento con un commit en particular, <a href="https://docs.travis-ci.com/user/customizing-the-build/#skipping-a-build">añada el comando <code>skip</code> a su mensaje de commit</a>.</p><p><em>Oye, eso es genial, pero me gusta Netlify.</em></p><p>Está bien.</p><h3 id="desplegar-a-un-repositorio-distinto-con-netlify-y-make">Desplegar a un repositorio distinto con Netlify y Make</h3><p>Podemos hacer que Netlify haga nuestro trabajo utilizando un Makefile, que ejecutaremos con el comando de compilación de Netlify.</p><p>Este es el aspecto de nuestro <code>Makefile</code>:</p><pre><code>SHELL:=/bin/bash
BASEDIR=$(CURDIR)
OUTPUTDIR=public
.PHONY: all
all: clean get_repository build deploy
.PHONY: clean
clean:
@echo "Removing public directory"
rm -rf $(BASEDIR)/$(OUTPUTDIR)
.PHONY: get_repository
get_repository:
@echo "Getting public repository"
git clone https://github.com/gh-username/gh-username.github.io.git public
.PHONY: build
build:
@echo "Generating site"
hugo --gc --minify
.PHONY: deploy
deploy:
@echo "Preparing commit"
@cd $(OUTPUTDIR) \
 &amp;&amp; git config user.email "you@youremail.com" \
 &amp;&amp; git config user.name "Your Name" \
 &amp;&amp; git add . \
 &amp;&amp; git status \
 &amp;&amp; git commit -m "Deploy via Makefile" \
 &amp;&amp; git push -f -q https://$(GITHUB_TOKEN)@github.com/gh-username/gh-username.github.io.git master
@echo "Pushed to remote"</code></pre><p>Para preservar el historial Git de nuestro repositorio separado de GitHub Pages, primero lo clonaremos, construiremos nuestro nuevo sitio Hugo en él, y luego lo empujaremos de nuevo al repositorio de Pages. Este script primero elimina cualquier carpeta <code>public/</code> existente que pueda contener archivos o un historial Git. Luego clona nuestro repositorio de Pages a <code>public/</code>, construye nuestro sitio Hugo (esencialmente actualizando los archivos en <code>public/</code>), y luego se encarga de confirmar el nuevo sitio al repositorio de Pages.</p><p>En la sección de <code>deploy (despliegue)</code>, verás que hay líneas que empiezan por &amp;&amp;. Estos son comandos encadenados. Dado que Make <a href="https://www.gnu.org/software/make/manual/html_node/Execution.html#Execution">invoca un nuevo sub-shell para cada línea</a>, comienza de nuevo con cada nueva línea de nuestro directorio raíz. Para conseguir que nuestro <code>cd</code> se mantenga y evitar la ejecución de nuestros comandos Git en el directorio raíz del proyecto, estamos encadenando los comandos y utilizando el carácter de barra invertida para <a href="http://clarkgrubb.com/makefile-style-guide#breaking-long-lines">romper las líneas</a> largas para la legibilidad.</p><p>Encadenando nuestros comandos, somos capaces de <a href="https://stackoverflow.com/questions/6116548/how-to-tell-git-to-use-the-correct-identity-name-and-email-for-a-given-project">configurar nuestra identidad Git</a>, añadir todos nuestros archivos actualizados, y crear un commit para nuestro repositorio Pages.</p><p>Al igual que con Travis CI, tendremos que pasar un <a href="https://github.com/settings/tokens">token de acceso personal de GitHub</a> para empujar a nuestro repositorio público de GitHub Pages - sólo que Netlify no proporciona una forma directa de cifrar el token en nuestro Makefile.</p><p>En su lugar, utilizaremos las <a href="https://www.netlify.com/docs/continuous-deployment/#build-environment-variables">variables de entorno de construcción de Netlify</a>, que viven de forma segura en la configuración de nuestro sitio en la aplicación Netlify. Podemos entonces llamar a nuestra variable token en el Makefile. Lo usamos para empujar (silenciosamente, para evitar imprimir el token en los registros) a nuestro repositorio de Pages <a href="https://stackoverflow.com/questions/44773415/how-to-push-a-commit-to-github-from-a-circleci-build-using-a-personal-access-tok">pasándolo en la URL remota</a>.</p><p>Para evitar la impresión del token en los registros de Netlify, suprimimos la <a href="https://www.gnu.org/software/make/manual/html_node/Echoing.html#Echoing">impresión de la receta</a> para esa línea con el carácter <code>@</code> inicial.</p><p>Con tu Makefile en la raíz de tu repositorio privado de GitHub, puedes configurar Netlify para que lo ejecute por ti.</p><h4 id="configuraci-n-de-netlify">Configuración de Netlify</h4><p>La configuración de Netlify a través de la <a href="https://app.netlify.com/">interfaz web</a> es sencilla. Una vez que te registres en GitHub, elige el repositorio privado de GitHub donde vive tu sitio Hugo. La siguiente página a la que te lleva Netlify te permite introducir los ajustes de despliegue:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://cdn-media-1.freecodecamp.org/images/w6TKS71OtIM1jgkarOqfuRpAu-WnEQzz4ZoM" class="kg-image" alt="w6TKS71OtIM1jgkarOqfuRpAu-WnEQzz4ZoM" width="800" height="781" loading="lazy"><figcaption>Create a new site page on Netlify</figcaption></figure><p>Puedes especificar el comando de construcción que ejecutará tu Makefile (<code>make all</code> para este ejemplo). La rama a desplegar y el directorio de publicación no importan demasiado en nuestro caso específico, ya que sólo nos preocupa empujar a un repositorio separado. Puede introducir la típica rama <code>master</code> de despliegue y el directorio <code>public</code> de publicación.</p><p>En "Advanced build settings" haz clic en "New variable" para añadir tu token de acceso personal de GitHub como una variable de entorno de construcción. En nuestro ejemplo, el nombre de la variable es <code>GITHUB_TOKEN</code>. Haz clic en "Deploy site" para que se produzca la magia.</p><p>Si ya has configurado previamente tu repositorio con Netlify, encuentra la configuración para el Despliegue Continuo en Settings &gt; Build &amp; deploy.</p><p>Netlify compilará su sitio cada vez que empuje al repositorio privado. Si no quiere que una confirmación en particular active una compilación, <a href="https://docs.netlify.com/site-deploys/manage-deploys/#skip-a-deploy">añada <code>[skip ci]</code> en su mensaje de confirmación Git</a>.</p><h4 id="lo-mismo-pero-diferente">Lo mismo pero diferente</h4><p>Uno de los efectos de usar Netlify de esta manera es que tu sitio se construirá en dos lugares: uno es el repositorio público de GitHub Pages al que el Makefile empuja, y el otro es tu sitio de Netlify que se despliega en su CDN desde tu repositorio privado de GitHub vinculado. Esto último es útil si vas a jugar con <a href="https://www.netlify.com/blog/2016/07/20/introducing-deploy-previews-in-netlify/">Deploy Previews</a> y otras características de Netlify, pero eso está fuera del alcance de este post.</p><h3 id="salir-y-desplegar-sin-miedo">Salir y desplegar sin miedo</h3><p>Espero que el efecto de esta nueva información sea que te sientas más capaz de actualizar tus sitios, estés donde estés. Las posibilidades son infinitas: en casa, en el sofá, con el portátil, en un café con el iPad o en medio de una primera cita con el teléfono. No hay límites.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://cdn-media-1.freecodecamp.org/images/HXM8dI8xKrzd7oA9wLXqjdOSzrWdXKOWmAt8" class="kg-image" alt="HXM8dI8xKrzd7oA9wLXqjdOSzrWdXKOWmAt8" width="800" height="486" loading="lazy"><figcaption>Don’t do stuff on your phone when you’re on a date. Not if you want a second one, anyway.e</figcaption></figure><p>Traducido del artículo <a href="https://www.freecodecamp.org/news/two-ways-to-deploy-a-public-github-pages-site-from-a-private-hugo-repository-627312ec63b9/">Two ways to deploy a public GitHub Pages site from a private Hugo repository</a> de <a href="https://www.freecodecamp.org/news/author/victoria/">Victoria Drake</a></p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Los 10 sitios web de desafío de Programación más populares ]]>
                </title>
                <description>
                    <![CDATA[ Una gran manera de mejorar tus habilidades al aprender a codificar es resolviendo los desafíos de programación. Resolver diferentes tipos de desafíos y problemas puede ayudarte a convertirte en un mejor solucionador de problemas, aprender las particularidades de un lenguaje de programación, prepararte para las entrevistas de trabajo, aprender nuevos ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/los-10-sitios-web-mas-populares-del-retos-de-la-programacion/</link>
                <guid isPermaLink="false">5fdf0edd8c7cd154bb97b846</guid>
                
                    <category>
                        <![CDATA[ Tecnología ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Arturo Maltos ]]>
                </dc:creator>
                <pubDate>Wed, 30 Dec 2020 13:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2020/12/1_vmGJG77e-nLnKlv-tUgf5w.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Una gran manera de mejorar tus habilidades al aprender a codificar es resolviendo los desafíos de programación. Resolver diferentes tipos de desafíos y problemas puede ayudarte a convertirte en un mejor solucionador de problemas, aprender las particularidades de un lenguaje de programación, prepararte para las entrevistas de trabajo, aprender nuevos algoritmos y más.</p><p>A continuación hay una lista de algunos sitios web populares de desafíos de programación con una breve descripción de lo que ofrece cada uno.</p><h3 id="1-topcoder"><strong><a href="https://www.topcoder.com/challenges/?pageIndex=1" rel="noopener">1. TopCoder</a></strong></h3><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/MTryRL4uVza1V87ERWY26L4cFeqD2rgAnW1f" class="kg-image" alt="MTryRL4uVza1V87ERWY26L4cFeqD2rgAnW1f" width="800" height="133" loading="lazy"></figure><p><strong>TopCoder </strong>es una de las plataformas originales de programación competitiva en línea. Proporciona una lista de <a href="https://www.topcoder.com/community/how-it-works/">desafíos algorítmicos</a> que puedes completar por tu cuenta directamente en línea usando tu editor de código. Los partidos más populares de ronda individual se ofrecen un par de veces al mes en un momento específico en el que compiten contra otros para resolver desafíos más rápido con la mejor puntuación.</p><p>Los <a href="https://www.topcoder.com/tc?module=AlgoRank">usuarios mejor clasificados</a> en TopCoder son muy competitivos y participan regularmente en competencias de programación. El usuario mejor clasificado mantiene su propio blog titulado <em>Algorithms weekly by Petr Mitrichev</em> donde escribe sobre competencias de programación, algoritmos, matemáticas y más.</p><h3 id="2-coderbyte"><strong><a href="https://www.coderbyte.com/" rel="noopener">2. Coderbyte</a></strong></h3><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/sP6ow4n2alliqp5L-p5fVRQC9W0GTws1B9Ig" class="kg-image" alt="sP6ow4n2alliqp5L-p5fVRQC9W0GTws1B9Ig" width="800" height="288" loading="lazy"></figure><p><strong>Coderbyte </strong>proporciona más de 200 desafíos de programación que puedes resolver directamente en línea en uno de los 10 lenguajes de programación (<a href="https://www.coderbyte.com/information/First%20Factorial">mira este ejemplo</a>). Los desafíos van desde fáciles (encontrar la palabra más grande en una cadena) a difíciles (imprimir la máxima cardinalidad de un gráfico).</p><p>También proporcionan una colección de <a href="https://www.coderbyte.com/algorithm/tree-traversal-algorithms">tutoriales de algoritmos</a>, vídeos introductorios y <a href="https://www.coderbyte.com/course/google-interview-questions">cursos de preparación para entrevistas</a>. A diferencia de HackerRank y otros sitios web similares, puedes ver las soluciones que otros usuarios proporcionan para cualquier desafío, además de las soluciones <em>oficiales</em> publicadas por Coderbyte.</p><h3 id="3-project-euler"><strong><a href="https://projecteuler.net/" rel="noopener">3. Project Euler</a></strong></h3><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/plhA-E3btLLYRvc4hi3WxmUpAhu3aoef1o0V" class="kg-image" alt="plhA-E3btLLYRvc4hi3WxmUpAhu3aoef1o0V" width="742" height="422" loading="lazy"></figure><p>El Proyecto <strong>Euler </strong>proporciona una gran colección de desafíos en el dominio de la informática y las matemáticas. Los desafíos normalmente implican escribir un pequeño programa para encontrar la solución a una fórmula matemática ingeniosa o ecuación, como encontrar la suma de los dígitos de todos los números que preceden a cada número en una serie.</p><p>No se puede codificar directamente en el sitio web en un editor, por lo que se necesitaría escribir una solución en tu propio equipo y luego proporcionar la solución al sitio web.</p><h3 id="4-hackerrank"><strong><a href="https://www.hackerrank.com/domains" rel="noopener">4. HackerRank</a></strong></h3><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/dOpMtufto0gLZiyDOHZ4BVF58S-z393wRlcu" class="kg-image" alt="dOpMtufto0gLZiyDOHZ4BVF58S-z393wRlcu" width="796" height="416" loading="lazy"></figure><p><strong>HackerRank </strong>proporciona desafíos para varios dominios diferentes como los algoritmos, las matemáticas, SQL, la programación funcional, la IA y más. Puedes resolver todos los desafíos directamente en línea (<a href="https://www.hackerrank.com/challenges/simple-array-sum">mira este ejemplo</a>). Proporcionan una discusión y un tablero de líderes para cada desafío, y la mayoría de los desafíos vienen con un editorial que explica más sobre el desafío y cómo abordarlo para llegar a una solución. Aparte del editorial, no puedes ver actualmente las soluciones de otros usuarios en HackerRank.</p><p>HackerRank también ofrece a los usuarios la posibilidad de <a href="https://www.hackerrank.com/jobs/common-app">enviar solicitudes</a> y postularse a puestos de trabajo resolviendo los desafíos de codificación patrocinados por la empresa.</p><h3 id="5-codechef"><strong><a href="https://www.codechef.com/" rel="noopener">5. CodeChef</a></strong></h3><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/81eunsDYPAqBSC8KwPpBxhPFTHiqGXp70kMa" class="kg-image" alt="81eunsDYPAqBSC8KwPpBxhPFTHiqGXp70kMa" width="800" height="354" loading="lazy"></figure><p><strong>CodeChef </strong>es un <a href="https://en.wikipedia.org/wiki/CodeChef">sitio web de competencias de programación</a> con base en la India que ofrece cientos de desafíos. Puedes escribir código en el <a href="https://www.codechef.com/ide">editor</a> en línea y ver una colección de desafíos que están separados en diferentes categorías dependiendo de tu nivel de habilidad (<a href="https://www.codechef.com/problems/TREEFUN">mira este ejemplo</a>). Tienen una comunidad grande de programadores que contribuyen a los foros, escriben <a href="https://www.codechef.com/wiki/tutorial-paying">tutoriales</a> y participan en los <a href="https://www.codechef.com/contests/">concursos</a> de programación de CodeChef.</p><h3 id="6-exercism-io"><strong>6. <a href="https://exercism.io/">Exercism.io</a></strong></h3><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2019/12/Screen-Shot-2019-12-11-at-8.14.45-AM.png" class="kg-image" alt="Screen-Shot-2019-12-11-at-8.14.45-AM" width="600" height="400" loading="lazy"></figure><p><strong><a href="https://exercism.io/">Exercism</a> </strong>es un sitio web de desafíos de programación que ofrece más de 3100 desafíos que abarcan 52 lenguajes de programación diferentes. Después que elijas un lenguaje que te gustaría dominar, abordaras los desafíos de programación directamente en tu máquina (Exercism tiene su propia interfaz de línea de comandos que puedes descargar de GitHub).</p><p>Sin embargo, es un poco diferente de otros sitios web de desafíos, porque trabajas con un mentor después de completar cada desafío. El mentor revisa tus respuestas en línea y te ayuda a mejorarlas si es necesario. Una vez que tus respuestas han sido aprobadas y enviadas, desbloqueas más desafíos.</p><h3 id="7-codewars"><strong><a href="https://www.codewars.com/" rel="noopener">7. Codewars</a></strong></h3><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/QR7cVhZ7FGb6HjaEDu4N5Co1eTMNTbo1JFzq" class="kg-image" alt="QR7cVhZ7FGb6HjaEDu4N5Co1eTMNTbo1JFzq" width="800" height="406" loading="lazy"></figure><p><strong>Codewars </strong>ofrece una gran colección de desafíos de programación presentados y editados por su propia comunidad. Puedes resolver los desafíos directamente <a href="https://www.codewars.com/kata/trailing-zeros-in-factorials-in-any-given-integer-base/train/javascript">en línea</a> en su editor en uno de varios lenguajes. Puedes ver una discusión para cada desafío así como la solución de los usuarios.</p><h3 id="8-leetcode"><strong><a href="https://leetcode.com/" rel="noopener">8. LeetCode</a></strong></h3><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/RzWKVwPaLY2SRsWFWk93ZNlzcg8V0Yeav5t7" class="kg-image" alt="RzWKVwPaLY2SRsWFWk93ZNlzcg8V0Yeav5t7" width="800" height="363" loading="lazy"></figure><p><strong>LeetCode </strong>es un popular <a href="https://en.wikipedia.org/wiki/Online_judge">juez en línea</a> que proporciona una lista de más de 190 desafíos que pueden ayudarte a prepararte para entrevistas de trabajo técnicas. Puedes resolver los desafíos <a href="https://leetcode.com/problems/merge-k-sorted-lists/">directamente en línea</a> en uno de los 9 lenguajes de programación. No puedes ver las soluciones de otros usuarios, pero se te proporcionan estadísticas de tus propias soluciones, como por ejemplo la rapidez con la que tu código se ejecutó en comparación con el de otros usuarios.</p><p>También tienen una sección de <a href="https://leetcode.com/mockinterview/">entrevistas de prueba</a> que es específicamente para la preparación de entrevistas de trabajo, organizan sus propios <a href="https://leetcode.com/contest/">concursos</a> de programación y tienen una sección de <a href="https://leetcode.com/articles/recursive-approach-segment-trees-range-sum-queries-lazy-propagation/">artículos</a> para ayudarte a entender mejor ciertos problemas.</p><h3 id="9-spoj"><strong><a href="http://www.spoj.com/" rel="noopener">9. SPOJ</a></strong></h3><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/MF3wP06V24C7jal2f8NRvAVhS-tAA2vbNDTL" class="kg-image" alt="MF3wP06V24C7jal2f8NRvAVhS-tAA2vbNDTL" width="800" height="392" loading="lazy"></figure><p><strong>Sphere Online Judge</strong> (SPOJ) es un juez en línea que proporciona más de 20 mil desafíos de programación. Puedes enviar tu código en un <a href="https://www.spoj.com/problems/TETRA/">editor en línea</a>. SPOJ también organiza sus propias <a href="http://www.spoj.com/contests/">competencias</a> y tienen un área para que los usuarios discutan los desafíos de programación. Sin embargo, actualmente no proporcionan ninguna solución <em>oficial</em> o editorial como lo hacen otros sitios web.</p><h3 id="10-codingame"><strong><a href="https://www.codingame.com/" rel="noopener">10. CodinGame</a></strong></h3><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/6l08ZCKDOaoY1TH-PHHHac26McA-c1tIDOPU" class="kg-image" alt="6l08ZCKDOaoY1TH-PHHHac26McA-c1tIDOPU" width="800" height="460" loading="lazy"></figure><p><strong>CodinGame</strong> es un poco diferente de los otros sitios web, porque en lugar de resolver simplemente los desafíos de programación en un editor, en realidad participas en la escritura del código de los juegos que juegas directamente en línea. Puedes ver una lista de los juegos que se ofrecen actualmente <a href="https://www.codingame.com/training">aquí</a> y un ejemplo de uno <a href="https://www.codingame.com/ide/puzzle/there-is-no-spoon-episode-1">aquí</a>. El juego viene con una descripción del problema, casos de prueba y un editor donde puedes escribir tu código en uno de los más de 20 lenguajes de programación.</p><p>Aunque este sitio web es diferente a los típicos sitios web de programación competitiva como los mencionados anteriormente, sigue siendo <a href="https://techcrunch.com/2015/11/11/with-codingame-learning-to-code-becomes-a-game/">popular</a> entre los programadores que disfrutan resolviendo desafíos y participando en competencias.</p><p>Esta lista se basó en pocas cosas: mis propias experiencias en el uso de los sitios web, algunas búsquedas en <a href="https://www.google.com/webhp?sourceid=chrome-instant&amp;rlz=1C5CHFA_enUS689US689&amp;ion=1&amp;espv=2&amp;ie=UTF-8#safe=off&amp;q=coding+challenges">Google</a>, publicaciones de <a href="https://www.quora.com/What-are-good-coding-challenges-websites">Quora</a>, y artículos como <a href="http://infocreeds.com/top-10-coding-challenges-websites/">éste</a> y <a href="https://www.linkedin.com/pulse/most-popular-programming-contest-sites-coding-practice-somenath-panda">éste</a>. También frecuenté algunos foros y subreddits como <a href="https://www.reddit.com/r/learnprogramming/">r/learnprogramming</a> para ver qué sitios web eran usualmente recomendados por los usuarios allí. Descargo (disclaimer): Trabajo en Coderbyte que es uno de los sitios web mencionados anteriormente</p><p>Traducido del artículo de <a href="https://www.freecodecamp.org/news/author/daniel-borowski/"><strong>Daniel Borowski</strong></a> - <strong><a href="https://www.freecodecamp.org/news/the-10-most-popular-coding-challenge-websites-of-2016-fb8a5672d22f/">The 10 Most Popular Coding Challenge Websites</a>.</strong></p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Una solución de sincronización remota para iOS y Linux: Git y Copia de Trabajo ]]>
                </title>
                <description>
                    <![CDATA[ Cómo configurar una solución de sincronización de nubes multiplataforma para trabajar en cualquier lugar usando Git en iOS. Escribí sobre una forma (hackish) de usar una carpeta Dropbox en una máquina de dual-boot de Windows y Linux. Desde entonces ha cobrado sentido utilizar Linux con Ubuntu 18.04 LTS, pero la ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/sincronizacion-remota-para-usar-git-en-ios-y-linux/</link>
                <guid isPermaLink="false">5fdfd5d98c7cd154bb97bb71</guid>
                
                    <category>
                        <![CDATA[ Git ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Arturo Maltos ]]>
                </dc:creator>
                <pubDate>Wed, 30 Dec 2020 13:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2020/12/1_1fs_sMiHpsoYdX1uQMriYg.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <h4 id="c-mo-configurar-una-soluci-n-de-sincronizaci-n-de-nubes-multiplataforma-para-trabajar-en-cualquier-lugar-usando-git-en-ios-">Cómo configurar una solución de sincronización de nubes multiplataforma para trabajar en cualquier lugar usando Git en iOS<strong><strong>.</strong></strong></h4><p>Escribí sobre una forma (hackish) de usar una carpeta Dropbox en una máquina de dual-boot de Windows y Linux. Desde entonces ha cobrado sentido utilizar Linux con Ubuntu 18.04 LTS, pero la configuración del Dropbox parece haber dejado de ser una opción en cualquier caso. Por fortuna, desde entonces he encontrado una forma mucho mejor (mucho menos hacker) de sincronizar remotamente archivos en diferentes sistemas de archivos. Reflejando mi configuración actual, estoy hablando de iOS (iPad y iPhone) y mi máquina Linux.</p><p>El nuevo sistema de sincronización se basa en Git. Es muy personalizable y convenientemente extensible. Más allá de los archivos de texto, puedes sincronizar cualquier otro cosa que Git pueda (que es casi todo - si quieres editar tus archivos <code>.gitignore</code> sobre la marcha no estoy seguro de poder ayudar). Si ya estás familiarizado con Git, la configuración será fácil. Si Git es nuevo para ti, creo que estas herramientas ayudan a que los conceptos de clonación, arrastre (pulling) y empuje (pushing) de Git sean más sencillos de entender.</p><h3 id="componentes">Componente<strong><strong>s</strong></strong></h3><ul><li>La aplicación <a href="https://workingcopy.app/">Working Copy</a> </li><li>La aplicación <a href="https://ia.net/writer">iA Writer</a> </li><li>Repositorios de GitHub</li></ul><h3 id="prep-rate">Prepárate</h3><p>Estos son los pasos a seguir que te explicaré en este artículo.</p><ol><li>Crear su repositorio remoto</li><li>Clonar el repositorio al iPad con Working Copy</li><li>Abrir y editar archivos con iA Writer</li><li>Empujar los cambios de nuevo a remoto</li><li>Obtener los cambios del repositorio en tu computadora</li></ol><p>Este sistema es sencillo de configurar, tanto si eres un genio de la línea de comandos como si sólo estás iniciando en Git. ¡Manos a la obra!</p><h4 id="crear-tu-repositorio-remoto">Crear tu repositorio remoto</h4><p>GitHub ofrece ahora repositorios privados gratuitos para hasta tres colaboradores. Elige " Private" en la página de creación de repositorios de GitHub:</p><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/ItFaqv-hTrHTAZBHmsGEffVasUsDH-RqlyqU" class="kg-image" alt="ItFaqv-hTrHTAZBHmsGEffVasUsDH-RqlyqU" width="425" height="115" loading="lazy"></figure><p>Crea el repositorio. Si quieres, puedes seguir las instrucciones de GitHub para empujar algunos archivos desde tu computadora, o puedes agregar archivos más tarde desde tu iPad.</p><h4 id="clonar-el-repositorio-al-ipad-con-working-copy">Clonar el repositorio al iPad con Working Copy</h4><p>Descarga Working Copy del App Store. Es una de las aplicaciones más caras que he comprado, pero creo que vale la pena. El desarrollador <a href="https://twitter.com/palmin">Anders Borum</a> tiene un historial constante de actualizaciones frecuentes e incorporando las últimas funcionalidades para las aplicaciones de iOS, como arrastrar y soltar en el iPad. Creo que ha puesto un precio justo a su producto a la luz del trabajo que realiza para mantenerlo y mejorarlo.</p><p>En Working Copy, busca el icono del engrane en la esquina superior izquierda y pulsa para abrir Settings.</p><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/VuBXLHI2Tjs-mize4R-94tGwyJrdH4r43ajD" class="kg-image" alt="VuBXLHI2Tjs-mize4R-94tGwyJrdH4r43ajD" width="800" height="596" loading="lazy"></figure><p>Pulsa sobre SSH Keys, y verá esta pantalla:</p><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/knqrfxBovulHFSbzBkwDamluhb4fBoacjSTT" class="kg-image" alt="knqrfxBovulHFSbzBkwDamluhb4fBoacjSTT" width="800" height="428" loading="lazy"></figure><p>Las llaves SSH, o llaves Secure Shell, son credenciales de acceso utilizadas en el <a href="https://en.wikipedia.org/wiki/Secure_Shell">protocolo SSH</a>. La llave es una contraseña que el dispositivo utilizará para conectarse de forma segura con el host del repositorio remoto, GitHub, en nuestro ejemplo. Dado que cualquiera que tenga tus claves SSH puede fingir ser tú y acceder a tus archivos, es importante que no las compartas accidentalmente, como en una captura de pantalla de una entrada de blog.</p><p>Pulsa en la segunda línea en la que aparece "WorkingCopy@iPad-xxxxxxxx" para obtener esta pantalla:</p><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/qeX3GRpPhnr8oA3Em51b1nC6nd8t0897wyOy" class="kg-image" alt="qeX3GRpPhnr8oA3Em51b1nC6nd8t0897wyOy" width="800" height="824" loading="lazy"></figure><p>Working Copy soporta una conexión sencilla tanto a BitBucket como a GitHub. Pulsa "Connect With GitHub" o BitBucket para que aparezcan algunas pantallas de inicio de sesión habituales que autorizarán a Working Copy a acceder a tu(s) cuenta(s).</p><p>Una vez conectado, pulsa el símbolo "+" en la parte superior derecha de la barra lateral para añadir un nuevo repositorio. Elige "Clone repository" para que aparezca esta pantalla:</p><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/sf4D5NkNmRpjHzdccE3Vlgnzmg-ykFU5ToAO" class="kg-image" alt="sf4D5NkNmRpjHzdccE3Vlgnzmg-ykFU5ToAO" width="800" height="269" loading="lazy"></figure><p>Aquí, puedes introducir manualmente el URL remota, o simplemente elige de la lista de repositorios que Working Copy obtiene de tu cuenta conectada. Cuando haces tu elección, la aplicación clona el repositorio en tu iPad y aparecerá en la barra lateral. <code>You're connected!</code></p><h4 id="abrir-y-editar-archivos-con-ia-writer">Abrir y editar archivos con iA Writer</h4><p>Una de las (muchas) razones por las que adoro a iA Writer es su capacidad de seleccionar tu repositorio remoto recién clonado como ubicación de la biblioteca. Para hacer esto en la aplicación iA Writer:</p><ol><li>En la lista principal de la Librería, en la parte superior derecha de la barra lateral, pulsa "Edit".</li><li>pulsa "Add Location..."</li><li>Aparece un popup útil. Pulsa OK.</li><li>En la ubicación de Working Copy, pulsa "Select" en la parte superior derecha, y luego elige la carpeta del repositorio.</li><li>Pulsa" Open", luego "Done".</li></ol><p>Tu repositorio remoto ahora aparece como una ubicación en la barra lateral. Pulsa sobre él para trabajar dentro de este directorio.</p><p>Mientras estés dentro de esta ubicación, los nuevos archivos que crees (tocando el icono del lápiz y el papel en la esquina superior derecha) se guardarán en esta carpeta de forma local. A medida que trabajas, iA Writer guarda automáticamente tu progreso. A continuación, veremos cómo empujar esos archivos y los cambios de vuelta a tu control remoto.</p><h4 id="empujar-los-cambios-de-vuelta-a-remoto">Empujar los cambios de vuelta a remoto</h4><p>Una vez que hayas hecho cambios en tus archivos, abre de nuevo Working Copy. Deberías ver un punto amarillo en tu repositorio modificado.</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://cdn-media-1.freecodecamp.org/images/cbUDJ3vGR0tbBfJVggpkEhKhXHJxzOVwmTrc" class="kg-image" alt="cbUDJ3vGR0tbBfJVggpkEhKhXHJxzOVwmTrc" width="639" height="201" loading="lazy"></figure><p>Pulsa en el nombre de tu repositorio, y luego en "Repository Status and Configuration" en la parte superior de la barra lateral. Tus archivos modificados se mostrarán con puntos amarillos o símbolos verdes "+". Estos significan que has modificado o añadido archivos, respectivamente.</p><p>Working Copy es un agradable cliente iOS Git, y puedes pulsar en tus archivos para ver información adicional, incluyendo una comparación de los cambios ("diff"), así como el estado y el historial de Git. Incluso puedes editar archivos directamente dentro de la aplicación, con resaltado de sintaxis para los muchos lenguajes compatibles. Por ahora, veremos cómo enviar tu trabajo modificado a tu repositorio remoto.</p><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/8Tpm89mGfCKzwYNQV6u6GOYqEyvcF2DrCDs-" class="kg-image" alt="8Tpm89mGfCKzwYNQV6u6GOYqEyvcF2DrCDs-" width="800" height="187" loading="lazy"></figure><p>En la página de "Repository Status and Configuration", verás justo en la parte superior que hay cambios que debes hacer 'commit'. Si eres nuevo en Git, esto es como "guardar tus cambios" en tu historial de Git, algo que normalmente se hace en el comando de terminal <code>git commit</code>. Puedes pensar que esto es como guardar los archivos que queramos enviar al repositorio de GitHub. Pulsa "Commit changes".</p><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/HxVYK8VHBhl2bVQdnlt9sKmwYLBHKDwHDECl" class="kg-image" alt="HxVYK8VHBhl2bVQdnlt9sKmwYLBHKDwHDECl" width="800" height="461" loading="lazy"></figure><p>Introduce tu mensaje de confirmación y selecciona los archivos que quieras añadir. Activa el interruptor "Push" para enviar todo a tu almacén. Luego pulsa "Commit".</p><p>Verás una barra de progreso a medida que se suben los archivos y luego un mensaje de confirmación en la pantalla de estado.</p><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/CuKi9hmxEnUMgcSh3Qc2ZlcjlHCNXSLkd9cW" class="kg-image" alt="CuKi9hmxEnUMgcSh3Qc2ZlcjlHCNXSLkd9cW" width="800" height="107" loading="lazy"></figure><p>¡Felicidades! Tus cambios están ahora disponibles en tu repositorio remoto en GitHub. ¡Has sincronizado con éxito tus archivos de forma remota!</p><h4 id="actualizar-los-cambios-del-repositorio-remoto-en-tu-computadora-">Actualizar los cambios del repositorio remoto en tu computadora.</h4><p>Para completar el círculo de archivos actualizados en tu computadora, los tomas del repositorio remoto de GitHub. Yo prefiero usar la terminal para esto ya que es rápido y fácil, pero GitHub también ofrece un <a href="https://docs.github.com/en/free-pro-team@latest/desktop/installing-and-configuring-github-desktop">cliente gráfico</a> si los comandos de la terminal te parecen un poco complicados por ahora.</p><h4 id="mantener-la-sincron-a">Mantener la sincronía</h4><p>Cuando actualices tu trabajo en tu computadora, usarás Git para enviar tus cambios al repositorio remoto. Para ello, puedes usar el <a href="https://docs.github.com/en/free-pro-team@latest/desktop/installing-and-configuring-github-desktop">cliente gráfico de GitHub</a>.</p><p>Con un simple clic es tan fácil jalar y empujar en tu dispositivo iOS con Working Copy. En la página estado y configuración del repositorio, pulsa en el nombre remoto dentro de "Remotes".</p><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/u5dr0LkZTsYBvy2v4mk3me4RvEzdmtU9VUwA" class="kg-image" alt="u5dr0LkZTsYBvy2v4mk3me4RvEzdmtU9VUwA" width="677" height="163" loading="lazy"></figure><p>Luego pulsa "Synchronize". Working Copy se encargará de los detalles de empujar tus cambios cometidos y/o sacar cualquier nuevo cambio que encuentre del repositorio remoto.</p><h3 id="no-est-mal-verdad">No está mal, ¿verdad?</h3><p>Para un desarrollador de Git y un adicto al trabajo en cualquier lugar como yo, este sistema no podría ser más conveniente. Working Copy realmente hace que estar en sincronía con mis repositorios remotos sea perfecto, y aún más conveniente es tener la capacidad de trabajar con cualquiera de mis repositorios GitHub en marcha.</p><p>Para editar en marcha, aquí hay un consejo útil. Usa <code>.gitignore</code> en tu repositorio de sincronización si no necesitas mover archivos grandes, como imágenes, contigo. Esto evitará que los archivos ignorados sean empujados a GitHub y llevados a tu dispositivo iOS - sólo permanecerán en el disco duro más grande de tu computadora. El archivo <code>.gitignore</code> de uno de mis repositorios de sincronización se ve así:</p><pre><code>*.png
*.jpeg
*.jpg
*.mp4
*.gif</code></pre><p>Esto significa que todos los archivos multimedia se quedan en mi computadora, y puedo llevar el contenido de los archivos de texto a mi iPad desde GitHub para trabajar mientras estoy fuera.</p><p>Recientemente usé este sistema para escribir algo mientras estaba en el atrio de la Galería Nacional de Retratos de Washington DC, que es agradablemente fotogénica.</p><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/Ee1wX2GpB5ipu8cYJdMcrdyi2y2yWZltgeKR" class="kg-image" alt="Ee1wX2GpB5ipu8cYJdMcrdyi2y2yWZltgeKR" width="800" height="246" loading="lazy"></figure><p>Me encantaría saber cómo funciona este sistema para ti y cómo lo usas. Mientras tanto, ¡feliz trabajo!</p><p>Traducido del artículo de <a href="https://www.freecodecamp.org/news/author/victoria/"><strong>Victoria Drake</strong></a> - <a href="https://www.freecodecamp.org/news/a-remote-sync-solution-for-ios-and-linux-git-and-working-copy-1aba488b3547/"><strong>A remote sync solution for iOS and Linux: Git and Working Copy</strong></a></p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ ¿Qué es la Metaprogramación en JavaScript? En español, por favor. ]]>
                </title>
                <description>
                    <![CDATA[ JavaScript tiene muchas características útiles que la mayoría de los desarrolladores conocen. Al mismo tiempo, hay algunas gemas ocultas que pueden resolver problemas realmente desafiantes si eres consciente de ellos. La metaprogramación en JavaScript es un concepto con el que muchos de nosotros puede que no estemos familiarizados. En este ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/que-es-la-metaprogramacion-en-javascript-en-espanol-por-favor/</link>
                <guid isPermaLink="false">5fc0a4c08c7cd154bb972329</guid>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Arturo Maltos ]]>
                </dc:creator>
                <pubDate>Tue, 29 Dec 2020 13:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2020/11/cover_freeCodeCamp.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>JavaScript tiene muchas características útiles que la mayoría de los desarrolladores conocen. Al mismo tiempo, hay algunas gemas ocultas que pueden resolver problemas realmente desafiantes si eres consciente de ellos.</p><p>La metaprogramación en JavaScript es un concepto con el que muchos de nosotros puede que no estemos familiarizados. En este artículo, aprenderemos sobre la metaprogramación y cómo es útil para nosotros.</p><p>Con ES6 (ECMAScript 2015), tenemos soporte para los objetos <code>Reflect</code> y <code>Proxy</code> que nos permiten hacer la Metaprogramación con facilidad. En este artículo, aprenderemos a usarlos con ejemplos.</p><h1 id="-qu-es-la-metaprogramaci-n">¿Qué es la metaprogramación?</h1><p>¡La <strong>metaprogramación</strong> es nada menos que la <em>magia de la programación!</em> ¿Qué tal si escribimos un programa que lea, modifique, analice e incluso genere un programa? ¿No suena eso como algo mágico y poderoso?</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh5.googleusercontent.com/elwIjsjlSeV2c9VBF07ZDHmurJ5_NdeIJ0bDOSNpNai644OhE90gDbGlyOnL4xea5D7S6s9M17V3w4h3zgpr8Q9sn3Ke8BuzPJySs4JI6J0v0jvgX6eSdalnFdULzTWh85IjQMFGjYX-ymmAOA" class="kg-image" alt="elwIjsjlSeV2c9VBF07ZDHmurJ5_NdeIJ0bDOSNpNai644OhE90gDbGlyOnL4xea5D7S6s9M17V3w4h3zgpr8Q9sn3Ke8BuzPJySs4JI6J0v0jvgX6eSdalnFdULzTWh85IjQMFGjYX-ymmAOA" width="450" height="253" loading="lazy"><figcaption>Metaprogramacion es magia</figcaption></figure><p>Así es como describiría la metaprogramación como un desarrollador que la usa todo el tiempo:</p><blockquote>La <strong>metaprogramación</strong> es una técnica de programación en la que los programas informáticos tienen la capacidad de tratar otros programas como sus datos. Esto significa que un programa puede ser diseñado para leer, generar, analizar o transformar otros programas, e incluso modificarse a sí mismo mientras se ejecuta.</blockquote><p>En pocas palabras, <strong>la metaprogramación</strong> implica escribir un código que puede</p><ul><li>Generar el código</li><li>Manipular las construcciones del lenguaje en el tiempo de ejecución. Este fenómeno se conoce como <strong>Metaprogramación Reflexiva</strong> o <strong>Reflexión</strong>.</li></ul><h2 id="-qu-es-la-reflexi-n-en-la-metaprogramaci-n">¿Qué es la reflexión en la metaprogramación?</h2><p>La <strong>reflexión</strong> es una rama de la <strong>metaprogramación</strong>. La reflexión tiene tres sub-ramas:</p><ul><li><strong>Introspección:</strong> El código es capaz de inspeccionarse a sí mismo. Se utiliza para descubrir información de muy bajo nivel sobre el código.</li><li><strong>Auto-modificación: </strong>Como el nombre sugiere, el código es capaz de modificarse a sí mismo.</li><li><strong>Intercesión:</strong> Actuar en nombre de un tercero. Esto se puede lograr envolviendo, atrapando, interceptando.</li></ul><p>ES6 nos proporciona el objeto <strong>Reflect</strong> (alias, Reflect API) para lograr la <strong>Introspección</strong>. El objeto <strong>Proxy</strong> del ES6 nos ayuda con la <strong>Intercesión</strong>. No hablaremos mucho de la <strong>Auto-Modificación</strong> ya que queremos alejarnos de ella tanto como sea posible.</p><p>¡Espera un segundo! Sólo para ser claros, la metaprogramación no fue introducida en el ES6. Más bien, ha estado disponible en el lenguaje desde su inicio. El ES6 sólo lo hizo mucho más fácil de usar.</p><h2 id="la-era-pre-es6-de-la-metaprogramaci-n">La era pre-ES6 de la metaprogramación</h2><p>¿Recuerdas a <code>eval</code>? Echemos un vistazo a cómo se usaba:</p><pre><code class="language-js">const blog = {
    nombre: 'freeCodeCamp'
}
console.log('Antes de eval:', blog);

const clave = 'autor';
const valor = 'Tapas';
testEval = () =&gt; eval(`blog.${clave} = '${valor}'`);

// Llama a la funcion
testEval();

console.log('Despues de la magia de eval:', blog);
</code></pre><p>Como pueden notar, <code>eval</code> ayudó con la generación de código adicional. En este caso, el objeto <code>blog</code> ha sido modificado con una propiedad adicional en el momento de la ejecución.</p><pre><code class="language-shell">Antes de eval: {nombre: freeCodeCamp}
Despues de la magia de eval: {nombre: "freeCodeCamp", autor: "Tapas"}
</code></pre><h3 id="introspecci-n">Introspección</h3><p>Antes de la inclusión del objeto <strong>Reflect en el ES6</strong>, podíamos hacer introspección. Aquí hay un ejemplo de lectura de la estructura del programa:</p><pre><code class="language-js">var usuarios = {
    'Tom': 32,
    'Bill': 50,
    'Sam': 65
};

Object.keys(usuarios).forEach(nombre =&gt; {
    const edad = usuarios[nombre];
    console.log(`El usuario ${nombre} tiene ${edad}!`);
});
</code></pre><p>Aquí estamos leyendo la estructura del objeto usuarios y registrando el valor clave en una sentencia.</p><pre><code class="language-shell">El usuario Tom tiene 32!
El usuario Bill tiene 50!
El userio Sam tiene 65!
</code></pre><h3 id="auto-modificaci-n">Auto-modificación</h3><p>Tomemos un objeto blog que tiene un método para modificarse a sí mismo:</p><pre><code class="language-js">var blog = {
    nombre: 'freeCodeCamp',
    autoModificar: function(clave, valor) {blog[clave] = valor}
}
</code></pre><p>El objeto <code>blog</code> puede modificarse a sí mismo haciendo esto:</p><pre><code class="language-js">blog.autoModificar('autor', 'Tapas');
</code></pre><h3 id="intercesi-n">Intercesión</h3><p>La <code>intercesión</code> se trata de actuar en nombre de algo más cambiando la semántica del lenguaje. El método <code>Object.defineProperty()</code> puede cambiar la semántica de un objeto:</p><pre><code class="language-js">var sol = {};

Object.defineProperty(sol, 'aparece', {
    value: true,
    configurable: false,
    writable: false,
    enumerable: false
});

console.log('el sol aparece', sol.aparece);
sun.rises = false;
console.log('el sol aparece', sol.aparece);
</code></pre><p>Salida,</p><pre><code class="language-shell">el sol aparece true
el sol aparece true
</code></pre><p>Como ves, el objeto <code>sol</code> fue creado como un objeto normal y luego la semántica ha sido cambiada para que no sea escribible.</p><p>Ahora vamos a entender mejor los objetos <code>Reflect</code> y <code>Proxy</code> con sus respectivos usos.</p><h1 id="la-api-de-reflect">La API de Reflect</h1><p>En el ES6, Reflect es un nuevo <code>Global Object</code> (como las matemáticas) que proporciona una serie de funciones de utilidad, muchas de las cuales parecen superponerse con los métodos del ES5 definidos en el <code>global Object</code>.</p><p>Todas estas funciones son funciones de introspección en las que se pueden consultar algunos detalles internos acerca del programa en tiempo de ejecución.</p><p>Aquí está la lista de métodos disponibles del objeto <code>Reflect</code>. Por favor, visite <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect">esta página</a> para ver más detalles de cada uno de estos métodos.</p><pre><code class="language-js">// Métodos del objeto Reflect

Reflect.apply()
Reflect.construct()
Reflect.get()
Reflect.has()
Reflect.ownKeys()
Reflect.set()
Reflect.setPrototypeOf()
Reflect.defineProperty()
Reflect.deleteProperty()
Reflect.getOwnPropertyDescriptor()
Reflect.getPrototypeOf()
Reflect.isExtensible()
</code></pre><p>Pero espera, aquí hay una pregunta: ¿Por qué necesitamos un nuevo objeto de la API cuando estos podrían existir ya o podrían ser añadidos a <code>Object</code> o <code>Function</code>?</p><p>¿Confundido? Vamos a tratar de entender esto</p><h3 id="todo-en-un-mismo-namespace-dominio-">Todo en un mismo namespace (dominio)</h3><p>JavaScript ya tenía soporte para la reflexión de objetos. Pero estas APIs no estaban organizadas bajo un solo namespace. Desde ES6 están ahora dentro de <code>Reflect</code>.</p><p>A diferencia de la mayoría de los objetos globales, Reflect no es un constructor. No se puede utilizar con el operador <code>new</code> o invocar el objeto Reflect como una función. Todas las propiedades y métodos de <code>Reflect</code> son <code>estáticas</code> (static) como el objeto <code>math</code>.</p><h3 id="f-cil-de-usar">Fácil de usar</h3><p>Los métodos de introspección de <code>Object</code> lanzan una excepción cuando no logran completar la operación. Esto es una carga añadida para el usuario (programador) al manejar esa excepción en el código.</p><p>Puede que prefieras manejarlo como un <code>booleano (true|false)</code> en lugar de usar el manejo de excepciones. El objeto Reflect te ayuda a hacerlo así.</p><p>Aquí hay un ejemplo con <code>Object.defineProperty</code>:</p><pre><code class="language-js"> try {
        Object.defineProperty(obj, name, desc);
        // la propiedad se ha definido exitosamente
    } catch (e) {
        // posible fallo y algo tiene que hacer al respecto
    }</code></pre><p>Y con la API de Reflect:</p><pre><code class="language-js">if (Reflect.defineProperty(obj, name, desc)) {
  // existosamente
} else {
 // fallo (y mucho mejor)
}
</code></pre><h3 id="la-impresi-n-de-la-operaci-n-de-first-class">La impresión de la operación de First-Class</h3><p>Podemos encontrar la existencia de una propiedad para un objeto como (<code>prop in obj</code>). Si necesitamos utilizarla varias veces en nuestro código, debemos envolver explícitamente esta operación en una función y pasarla como un valor de primera clase.</p><p>En el ES6, ya los teníamos como parte de la <code>API de Reflect</code> como función de primera clase. Por ejemplo, Reflect.has(obj, prop) es el equivalente funcional de (prop in obj).</p><p>Veamos otro ejemplo: Borrar una propiedad del objeto.</p><pre><code class="language-js">const obj = { bar: true, baz: false};

// borrar object[key]
function borrarPropiedad(objeto, propiedad) {
    delete objeto[propiedad];
}
borrarPropiedad(obj, 'bar');
</code></pre><p>Con la API de Reflect:</p><pre><code class="language-js">// Con la Api de Reflect
Reflect.deleteProperty(obj, 'bar');
</code></pre><h3 id="una-forma-m-s-fiable-de-utilizar-el-m-todo-apply-">Una forma más fiable de utilizar el método apply()</h3><p>En ES5, podemos usar el método <code>apply()</code> para llamar a una función con un valor dado y pasarle un arreglo como argumento.</p><pre><code class="language-js">Function.prototype.apply.call(func, obj, arr);
// o...
func.apply(obj, arr);
</code></pre><p>Esto es menos fiable porque func podría ser un objeto que habría definido su propio método apply.</p><p>En el ES6 tenemos una forma más fiable y elegante de resolver esto:</p><pre><code class="language-js">Reflect.apply(func, obj, arr);
</code></pre><p>En este caso, obtendremos un <code>TypeError</code> si <code>func</code> no se puede invocar. Además, <code>Reflect.apply()</code> es menos expresivo y más fácil de entender.</p><h3 id="ayudando-a-otros-tipos-de-reflection">Ayudando a otros tipos de reflection</h3><p>Veremos lo que esto significa en un momento cuando aprendamos sobre el objeto <code>Proxy</code>. Los métodos de la API de Reflect pueden utilizarse con Proxy en muchos casos de uso.</p><h1 id="el-objeto-proxy">El Objeto Proxy</h1><p>El objeto <code>Proxy</code> de ES6 ayuda en la <code>intercession</code>.</p><p>El objeto <code>proxy</code> define comportamientos personalizados para operaciones fundamentales (por ejemplo, búsqueda de propiedades, asignación, enumeración, invocación de funciones, etc.).</p><p>Aquí hay algunos términos útiles que debes recordar y usar:</p><ul><li>El <code>objetivo (target)</code>: Un objeto que el proxy virtualiza.</li><li>El <code>manejador (handler)</code>: Un objeto marcador de posición que contiene trampas (traps).</li><li>La <code>trampa (trap)</code>: Métodos que permiten el acceso de la propiedad al objeto objetivo.</li></ul><p>Está perfectamente bien si aún no lo entiendes por la descripción anterior. Lo entenderemos a través del código y los ejemplos enseguida.</p><p>La sintaxis para crear un objeto Proxy es la siguiente:</p><pre><code class="language-js">let proxy = new Proxy(target, handler);
</code></pre><p>Existen muchas proxy traps (funciones de manejo) disponibles para acceder y personalizar un objeto objetivo. Aquí está la lista de ellas. Puedes leer una descripción más detallada de las traps aquí.</p><pre><code class="language-js">handler.apply()
handler.construct()
handler.get()
handler.has()
handler.ownKeys()
handler.set()
handler.setPrototypeOf()
handler.getPrototypeOf()
handler.defineProperty()
handler.deleteProperty()
handler.getOwnPropertyDescriptor()
handler.preventExtensions()
handler.isExtensible()
</code></pre><p>Observe que cada una de las traps tiene un mapeo con los métodos del objeto <code>Reflect</code>. Esto significa que puedes usar <code>Reflect</code> y <code>Proxy</code> juntos en muchos casos de uso.</p><h2 id="c-mo-obtener-los-valores-de-propiedad-de-los-objetos-no-disponibles">Cómo obtener los valores de propiedad de los objetos no disponibles</h2><p>Veamos un ejemplo de un objeto <code>empleado</code> e intentemos imprimir algunas de sus propiedades:</p><pre><code class="language-js">const empleado = {
    nombre: 'Tapas',
    apellido: 'Adhikary'
};

console.log(empleado.nombre);
console.log(empleado.apellido);
console.log(empleado.org);
console.log(empleado.nombreCompleto);
</code></pre><p>El resultado esperado es el siguiente:</p><pre><code class="language-shell">Tapas
Adhikary
undefined
undefined
</code></pre><p>Ahora usemos el objeto Proxy para añadir un comportamiento personalizado al objeto <code>empleado</code>.</p><h3 id="paso-1-crear-un-handler-que-use-una-trap-get">Paso 1: Crear un handler que use una trap get</h3><p>Usaremos una trap llamada <code>get</code> que nos permite obtener el valor de una propiedad. Aquí está nuestro handler:</p><pre><code class="language-js">let handler = {
    get: function(objetivo, propiedad) {        

        if(propiedad === 'nombreCompleto' ) {
            return `${objetivo.nombre} ${objetivo.apellido}`;
        }

        return propiedad in objetivo ?
            objetivo[propiedad] :
                `No existe la propiedad, '${propiedad}'!`

    }
};</code></pre><p>El manejador anterior ayuda a crear el valor de la propiedad <code>nombreCompleto</code>. También añade un mejor mensaje de error cuando falta una propiedad del objeto.</p><h3 id="paso-2-crear-un-objeto-proxy">Paso 2: Crear un Objeto Proxy</h3><p>Así como tenemos el objeto <code>empleado</code> objetivo y el handler, podremos crear un objeto Proxy como este:</p><pre><code class="language-js">let proxy = new Proxy(empleado, handler);
</code></pre><h3 id="paso-3-acceder-a-las-propiedades-del-objeto-proxy">Paso 3: Acceder a las propiedades del objeto Proxy</h3><p>Ahora podemos acceder a las propiedades del objeto empleado usando el objeto proxy, así:</p><pre><code class="language-js">console.log(proxy.nombre);
console.log(proxy.apellido);
console.log(proxy.org);
console.log(proxy.nombreCompleto);
</code></pre><p>La salida será:</p><pre><code class="language-shell">Tapas
Adhikary
No existe la propiedad, 'org'!
Tapas Adhikary
</code></pre><p>¡Noten cómo hemos cambiado mágicamente las cosas para el objeto <code>empleado</code>!</p><h2 id="proxy-para-la-validaci-n-de-los-valores">Proxy para la validación de los valores</h2><p>Vamos a crear un objeto proxy para validar un valor entero.</p><h3 id="paso-1-crear-un-handler-que-utilice-una-trap-set">Paso 1: Crear un handler que utilice una trap set</h3><p>El handler se ve así:</p><pre><code class="language-js">const validador = {
    set: function(objeto, propiedad, valor) {
        if (propiedad === 'edad') {
            if(!Number.isInteger(valor)) {
                throw new TypeError('la edad debe ser un valor entero!');
            }
            if(valor &lt; 0) {
                throw new TypeError('Esto no tiene sentido, la edad no puede ser negativa!');
            }
        }
    }
};
</code></pre><h3 id="paso-2-crear-un-objeto-proxy-1">Paso 2: Crear un Objeto Proxy</h3><p>Crear un objeto proxy como este:</p><pre><code class="language-js">let proxy = new Proxy(empleado, validador);
</code></pre><h3 id="paso-3-asignar-un-valor-no-entero-a-una-propiedad-digamos-la-edad">Paso 3: Asignar un valor no entero a una propiedad, digamos, la edad</h3><p>Intenta hacer esto:</p><pre><code class="language-js">proxy.edad = 'Estoy probando un error garrafal'; // valor tipo string
</code></pre><p>La salida será así:</p><pre><code class="language-shell">TypeError: la edad debe ser un valor entero!
    at Object.set (E:\Projects\KOSS\metaprogramming\js-mtprog\proxy\userSetProxy.js:28:23)
    at Object.&lt;anonymous&gt; (E:\Projects\KOSS\metaprogramming\js-mtprog\proxy\userSetProxy.js:40:7)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Function.Module.runMain (module.js:693:10)
    at startup (bootstrap_node.js:188:16)
    at bootstrap_node.js:609:3
</code></pre><p>Del mismo modo, al intentar hacer esto:</p><pre><code class="language-js">p.edad = -1; // resultará en un error
</code></pre><h2 id="c-mo-usar-proxy-y-reflect-en-conjunto">Cómo usar Proxy y Reflect en conjunto</h2><p>Este es un ejemplo de un handler en el que utilizamos métodos de la API de Reflect:</p><pre><code class="language-js">const empleado = {
    nombre: 'Tapas',
    apellido: 'Adhikary'
};

let logHandler = {
    get: function(objetivo, propiedad) {        
        console.log("Log: ", objetivo[propiedad]);
        
        // // Usar el método get del objeto Reflect
        return Reflect.get(objetivo, propiedad);
    }
};

let func = () =&gt; {
    let p = new Proxy(empleado, logHandler);
    p.nombre;
    p.apellido;
};

func();</code></pre><h2 id="unos-pocos-casos-m-s-de-uso-de-proxy">Unos pocos casos más de uso de Proxy</h2><p>Hay varios otros casos de uso en los que se puede utilizar este concepto.</p><ul><li>Para proteger el <em>ID</em> de un objeto de la eliminación &nbsp;(trap: borrarPropiedad)</li><li>Para rastrear los accesos a la propiedad (trap: get, set)</li><li>Para data vinculación (binding) (trap: set)</li><li>Con referencias revocables</li><li>Para manipular el comportamiento del operador <code>in</code></li></ul><p>... y muchos más.</p><h1 id="dificultades-de-la-metaprogramaci-n">Dificultades de la metaprogramación</h1><p>Si bien el concepto de <code>Metaprogramación</code> nos da mucho poder, la magia de la misma puede ir por el camino equivocado a veces.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2020/11/black_magic.gif" class="kg-image" alt="black_magic" width="600" height="400" loading="lazy"><figcaption>Be careful of the other side of the magic</figcaption></figure><p>Ten cuidado de:</p><ul><li>¡Demasiada magia! Asegúrate de entenderla antes de aplicarla.</li><li>Posibles impactos de rendimiento cuando estás haciendo posible lo imposible</li><li>Podría ser visto como una contra-depuración</li></ul><h1 id="en-resumen">En resumen</h1><p>Para resumir,</p><ul><li><code>Reflect</code> y <code>Proxy</code> son grandes incorporaciones en JavaScript para ayudar con la metaprogramación.</li><li>Muchas situaciones complejas pueden ser manejadas con este tipo de ayuda.</li><li>También hay que tener en cuenta los inconvenientes.</li><li>Los Symbols (Símbolos) de ES6 también pueden ser usados con sus clases y objetos existentes para cambiar su comportamiento.</li></ul><p>Espero que este artículo le haya parecido útil. Todo el código fuente utilizado en este artículo se puede encontrar en <a href="https://github.com/atapas/js-mtprog">mi repositorio GitHub</a>.</p><p>Por favor, comparta el artículo para que otros puedan leerlo también. Puedes escribirme en Twitter (<a href="https://twitter.com/tapasadhikary">@tapasadhikary</a>) con comentarios, o siéntete libre de seguirme.</p><p>Traducido del artículo de <a href="https://www.freecodecamp.org/news/author/daniel-borowski/"><strong>Daniel Borowski</strong></a> - <a href="https://www.freecodecamp.org/news/the-10-most-popular-coding-challenge-websites-of-2016-fb8a5672d22f/"><strong>The 10 Most Popular Coding Challenge Websites</strong></a>.</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Herramientas populares para el desarrollo del front end que deberías conocer ]]>
                </title>
                <description>
                    <![CDATA[ Si estás empezando a usar JavaScript, el número de herramientas y tecnologías de las que oirás hablar puede ser abrumador. Y puede que te resulte difícil decidir qué herramientas necesitas realmente. O tal vez estés familiarizado con las herramientas, pero no has pensado mucho en los problemas que resuelven y ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/herramientas-populares-para-el-desarrollo-del-front-end/</link>
                <guid isPermaLink="false">5fc0983b8c7cd154bb972278</guid>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Arturo Maltos ]]>
                </dc:creator>
                <pubDate>Wed, 02 Dec 2020 13:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2020/11/frontend-dev-tools.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Si estás empezando a usar JavaScript, el número de herramientas y tecnologías de las que oirás hablar puede ser abrumador. Y puede que te resulte difícil decidir qué herramientas necesitas realmente.</p><p>O tal vez estés familiarizado con las herramientas, pero no has pensado mucho en los problemas que resuelven y lo miserable que sería tu vida sin su ayuda.</p><p>Yo creo que es importante que los Ingenieros y Desarrolladores de Software entiendan el propósito de las herramientas que usamos todos los días.</p><p>Por eso, en este artículo, examino a NPM, Babel, Webpack, ESLint, y CircleCI e intento aclarar los problemas que resuelven y cómo los resuelven.</p><h2 id="npm"><strong>NPM</strong></h2><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/11/image-1.png" class="kg-image" alt="image-1" width="600" height="400" loading="lazy"></figure><p>NPM es el administrador de paquetes por defecto para el desarrollo de JavaScript. Te ayuda a encontrar e instalar paquetes (programas) que puedes usar en tus programas.</p><p>Puedes añadir npm a un proyecto simplemente usando el comando <code>npm init</code>. Cuando ejecutas este comando crea el archivo "package.json" en el directorio actual. Este es el archivo donde se listan sus dependencias, y npm lo ve como la tarjeta de identificación del proyecto</p><p>Puedes añadir una dependencia con el comando <code>npm install (nombre_de_paquete)</code></p><p>Cuando ejecutas este comando, npm va al registro remoto y comprueba si hay un paquete identificado con este nombre de paquete. Si lo encuentra, se añade una nueva entrada de dependencia a su <strong>package.json</strong> y el paquete, con sus dependencias internas, se descarga del registro.</p><p>Puede encontrar los paquetes o dependencias descargados en la carpeta "<strong>node_modules</strong>". Sólo ten en cuenta que normalmente es bastante grande, así que asegúrate de añadirlo a <strong>.gitignore</strong>.</p><figure class="kg-card kg-image-card"><img src="https://i2.wp.com/blog.logrocket.com/wp-content/uploads/2020/06/node-modules-meme.jpeg?resize=730%2C525&amp;ssl=1" class="kg-image" alt="How to keep your JavaScript libraries up to date - LogRocket Blog" width="730" height="525" loading="lazy"></figure><p>NPM no sólo facilita el proceso de búsqueda y descarga de paquetes, sino que también facilita el trabajo en colaboración en un proyecto.</p><p>Sin NPM sería difícil manejar las dependencias externas. Tendrías que descargar a mano las versiones correctas de cada dependencia cuando te unes a un proyecto existente. Y eso sería una verdadera molestia.</p><p>Con la ayuda de npm, puedes simplemente ejecutar <code>npm install</code> e instalará todas las dependencias externas por ti. Luego puedes volver a ejecutarlo cada vez que alguien de tu equipo añada una nueva dependencia.</p><h2 id="babel"><strong>Babel</strong></h2><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/11/image-2.png" class="kg-image" alt="image-2" width="600" height="400" loading="lazy"></figure><p>Babel es un compilador o transpilador de JavaScript que traduce el código ECMAScript 2015+ a un código que puede ser entendido por los motores JavaScript más antiguos.</p><p>Babel es el compilador de Javascript más popular, y los frameworks como Vue y React lo usan por defecto. Dicho esto, los conceptos de los que hablaremos aquí no sólo están relacionados con Babel y se aplicarán a cualquier compilador de JavaScript.</p><h3 id="-por-qu-necesitas-un-compilador">¿Por qué necesitas un compilador?</h3><p>"¿Por qué necesitamos un compilador, acaso JavaScript no es un lenguaje interpretado?" Puedes plantearte si estás familiarizado con los conceptos de los lenguajes compilados e interpretados.</p><p>Es cierto que solemos llamar a algo "compilador" si traduce nuestro código humano a un binario ejecutable que pueda ser entendido por la CPU. Pero ese no es el caso aquí.</p><p>El término transpilador puede ser más apropiado ya que es un subconjunto de un compilador: Los transpiladores son compiladores que traducen el código de un lenguaje de programación a otro lenguaje (en este ejemplo, del JS moderno a una versión más antigua).</p><p>JavaScript es el lenguaje de los navegadores. Pero hay un problema con los navegadores: La compatibilidad recíproca. Las herramientas de JavaScript y el lenguaje en sí mismo evolucionan rápidamente y muchos navegadores no logran alcanzar ese ritmo. Esto resulta en problemas de compatibilidad.</p><p>Probablemente quieras escribir código en las versiones más recientes de JavaScript para poder usar sus nuevas características. Pero si el navegador en el que está ejecutando su código no ha implementado algunas de las nuevas características en su motor de JavaScript, el código no se ejecutará correctamente en ese navegador.</p><p>Este es un problema complejo porque cada navegador implementa las características a una velocidad diferente. E incluso si implementan esas nuevas características, siempre habrá gente que use una versión más antigua de su navegador.</p><p>¿Y qué pasa si deseas poder usar las funciones recientes pero también quieres que tus usuarios vean esas páginas sin problemas?</p><p>Antes de Babel, usábamos polyfills para ejecutar versiones antiguas de cierto código si el navegador no soportaba las características modernas. Y cuando se usa Babel, se usan polyfills entre bambalinas y no se requiere hacer nada.</p><h3 id="-c-mo-funcionan-los-transpilers-compiladores">¿Cómo funcionan los transpilers/compiladores?</h3><p>Babel trabaja de manera similar a otros compiladores. Tiene etapas de análisis, transformación y generación de código.</p><p>No vamos a profundizar aquí en cómo funciona, ya que los compiladores son cosas complicadas. Pero para entender los fundamentos de cómo funcionan los compiladores, puedes ver el proyecto <a href="https://github.com/jamiebuilds/the-super-tiny-compiler">the-super-tiny-compiler</a>. También se menciona en la documentación oficial de Babel como útil para entender cómo funciona Babel.</p><p>Normalmente podemos salirnos con la nuestra conociendo los plugins y presets de Babel. Los plugins son los fragmentos que Babel utiliza entre bambalinas para compilar su código en versiones antiguas de JavaScript. Puedes pensar en cada característica moderna como un plugin. Puedes ir a <a href="https://babeljs.io/docs/en/plugins/">este enlace</a> para ver la lista completa de plugins.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://erinc.io/wp-content/uploads/2020/10/image.png" class="kg-image" alt="image" width="600" height="400" loading="lazy"><figcaption>List of plugins for ES5</figcaption></figure><p>Los presets son colecciones de plugins. Si quieres usar Babel para un proyecto de React puedes usar el preset <strong>@babel/preset-react</strong> &nbsp;que contiene los plugins necesarios.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://erinc.io/wp-content/uploads/2020/10/image-1.png" class="kg-image" alt="image-1" width="600" height="400" loading="lazy"><figcaption>React Preset Plugins</figcaption></figure><p>Puedes añadir plugins editando el archivo de configuración de Babel.</p><h3 id="-necesitas-babel-para-tu-aplicaci-n-react">¿Necesitas Babel para tu aplicación React?</h3><p>Para React, necesitas un compilador porque el código de React generalmente usa JSX y JSX necesita ser compilado. Además la biblioteca está construida sobre el concepto de usar la sintaxis ES6.</p><p>Afortunadamente, cuando se crea un proyecto con create-react-app, viene con Babel ya configurado y normalmente no es necesario modificar la configuración.</p><h3 id="ejemplos-de-un-compilador-en-acci-n">Ejemplos de un compilador en acción</h3><p>El sitio web de Babel tiene un compilador en línea y es realmente útil para entender cómo funciona. Sólo tienes que conectar un poco de código y analizar la salida.</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://erinc.io/wp-content/uploads/2020/10/image-4.png" class="kg-image" alt="image-4" width="600" height="400" loading="lazy"></figure><figure class="kg-card kg-image-card kg-width-wide"><img src="https://erinc.io/wp-content/uploads/2020/10/image-5.png" class="kg-image" alt="image-5" width="600" height="400" loading="lazy"></figure><h2 id="webpack"><strong>Webpack</strong></h2><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/11/image.png" class="kg-image" alt="image" width="600" height="400" loading="lazy"></figure><p>Webpack es un paquete de módulos estáticos. Cuando se crea un nuevo proyecto. La mayoría de los frameworks y bibliotecas de JavaScript lo usan hoy en día.</p><p>Si la frase "static module bundler" suena confusa, sigue leyendo porque tengo algunos grandes ejemplos para ayudarte a entender.</p><h3 id="-por-qu-necesitas-un-empaquetador">¿Por qué necesitas un empaquetador?</h3><p>En las aplicaciones web vas a tener un montón de archivos. Esto es especialmente el caso de las aplicaciones de una sola página (React, Vue, Angular), cada una con sus propias dependencias.</p><p>Lo que quiero decir con una dependencia es una declaración de un import - si el archivo A necesita importar el archivo B para funcionar correctamente, entonces decimos que A depende de B.</p><p>En los proyectos pequeños, se pueden manejar las dependencias del módulo con etiquetas <code>&lt;script&gt;</code>. Pero cuando el proyecto se hace más grande, las dependencias se vuelven rápidamente difíciles de manejar.</p><p>Tal vez, lo más importante, es que al dividir el código en varios archivos, tu sitio web se carga más lentamente. Esto se debe a que el navegador necesita enviar más solicitudes en comparación con un archivo grande, y tu sitio web comienza a consumir un montón de ancho de banda, debido a los encabezados HTTP.</p><p>Nosotros, como desarrolladores, queremos que nuestro código sea modular. Lo dividimos en múltiples archivos porque no queremos trabajar con un archivo con miles de líneas. Aún así, también queremos que nuestros sitios web sean eficientes, que usen menos ancho de banda y que carguen rápido.</p><p>Así que ahora, veremos cómo Webpack resuelve este problema.</p><h3 id="c-mo-funciona-webpack">Cómo funciona Webpack</h3><p>Cuando hablábamos de Babel, mencionamos que el código JavaScript debe ser transpilado antes de ser implementado.</p><p>Pero compilar con Babel no es la única operación que necesita antes de implementar su proyecto.</p><p>Usualmente necesitas realizar el proceso de uglify, transpilarlo, compilar el SASS o SCSS a CSS si estás usando algún preprocesador, compilar el TypeScript si lo estás usando... y como puedes ver, esta lista puede hacerse larga fácilmente.</p><p>No querrás lidiar con todos esos comandos y operaciones antes de cada despliegue. Sería genial si hubiera una herramienta que hiciera todo eso por ti en el orden y la forma correcta.</p><p>La buena noticia es que la existe Webpack.</p><p>Webpack proporciona características como un servidor local con recarga en caliente (lo llaman reemplazo de módulo en caliente) para mejorar tu experiencia durante el desarrollo.</p><p>Entonces, ¿qué es la recarga en caliente? Significa que cada vez que guardas tu código, es compilado y desplegado en el servidor local HTTP que se ejecuta en tu máquina. Y cada vez que un archivo cambia, envía un mensaje a tu navegador para que ni siquiera tengas que refrescar la página.</p><p>Si alguna vez has usado <code>npm run serve</code>, <code>npm start</code> o <code>npm run dev</code>, esos comandos también inician el servidor dev de Webpack en segundo plano.</p><p>Webpack comienza desde el punto de entrada de su proyecto (índice) y genera el Árbol de Sintaxis Abstracta del archivo. Puedes pensar en ello como un análisis del código. Esta operación también se hace en los compiladores, que luego buscan declaraciones de importación recursivamente para generar un gráfico de dependencias.</p><p>Luego convierte los archivos en IIFEs para modularlos (recuerde, poner código dentro de una función restringe el <a href="https://apuntes.de/nodejs/scope/">alcance</a>). Al hacer esto, modularizan los archivos y se aseguran de que las variables y funciones no sean accesibles a otros archivos.</p><p>Sin esta operación, sería como copiar y pegar el código del archivo importado y ese archivo tendría el mismo alcance.</p><p>Webpack hace muchas otras cosas avanzadas entre bambalinas, pero esto es suficiente para entender lo básico.</p><h2 id="bonus-eslint"><strong>Bonus – ESLint</strong></h2><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/11/image-3.png" class="kg-image" alt="image-3" width="600" height="400" loading="lazy"></figure><p>La calidad del código es importante y ayuda a mantener sus proyectos mantenibles y fácilmente ampliables. Mientras que la mayoría de nosotros los desarrolladores reconocemos la importancia de un código limpio, a veces tendemos a ignorar las consecuencias a largo plazo bajo la presión de los plazos de entrega.</p><p>Muchas compañías deciden sobre los estándares de codificación y alientan a los desarrolladores a obedecer dichos estándares. Pero, ¿Cómo puede asegurarse de que su código cumple con los estándares?</p><p>Bueno, puedes usar una herramienta como ESLint para hacer cumplir las normas en el código. Por ejemplo, puedes crear una regla para hacer cumplir o no permitir el uso de punto y coma en tu código JavaScript. Si rompes una regla, ESLint muestra un error y el código ni siquiera se compila, por lo que no es posible ignorarlo a menos que deshabilites la regla.</p><p>Los linters pueden utilizarse para hacer cumplir las normas mediante la redacción de reglas personalizadas. Pero también se pueden usar las configuraciones de ESLint pre-hechas por las grandes compañías de tecnología para ayudar a los desarrolladores a adquirir el hábito de escribir código limpio.</p><p>Puedes echar un vistazo a la configuración de <a href="https://github.com/google/eslint-config-google">ESLint de Google aquí</a> - es la que prefiero.</p><p>ESLint te ayuda a acostumbrarte a las mejores prácticas, pero ese no es su único beneficio. ESLint también te advierte sobre posibles errores en tu código para que puedas evitar errores comunes.</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://erinc.io/wp-content/uploads/2020/11/image-1024x717.png" class="kg-image" alt="image-1024x717" width="600" height="400" loading="lazy"></figure><h2 id="bonus-ci-cd-circleci-"><strong>Bonus – CI/CD (CircleCI)</strong></h2><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/11/image-4.png" class="kg-image" alt="image-4" width="600" height="400" loading="lazy"></figure><p>La integración/desarrollo continuo ha ganado mucha popularidad en los últimos años ya que muchas empresas han adoptado los principios de Agile.</p><p>Herramientas como Jenkins y CircleCI le permiten automatizar el despliegue y las pruebas de su software para que pueda desplegar más a menudo y de forma confiable sin tener que pasar por procesos de construcción difíciles y propensos a errores por sí mismos.</p><p>Menciono CircleCI como el producto aquí porque es gratuito y se usa frecuentemente en proyectos de JavaScript. También es bastante fácil de usar.</p><p>Repasemos un ejemplo: Digamos que tienes un servidor de despliegue/QA y tu repositorio Git. Quieres desplegar tus cambios en tu servidor de despliegue/QA, así que aquí tienes el siguiente ejemplo:</p><ol><li>Empuja los cambios a Git</li><li>Conectate al servidor</li><li>Crear un contenedor Docker y ejecutarlo</li><li>Descarga los cambios en el servidor, descarga todas las dependencias (npm install)</li><li>Ejecuta las pruebas para asegurarte de que no hay nada roto</li><li>Utiliza una herramienta como ESLint/Sonar para asegurar la calidad del código</li><li>Fusiona el código si todo está bien</li></ol><p>Con la ayuda de CircleCI, puedes hacer automáticamente todas estas operaciones. Puedes configurarlo para hacer todas las operaciones anteriores cada vez que pulses un cambio en Git. Rechazará la solicitud si algo sale mal, por ejemplo, si falla una prueba.</p><p>No entraré en detalles sobre cómo configurar el CircleCI porque este artículo trata más sobre el "¿Por qué?" de cada herramienta. Pero si estás interesado en aprender más y verlo en acción, puedes ver <a href="https://www.youtube.com/watch?v=CB7vnoXI0pE&amp;ab_channel=TheCodingTrain">esta serie de tutoriales</a>.</p><h2 id="conclusi-n">Conclusión</h2><p>El mundo de JavaScript está evolucionando rápidamente y nuevas herramientas están ganando popularidad cada año.</p><p>Es fácil reaccionar a este cambio con sólo aprender a usar la herramienta - a menudo estamos demasiado ocupados para tomarnos nuestro tiempo y pensar en la razón por la que esa herramienta se hizo popular o qué problema resuelve.</p><p>En este artículo, elegí las herramientas que creo que son más populares y compartí mis opiniones sobre su relevancia. También quise hacerles reflexionar sobre los problemas que resuelven, más que sobre los detalles de cómo usarlas.</p><p>Si te ha gustado el artículo, puedes consultar y suscribirte a <a href="https://erinc.io/">mi blog</a>, donde intento escribir con frecuencia. También, hazme saber lo que piensas comentando para que podamos hacer una lluvia de ideas o puedes decirme qué otras herramientas te gusta usar :)</p><p>Traducido del artículo de <strong><strong><a href="https://www.freecodecamp.org/news/author/erinc/">Yiğit Kemal Erinç</a></strong></strong> - <strong><strong><a href="https://www.freecodecamp.org/news/front-end-development-tools-you-should-know/">Popular Front End Development Tools You Should Know</a></strong></strong>.</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ El Operador del Módulo Python - ¿Qué Significa el Símbolo % en Python? (Resuelto) ]]>
                </title>
                <description>
                    <![CDATA[ Cuando veas el símbolo %, puedes pensar en "por ciento". Pero en Python, así como en la mayoría de los otros lenguajes de programación, significa algo diferente. El símbolo % en Python se llama el Operador de Módulo. Retorna el remanente de la división del operando izquierdo por el operando ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/el-operador-del-modulo-python-que-significa-el-simbolo-de-porcentaje-en-python-resuelto/</link>
                <guid isPermaLink="false">5fc08c1a8c7cd154bb9721ed</guid>
                
                    <category>
                        <![CDATA[ Python ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Arturo Maltos ]]>
                </dc:creator>
                <pubDate>Tue, 01 Dec 2020 13:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2020/11/python-modulo-image.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Cuando veas el símbolo %, puedes pensar en "por ciento". Pero en Python, así como en la mayoría de los otros lenguajes de programación, significa algo diferente.</p><p>El símbolo <code>%</code> en Python se llama el Operador de Módulo. Retorna el remanente de la división del operando izquierdo por el operando derecho. Se usa para obtener el residuo de un problema de división.</p><p>El operador de modulo es considerado una operación aritmética al igual que los operadores <code>+</code>, <code>-</code>, <code>/</code>, <code>*</code>, <code>**</code>, <code>//</code>.</p><p>La sintaxis básica es:</p><pre><code class="language-python">a % b</code></pre><p>En el ejemplo anterior, <code>a</code> se divide por <code>b</code>, y el residuo se devuelve. Veamos un ejemplo con números.</p><pre><code class="language-python">7 % 2</code></pre><p>El resultado del ejemplo anterior es <strong>uno</strong>. Dos entre siete (tres veces) y sobra <strong>uno</strong>.</p><p>El siguiente diagrama muestra una representación visual de <code>7 / 2</code> y <code>7 % 2</code> (La "R" significa residuo). El logo único en el lado derecho (con la flecha verde apuntando hacia él) es el residuo de la división del problema. También es la respuesta al <code>7 % 2</code>.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2019/09/image-196.png" class="kg-image" alt="image-196" width="600" height="400" loading="lazy"></figure><p>He aquí otro ejemplo:</p><pre><code class="language-python">3 % 4</code></pre><p>Esto dará como resultado <strong>tres</strong>. El cuatro no cabe en el tres, por lo que el <strong>tres</strong> original sigue sobrando. El siguiente diagrama muestra lo que está sucediendo. Recuerda, el operador del módulo devuelve el resto después de realizar la división. El resto es tres.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2019/09/image-197.png" class="kg-image" alt="image-197" width="600" height="400" loading="lazy"></figure><h3 id="ejemplo-del-uso-del-operador-de-m-dulo">Ejemplo del uso del operador de módulo</h3><p>Un uso común del operador de módulo es encontrar números pares o impares. El siguiente código utiliza el operador de módulo para imprimir todos los números impares entre 0 y 10.</p><pre><code class="language-python">for numero in range(1, 10):
    if(numero % 2 != 0):
        print(numero)</code></pre><p>Resultado:</p><pre><code>1
3
5
7
9</code></pre><p>Traducido del artículo de <strong><strong><a href="https://www.freecodecamp.org/news/author/beau/">Beau Carnes</a></strong></strong> - <strong><a href="https://www.freecodecamp.org/news/the-python-modulo-operator-what-does-the-symbol-mean-in-python-solved/">The Python Modulo Operator - What Does the % Symbol Mean in Python? (Solved)</a></strong>.</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ 15 Portafolios de Desarrolladores Web para inspirarte ]]>
                </title>
                <description>
                    <![CDATA[ Una de las cosas más difíciles de hacer para un nuevo desarrollador es armar un portafolio en línea.  * ¿Qué debo decir?  * ¿Qué debería incluir?  * ¿Qué debo dejar de lado? Pero no tiene por qué ser así. Si estás atascado, echa un vistazo a estas ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/ejemplos-de-portafolio-de-desarrollador-web/</link>
                <guid isPermaLink="false">5fc081ab8c7cd154bb972170</guid>
                
                    <category>
                        <![CDATA[ Diseño ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Arturo Maltos ]]>
                </dc:creator>
                <pubDate>Tue, 01 Dec 2020 13:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2020/11/1_FNvXAOU_leQ7E2Bjuc8gqw.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Una de las cosas más difíciles de hacer para un nuevo desarrollador es armar un portafolio en línea.</p><ul><li>¿Qué debo decir?</li><li>¿Qué debería incluir?</li><li>¿Qué debo dejar de lado?</li></ul><h4 id="pero-no-tiene-por-qu-ser-as-">Pero no tiene por qué ser así.</h4><p>Si estás atascado, echa un vistazo a estas 15 muestras de portafolios de desarrolladores web para inspirarte. (Y si quieres más orientación para construir tu portafolio, <a href="https://portfoliodojo.com/">mira aquí</a>).</p><h2 id="1-matt-farleymattfarley-ca">1. Matt Farley<br><a href="http://mattfarley.ca/">mattfarley.ca</a></h2><p><strong>¿Qué es lo que él hace?</strong> UX/UI y desarrollo front-end.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-24.png" class="kg-image" alt="image-24" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2020/11/image-24.png 600w, https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-24.png 800w" sizes="(min-width: 720px) 720px" width="800" height="522" loading="lazy"></figure><h3 id="2-dejan-markovic"><strong>2. Dejan Markovic</strong></h3><h4 id="dejan-markovic-com"><strong><a href="http://www.dejan-markovic.com/" rel="noopener">dejan-markovic.com</a></strong></h4><p><strong>¿Qué es lo que él hace?</strong> Diseño UX y UI.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-25.png" class="kg-image" alt="image-25" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2020/11/image-25.png 600w, https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-25.png 800w" sizes="(min-width: 720px) 720px" width="800" height="503" loading="lazy"></figure><h3 id="3-rafael-caferati"><strong>3. Rafael <strong><strong>Caferati</strong></strong></strong></h3><h4 id="caferati-me"><strong><a href="https://caferati.me/" rel="noopener">caferati.me</a></strong></h4><p><strong>¿Qué es lo que él hace?<strong> </strong></strong>Front-end, back-end y UX.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-26.png" class="kg-image" alt="image-26" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2020/11/image-26.png 600w, https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-26.png 800w" sizes="(min-width: 720px) 720px" width="800" height="504" loading="lazy"></figure><h3 id="4-emily-ridge"><strong>4. Emily Ridge</strong></h3><h4 id="www-emilyridge-ie"><strong><a href="http://www.emilyridge.ie/" rel="noopener">www.emilyridge.ie</a></strong></h4><p><strong>¿Qué es lo que ella hace?<strong> </strong></strong>Desarrollo y diseño de WordPress.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-27.png" class="kg-image" alt="image-27" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2020/11/image-27.png 600w, https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-27.png 800w" sizes="(min-width: 720px) 720px" width="800" height="503" loading="lazy"></figure><h3 id="5-ian-lunn"><strong>5. Ian Lunn</strong></h3><h4 id="ianlunn-co-uk"><strong><a href="http://ianlunn.co.uk/" rel="noopener">ianlunn.co.uk</a></strong></h4><p><strong>¿Qué es lo que él hace?</strong> Diseño web y desarrollo front-end.</p><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/1*RO6pcQdVb7zWXrqOr82x7g.png" class="kg-image" alt="1*RO6pcQdVb7zWXrqOr82x7g" width="800" height="503" loading="lazy"></figure><h3 id="6-pierre-nel"><strong>6. Pierre Nel</strong></h3><h4 id="pierre-io"><strong><a href="http://pierre.io/" rel="noopener">pierre.io</a></strong></h4><p><strong>.¿Qué es lo que él hace?</strong> Diseño, front-end, back-end, y más.</p><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/1*lHvZOpk9b6J35Y6qpDaBDQ.png" class="kg-image" alt="1*lHvZOpk9b6J35Y6qpDaBDQ" width="800" height="503" loading="lazy"></figure><h3 id="7-timmy-o-mahony"><strong>7. Timmy <strong><strong>O’Mahony</strong></strong></strong></h3><h4 id="timmyomahony-com"><strong><a href="http://timmyomahony.com/" rel="noopener">timmyomahony.com</a></strong></h4><p><strong>¿Qué es lo que él hace?</strong> Desarrollo en Django</p><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/1*SGLo79qdNti7vhAtLjkDEg.png" class="kg-image" alt="1*SGLo79qdNti7vhAtLjkDEg" width="800" height="503" loading="lazy"></figure><h3 id="8-denise-chandler"><strong>8. Denise Chandler</strong></h3><h4 id="www-denisechandler-com"><strong><a href="http://www.denisechandler.com/" rel="noopener">www.denisechandler.com</a></strong></h4><p><strong>¿Qué es lo que ella hace?</strong> Diseño web, desarrollo y más.</p><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/1*ymmhDOxPOxWxFCk6J2Dj4w.png" class="kg-image" alt="1*ymmhDOxPOxWxFCk6J2Dj4w" width="800" height="503" loading="lazy"></figure><h3 id="9-ben-adam"><strong>9. Ben Adam</strong></h3><h4 id="benadam-me"><strong><a href="http://benadam.me/" rel="noopener">benadam.me</a></strong></h4><p><strong>¿Qué es lo que él hace?</strong> Diseño UX/UI y front-end</p><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/1*IpBwUTOIYlftPMk36jCUig.png" class="kg-image" alt="1*IpBwUTOIYlftPMk36jCUig" width="800" height="503" loading="lazy"></figure><h3 id="10-daniel-fischer"><strong>10. Daniel Fischer</strong></h3><h4 id="www-danielfischer-com"><strong><a href="http://www.danielfischer.com/" rel="noopener">www.danielfischer.com</a></strong></h4><p><strong>¿Qué es lo que él hace?</strong> front-end, back-end (Ruby on Rails), y más</p><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/1*xgOID67Tmdq5F58b1gChNQ.png" class="kg-image" alt="1*xgOID67Tmdq5F58b1gChNQ" width="800" height="503" loading="lazy"></figure><h3 id="11-seb-kay"><strong>11. Seb Kay</strong></h3><h4 id="sebkay-com"><strong><a href="http://sebkay.com/" rel="noopener">sebkay.com</a></strong></h4><p><strong>¿Qué es lo que él hace?</strong> Diseño web y desarrollo para WordPress</p><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/1*3mAXZs9B6YEcZJD-Z86AIg.png" class="kg-image" alt="1*3mAXZs9B6YEcZJD-Z86AIg" width="800" height="502" loading="lazy"></figure><h3 id="12-jonny-maceachern"><strong>12. Jonny MacEachern</strong></h3><h4 id="www-jonny-me"><strong><a href="http://www.jonny.me/" rel="noopener">www.jonny.me</a></strong></h4><p><strong>¿Qué es lo que él hace?</strong> Desarrollo front-end</p><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/1*Aq7TXpuzXp8lTX0Dhxw_DQ.png" class="kg-image" alt="1*Aq7TXpuzXp8lTX0Dhxw_DQ" width="800" height="503" loading="lazy"></figure><h3 id="13-kathryn-mcclintock"><strong>13. <strong><strong>Kathryn McClintock</strong></strong></strong></h3><h4 id="www-kathrynmcclintock-com"><strong><a href="http://www.kathrynmcclintock.com/" rel="noopener">www.kathrynmcclintock.com</a></strong></h4><p><strong>¿Qué es lo que ella hace?</strong> Desarrollo en Drupal</p><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/1*G4hkoDtvBmzWX6sDFyKhmg.png" class="kg-image" alt="1*G4hkoDtvBmzWX6sDFyKhmg" width="800" height="502" loading="lazy"></figure><h3 id="14-jack-jeznach"><strong>14. Jack Jeznach</strong></h3><h4 id="jacekjeznach-com"><strong><a href="http://jacekjeznach.com/" rel="noopener">jacekjeznach.com</a></strong></h4><p><strong>¿Qué es lo que el hace?</strong> Desarrollo front-end y WordPress.</p><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/1*bIUXCGYsVTXyBndd4suLfA.png" class="kg-image" alt="1*bIUXCGYsVTXyBndd4suLfA" width="800" height="502" loading="lazy"></figure><h3 id="15-qu-desarrolladores-han-creado-portafolios-que-te-gustan"><strong>15. </strong>¿Qué desarrolladores han creado portafolios que te gustan?</h3><p>Hay inspiración en todas partes, ¡esperemos que este artículo te haya ayudado a encontrar la tuya!</p><p>¿Quieres saber *aún más* sobre cómo crear un portafolio de primera clase? <a href="https://portfoliodojo.com/">Haz clic aquí para obtener gratis mi hoja de trucos de 7 pasos para crear un portafolio estupendo.</a></p><p>Traducido del artículo de <a href="https://www.freecodecamp.org/news/author/laurence/">Laurence Bradford</a> - <strong><a href="https://www.freecodecamp.org/news/15-web-developer-portfolios-to-inspire-you-137fb1743cae/">15 Web Developer Portfolios to Inspire You</a></strong>.</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Convertidor de reloj de 24 horas: Cómo convertir de AM/PM al horario de 24 horas. ]]>
                </title>
                <description>
                    <![CDATA[ Hay dos métodos principales para mostrar la hora. Primero está el reloj de 12 horas que usa AM y PM, y luego está el reloj de 24 horas. La mayoría de los países prefieren el método del reloj de 24 horas, pero el reloj de 12 horas se utiliza ampliamente ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/problemas-de-matematicas-con-las-horas-del-reloj/</link>
                <guid isPermaLink="false">5fc093c78c7cd154bb97222f</guid>
                
                    <category>
                        <![CDATA[ Proyectos ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Arturo Maltos ]]>
                </dc:creator>
                <pubDate>Mon, 30 Nov 2020 13:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2020/11/photo-1524678714210-9917a6c619c2.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artículo original:</strong> <a href="https://www.freecodecamp.org/news/mathematics-converting-am-pm-to-24-hour-clock/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">24 Hour Clock Converter: How to Convert AM/PM to 24 Hour Time</a>
      </p><p>Hay dos métodos principales para mostrar la hora. Primero está el <strong>reloj de 12 horas</strong> que usa AM y PM, y luego está el <strong>reloj de 24 horas</strong>.</p><p>La mayoría de los países prefieren el método del reloj de 24 horas, pero el reloj de 12 horas se utiliza ampliamente en América Latina y en los países de habla inglesa. En el método del reloj de 12 horas, son las 12:00 dos veces al día a la medianoche (AM) y al mediodía (PM).</p><p>La siguiente tabla muestra la conversión entre los sistemas de reloj de 12 horas y de 24 horas:</p><!--kg-card-begin: html--><table style="box-sizing: inherit; margin: 0.5em 0px 2.5em; padding: 0px; border: 0px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-weight: 400; font-stretch: inherit; line-height: inherit; font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen, Ubuntu, Cantarell, &quot;Open Sans&quot;, &quot;Helvetica Neue&quot;, sans-serif; font-size: 1.6rem; vertical-align: top; border-spacing: 0px; border-collapse: collapse; display: inline-block; overflow-x: auto; max-width: 100%; width: auto; white-space: nowrap; background: radial-gradient(at left center, rgba(0, 0, 0, 0.2) 0px, transparent 75%) 0px center / 10px 100% no-repeat scroll, radial-gradient(at right center, rgba(0, 0, 0, 0.2) 0px, transparent 75%) 100% center / 10px 100% scroll rgb(255, 255, 255); color: rgb(10, 10, 35); letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"><thead style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><tr style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><th style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: 700; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 1.2rem; vertical-align: baseline; color: var(--gray85); letter-spacing: 0.2px; text-align: center; text-transform: uppercase; background-color: var(--gray10);">Reloj de 12 Horas</th><th style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: 700; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 1.2rem; vertical-align: baseline; color: var(--gray85); letter-spacing: 0.2px; text-align: center; text-transform: uppercase; background-color: var(--gray10);">Reloj de 24 Horas</th></tr></thead><tbody style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><tr style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(90deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">12:00 AM</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(270deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-position: 100% 0px; background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">00:00</td></tr><tr style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(90deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">01:00 AM</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(270deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-position: 100% 0px; background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">01:00</td></tr><tr style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(90deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">02:00 AM</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(270deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-position: 100% 0px; background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">02:00</td></tr><tr style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(90deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">03:00 AM</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(270deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-position: 100% 0px; background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">03:00</td></tr><tr style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(90deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">04:00 AM</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(270deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-position: 100% 0px; background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">04:00</td></tr><tr style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(90deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">05:00 AM</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(270deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-position: 100% 0px; background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">05:00</td></tr><tr style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(90deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">06:00 AM</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(270deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-position: 100% 0px; background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">06:00</td></tr><tr style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(90deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">07:00 AM</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(270deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-position: 100% 0px; background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">07:00</td></tr><tr style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(90deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">08:00 AM</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(270deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-position: 100% 0px; background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">08:00</td></tr><tr style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(90deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">09:00 AM</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(270deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-position: 100% 0px; background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">09:00</td></tr><tr style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(90deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">10:00 AM</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(270deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-position: 100% 0px; background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">10:00</td></tr><tr style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(90deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">11:00 AM</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(270deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-position: 100% 0px; background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">11:00</td></tr><tr style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(90deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">12:00 PM</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(270deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-position: 100% 0px; background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">12:00</td></tr><tr style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(90deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">01:00 PM</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(270deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-position: 100% 0px; background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">13:00</td></tr><tr style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(90deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">02:00 PM</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(270deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-position: 100% 0px; background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">14:00</td></tr><tr style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(90deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">03:00 PM</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(270deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-position: 100% 0px; background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">15:00</td></tr><tr style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(90deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">04:00 PM</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(270deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-position: 100% 0px; background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">16:00</td></tr><tr style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(90deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">05:00 PM</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(270deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-position: 100% 0px; background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">17:00</td></tr><tr style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(90deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">06:00 PM</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(270deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-position: 100% 0px; background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">18:00</td></tr><tr style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(90deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">07:00 PM</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(270deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-position: 100% 0px; background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">19:00</td></tr><tr style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(90deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">08:00 PM</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(270deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-position: 100% 0px; background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">20:00</td></tr><tr style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(90deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">09:00 PM</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(270deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-position: 100% 0px; background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">21:00</td></tr><tr style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(90deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">10:00 PM</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(270deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-position: 100% 0px; background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">22:00</td></tr><tr style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(90deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">11:00 PM</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: 1px solid var(--gray10); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(270deg, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0)); background-position: 100% 0px; background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">23:00</td></tr></tbody></table><!--kg-card-end: html--><h3 id="reloj-de-12-horas">Reloj de 12 horas</h3><p>El día se divide en dos períodos de 12 horas que van desde la medianoche hasta el mediodía (horas AM), y desde el mediodía hasta la medianoche (horas PM).</p><p>Las abreviaturas AM y PM son del Latín:</p><ul><li>AM: ante meridiano, antes del mediodía</li><li>PM: post meridiano, después del mediodía</li></ul><h3 id="reloj-de-24-horas">Reloj de 24 horas</h3><p>El día va de medianoche a medianoche y se divide en 24 horas de 0 (medianoche) a 23. El tiempo se muestra en horas y minutos desde la medianoche.</p><h2 id="convertir-de-un-reloj-de-12-a-24-horas">Convertir de un reloj de 12 a 24 horas</h2><p>A partir de la primera hora del día (12:00 AM o medianoche hasta las 12:59 AM), reste 12 horas:</p><ul><li>12:00 AM = 0:00</li><li>12:15 AM = 0:15</li></ul><p>Desde la 1:00 AM hasta las 12:59 PM, las horas y minutos permanecen iguales:</p><ul><li>9:00 AM = 9:00</li><li>12:59 PM = 12:59</li></ul><p>Para los tiempos entre la 1:00 PM y las 11:59 PM, suma 12 horas:</p><ul><li>3:17 PM = 15:17</li><li>11:59 PM = 23:59</li></ul><h2 id="convertir-de-un-reloj-de-24-horas-a-uno-de-12-horas">Convertir de un reloj de 24 horas a uno de 12 horas</h2><p>A partir de la primera hora del día (0:00 / medianoche a 0:59), añade 12 horas y AM a la hora:</p><ul><li>0:30 = 12:30 AM</li><li>0:55 = 12:55 AM</li></ul><p>Desde la 1:00 hasta las 11:59, simplemente añade AM a la hora:</p><ul><li>2:25 = 2:25 AM</li><li>9:30 = 9:30 AM</li></ul><p>Para las horas comprendidas entre las 12:00 y las 12:59, basta con añadir PM a la hora:</p><ul><li>12:15 = 12:15 PM</li><li>12:48 = 12:48 PM</li></ul><p>Para las horas entre las 13:00 y las 23:59, reste 12 horas y añade PM a la hora:</p><ul><li>16:55 = 4:55 PM</li><li>21:45 = 9:45 PM</li></ul> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Aquí están las formas más populares de hacer una solicitud HTTP en JavaScript ]]>
                </title>
                <description>
                    <![CDATA[ JavaScript tiene excelentes módulos y métodos para hacer solicitudes HTTP que pueden ser usados para enviar o recibir datos desde un recurso del lado del servidor. En este artículo, vamos a ver algunas formas populares de hacer solicitudes HTTP en JavaScript. Ajax Ajax es la forma tradicional de hacer una ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/solicitud-http-en-javascript/</link>
                <guid isPermaLink="false">5fb36fde8c7cd154bb970b5f</guid>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Arturo Maltos ]]>
                </dc:creator>
                <pubDate>Mon, 30 Nov 2020 13:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2020/11/1_gqHgCNubMncv7EwWNdArGQ.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>JavaScript tiene excelentes módulos y métodos para hacer solicitudes HTTP que pueden ser usados para enviar o recibir datos desde un recurso del lado del servidor. En este artículo, vamos a ver algunas formas populares de hacer solicitudes HTTP en JavaScript.</p><h2 id="ajax">Ajax</h2><p>Ajax es la forma tradicional de hacer una solicitud HTTP asincrónica. Los datos pueden ser enviados usando el método HTTP POST y recibidos usando el método HTTP GET. Echemos un vistazo y hagamos una solicitud GET. Utilizaré JSONPlaceholder, una API REST online gratuita para desarrolladores que devuelve datos aleatorios en formato JSON.</p><p>Para hacer una llamada HTTP en Ajax, es necesario inicializar un nuevo método <code>XMLHttpRequest()</code>, especificar el endpoint URL y el método HTTP (en este caso GET). Finalmente, usamos el método <code>open()</code> para unir el método HTTP y el punto final de la URL y llamar al método <code>send()</code> para lanzar la solicitud.</p><p>Registraremos la respuesta HTTP en la consola utilizando la propiedad <code>XMLHTTPRequest.onreadystatechange</code> que contiene el manejador de eventos que se llamará cuando se dispare el evento <code>readystatechanged</code>.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2020/11/image.png" class="kg-image" alt="image" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2020/11/image.png 600w, https://www.freecodecamp.org/espanol/news/content/images/2020/11/image.png 800w" sizes="(min-width: 720px) 720px" width="800" height="349" loading="lazy"></figure><pre><code class="language-js">const Http = new XMLHttpRequest();
const url='https://jsonplaceholder.typicode.com/posts';
Http.open("GET", url);
Http.send();

Http.onreadystatechange = (e) =&gt; {
  console.log(Http.responseText)
}</code></pre><p><br>Si ves la consola de tu navegador, te devolverá una matriz de datos en formato JSON. ¿Pero cómo sabremos si la solicitud se ha hecho? En otras palabras, ¿cómo podemos manejar las respuestas con Ajax?</p><p>La propiedad de <code>onreadystatechange</code> tiene dos métodos, <code>readyState</code> y <code>status</code> que nos permiten comprobar el estado de nuestra solicitud.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-1.png" class="kg-image" alt="image-1" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2020/11/image-1.png 600w, https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-1.png 800w" sizes="(min-width: 720px) 720px" width="800" height="376" loading="lazy"></figure><p>Si <code>readyState</code> es igual a 4, significa que la solicitud está completada. La propiedad <code>readyState</code> tiene 5 respuestas. Aprenda más sobre esto <a href="https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState">aquí</a>.</p><p>Aparte de hacer directamente una llamada Ajax con JavaScript, hay otros métodos más poderosos de hacer una llamada HTTP como <code>$.Ajax</code> que es un método de jQuery. Ahora hablaré de eso.</p><h3 id="m-todos-de-jquery">Métodos de jQuery</h3><p>jQuery tiene muchos métodos para manejar fácilmente las solicitudes HTTP. Para poder usar estos métodos, necesitarás incluir la biblioteca jQuery en tu proyecto.</p><pre><code class="language-html">&lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"&gt;&lt;/script&gt;</code></pre><h3 id="-ajax">$.ajax</h3><p>jQuery Ajax es uno de los métodos más simples para hacer una llamada HTTP.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-2.png" class="kg-image" alt="image-2" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2020/11/image-2.png 600w, https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-2.png 800w" sizes="(min-width: 720px) 720px" width="800" height="429" loading="lazy"></figure><p>El método <code>$.ajax</code> toma muchos parámetros, algunos de los cuales son obligatorios y otros opcionales. Contiene dos opciones de callback <code>success</code> y <code>error</code> para manejar la respuesta recibida.</p><h3 id="-get">$.get </h3><p>El método <code>$.get</code> se utiliza para ejecutar solicitudes GET. Se necesitan dos parámetros: el endpoint y una función de callback.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-3.png" class="kg-image" alt="image-3" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2020/11/image-3.png 600w, https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-3.png 797w" sizes="(min-width: 720px) 720px" width="797" height="287" loading="lazy"></figure><h3 id="-post">$.post</h3><p>El método <code>$.post</code> es otra forma de enviar datos al servidor. Toma tres parámetros: la <code>url</code>, los datos que quieres publicar y una función callback.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-4.png" class="kg-image" alt="image-4" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2020/11/image-4.png 600w, https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-4.png 695w" width="695" height="355" loading="lazy"></figure><h3 id="-getjson">$.getJSON</h3><p>El método <code>$.getJSON</code> sólo recupera datos que están en formato JSON. Toma dos parámetros: la <code>url</code> y una función callback.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-5.png" class="kg-image" alt="image-5" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2020/11/image-5.png 600w, https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-5.png 755w" sizes="(min-width: 720px) 720px" width="755" height="291" loading="lazy"></figure><p>jQuery tiene todos estos métodos para solicitar o enviar datos a un servidor remoto. Pero en realidad puedes usar todos estos métodos en uno solo: el método <code>$.ajax</code>, como se ve en el siguiente ejemplo:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-6.png" class="kg-image" alt="image-6" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2020/11/image-6.png 600w, https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-6.png 800w" sizes="(min-width: 720px) 720px" width="800" height="420" loading="lazy"></figure><h2 id="fetch">fetch</h2><p><code>fetch</code> es una nueva y potente web API que permite hacer solicitudes asincrónicas. De hecho, <code>fetch</code> es una de las mejores y mi forma favorita de hacer una solicitud HTTP. Devuelve una "Promesa (Promise)", que es una de las grandes características de ES6. Si no estás familiarizado con el ES6, puedes leer sobre él en <a href="https://medium.freecodecamp.org/write-less-do-more-with-javascript-es6-5fd4a8e50ee2">este artículo</a>. Promesas nos permite manejar la solicitud asíncrona de una manera más inteligente. Echemos un vistazo a cómo funciona técnicamente el <code>fetch</code>.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-7.png" class="kg-image" alt="image-7" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2020/11/image-7.png 600w, https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-7.png 800w" sizes="(min-width: 720px) 720px" width="800" height="270" loading="lazy"></figure><p>La función <code>fetch</code> toma un parámetro requerido: el <code>endpoint</code> URL. También tiene otros parámetros opcionales como en el ejemplo siguiente:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-8.png" class="kg-image" alt="image-8" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2020/11/image-8.png 600w, https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-8.png 800w" sizes="(min-width: 720px) 720px" width="800" height="497" loading="lazy"></figure><p>Como puedes ver, <code>fetch</code> tiene muchas ventajas para hacer solicitudes HTTP. Puedes aprender más sobre ello <a href="https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch">aquí</a>. Además, dentro de fetch hay otros módulos y plugins que nos permiten enviar y recibir una solicitud desde y hacia el lado del servidor, como <a href="https://github.com/axios/axios">axios</a>.</p><h3 id="axios">Axios</h3><p>Axios es una biblioteca de código abierto para hacer solicitudes HTTP y proporciona muchas características muy buenas. Veamos cómo funciona.</p><h3 id="uso-">Uso:</h3><p>Primero, necesitarías incluir Axios. Hay dos maneras de incluir Axios en tu proyecto.</p><p>Primero, puedes usar npm:</p><pre><code class="language-bash">npm install axios --save</code></pre><p>Entonces necesitarías importarlo</p><pre><code class="language-js">import axios from 'axios'</code></pre><p>Segundo, puedes incluir axios usando un CDN.</p><pre><code class="language-html">&lt;script src="https://unpkg.com/axios/dist/axios.min.js"&gt;&lt;/script&gt;</code></pre><h3 id="haciendo-una-solicitud-con-axios-">Haciendo una Solicitud con axios:</h3><p>Con Axios puedes usar <code>GET</code> y <code>POST</code> para obtener y enviar datos al servidor.</p><h3 id="get-">GET:</h3><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-9.png" class="kg-image" alt="image-9" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2020/11/image-9.png 600w, https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-9.png 755w" sizes="(min-width: 720px) 720px" width="755" height="412" loading="lazy"></figure><p><code>axios</code> toma un parámetro requerido, y puede tomar un segundo parámetro opcional también. Esto toma ciertos datos como una simple consulta.</p><h3 id="post-">POST:</h3><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-10.png" class="kg-image" alt="image-10" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2020/11/image-10.png 600w, https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-10.png 755w" sizes="(min-width: 720px) 720px" width="755" height="412" loading="lazy"></figure><p><a href="https://github.com/axios/axios">Axios</a> devuelve una "Promesa". Si estás familiarizado con las promesas, probablemente sabes que una promesa puede ejecutar múltiples solicitudes. Puedes hacer lo mismo con Axios y ejecutar múltiples solicitudes al mismo tiempo.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-11.png" class="kg-image" alt="image-11" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2020/11/image-11.png 600w, https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-11.png 800w" sizes="(min-width: 720px) 720px" width="800" height="396" loading="lazy"></figure><p><br>Axios soporta muchos otros métodos y opciones. Puedes explorarlos <a href="https://github.com/axios/axios">aquí</a>.</p><h3 id="httpclient-de-angular">HttpClient de Angular</h3><p>Angular tiene su propio módulo HTTP que funciona con las aplicaciones de Angular. Utiliza la biblioteca <a href="http://reactivex.io/rxjs/">RxJS</a> para manejar las solicitudes asincrónicas y proporciona muchas opciones para realizar las solicitudes HTTP.</p><h3 id="haciendo-una-llamada-al-servidor-usando-el-httpclient-de-angular">Haciendo una llamada al servidor usando el HttpClient de Angular</h3><p>Para hacer una solicitud usando el Angular HttpClient, tenemos que ejecutar nuestro código dentro de una aplicación Angular. Así que he creado una. Si no estás familiarizado con Angular, mira mi artículo, aprende a <a href="https://medium.freecodecamp.org/learn-how-to-create-your-first-angular-app-in-20-min-146201d9b5a7">crear tu primera aplicación Angular en 20 minutos</a>.</p><p>Lo primero que tenemos que hacer es importar <code>HttpClientModule</code> en <code>app.module.ts</code></p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-12.png" class="kg-image" alt="image-12" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2020/11/image-12.png 600w, https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-12.png 758w" sizes="(min-width: 720px) 720px" width="758" height="632" loading="lazy"></figure><p>Entonces, tenemos que crear un servicio para manejar las solicitudes. Puedes generar fácilmente un servicio usando el <a href="https://cli.angular.io/">CLI Angular</a>.</p><pre><code class="language-bash">ng g service  FetchdataService</code></pre><p>A continuación, tenemos que importar el HttpClient en el servicio <code>fetchdataService.ts</code> e inyectarlo dentro del constructor.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-13.png" class="kg-image" alt="image-13" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2020/11/image-13.png 600w, https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-13.png 685w" width="685" height="461" loading="lazy"></figure><p>Y dentro de <code>app.component.ts</code> importar <code>fetchdataService</code></p><pre><code class="language-ts">//import
import { FetchdataService } from './fetchdata.service';</code></pre><p>Finalmente, llama al servicio y ejecutalo.</p><p><code>app.component.ts:</code></p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-14.png" class="kg-image" alt="image-14" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2020/11/image-14.png 600w, https://www.freecodecamp.org/espanol/news/content/images/2020/11/image-14.png 788w" sizes="(min-width: 720px) 720px" width="788" height="620" loading="lazy"></figure><p><br>Puedes ver la demo de ejemplo en <a href="https://stackblitz.com/edit/angular-httpclinent">Stackblitz</a>.</p><h3 id="terminando">Terminando</h3><p>Acabamos de cubrir las formas más populares de hacer una solicitud de llamada HTTP en JavaScript.</p><p>Gracias por tu tiempo. Si te gusta, aplaude hasta 50, haz clic en seguir y comunícate conmigo en <a href="https://twitter.com/SaidHYN">Twitter</a>.</p><p><em>Por cierto, recientemente he trabajado con un grupo de ingenieros de software para una de mis aplicaciones móviles. La organización fue genial, y el producto se entregó muy rápidamente, mucho más rápido que otras empresas y autónomos con los que he trabajado, y creo que puedo recomendarlos honestamente para otros proyectos que existen. Envíame un correo electrónico si quieres ponerte en contacto - <a>said@devsdata.com</a>.</em></p><p>Traducido del artículo de <a href="https://www.freecodecamp.org/news/author/saidhayani/">Said Hayani's</a> - <strong><strong><a href="https://www.freecodecamp.org/news/here-is-the-most-popular-ways-to-make-an-http-request-in-javascript-954ce8c95aaa/">Here are the most popular ways to make an HTTP request in JavaScript</a></strong>.</strong></p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Como sustraer una cadena de caracteres en Python ]]>
                </title>
                <description>
                    <![CDATA[ Python ofrece muchas maneras de sustraer una cadena de caracteres. A menudo a esto se la llama "slicing". De ello se desprende esta plantilla: string[inicio: fin: paso] En donde, inicio: El índice de inicio de la subcadena. El caracter de este índice está incluido en la subcadena. Si no se ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/sustraer-una-cadena-caracteres-en-python/</link>
                <guid isPermaLink="false">5fb369978c7cd154bb970acc</guid>
                
                    <category>
                        <![CDATA[ Python ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Arturo Maltos ]]>
                </dc:creator>
                <pubDate>Sat, 28 Nov 2020 09:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2020/11/photo-1518994255497-c5f17690567f.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Python ofrece muchas maneras de sustraer una cadena de caracteres. A menudo a esto se la llama "slicing".</p><p>De ello se desprende esta plantilla:</p><pre><code class="language-python">string[inicio: fin: paso]</code></pre><p>En donde,</p><p><code>inicio</code>: El índice de inicio de la subcadena. El caracter de este índice está incluido en la subcadena. Si no se incluye el inicio, se asume que es igual a 0.</p><p><code>fin</code>: El índice de finalización de la subcadena. El carácter en este índice NO está incluido en la subcadena. Si no se incluye end, o si el valor especificado supera la longitud de la cadena, se asume que es igual a la longitud de la cadena por defecto.</p><p><code>paso</code>: Cada carácter "paso" después del carácter actual que se va a incluir. El valor predeterminado es 1. Si se omite el valor del paso, se asume que es igual a 1.</p><h2 id="plantilla">Plantilla</h2><p><code>string[inicio:fin]</code>: Obtener todos los caracteres del índice de principio a fin-1</p><p><code>string[:fin]</code>: Obtener todos los caracteres desde el principio de la cadena hasta el fin-1</p><p><code>string[inicio:]</code>: Obtener todos los caracteres desde el inicio del índice hasta el final de la cadena</p><p><code>string[inicio:fin:paso]</code>: Obtener todos los caracteres de principio a fin-1 descontando cada carácter de paso</p><h2 id="ejemplos">Ejemplos</h2><p><br>Obtener los primeros 5 caracteres de una cadena</p><pre><code class="language-python">string = "freeCodeCamp"
print(string[0:5])</code></pre><p>Salida:</p><pre><code class="language-shell">&gt; freeC</code></pre><p>Note que <code>print(string[:5])</code> devuelve el mismo resultado que <code>print(string[0:5])</code></p><ul><li><strong>Obtener una subcadena de longitud 4 a partir del 3er carácter de una cadena</strong></li></ul><pre><code class="language-python">string = "freeCodeCamp"
print(string[2:6])</code></pre><p>Salida:</p><pre><code class="language-shell">&gt; eeCo</code></pre><p>Tenga en cuenta que el índice de inicio o final puede ser un número negativo. Un índice negativo significa que se empieza a contar desde el final de la cadena en lugar del principio (es decir, de derecha a izquierda). El índice -1 representa el último carácter de la cadena, -2 representa el penúltimo carácter y así sucesivamente...</p><ul><li><strong>Obtener el último caracter de una cadena</strong></li></ul><pre><code class="language-python">string = "freeCodeCamp"
print(string[-1])</code></pre><p>Salida:</p><pre><code>&gt; p</code></pre><ul><li><strong>Obtener los últimos 5 caracteres de una cadena</strong></li></ul><pre><code class="language-python">string = "freeCodeCamp"
print(string[-5:])</code></pre><p>Salida:</p><pre><code class="language-shell">&gt; eCamp</code></pre><ul><li><strong>Obtener una subcadena que contenga todos los caracteres excepto los últimos 4 y el primer carácter</strong></li></ul><pre><code class="language-python">string = "freeCodeCamp"
print(string[1:-4])</code></pre><p>Salida:</p><pre><code class="language-shell">&gt; reeCode</code></pre><h2 id="m-s-ejemplos">Más ejemplos</h2><pre><code class="language-py">str = “freeCodeCamp”

print str[-5:-2] # devuelve ‘eCa’
print str[-1:-2] # devuelve ‘’ (cadena vacia)</code></pre><ul><li><strong>Obtener todos los demás caracteres de una cadena</strong></li></ul><pre><code class="language-python">string = "freeCodeCamp"
print(string[::2])</code></pre><p>Salida:</p><pre><code class="language-shell">feCdCm</code></pre><p>Traducido del artículo <strong><strong><a href="https://www.freecodecamp.org/news/how-to-substring-a-string-in-python/">How to Substring a String in Python</a></strong></strong>.</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Como Centrar Cualquier Cosa con CSS - Alinear un Div, Texto y Mas ]]>
                </title>
                <description>
                    <![CDATA[ Centrar es uno de los aspectos mas complicados de CSS. Estos métodos usualmente no son complicados de entender. Por el contrario, se debe mas al hecho de que existen muchas formas de centrar cosas. El método utilizado puede variar dependiendo del elemento HTML que estas intentando utilizar para centrar, o ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/centrar-en-html-div-con-css/</link>
                <guid isPermaLink="false">5fb30ab88c7cd154bb9705af</guid>
                
                    <category>
                        <![CDATA[ CSS ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Arturo Maltos ]]>
                </dc:creator>
                <pubDate>Sat, 28 Nov 2020 08:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2020/11/photo-1523049673857-eb18f1d7b578.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artículo original:</strong> <a href="https://www.freecodecamp.org/news/how-to-center-anything-with-css-align-a-div-text-and-more/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How to Center Anything with CSS - Align a Div, Text, and More</a>
      </p><p>Centrar es uno de los aspectos mas complicados de CSS.</p><p>Estos métodos usualmente no son complicados de entender. Por el contrario, se debe mas al hecho de que existen muchas formas de centrar cosas.</p><p>El método utilizado puede variar dependiendo del elemento HTML que estas intentando utilizar para centrar, o si es que estas centrando horizontal o verticalmente.</p><p>En este tutorial, iremos aprendiendo como centrar elementos de forma horizontal, vertical, y de ambas formas.</p><h2 id="como-centrar-horizontalmente"><strong><strong>Como </strong>C<strong>entrar </strong>H<strong>orizontalmente</strong></strong></h2><p>Centrar elementos de forma horizontal es por lo general mas sencillo que hacerlo verticalmente. A continuación encontrarás algunos elementos comunes que es posible que desees centrar horizontalmente y las diferentes formas de hacerlo.</p><h3 id="como-centrar-texto-con-la-propiedad-css-text-align-center"><strong><strong>Como </strong>C<strong>entrar </strong>T<strong>exto con la </strong>P<strong>ropiedad CSS text-align </strong>C<strong>enter</strong></strong></h3><p>Para centrar el texto o los hipervínculos de forma horizontal, solo basta utilizar la propiedad <code>text-align</code> con el valor asignado <code>center</code>‌</p><pre><code class="language-html">&lt;div class="contenedor"&gt;
  &lt;p&gt;Hello, (centered) World!&lt;/p&gt;
&lt;/div&gt;</code></pre><pre><code class="language-css">p {
  text-align: center;
}</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/11/image-15.png" class="kg-image" alt="image-15" width="600" height="400" loading="lazy"></figure><p>‌</p><h3 id="como-centrar-un-div-utilizando-css-margin-auto"><strong><strong>Como </strong>C<strong>entrar un </strong>D<strong>iv </strong>U<strong>tilizando CSS Margin Auto</strong></strong></h3><p>Utilizando la propiedad <code>margin</code> con el valor <code>0 auto</code> para centrar horizontalmente elementos de nivel bloque como un <code>div</code>:‌</p><pre><code class="language-html">&lt;div class="contenedor"&gt;
  &lt;div class="hijo"&gt;&lt;/div&gt;
&lt;/div&gt;</code></pre><pre><code class="language-css">.hijo {
  ...
  margin: 0 auto;
}</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/11/box-centered-horizontally.jpg" class="kg-image" alt="box-centered-horizontally" width="600" height="400" loading="lazy"></figure><p>‌</p><h3 id="como-centrar-un-div-horizontalmente-utilizando-flexbox"><strong><strong>Como </strong>C<strong>entrar un </strong>D<strong>iv </strong>H<strong>orizontalmente </strong>U<strong>tilizando Flexbox</strong></strong></h3><p>Flexbox es la forma mas moderna de centrar cosas dentro de una página, y convierte el diseño de layouts responsivos en una actividad mucho mas sencilla de lo que solía ser. Sin embargo, no es soportado completamente en navegadores antiguos como Internet Explorer.</p><p>Para centrar un elemento horizontalmente con Flexbox, solo aplica <code>display: flex</code> y <code>justify-content: center</code> al elemento padre:‌</p><pre><code class="language-html">&lt;div class="contenedor"&gt;
  &lt;div class="hijo"&gt;&lt;/div&gt;
&lt;/div&gt;</code></pre><pre><code class="language-css">.contenedor {
  ...
  display: flex;
  justify-content: center;
}</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/11/box-centered-horizontally-1.jpg" class="kg-image" alt="box-centered-horizontally-1" width="600" height="400" loading="lazy"></figure><p>‌</p><h2 id="como-centrar-verticalmente"><strong><strong>Como </strong>C<strong>entrar </strong>V<strong>erticalmente</strong></strong></h2><p>Centrar elementos verticalmente sin un método moderno como Flexbox puede resultan un trabajo laborioso. Aquí iremos primero a través de algunos de los métodos mas antiguos de centrado vertical, y después como hacer lo mismo con Flexbox.</p><h3 id="como-centrar-un-div-verticalmente-con-posici-n-absoluta-y-margenes-negativos"><strong><strong>Como </strong>C<strong>entrar un </strong>D<strong>iv </strong>V<strong>erticalmente con </strong>P<strong>osici</strong></strong>ó<strong><strong>n </strong>A<strong>bsolut</strong>a<strong> y </strong>M<strong>argenes </strong>N<strong>egativos</strong></strong></h3><p>Durante un largo tiempo esta fue la manera de centrar cosas verticalmente. Para este método era necesario conocer el alto de los elementos que se deseaban poder centrar.</p><p>Primero, asigne la propiedad <code>position</code> del elemento contenedor como <code>relative</code>.</p><p>Después para el elemento hijo, asigne la propiedad <code>position</code> con el valor <code>absolute</code> y la propiedad <code>top</code> a <code>50%</code>:‌</p><pre><code class="language-html">&lt;div class="contenedor"&gt;
  &lt;div class="hijo"&gt;&lt;/div&gt;
&lt;/div&gt;</code></pre><pre><code class="language-css">.contenedor {
  ...
  position: relative;
}

.hijo {
  width: 50px;
  height: 50px;
  background-color: red;
  /* centrado vertical */
  position: absolute;
  top: 50%;
}</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/11/box-centered-vertically-1.jpg" class="kg-image" alt="box-centered-vertically-1" width="600" height="400" loading="lazy"></figure><p>‌</p><p>Pero si podemos notar esto solo permite centrar verticalmente la parte superior del elemento.</p><p>Para centrar de forma real el elemento, asigne la propiedad margin-top como <code><code>-</code>(la mitad de la altura del elemento hijo)</code> &nbsp;‌</p><pre><code class="language-css">.contenedor {
  ...
  position: relative;
}

.hijo {
  width: 50px;
  height: 50px;
  background-color: red;
  /* centrado vertical */
  position: absolute;
  top: 50%;
  margin-top: -25px; /* (- menos) la mitad del valor de la altura del elemento hijo */
}</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/11/box-centered-vertically-final.jpg" class="kg-image" alt="box-centered-vertically-final" width="600" height="400" loading="lazy"></figure><p>‌</p><h3 id="como-centrar-un-div-de-forma-vertical-con-transform-y-translate"><strong><strong>Como </strong>C<strong>entrar un </strong>D<strong>iv de </strong>F<strong>orma </strong>V<strong>ertical con Transform y Translate</strong></strong></h3><p>Si no conoces la altura de un elemento que deseas centrar (o incluso si conoces esta altura), este método es un truco ingenioso.</p><p>Este método es muy similar al de los márgenes negativos explicado anteriormente. Asigna el valor de la propiedad <code>position</code> del elemento padre como <code>relative</code>.</p><p>Para los elementos hijos, asigna la propiedad <code>position</code> como <code>absolute</code> y el valor <code>top</code> a <code>50%</code>. Ahora en lugar de utilizar un valor de margen negativo para centrar el elemento hijo, solo utiliza <code>transform: translate(0, -50%)</code>:‌</p><pre><code class="language-html">&lt;div class="contendor"&gt;
  &lt;div class="hijo"&gt;&lt;/div&gt;
&lt;/div&gt;</code></pre><pre><code class="language-css">.contenedor {
  ...
  position: relative;
}

.hijo {
  ... 
  position: absolute;
  top: 50%;
  transform: translate(0, -50%);
}</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/11/box-centered-vertically-final-1.jpg" class="kg-image" alt="box-centered-vertically-final-1" width="600" height="400" loading="lazy"></figure><p>‌</p><p>Considera que <code>translate(0, -50%)</code> es una atajo para <code>translateX(0)</code> y <code>translateY(-50%)</code>. También podrías escribir esto así <code>transform: translateY(-50%)</code> para centrar el elemento verticalmente.</p><h3 id="como-centrar-un-div-verticalmente-con-flexbox"><strong><strong>Como </strong>C<strong>entrar un </strong>D<strong>iv </strong>V<strong>erticalmente con Flexbox</strong></strong></h3><p>Así como Flexbox hace muy sencillo el centrar horizontalmente, permite de forma sencilla centrar verticalmente.</p><p>Para centrar un elemento verticalmente, aplica <code>display: flex</code> y <code>align-items: center</code> al elemento padre:‌</p><pre><code class="language-html">&lt;div class="contenedor"&gt;
  &lt;div class="hijo"&gt;&lt;/div&gt;
&lt;/div&gt;</code></pre><pre><code class="language-css">.contenedor {
  ...
  display: flex;
  align-items: center;
}</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/11/box-centered-vertically-final-2.jpg" class="kg-image" alt="box-centered-vertically-final-2" width="600" height="400" loading="lazy"></figure><p>‌</p><h2 id="como-centrar-de-forma-vertical-y-horizontal-simultaneamente"><strong><strong>Como </strong>C<strong>entrar de </strong>F<strong>orma </strong>V<strong>ertical y </strong>H<strong>orizontal </strong>S<strong>imultaneamente</strong></strong></h2><h3 id="como-centrar-un-div-vertical-y-horizontalmente-con-posiciones-css-absolutas-y-margenes-negativos"><strong><strong>Como </strong>C<strong>entrar un </strong>D<strong>iv </strong>V<strong>ertical y </strong>H<strong>orizontalmente con </strong>P<strong>osiciones CSS </strong>A<strong>bsolutas y </strong>M<strong>argenes </strong>N<strong>egativos</strong></strong></h3><p>Este es un método muy similar al anterior para centrar un elemento vertical. Como la última ocasión, se debe conocer el ancho y el alto de un elemento que se desea centrar.</p><p>Asigne a la propiedad <code>position</code> del elemento padre el valor <code>relative</code>.</p><p>Después, a la propiedad <code>position</code> del hijo, el valor <code>absolute</code>, <code>top</code> a <code>50%</code> y <code>left</code> a <code>50%</code>. Esto centra la esquina superior izquierda del elemento hijo de forma vertical y horizontal.</p><p>Para completar el centrado del elemento hijo, aplique un margen negativo a la mitad de la altura del elemento hijo, y un margen izquierdo negativo con un valor de la mitad de la anchura del elemento hijo:‌</p><pre><code class="language-html">&lt;div class="contenedor"&gt;
  &lt;div class="hijo"&gt;&lt;/div&gt;
&lt;/div&gt;</code></pre><pre><code class="language-css">.contenedor {
  ...
  position: relative;
}

.hijo {
  width: 50px;
  height: 50px;
  background-color: red;
  /* centrar vertical y horizontalmente */
  position: absolute;
  top: 50%;
  left: 50%;
  margin: -25px 0 0 -25px; /* aplicar a top y al margen izquierdo un valor negativo para completar el centrado del elemento hijo */
}</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/11/box-centered-vertically-and-horizontally.jpg" class="kg-image" alt="box-centered-vertically-and-horizontally" width="600" height="400" loading="lazy"></figure><p>‌</p><h3 id="como-centrar-un-div-vertical-y-horizontalmente-con-transform-y-translate"><strong><strong>Como </strong>C<strong>entrar un </strong>D<strong>iv </strong>V<strong>ertical y </strong>H<strong>orizontalmente con Transform y Translate</strong></strong></h3><p>Utiliza este método para centrar un elemento vertical y horizontalmente si no conoces cuales son las dimensiones exactas y no puedes hacer uso de Flexbox.</p><p>Primero, asigne a la propiedad <code>position</code> del elemento padre el valor <code>relative</code>.</p><p>A continuación, asigne a la propiedad <code>position</code> del elemento hijo el valor <code>absolute</code>, <code>top</code> a <code>50%</code>, y <code>left</code> a <code>50%</code>.</p><p>Finalmente, use <code>transform: translate(-50%, -50%)</code> para completar el centrado del elemento hijo:‌</p><pre><code class="language-html">&lt;div class="contenedor"&gt;
  &lt;div class="hijo"&gt;&lt;/div&gt;
&lt;/div&gt;</code></pre><pre><code class="language-css">.contenedor {
  ...
  position: relative;
}

.hijo {
  ... 
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/11/box-centered-vertically-and-horizontally-1.jpg" class="kg-image" alt="box-centered-vertically-and-horizontally-1" width="600" height="400" loading="lazy"></figure><p>‌</p><h3 id="como-centrar-un-div-vertical-y-horizontalmente-con-flexbox"><strong><strong>Como </strong>C<strong>entrar un </strong>D<strong>iv </strong>V<strong>ertical y </strong>H<strong>orizontalmente con Flexbox</strong></strong></h3><p>Flexbox es la forma mas sencilla de centrar un elemento de ambas formas, vertical y horizontalmente.</p><p>Esto es en realidad una combinación de dos métodos de previos que usan Flexbox. Aplica entonces las propiedades <code>justify-content: center</code> y <code>align-items: center</code> para centrar el elemento hijo horizontalmente y verticalmente:‌</p><pre><code class="language-html">&lt;div class="contenedor"&gt;
  &lt;div class="hijo"&gt;&lt;/div&gt;
&lt;/div&gt;</code></pre><pre><code class="language-css">.contenedor {
  ...
  display: flex;
  justify-content: center;
  align-items: center;
}</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/11/box-centered-vertically-and-horizontally-2.jpg" class="kg-image" alt="box-centered-vertically-and-horizontally-2" width="600" height="400" loading="lazy"></figure><p>‌</p><p>Eso es todo lo que necesitas conocer para centrar con estos métodos. Ahora pon manos a la obra y centra todo aquello que necesites.</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Aquí tienes 450 cursos de Ivy League que puedes tomar en casa gratis ]]>
                </title>
                <description>
                    <![CDATA[ Las 8 escuelas de la Ivy League están entre las más prestigiosas del mundo. Incluyen las universidades de Brown, Harvard, Cornell, Princeton, Dartmouth, Yale y Columbia, y la Universidad de Pennsylvania. Las ocho escuelas se encuentran entre las quince mejores de la clasificación nacional de universidades de U.S. News and ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/450-cursos-de-ivy-league-que-puedes-tomar-en-casa-gratis/</link>
                <guid isPermaLink="false">5fb313768c7cd154bb970629</guid>
                
                    <category>
                        <![CDATA[ Tech ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Arturo Maltos ]]>
                </dc:creator>
                <pubDate>Thu, 26 Nov 2020 08:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2020/11/banner-ivy-league-courses.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artículo original:</strong> <a href="https://www.freecodecamp.org/news/ivy-league-free-online-courses-a0d7ae675869/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">Here Are 850+ Ivy League Courses You Can Take Right Now for Free</a>
      </p><p>Las 8 escuelas de la Ivy League están entre las más prestigiosas del mundo. Incluyen las universidades de Brown, Harvard, Cornell, Princeton, Dartmouth, Yale y Columbia, y la Universidad de Pennsylvania.</p><p>Las ocho escuelas se encuentran entre las quince mejores de la clasificación nacional de universidades de U.S. News and World Report.</p><p>Estas escuelas de la Ivy League son también muy selectivas y extremadamente difíciles de acceder. Pero la buena noticia es que todas estas universidades ahora ofrecen <a href="https://www.classcentral.com/">cursos gratuitos</a> en línea a través de múltiples plataformas de cursos en Internet.</p><p>Hasta ahora, han creado más de 500 cursos, de los cuales alrededor de 450 siguen activos. <a href="https://www.classcentral.com/">Class Central</a> ha hecho una colección de todos ellos, que puedes explorar a continuación. Los he dividido en las siguientes categorías:</p><ul><li>Ciencia de la computación</li><li>Ciencia de los datos</li><li>Programación</li><li>Humanidades</li><li>Negocios</li><li>Arte y Diseño</li><li>Ciencias</li><li>Ciencias Sociales</li><li>Salud y Medicina</li><li>Ingeniería</li><li>Matemáticas</li><li>Educación y Enseñanza</li><li>y desarrollo personal</li></ul><p>También he reunido estos cursos en la página de la colección de Class Central para los <a href="https://www.classcentral.com/collection/ivy-league-moocs">MOOCs de la Ivy League</a>. Esta colección se actualiza automáticamente a medida que se añaden nuevos cursos. Puedes suscribirte para recibir las actualizaciones haciendo clic en el botón azul "follow".</p><p>Tengan en cuenta que algunos de los cursos de Coursera son un poco más difíciles de acceder, así que <a href="https://www.classcentral.com/report/coursera-signup-for-free/">escribí esta guía para mostrarles cómo</a>. Y si eres nuevo en el aprendizaje en línea, mira estos <a href="https://www.classcentral.com/report/mooc-motivation-hacks/">30 consejos prácticos</a> para mantenerte enfocado.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/11/image-72.png" class="kg-image" alt="image-72" width="600" height="400" loading="lazy"></figure><h2 id="ciencias-computacionales-37-">Ciencias Computacionales (37)</h2><ul><li><a href="https://www.classcentral.com/course/edx-cs50-s-introduction-to-computer-science-442?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">CS50's Introducción a las Ciencias Computacionales</a> de &nbsp;la <em><em><em><em>Universi</em></em>dad de Harvard</em></em> ★★★★★(78)</li><li><a href="https://www.classcentral.com/course/algs4partI-339?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Algoritmos, Parte I</a> de la <em>Universidad de Princeton</em> ★★★★★(60)</li><li><a href="https://www.classcentral.com/course/algs4partII-340?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Algoritmos, Parte II</a> de la <em>Universidad de Princeton</em> ★★★★★(21)</li><li><a href="https://www.classcentral.com/course/bitcointech-3655?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Tecnologías de Bitcoin y Cryptocurrency</a> de la <em>Universidad de Princeton</em> ★★★★☆(17)</li><li><a href="https://www.classcentral.com/course/edx-machine-learning-7231?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Machine Learning</a><a href="https://www.classcentral.com/course/edx-machine-learning-for-data-science-and-analytics-4912?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020"> para ciencia y análisis de datos</a> de la <em>Universidad de Columbia</em> ★★★☆☆(15)</li><li><a href="https://www.classcentral.com/course/edx-machine-learning-7231?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Machine Learning</a> de la <em>Universidad de C<em><em><em>olumbia</em></em></em></em> ★★★★☆(10)</li><li><a href="https://www.classcentral.com/course/edx-artificial-intelligence-ai-7230?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Inteligencia Artificial (AI)</a> de la <em>Universidad de C<em><em><em>olumbia</em></em></em></em> ★★★★☆(9)</li><li><a href="https://www.classcentral.com/course/udacity-reinforcement-learning-1849?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Reforzamiento del Aprendizaje</a> de la <em><em><em><em>Universi</em></em></em>dad Brown</em> ★★★☆☆(8)</li><li><a href="https://www.classcentral.com/course/udacity-machine-learning-1020?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Machine Learning</a> del <em>Instituto de Tecnología de G<em><em><em>eorgia</em></em></em></em> ★★★★☆(6)</li><li><a href="https://www.classcentral.com/course/sdn-489?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Creación de Redes Definidas</a> de la <em><em><em><em>Universi</em></em></em>dad de Princeton</em> ★★★★☆(6)</li><li><a href="https://www.classcentral.com/course/comparch-342?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Arquitectura de Computadoras</a> de la <em><em><em><em>Universi</em></em></em>dad de Princeton</em> ★★★★☆(6)</li><li><a href="https://www.classcentral.com/course/edx-enabling-technologies-for-data-science-and-analytics-the-internet-of-things-4911?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Habilitando Tecnologías para la Ciencia de Datos y la Analítica: El Internet de las Cosas</a> de la <em><em><em><em>Universi</em></em></em>dad de Columbia</em> ★☆☆☆☆(5)</li><li><a href="https://www.classcentral.com/course/aofa-921?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Análisis de Algoritmos</a> de <em>La Universidad de P<em><em><em>rinceton</em></em></em></em> ★★★★★(4)</li><li><a href="https://www.classcentral.com/course/robotics-perception-5033?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Percepción de la Robótica</a> de la <em><em><em><em>Universi</em></em></em>dad<em><em><em> </em></em></em>de<em><em><em> </em></em></em>Pensilvania</em> ★★★☆☆(3)</li><li><a href="https://www.classcentral.com/course/udacity-machine-learning-unsupervised-learning-1848?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Machine Learning: Aprendizaje no supervisado</a> de la <em>Universidad Brown</em> ★★★☆☆(3)</li><li><a href="https://www.classcentral.com/course/edx-animation-and-cgi-motion-7242?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Animacion y Movimiento CGI</a> de la <em>Universidad de Columbia</em> ★★★☆☆(3)</li><li><a href="https://www.classcentral.com/course/ni-891?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Redes Ilustradas: Principios sin el uso de Cálculo</a> de la <em>Universidad de Princeton<em><em><em> </em></em></em></em> ★★★★☆(3)</li><li><a href="https://www.classcentral.com/course/edx-linux-basics-the-command-line-interface-11537?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Fundamentos de Linux: La Interface de la Línea de Comandos</a> de <em><em><em><em>Dartmouth</em></em></em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-c-programming-modular-programming-and-memory-management-11666?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Programación en C: Programación Modular y Manejo de la Memoria</a> de <em><em><em><em>Dartmouth</em></em></em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-cs50-s-computer-science-for-business-professionals-10143?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">CS50's Ciencias Computacionales para Profesionales de los Negocios</a> de la <em>Universidad de Harvard</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-cs50-s-introduction-to-computer-science-7017?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">CS50's Introducción a las Ciencias Computacionales</a> de la <em>Universidad de Harvard</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-cs50-s-understanding-technology-10142?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">CS50's Entendiendo la Tecnología</a> de la <em>Universidad de Harvard</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/friendsmoneybytes-359?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Redes: Amigos, Dinero, y Bytes</a> de la <em>Universidad de Princeton</em> ★★★☆☆(1)</li><li><a href="https://www.classcentral.com/course/edx-c-programming-pointers-and-memory-management-11533?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Programación en C: Punteros y Manejo de la Memoria</a> de <em><em><em><em>Dartmouth</em></em></em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-c-programming-using-linux-tools-and-libraries-11538?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Programación en C: Utilizando Herramientas y Librerías de Linux</a> de <em><em><em><em>Dartmouth</em></em></em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-c-programming-language-foundations-11535?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Programación en C: Fundamentos del Lenguaje</a> de <em><em><em><em>Institut Mines-Télécom</em></em></em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-cs50-for-lawyers-16857?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">CS50 para Abogados</a> de la <em>Universidad de Harvard</em></li><li><a href="https://www.classcentral.com/course/edx-algorithm-design-and-analysis-8520?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Algoritmos Diseño y Análisis</a> de la <em>Universidad de Pensilvania</em></li><li><a href="https://www.classcentral.com/course/edx-robotics-vision-intelligence-and-machine-learning-8203?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">[Nuevo] Robótica: &nbsp;Inteligencia Visual y Machine Learning</a> de la <em>Universidad de Pensilvania</em></li><li><a href="https://www.classcentral.com/course/wharton-cryptocurrency-blockchain-introd-13733?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Criptomonedas y Blockchain: Una Introducción a las Monedas Digitales </a> de la <em>Universidad de Pensilvania</em></li><li><a href="https://www.classcentral.com/course/edx-data-structures-and-software-design-8517?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Estructuras de Datos y</a> Diseño de Software de la <em>Universidad de Pensilvania</em></li><li><a href="https://www.classcentral.com/course/computational-thinking-problem-solving-12278?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Pensamiento Computacional para Solucionar Problemas </a> de la <em>Universidad de Pensilvania</em></li><li><a href="https://www.classcentral.com/course/hi-five-social-peer-8303?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">HI-FIVE: Informática de la Salud para la Innovación, Valores y Enriquecimiento (Social/Perspectiva de Pares)</a> de la <em>Universidad de Columbia</em></li><li><a href="https://www.classcentral.com/course/computerscience2-10671?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Ciencias Computacionales: Algoritmos, Teoría, y Máquinas</a> de la <em>Universidad de Princeton</em></li><li><a href="https://www.classcentral.com/course/cs-programming-java-13151?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Ciencias Computacionales: Programación con un Propósito</a> de la <em>Universidad de Princeton</em></li><li><a href="https://www.classcentral.com/course/edx-c-programming-getting-started-11534?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Programación en C: Inicios</a> de <em><em><em><em>Dartmouth</em></em></em></em></li><li><a href="https://www.classcentral.com/course/edx-c-programming-advanced-data-types-11536?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Programación en C: Tipos de Datos Avanzados</a> de <em><em><em><em>Dartmouth</em></em></em></em></li></ul><h2 id="ciencia-de-datos-18-">Ciencia de Datos (18)</h2><ul><li><a href="https://www.classcentral.com/course/edx-statistics-and-r-2960?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Estadísticas y R</a> de la <em>Universidad de Harvard</em> ★★★★☆(20)</li><li><a href="https://www.classcentral.com/course/edx-statistical-thinking-for-data-science-and-analytics-4913?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Pensamiento Estadístico para la Ciencia de Datos y Analíticas</a> de la <em>Universidad de Columbia</em> ★★☆☆☆(18)</li><li><a href="https://www.classcentral.com/course/edx-data-science-r-basics-9253?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Ciencia de Datos: Principios de R</a> de la <em>Universidad de Harvard</em> ★★★★★(8)</li><li><a href="https://www.classcentral.com/course/wharton-people-analytics-4264?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Analíticas de las Personas</a> de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★★★★☆(5)</li><li><a href="https://www.classcentral.com/course/edx-data-science-visualization-10347?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Ciencia de Datos: Visualización </a> de la <em>Universidad de Harvard</em> ★★★★★(3)</li><li><a href="https://www.classcentral.com/course/edx-high-dimensional-data-analysis-2949?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Análisis de Datos de Grandes Dimensiones</a> de la <em>Universidad de Harvard</em> ★★★★☆(3)</li><li><a href="https://www.classcentral.com/course/edx-data-science-machine-learning-10353?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Ciencia de Datos: Machine Learning</a> de la <em>Universidad de Harvard</em> ★★★★☆(2)</li><li><a href="https://www.classcentral.com/course/edx-case-study-dna-methylation-data-analysis-2980?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Caso de estudio: Análisis de datos en la metilación del &nbsp;DNA</a> de la <em>Universidad de Harvard</em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-data-science-linear-regression-10352?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Ciencia de Datos: Regresión Linear</a> de la Universidad de <em><em><em><em>Harvard</em></em></em></em> ★★★☆☆(2)</li><li><a href="https://www.classcentral.com/course/edx-causal-diagrams-draw-your-assumptions-before-your-conclusions-9097?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Diagramas Causales: Dibujar Tus Suposiciones Antes de las Conclusiones</a> de la <em>Universidad de Harvard</em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-data-science-wrangling-10351?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Ciencia de Datos: Debate</a> de la <em>Universidad de Harvard</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-data-science-productivity-tools-10350?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Ciencia de Datos: Herramientas de Productividad</a> de la <em>Universidad de Harvard</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-data-science-probability-10348?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Ciencia de Datos: Probabilidad </a> de la <em>Universidad de Harvard</em> ★★★☆☆(1)</li><li><a href="https://www.classcentral.com/course/edx-data-science-inference-and-modeling-10349?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Ciencia de Datos: Inferencia y Modelado</a> de la <em>Universidad de Harvard</em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/edx-big-data-and-education-968?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Big Data y Educación</a> de la <em>Universidad de Columbia</em> ★★★☆☆(1)</li><li><a href="https://www.classcentral.com/course/edx-data-science-capstone-10354?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Ciencia de Datos: Capstone</a> de la <em>Universidad de Harvard</em></li><li><a href="https://www.classcentral.com/course/edx-principles-statistical-and-computational-tools-for-reproducible-data-science-9489?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Principios, Herramientas Estadísticas y Computacionales para Ciencia de Datos Reproducibles</a> de la <em>Universidad de Harvard</em></li><li><a href="https://www.classcentral.com/course/edx-data-models-and-decisions-in-business-analytics-8218?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Datos, Modelos y Decisiones en Analítica de Negocios</a> &nbsp;de la <em>Universidad de Columbia</em></li></ul><p>Para una vista mas a fondo de los cursos de Ciencias de Datos, lee las siguientes series:</p><ul><li><a href="https://www.freecodecamp.org/news/i-ranked-all-the-best-data-science-intro-courses-based-on-thousands-of-data-points-db5dc7e3eb8e/">Yo evalue cada curso de Ciencia de Datos en el Internet, basado en miles de parámetros de puntos.</a></li><li><a href="https://www.freecodecamp.org/news/the-best-data-science-courses-on-the-internet-ranked-by-your-reviews-6dc5b910ea40/">Los mejores cursos de Ciencias de Datos en el Internet, evaluados por reseñas.</a></li><li><a href="https://www.freecodecamp.org/news/every-single-machine-learning-course-on-the-internet-ranked-by-your-reviews-3c4a7b8026c0/">Cada uno de los cursos de Machine Learning en el Internet, evaluados por reseñas</a>.</li><li><a href="https://www.freecodecamp.org/news/if-you-want-to-learn-data-science-start-with-one-of-these-programming-classes-fb694ffe780c/">Si deseas aprender Ciencia de Datos, &nbsp;empieza con uno de estas clases de programación.</a></li><li><a href="https://www.freecodecamp.org/news/an-overview-of-every-data-visualization-course-on-the-internet-9ccf24ea9c9b/">Un resumen de cada curso de Visualización de Datos en el Internet.</a></li></ul><h2 id="programaci-n-8-">Programación (8)</h2><ul><li><a href="https://www.classcentral.com/course/edx-using-python-for-research-7204?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Utilizando Python para Investigación</a> de la <em>Universidad de Harvard</em> ★★★☆☆(9)</li><li><a href="https://www.classcentral.com/course/edx-cs50-s-web-programming-with-python-and-javascript-11506?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">CS50's Programación Web con Python y JavaScript</a> de la <em>Universidad de Harvard</em> ★★★★★(4)</li><li><a href="https://www.classcentral.com/course/edx-programming-for-the-web-with-javascript-8518?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Programación para el Web con JavaScript</a> de la <em><em>Universidad de<em><em> </em></em></em>Pensilvania</em> ★★★★☆(3)</li><li><a href="https://www.classcentral.com/course/edx-the-computing-technology-inside-your-smartphone-2809?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">La Tecnología de Computo dentro de tu Smartphone</a> de la <em>Universidad de Cornell </em>★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-cs50-s-mobile-app-development-with-react-native-11505?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">CS50's Desarrollo de Aplicaciones Móviles con React Native</a> de la <em>Universidad de Harvard</em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/edx-cs50-s-introduction-to-game-development-11504?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">CS50's Introducción al Desarrollo de Videojuegos</a> de la <em>Universiad de Harvard</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-software-development-fundamentals-8516?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Fundamentos de Desarrollo de Software</a> de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★★★☆☆(1)</li><li><a href="https://www.classcentral.com/course/edx-quantitative-methods-for-biology-17849?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">[Nuevo] Métodos Cuantitativos de Biología</a> de la <em>Universidad de Harvard</em></li></ul><h2 id="humanidades-80-">Humanidades (80)</h2><ul><li><a href="https://www.classcentral.com/course/modpo-356?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Poesia Americana Moderna y Contemporánea (“ModPo”)</a> de la <em><em>Universidad de<em><em> </em></em></em>Pensilvania</em> ★★★★★(184)</li><li><a href="https://www.classcentral.com/course/edx-hope-human-odyssey-to-political-existentialism-11584?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">HOPE: De la Odisea Humana al Existencialismo Político</a> de la <em>Universidad de Princeton</em> ★★★★★(108)</li><li><a href="https://www.classcentral.com/course/moralities-911?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Moralidades de cada Día de la Vida</a> de la <em>Universidad de Yale</em> ★★★★★(39)</li><li><a href="https://www.classcentral.com/course/mythology-353?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Mitología Griega y Romana</a> de la <em>Universidad de Pensilvania</em> ★★★★☆(18)</li><li><a href="https://www.classcentral.com/course/plato-5237?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Filosofía Antigua: Plato y sus Predecesores</a> de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★★★★★(11)</li><li><a href="https://www.classcentral.com/course/aristotle-5238?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Filosofía Antigua: Aristóteles y sus Sucesores</a> de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★★★★☆(10)</li><li><a href="https://www.classcentral.com/course/edx-china-part-1-political-and-intellectual-foundations-from-the-sage-kings-to-confucius-and-the-legalists-941?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">China (Parte 1): Fundamentos Políticos e Intelectuales: De los Reyes Sabios a Confucio y los Legalistas</a> de la <em>Universidad de Harvard</em> ★★★★★(9)</li><li><a href="https://www.classcentral.com/course/edx-visualizing-japan-1850s-1930s-westernization-protest-modernity-2159?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Visualizando Japón (1850s-1930s): Occidentalización, Protesta, Modernidad</a> de la <em>Universidad de Harvard</em> ★★★★★(7)</li><li><a href="https://www.classcentral.com/course/edx-religious-literacy-traditions-and-scriptures-5844?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Literatura Religiosa: Tradiciones y Escritura </a> de la <em>Universidad de Harvard</em> ★★★★☆(7)</li><li><a href="https://www.classcentral.com/course/edx-china-s-first-empires-and-the-rise-of-buddhism-1617?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Los Primeros Imperios de China y el Ascenso del Budism</a> de la <em>Universidad de Harvard</em> ★★★★★(6)</li><li><a href="https://www.classcentral.com/course/edx-modern-china-s-foundations-the-manchus-and-the-qing-1986?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Fundamentos de la China Moderna: Manchus y el Qing</a> de la <em>Universidad de Harvard</em> ★★★★★(6)</li><li><a href="https://www.classcentral.com/course/edx-literati-china-examinations-neo-confucianism-and-later-imperial-china-1845?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Literatura China: Examinación, Neo-Confusionismo, e Imperios Chinos Posteriores</a> de la <em>Universidad de Harvard</em> ★★★★★(6)</li><li><a href="https://www.classcentral.com/course/careerdevelopment-6011?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Inglés para el Desarrollo de la Carrera</a> de la Universidad de <em>Pensilvania</em> ★★★★★(6)</li><li><a href="https://www.classcentral.com/course/journalism-6009?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Inglés para Periodismo</a> de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★★★★☆(6)</li><li><a href="https://www.classcentral.com/course/effectivealtruism-3446?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Altruismo Efectivo</a> de la <em>Universidad de Princeton</em> ★★★★☆(6)</li><li><a href="https://www.classcentral.com/course/edx-buddhism-through-its-scriptures-5857?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Budismo a Través de sus Escritos</a> de la Universidad de <em><em><em><em>Harvard</em></em></em></em> ★★★★☆(5)</li><li><a href="https://www.classcentral.com/course/edx-creating-modern-china-the-republican-period-to-the-present-2468?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Creando la China Moderna: Del Periodo Republicano al Presente</a> de la <em>Universidad de Harvard</em> ★★★★★(5)</li><li><a href="https://www.classcentral.com/course/introancientegypt-7326?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción al Egipto Antiguo y su Civilización</a> de la <em>Universidad<em><em><em> </em></em></em>de<em><em><em> </em></em></em>Pensilvania</em> ★★★★☆(5)</li><li><a href="https://www.classcentral.com/course/edx-the-civil-war-and-reconstruction-1850-1861-a-house-divided-2172?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">La Guerra Civil y la Reconstrucción - 1850-1861: Una Casa Dividida</a> de la <em>Universidad de Columbia</em> ★★★★★(5)</li><li><a href="https://www.classcentral.com/course/edx-the-civil-war-and-reconstruction-1865-1890-the-unfinished-revolution-2439?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">La Reconstrucción de la Guerra Civil – 1865-1890: La Revolución Sin Finalizar</a> de la <em>Universidad de Columbia</em> ★★★★★(5)</li><li><a href="https://www.classcentral.com/course/edx-the-civil-war-and-reconstruction-1861-1865-a-new-birth-of-freedom-2297?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">La Guerra Civil y la Reconstrucción - 1861 - 1865: Un Nuevo Nacimiento de Libertad</a> de la <em>Universidad de Columbia</em> ★★★★☆(5)</li><li><a href="https://www.classcentral.com/course/edx-invasions-rebellions-and-the-fall-of-imperial-china-2467?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Invasiones, Rebeliones, y la Caida del Imperio Chino</a> de la <em>Universidad de Harvard</em> ★★★★★(4)</li><li><a href="https://www.classcentral.com/course/edx-cosmopolitan-tang-aristocratic-culture-in-china-1773?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Cosmopolitan Tang: Cultura Aristocrática en China</a> de la <em>Universidad de Harvard</em> ★★★★★(4)</li><li><a href="https://www.classcentral.com/course/edx-global-china-from-the-mongols-to-the-ming-1988?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">China Global: De los Mongoles al Ming</a> de la Universidad de <em><em><em><em>Harvard</em></em></em></em> ★★★★★(4)</li><li><a href="https://www.classcentral.com/course/edx-china-and-communism-2469?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">China y el Comunismo</a> de la <em>Universidad de Harvard</em> ★★★★★(4)</li><li><a href="https://www.classcentral.com/course/edx-contemporary-china-the-people-s-republic-taiwan-and-hong-kong-2470?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">China Contemporanea: La República de las Personas, Taiwan, y Hong Kong</a> de la Universidad de Harvard ★★★★★(4)</li><li><a href="https://www.classcentral.com/course/edx-masterpieces-of-world-literature-6844?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Piezas Maestras de la Literatura Mundial</a> de la <em>Universidad de Harvard</em> ★★★★★(4)</li><li><a href="https://www.classcentral.com/course/edx-global-history-lab-2371?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Laboratorio de Historia Global</a> de la <em>Universidad de Princeton</em> ★★★★☆(4)</li><li><a href="https://www.classcentral.com/course/edx-christianity-through-its-scriptures-5858?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Pensamiento del Cristianismo y sus Escrituras</a> de la <em>Universidad de Harvard</em> ★★★★☆(3)</li><li><a href="https://www.classcentral.com/course/edx-shakespeare-s-hamlet-the-ghost-7016?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Hamlet de Shakespeare: El Fantasma</a> de la <em>Universidad de Harvard</em> ★★★★★(3)</li><li><a href="https://www.classcentral.com/course/journey-unfolding-life-6947?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">La Travesía del Universo: El Desarrollo de la Vida</a> de la <em>Universidad de Yale</em> ★★★☆☆(3)</li><li><a href="https://www.classcentral.com/course/edx-american-capitalism-a-history-1562?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Capitalismo Americano: Una Historia</a> de la <em>Universidad Cornell</em> ★★★★★(3)</li><li><a href="https://www.classcentral.com/course/edx-the-ethics-of-eating-3043?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">La Ética de la Alimentación </a> de la <em>Universidad de Cornell</em> ★★★★☆(3)</li><li><a href="https://www.classcentral.com/course/edx-question-reality-science-philosophy-and-the-search-for-meaning-6851?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Cuestionar la Realidad! Ciencia, filosofía, y la búsqueda del significado</a> de <em><em><em><em>Dartmouth</em></em></em></em> ★★★★☆(3)</li><li><a href="https://www.classcentral.com/course/edx-islam-through-its-scriptures-5818?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">El Islam a través de sus Escrituras</a> de la <em>Universidad de Harvard</em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-religion-conflict-and-peace-9452?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Religión, Conflicto y Paz</a> de la <em>Universidad de Harvard</em> ★★★★☆(2)</li><li><a href="https://www.classcentral.com/course/edx-the-medieval-book-of-hours-art-and-devotion-in-the-later-middle-ages-3838?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">El Libro Medieval Book de las Horas: Arte y Devoción en la parte Final de la Edad Media</a> de la <em>Universidad de Harvard</em> ★★★☆☆(2)</li><li><a href="https://www.classcentral.com/course/edx-predictionx-john-snow-and-the-cholera-outbreak-of-1854-7159?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">PredicciónX: John Snow y el brote de Colera de 1854</a> de la <em>Universidad de Harvard</em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-books-in-the-medieval-liturgy-3839?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Libros en la Liturgia Medieval</a> de la <em>Universidad de <em><em><em>Harvard University</em></em></em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-the-ancient-greek-hero-609?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">El Antiguo Héroe Griego</a> de la <em>Universidad de Harvard</em> ★★★☆☆(2)</li><li><a href="https://www.classcentral.com/course/edx-bioethics-the-law-medicine-and-ethics-of-reproductive-technologies-and-genetics-6649?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Bioética: La Ley, Medicina, y Ética de las Tecnologías Reproductivas y Genéticas</a> de la <em>Universidad de Harvard</em> ★★★★☆(2)</li><li><a href="https://www.classcentral.com/course/edx-shakespeare-s-othello-the-moor-11951?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Othello de Shakespeare : El Moro de Venecia </a> de la <em>Universidad de Harvard</em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/wondersancientegypt-9577?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Maravillas del Antiguo Egipto</a> de la Universidad<em><em><em><em> </em></em></em>de<em><em><em> </em></em></em>Pensilvania</em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/western-christianity-200-1650-8106?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Un Viaje a través del Cristianismo Occidental: desde la Persecución de la Fe a la Religión Global (200 - 1650)</a> de la <em>Universidad de Yale</em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-poetry-in-america-whitman-940?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Poesía en América: Whitman</a> de la <em>Universidad de Harvard</em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/edx-ancient-masterpieces-of-world-literature-9423?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Piezas Maestras Antiguas de la Literatura Mundial</a> de la <em>Universidad de Harvard</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-hinduism-through-its-scriptures-5819?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Hinduismo a través de sus Escrituras</a> de la <em>Universidad de Harvard</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-judaism-through-its-scriptures-5820?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Judaismo a través de sus Escrituras</a> de la <em>Universidad de Harvard</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-shakespeare-s-the-merchant-of-venice-shylock-8536?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">El Mercader de Venecia de Shakespeare: Shylock</a> de la <em>Universidad de Harvard</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/business-6010?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Inglés para Negocios y Emprendimiento</a> de la <em>Universidad<em><em><em> </em></em></em>de<em><em><em> </em></em></em>Pensilvania</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/stem-6538?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Inglés para la Ciencia, Tecnología, Ingeniería, y Matemáticas</a> de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-the-tabernacle-in-word-image-an-italian-jewish-manuscript-revealed-11462?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">El Tabernáculo en Palabras e Imágenes: El Manuscrito revelado de un un Judio Italiano</a> de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-seeking-women-s-rights-colonial-period-to-the-civil-war-13127?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Buscando los Derechos de las Mujeres: Del Periodo Colonial a la Guerra Civil</a> de la <em>Universidad de Columbia</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-women-have-always-worked-the-u-s-experience-1700-1920-8110?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Las Mujeres Siempre Han Trabajado: La Experiencia de Estados Unidos 1700 - 1920</a> de la <em>Universidad de Columbia</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-the-american-renaissance-classic-literature-of-the-19th-century-4916?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">El Renacimiento Americano: Literatura Clásica del Siglo 19th</a> de <em><em><em><em>Dartmouth</em></em></em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-john-milton-paradise-lost-11575?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">John Milton: El Paraiso Perdido</a> de <em><em><em><em>Dartmouth</em></em></em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-power-and-responsibility-doing-philosophy-with-superheroes-9708?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Poder y Responsabilidad: Filosofía con Superheroes</a> de la <em>Universidad de Harvard</em></li><li><a href="https://www.classcentral.com/course/edx-china-s-political-and-intellectual-foundations-from-sage-kings-to-confucius-13152?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Fundamentos Políticos e Intelectuales de China: De los Reyes Sabios a Confucio</a> de la <em>Universidad de Harvard</em></li><li><a href="https://www.classcentral.com/course/edx-introduction-to-digital-humanities-13557?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción a Humanidades Digitales</a> de la <em>Universidad de</em> <em><em><em><em>Harvard</em></em></em></em></li><li><a href="https://www.classcentral.com/course/edx-predictionx-lost-without-longitude-11693?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">PredicciónX: Lost Without Longitude</a> de la <em>Universidad de Harvard</em></li><li><a href="https://www.classcentral.com/course/edx-poetry-in-america-modernism-5346?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Poesía en América: Modernismo</a> de la <em>Universidad de Harvard</em></li><li><a href="https://www.classcentral.com/course/edx-poetry-in-america-the-poetry-of-early-new-england-933?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Poesía en América: La Poesía de la Nueva Inglaterra</a> de la <em>Universidad de Harvard</em></li><li><a href="https://www.classcentral.com/course/edx-book-sleuthing-the-nineteenth-century-3879?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Búsqueda de Libros: El Siglo Diecinueve</a> de la <em>Universidad de Harvard</em></li><li><a href="https://www.classcentral.com/course/edx-poetry-in-america-the-civil-war-and-its-aftermath-3355?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Poesía en América: La Guerra Civil y sus Secuelas</a> de la <em>Universidad de Harvard</em></li><li><a href="https://www.classcentral.com/course/edx-poetry-in-america-whitman-2816?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Poesía en América: Whitman</a> de la <em>Universidad de Harvard</em></li><li><a href="https://www.classcentral.com/course/edx-china-humanities-the-individual-in-chinese-culture-9256?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Humanidades de China: El Individuo en la Cultura China</a> de la <em>Universidad de Harvard</em></li><li><a href="https://www.classcentral.com/course/edx-sikhism-through-its-scriptures-11388?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">El Sijismo a través de sus Escrituras</a> de la <em>Universidad de Harvard</em></li><li><a href="https://www.classcentral.com/course/edx-modern-masterpieces-of-world-literature-9424?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Piezas Maestras Modernas Mundiales de la Literatura</a> de la <em>Universidad de Harvard</em></li><li><a href="https://www.classcentral.com/course/edx-women-making-history-ten-objects-many-stories-12269?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Mujeres Haciendo Historia: Diez Objetos, Muchas Historias</a> de la <em>Universidad de Harvard</em></li><li><a href="https://www.classcentral.com/course/edx-shakespeare-s-life-and-work-15184?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Shakespeare, Vida y Trabajo</a> de la <em>Universidad de Harvard</em></li><li><a href="https://www.classcentral.com/course/thomas-berry-6946?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">La Perspectiva Mundial de Thomas Berry: El Florecimiento de la Comunidad Mundial</a> de la <em>Universidad de Yale</em></li><li><a href="https://www.classcentral.com/course/edx-women-have-always-worked-the-u-s-experience-1920-2016-8523?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Las Mujeres Siempre Han Trabajado: La Experiencia de Estados Unidos 1920 - 2016</a> de la <em>Universidad de Columbia</em></li><li><a href="https://www.classcentral.com/course/edx-wage-work-for-women-citizens-1870-1920-13128?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Salario Laboral para las Mujeres Ciudadanas: 1870-1920</a> de la <em>Universidad de Columbia</em></li><li><a href="https://www.classcentral.com/course/edx-fighting-for-equality-1950-2018-13130?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Peleando por la Igualdad: 1950–2018</a> de la <em>Universidad de Columbia</em></li><li><a href="https://www.classcentral.com/course/edx-indian-tibetan-river-of-buddhism-13686?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Rivera del Budismo Indio y Tibetano</a> de la <em>Universidad de Columbia</em></li><li><a href="https://www.classcentral.com/course/edx-negotiating-a-changing-world-1920-1950-13129?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Negociando y Cambiando el Mundo: 1920-1950</a> de la <em>Universidad de Columbia</em></li><li><a href="https://www.classcentral.com/course/edx-writing-case-studies-science-of-delivery-4908?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Escribiendo Casos de Estudio: Producción Científica</a> de la <em>Universidad de Princeton</em></li><li><a href="https://www.classcentral.com/course/edx-fantastic-places-unhuman-humans-exploring-humanity-through-literature-10255?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Lugares Fantásticos, Humanos Inhumanos: Explorando la Humanidad a través de la Literatura</a> de la <em>Universidad de Brown</em></li><li><a href="https://www.classcentral.com/course/edx-the-ethics-of-memory-8538?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">La Ética de la Memoria</a> de la <em>Universidad de Brown</em></li><li><a href="https://www.classcentral.com/course/edx-libertarian-free-will-neuroscientific-and-philosophical-evidence-12605?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Libre Albedrío Libertario: Evidencia Neurocientífica y Filosófica</a> de <em><em><em><em>Dartmouth</em></em></em></em></li></ul><h2 id="negocios-72-">Negocios (72)</h2><ul><li><a href="https://www.classcentral.com/course/whartonmarketing-1137?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción al Marketing</a> de la <em><em>Universidad de<em><em> </em></em></em>Pensilvania</em> ★★★★☆(56)</li><li><a href="https://www.classcentral.com/course/whartonaccounting-769?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción a la Contabilidad Financiera</a> <em>de la Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★★★★★(49)</li><li><a href="https://www.classcentral.com/course/whartonoperations-372?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción a la Administración de Operaciones</a> de la <em><em><em><em>Wharton School </em></em></em>de la Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★★★★☆(29)</li><li><a href="https://www.classcentral.com/course/financialmarkets-912?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Mercados Financieros</a> de la <em>Universidad de</em> <em><em><em><em>Yale</em></em></em></em> ★★★★☆(27)</li><li><a href="https://www.classcentral.com/course/whartonfinance-625?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción a las Finanzas Corporativas</a> de la <em><em><em><em>Wharton School of </em></em></em>de la<em><em><em> </em></em></em>Universidad<em><em><em> </em></em></em>de<em><em><em> </em></em></em>Pensilvania</em> ★★★★☆(19)</li><li><a href="https://www.classcentral.com/course/wharton-contagious-viral-marketing-5034?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Marketing Viral y Como Elaborar Contenido Contagioso</a> de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★★★★☆(16)</li><li><a href="https://www.classcentral.com/course/wharton-customer-analytics-4353?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Analíticas del Cliente</a> de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★★★☆☆(16)</li><li><a href="https://www.classcentral.com/course/global-financial-crisis-4893?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">La Crisis Global Financiera</a> de la <em>Universidad de</em> <em><em><em><em>Yale</em></em></em></em> ★★★★☆(11)</li><li><a href="https://www.classcentral.com/course/financialengineering1-1014?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Ingeniería Financiera y la Administración de Riesgos Parte I</a> de la <em>Universidad de Columbia</em> ★★★★☆(11)</li><li><a href="https://www.classcentral.com/course/wharton-launching-startup-5468?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Emprendimiento 2: Lanzar una Start-Up</a> de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★★★★☆(9)</li><li><a href="https://www.classcentral.com/course/canvas-network-global-human-capital-trends-6532?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Tendencias del Capital Humano Global</a> de la <em>Universidad de</em> <em><em><em><em>Columbia</em></em></em></em> ★★★★☆(9)</li><li><a href="https://www.classcentral.com/course/wharton-operations-analytics-4204?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Analítica de Operaciones</a> de la <em>Universidad de Pensilvania</em> ★★★★☆(6)</li><li><a href="https://www.classcentral.com/course/accounting-analytics-4166?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Contabilidad Analítica</a> de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★★★★☆(6)</li><li><a href="https://www.classcentral.com/course/wharton-introduction-spreadsheets-models-5451?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción a las Hojas de Cálculo y los Modelos</a> &nbsp;de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★★★★☆(6)</li><li><a href="https://www.classcentral.com/course/wharton-entrepreneurship-opportunity-5467?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Emprendimiento 1: Desarrollando la Oportunidad</a> de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★★★★☆(5)</li><li><a href="https://www.classcentral.com/course/accountingmore-3539?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Mas Introducción a la Contabilidad Financiera</a> de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★★★★☆(5)</li><li><a href="https://www.classcentral.com/course/canvas-network-a-preview-course-on-the-5-killer-risks-of-enterprise-risk-management-6533?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Un Curso de Vista Previa acerca de Los 5 Grandes Riesgos de La Administración de Riesgos Empresariales Risk Management</a> de la <em>Universidad de</em> <em><em><em><em>Columbia</em></em></em></em> ★★★★★(5)</li><li><a href="https://www.classcentral.com/course/wharton-quantitative-modeling-fundamenta-5448?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Fundamentos de Modelado Cualitativo</a> de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★★★★☆(4)</li><li><a href="https://www.classcentral.com/course/growth-strategy-5466?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Emprendimiento 3: Estrategias de Crecimiento</a> de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★★★★☆(4)</li><li><a href="https://www.classcentral.com/course/wharton-entrepreneurship-financing-profi-5476?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Emprendimiento 4: Financiamiento y Rentabilidad</a> de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★★★★★(4)</li><li><a href="https://www.classcentral.com/course/social-impact-2136?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Estrategia de Impacto Social: Herramientas para Emprendedores e Inovadores</a> de la <em>Universidad<em><em><em> </em></em></em>de<em><em><em> </em></em></em>Pensilvania</em> ★★★★☆(4)</li><li><a href="https://www.classcentral.com/course/edx-analytics-in-python-8210?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Analíticas en Python</a> de la <em>Universidad</em> <em><em><em><em>Columbia</em></em></em></em> ★★★★☆(4)</li><li><a href="https://www.classcentral.com/course/edx-improving-your-business-through-a-culture-of-health-11363?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Mejorando tu Negocio a Través de la Cultura de la Salud</a> de la <em>Universidad de</em> <em><em><em><em>Harvard </em></em></em></em> ★★★★★(3)</li><li><a href="https://www.classcentral.com/course/whartonfinancees-4688?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción a las Finanzas Corporativas</a> from <em><em><em><em>University of </em></em></em>Pensilvania</em> ★★★★★(3)</li><li><a href="https://www.classcentral.com/course/artsculturestrategy-2678?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Artes y Estrategia Cultural</a> de la <em>Universidad<em><em><em> </em></em></em>de<em><em><em> </em></em></em>Pensilvania</em> ★★★★★(3)</li><li><a href="https://www.classcentral.com/course/fe2-1015?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Ingenería Financiera y Administración de Riesgos Parte II</a> de la <em>Universidad de</em> <em><em><em><em>Columbia</em></em></em></em> ★★★★☆(3)</li><li><a href="https://www.classcentral.com/course/edx-entrepreneurship-in-emerging-economies-7829?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Emprendimiento en Economías Emergentes</a> de la <em>Universidad de</em> <em><em><em><em>Harvard</em></em></em></em> ★★★★☆(2)</li><li><a href="https://www.classcentral.com/course/whartonmarketinges-4685?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción al Marketing</a> de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/construction-project-management-7105?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Administración de Proyectos de Construcción</a> de la <em>Universidad de</em> <em><em><em><em>Columbia </em></em></em></em> ★★★☆☆(2)</li><li><a href="https://www.classcentral.com/course/edx-introduction-to-global-hospitality-management-2818?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción a la Administración de Hospitalidad Global</a> de la <em>Universidad de</em> <em><em><em><em>Cornell</em></em></em></em> ★★★★☆(2)</li><li><a href="https://www.classcentral.com/course/wharton-decision-making-scenarios-5481?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Toma de Decisiones y Escenarios</a> de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/wharton-global-trends-business-9800?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Tendencias Globales para Negocios y la Sociedad</a> de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/whartonmarketingzh-3900?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">市场营销概论 (中文版）</a> de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★★★☆☆(1)</li><li><a href="https://www.classcentral.com/course/edx-corporate-social-responsibility-csr-a-strategic-approach-9510?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Responsabilidad Social Corporativa (CSR): Un enfoque estratético</a> from <em><em><em><em>University of </em></em></em>Pensilvania</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/wharton-crowdfunding-9664?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Crowdfunding</a> de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★☆☆☆☆(1)</li><li><a href="https://www.classcentral.com/course/finance-healthcare-managers-10797?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Perspicacia Financiera para Administradores No-Financieros</a> de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★☆☆☆☆(1)</li><li><a href="https://www.classcentral.com/course/whartonaccountinges-4686?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción a la Contabilidad Financiera</a> de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/leading-the-life-you-want-8228?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Llevando la Vista que Deseas</a> de la Universidad de <em>Pensilvania</em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/construction-scheduling-7114?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Calendarización de la Construcción</a> de la <em>Universidad</em> <em><em><em><em>Columbia</em></em></em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/construction-cost-estimating-7106?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Estimación de Costos de Construcción y Control del Costo</a> de la Universidad de Columbia ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/construction-finance-7107?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Finanzas en la Construcción</a> de la <em>Universidad de Columbia</em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/edx-launching-breakthrough-technologies-13334?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Lanzamiento de Avances de Tecnología</a> de la <em>Universidad de Harvard</em></li><li><a href="https://www.classcentral.com/course/edx-entrepreneurship-and-healthcare-in-emerging-economies-2104?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Emprendimiento y Atención Médica en Economías Emergentes</a> de la <em>Universidad de &nbsp;Harvard</em></li><li><a href="https://www.classcentral.com/course/wharton-risk-models-5546?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Modelando Riesgos y Realidades</a> de la <em><em><em><em>Universi</em></em></em>dad<em><em><em> </em></em></em>de<em><em><em> </em></em></em>Pensilvania</em></li><li><a href="https://www.classcentral.com/course/wharton-managing-human-capital-6887?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Administrando el Capital Social y Humano</a> de la <em><em><em><em>Universi</em></em></em>dad<em><em><em> </em></em></em>de<em><em><em> </em></em></em>Pensilvania</em></li><li><a href="https://www.classcentral.com/course/diverse-teams-7123?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Optimizando la Diversidad dentro de los Equipos</a> de la <em><em><em><em>Universi</em></em></em>dad<em><em><em> </em></em></em>de<em><em><em> </em></em></em>Pensilvania</em></li><li><a href="https://www.classcentral.com/course/team-culture-7122?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">El Poder de la Cultura de Equipo</a> de la <em><em><em><em>Universi</em></em></em>dad<em><em><em> </em></em></em>de<em><em><em> </em></em></em>Pensilvania</em></li><li><a href="https://www.classcentral.com/course/wharton-crowdfunding-marketplace-lending-13731?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Prestamos, Crowdfunding, e Inversiones Modernas</a> de la <em><em><em><em>Universi</em></em></em>dad<em><em><em> </em></em></em>de<em><em><em> </em></em></em>Pensilvania</em></li><li><a href="https://www.classcentral.com/course/wharton-ai-application-insurtech-real-es-13732?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Aplicación de la IA, InsurTech, y Tecnología de la Industria Inmobiliaria</a> de la <em>Universidad<em><em><em> </em></em></em>de<em><em><em> </em></em></em>Pensilvania</em></li><li><a href="https://www.classcentral.com/course/wharton-fintech-overview-payments-regula-13730?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">FinTech: Fundamentos, Pagos, y Regulaciones</a> de la <em>Universidad<em><em><em> </em></em></em>de<em><em><em> </em></em></em>Pensilvania</em></li><li><a href="https://www.classcentral.com/course/wharton-social-impact-9743?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Estrategias de Negocio para el Impacto Social</a> de la <em>Universidad<em><em><em> </em></em></em>de<em><em><em> </em></em></em>Pensilvania</em></li><li><a href="https://www.classcentral.com/course/high-performing-teams-7121?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Construyendo Equipos de Alto Performance</a> de la <em>Universidad<em><em><em> </em></em></em>de<em><em><em> </em></em></em>Pensilvania</em></li><li><a href="https://www.classcentral.com/course/continuous-learning-culture-7120?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Crear un Equipo con una Cultura de Aprendizaje Continuo</a> de la <em>Universidad<em><em><em> </em></em></em>de<em><em><em> </em></em></em>Pensilvania</em></li><li><a href="https://www.classcentral.com/course/whartonoperationszh-3901?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">运营管理概论（中文版）</a> de la<em> Universidad de<em><em><em> </em></em></em>Pensilvania</em></li><li><a href="https://www.classcentral.com/course/whartonaccountingzh-3902?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">财务会计概论（中文版）</a> de la<em> Universidad de Pensilvania</em></li><li><a href="https://www.classcentral.com/course/whartonfinancezh-3903?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">企业金融概论（中文版）</a> de la<em> Universidad de Pensilvania</em></li><li><a href="https://www.classcentral.com/course/whartonoperationses-4687?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción a la Gestión de Operaciones</a> de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em></li><li><a href="https://www.classcentral.com/course/what-is-corruption-anti-corruption-compl-13458?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Que es la Corrupción: Anticorrupción y Observancia</a> de la <em>Universidad<em><em><em> </em></em></em>de<em><em><em> </em></em></em>Pensilvania</em></li><li><a href="https://www.classcentral.com/course/wharton-influence-9072?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Influencia</a> de la <em><em><em><em>Universi</em></em></em>dad<em><em><em> </em></em></em>de<em><em><em> </em></em></em>Pensilvania</em></li><li><a href="https://www.classcentral.com/course/continuous-learning-culture-7120?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Creando una Cultura de Equipo de Aprendizaje Continuo</a> de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em></li><li><a href="https://www.classcentral.com/course/management-fundamentals-healthcare-admin-10801?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Fundamentos de Administración</a> de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em></li><li><a href="https://www.classcentral.com/course/high-performing-teams-7121?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Creando Equipos de Alto Performance</a> de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em></li><li><a href="https://www.classcentral.com/course/edx-introduction-to-corporate-finance-9060?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción a las Finanzas Corporativas</a> de la <em>Universidad de</em> <em><em><em><em>Columbia </em></em></em></em></li><li><a href="https://www.classcentral.com/course/edx-free-cash-flow-analysis-9061?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Análisis del Flujo de Efectivo Libre</a> de la <em>Universidad de</em> <em><em><em><em>Columbia </em></em></em></em></li><li><a href="https://www.classcentral.com/course/edx-demand-and-supply-analytics-8206?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Analítica de la Oferta y Demanda</a> de la <em>Universidad de</em> <em><em><em><em>Columbia</em></em></em></em></li><li><a href="https://www.classcentral.com/course/edx-marketing-analytics-8214?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Analítica de Marketing</a> de la <em>Universidad de</em> <em><em><em><em>Columbia</em></em></em></em></li><li><a href="https://www.classcentral.com/course/edx-connected-strategy-capstone-15197?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Estrategia de Proyecto Final Conectada</a> de <em><em><em><em>Wharton School </em></em></em></em>de la<em> Universidad<em><em><em> of </em></em></em>Pensilvania</em></li><li><a href="https://www.classcentral.com/course/edx-developing-breakthrough-innovations-with-the-three-box-solution-11328?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Desarrollo de Avances en Inovaciones con la Solución de Tres Cajas</a> de <em><em><em><em>Dartmouth</em></em></em></em></li><li><a href="https://www.classcentral.com/course/edx-executing-breakthrough-innovations-with-the-three-box-solution-11329?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Ejecución de Avances de Inovaciones con la Solución de Tres Cajas</a> de <em><em><em><em>Dartmouth</em></em></em></em></li><li><a href="https://www.classcentral.com/course/edx-omnichannel-strategy-and-management-8519?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Estrategia Omnichannel y Administración</a> from <em><em><em><em>Dartmouth</em></em></em></em></li><li><a href="https://www.classcentral.com/course/edx-retail-fundamentals-8513?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Fundamentos de la Industria Minorista</a> de <em><em><em><em>Dartmouth</em></em></em></em></li></ul><h1 id="arte-y-dise-o-20-"><strong><strong>Arte y Diseño<strong> (20)</strong></strong></strong></h1><ul><li><a href="https://www.classcentral.com/course/gamification-343?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Gamificación</a> de la &nbsp;<em>Universidad<em><em><em> </em></em></em>de<em><em><em> </em></em></em>Pensilvania</em> ★★★★★(55)</li><li><a href="https://www.classcentral.com/course/introclassicalmusic-2987?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción a la Música Clásica</a> de la <em>Universidad de<em><em><em> </em></em></em>Yale</em> ★★★★★(18)</li><li><a href="https://www.classcentral.com/course/design-371?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Diseño: Creación de &nbsp;Artifactos en la Sociedad</a> de la <em><em><em><em>Universi</em></em></em>dad de<em><em><em> </em></em></em>Pensilvania</em> ★★★★★(15)</li><li><a href="https://www.classcentral.com/course/romanarchitecture-910?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Arquitectura Romana</a> de la <em>Universidad de Yale</em> ★★★★☆(12)</li><li><a href="https://www.classcentral.com/course/edx-the-architectural-imagination-7836?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">La Imaginación en la Arquitectura</a> de la <em>Universidad de</em> <em><em><em><em>Harvard</em></em></em></em> ★★★☆☆(5)</li><li><a href="https://www.classcentral.com/course/edx-hollywood-history-industry-art-5643?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Hollywood: Historia, Industria, Arte</a> de la <em><em><em><em>Universi</em></em></em>dad<em><em><em> </em></em></em>de<em><em><em> </em></em></em>Pensilvania</em> ★★★★☆(5)</li><li><a href="https://www.classcentral.com/course/edx-18th-century-opera-handel-mozart-12061?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Opera del Siglo 18th Opera: Handel &amp; Mozart</a> de la <em>Universidad de</em> <em><em><em><em>Harvard</em></em></em></em> ★★★★★(4)</li><li><a href="https://www.classcentral.com/course/edx-first-nights-beethoven-s-9th-symphony-and-the-19th-century-orchestra-5383?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Primeras Noches - La 9a Simfonia de Beethoven y la Orquesta del Siglo 19</a> de la <em>Universidad de <em><em><em>Harvard</em></em></em></em> ★★★★★(4)</li><li><a href="https://www.classcentral.com/course/edx-first-nights-handel-s-messiah-and-baroque-oratorio-4548?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Primeras Noches - Handel's Messiah and Baroque Oratorio</a> de la <em>Universidad de</em> <em><em><em><em>Harvard</em></em></em></em> ★★★★★(4)</li><li><a href="https://www.classcentral.com/course/kadenze-reinventing-the-piano-3778?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Reinventando el Piano</a> de la <em>Universidad de</em> <em><em><em><em>Princeton</em></em></em></em> ★★★★★(4)</li><li><a href="https://www.classcentral.com/course/edx-first-nights-monteverdi-s-l-orfeo-and-the-birth-of-opera-6365?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Primeras Noches - Monteverdi’s L’Orfeo y el Nacimiento de la Opera</a> de la <em>Universidad de</em> <em><em><em><em>Harvard</em></em></em></em> ★★★★★(3)</li><li><a href="https://www.classcentral.com/course/edx-first-nights-monteverdi-s-l-orfeo-and-the-birth-of-opera-6365?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Primeras Noches</a><a href="https://www.classcentral.com/course/edx-first-nights-stravinsky-s-rite-of-spring-modernism-ballet-and-riots-7319?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020"> - Stravinsky’s Rite of Spring: Modernism, Ballet, and Riots</a> de la <em>Universidad de</em> <em><em><em><em>Harvard</em></em></em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-first-nights-monteverdi-s-l-orfeo-and-the-birth-of-opera-6365?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Primeras Noches</a><a href="https://www.classcentral.com/course/edx-first-nights-berlioz-s-symphonie-fantastique-and-program-music-in-the-19th-century-6612?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020"> - Berlioz’s Symphonie Fantastique and Program Music in the 19th Century</a> de la <em>Universidad de Harvard</em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-introduction-to-italian-opera-3840?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción a la Opera Italiana</a> de <em><em><em><em>Dartmouth</em></em></em></em> ★★★☆☆(2)</li><li><a href="https://www.classcentral.com/course/independent-exposing-digital-photography-8091?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Exposición de Fotografía Digital</a> de la <em>Universidad de</em> <em><em><em><em>Harvard</em></em></em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-19th-century-opera-meyerbeer-wagner-verdi-12384?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Opera del Siglo 19: Meyerbeer, Wagner, &amp; Verdi</a> de la Universidad de <em><em><em><em>Harvard</em></em></em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-pyramids-of-giza-ancient-egyptian-art-and-archaeology-10385?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Piramides de Giza: Arte del Antiguo Egipto y Arqueología</a> de la <em>Universidad de</em> <em><em><em><em>Harvard</em></em></em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/music-and-social-action-5842?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Música y Acción Social</a> de la <em>Universidad</em> de <em><em><em><em>Yale</em></em></em></em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/age-of-cathedrals-9671?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Edad de las Catedrales</a> de la <em>Universidad de Yale</em></li><li><a href="https://www.classcentral.com/course/edx-introduction-to-german-opera-7474?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción a la Opera Alemana</a> de <em><em><em><em>Dartmouth</em></em></em></em></li></ul><h1 id="ciencias-32-"><strong><strong>Ciencias<strong> (32)</strong></strong></strong></h1><ul><li><a href="https://www.classcentral.com/course/vitalsigns-1887?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Signos Vitales: Entendiendo Que Nos Esta Diciendo el Cuerpo</a> de la<em><em> Universidad<em><em> </em></em></em>Pensilvania</em> ★★★★★(43)</li><li><a href="https://www.classcentral.com/course/canvas-network-best-practices-for-biomedical-research-data-management-he-10172?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Mejores Prácticas para la Administración de Datos en la Investigación Biomédica</a> from <em>Escuela Médica de</em> <em><em><em><em>Harvard</em></em></em></em> ★★★★★(20)</li><li><a href="https://www.classcentral.com/course/edx-fundamentals-of-neuroscience-part-1-the-electrical-properties-of-the-neuron-942?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Fundamentos de Neurociencia, Parte 1: Las Propiedades Eléctricas del de las Neuronas</a> de la <em>Universiad de</em> <em><em><em><em>Harvard</em></em></em></em> ★★★★★(11)</li><li><a href="https://www.classcentral.com/course/edx-science-cooking-from-haute-cuisine-to-soft-matter-science-part-1-811?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Ciencia y Cocina: De la Alta Cocina a la Ciencia de la Materia Blanca (parte 1)</a> de la <em>Universidad de Harvard</em> ★★★★★(11)</li><li><a href="https://www.classcentral.com/course/edx-fundamentals-of-neuroscience-part-2-neurons-and-networks-2430?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Fundamentos de Neurociencia, Parte 2: Neuronas y Rede</a> de la <em>Universidad de Harvard</em> ★★★★★(6)</li><li><a href="https://www.classcentral.com/course/edx-principles-of-biochemistry-3462?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Principios de Bioquímica</a> de la <em>Universidad de</em> <em><em><em><em>Harvard</em></em></em></em> ★★★★★(6)</li><li><a href="https://www.classcentral.com/course/edx-introduction-to-environmental-science-2637?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción a la Ciencia Ambiental</a> de <em><em><em><em>Dartmouth</em></em></em></em> ★★★★☆(6)</li><li><a href="https://www.classcentral.com/course/edx-super-earths-and-life-1874?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Super-Tierras y Vida</a> de la <em>Universidad</em> <em><em><em><em>Harvard</em></em></em></em> ★★★★☆(5)</li><li><a href="https://www.classcentral.com/course/edx-sharks-global-biodiversity-biology-and-conservation-5865?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Tiburones! Diversidad Global, Biología, y</a> Conservación de la <em>Universidad de</em> <em><em><em><em>Cornell </em></em></em></em> ★★★★★(5)</li><li><a href="https://www.classcentral.com/course/edx-relativity-and-astrophysics-1334?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Relatividad de Astrofísica</a> de la <em>Universidad <em><em><em>Cornell</em></em></em></em> ★★★★☆(5)</li><li><a href="https://www.classcentral.com/course/otherearths-1271?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Imaginando Otros Planetas</a> de la <em>Universidad de Princeton</em> ★★★★☆(3)</li><li><a href="https://www.classcentral.com/course/edx-the-climate-energy-challenge-9626?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">El Reto de la Energia-Climatica</a> de la <em>Universidad</em> <em><em><em><em>Harvard</em></em></em></em> ★★★★☆(2)</li><li><a href="https://www.classcentral.com/course/edx-the-quantum-world-8358?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">El Mundo Cuántico</a> de la <em>Universidad de Harvard</em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-introduction-to-bioconductor-annotation-and-analysis-of-genomes-and-genomic-assays-2970?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción a Bioconductores: Anotaciones y Análisis de los Genomas y Ensayos de Genomas</a> de la <em>Universidad de</em> <em><em><em><em>Harvard</em></em></em></em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/edx-case-studies-in-functional-genomics-2976?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Casos de Estudio en Genómica Funcional</a> de la <em>Universidad de</em> <em><em><em><em>Harvard</em></em></em></em> ★★★☆☆(1)</li><li><a href="https://www.classcentral.com/course/edx-cell-biology-mitochondria-6022?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Biología Celular: Mitocondrias</a> de la Universidad de Harvard ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-the-health-effects-of-climate-change-12106?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Los Efectos del Cambio Climático en la Salud</a> de la <em>Universidad de Harvard</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-science-cooking-from-haute-cuisine-to-soft-matter-science-physics-8383?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Ciencia y Cocina: De la Alta Cocina a la Ciencia de la Materia Blanda</a> de la<em> Universidad de Harvard </em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-malariax-defeating-malaria-from-the-genes-to-the-globe-8413?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">MalariaX: Combatiendo la Malaria desde los Genes al Globo</a> de la <em>Universidad de Harvard</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-fundamentals-of-neuroscience-part-3-the-brain-3927?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Fundamentos de Neurociencia, Parte 3: El Cerebro</a> &nbsp;de la Universidad de <em><em><em><em>Harvard</em></em></em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-high-performance-computing-for-reproducible-genomics-2973?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Computo de Alto Performance para Genoma Reproductiva</a> de la <em>Universidad de</em> <em><em><em><em>Harvard</em></em></em></em></li><li><a href="https://www.classcentral.com/course/edx-backyard-meteorology-the-science-of-weather-12108?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Meteorología en el Patio Trasero: La Ciencia del Clima</a> de la <em>Universidad de</em> <em><em><em><em>Harvard</em></em></em></em></li><li><a href="https://www.classcentral.com/course/climatecommunication-16879?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Comunicando el Cambio Climático y la Salud</a> de la <em>Universidad de Yale</em></li><li><a href="https://www.classcentral.com/course/introduction-climate-change-health-16878?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción al Cambio Climático y la Salud</a> de la <em>Universidad de Yale</em></li><li><a href="https://www.classcentral.com/course/climatecommunication-16879?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Comunicando el Cambio Climático y la Salud</a> de la <em>Universidad de Yale</em></li><li><a href="https://www.classcentral.com/course/introduction-climate-change-health-16878?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción al Cambio Climático y la Salud</a> de la <em>Universidad de &nbsp;Yale</em></li><li><a href="https://www.classcentral.com/course/journey-knowledge-action-6945?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Conversaciones de Viajes: Entretejiendo Conocimiento y Acción</a> de la<em> Universidad de Yale</em></li><li><a href="https://www.classcentral.com/course/yuzhou-zhi-lu-9462?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">宇宙之旅：展现生命 (el Viaje del Universo: El Despliegue de la Vida)</a> de la Universidad de <em><em><em><em>Yale</em></em></em></em></li><li><a href="https://www.classcentral.com/course/diqiu-fanrong-9461?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Thomas Berry的世界观：地球社区的繁荣 (La Concepción del Mundo de Thomas Berry: El Florecimiento de la Comunidad de la Tierra)</a> de la <em>Universidad de</em> <em><em><em><em>Yale</em></em></em></em></li><li><a href="https://www.classcentral.com/course/yuzhou-duihua-9460?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">宇宙之旅：对话 (el viaje del Universo: Entretejiendo Conocimiento y Acción)</a> de la <em>Universidad de <em><em><em>Yale</em></em></em></em></li><li><a href="https://www.classcentral.com/course/climateadaptation-16880?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Adaptación al Clima para la Salud Humana</a> de la <em>Universidad de</em> <em><em><em><em>Yale</em></em></em></em></li><li><a href="https://www.classcentral.com/course/edx-bipedalism-the-science-of-upright-walking-8493?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Bipedalismo: La Ciencia de Caminar Erguido</a> de <em><em><em><em>Dartmouth</em></em></em></em></li></ul><h1 id="ciencias-sociales-74-"><strong>Ciencias Sociales<strong><strong> (74)</strong></strong></strong></h1><ul><li><a href="https://www.classcentral.com/course/edx-justice-610?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Justicia</a> de la <em>Universidad de Harvard</em> ★★★★★(36)</li><li><a href="https://www.classcentral.com/course/americanlaw-2872?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Una Introducción a Las Leyes Americanas</a> de la <em><em><em><em>Universi</em></em></em>dad<em><em><em> </em></em></em>de<em><em><em> </em></em></em>Pensilvania</em> ★★★★★(17)</li><li><a href="https://www.classcentral.com/course/edx-constitutional-interpretation-13427?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Interpretación Constitucional</a> de la <em>Universidad de Princeton</em> ★★★★★(16)</li><li><a href="https://www.classcentral.com/course/moral-politics-2986?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Fundamentos de Moral de la Política</a> de la <em>Universidad de</em> <em><em><em><em>Yale</em></em></em></em> ★★★★☆(14)</li><li><a href="https://www.classcentral.com/course/susdev-1533?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">La Edad del Desarrollo Sustentable</a> de la <em>Universidad de Columbia</em> ★★★★★(13)</li><li><a href="https://www.classcentral.com/course/warparadoxes-1361?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Paradojas de la Guerra</a> de la <em>Universidad de Princeton</em> ★★★★☆(12)</li><li><a href="https://www.classcentral.com/course/edx-contract-law-from-trust-to-promise-to-contract-2633?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">El Contrato de Ley: De la Confianza a la Promesa de Contratar</a> de la <em>Universidad de Harvard</em> ★★★★☆(10)</li><li><a href="https://www.classcentral.com/course/awc-2677?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">La Constitución Escrita de America</a> de la <em>Universidad de Yale</em> ★★★★☆(9)</li><li><a href="https://www.classcentral.com/course/the-science-of-well-being-10346?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">La Ciencia del Bienestar</a> de la <em>Universidad de Yale</em> ★★★★★(8)</li><li><a href="https://www.classcentral.com/course/edx-tangible-things-discovering-history-through-artworks-artifacts-scientific-specimens-and-the-stuff-around-you-1870?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Cosas Tangibles: Descubriendo la Historia a través Obras, Artefactos, Especímenes Científicos, y las Cosas que te Rodean</a> de la <em>Universidad de Harvard</em> ★★★★★(6)</li><li><a href="https://www.classcentral.com/course/constitution-2082?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción a los Conceptos Constitucionales Claves y los Casos de la Suprema Corte</a> de la <em>Universidad de University</em> ★★★★★(6)</li><li><a href="https://www.classcentral.com/course/designingcities-1047?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Diseñando Ciudades</a> de la <em>Universidad de Pensilvania</em> ★★★★☆(6)</li><li><a href="https://www.classcentral.com/course/edx-civil-liberties-11764?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Libertades Civiles</a> de la <em>Universidad de Princeton</em> ★★★★★(6)</li><li><a href="https://www.classcentral.com/course/microeconomics-part1-624?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Microeconomía: El Poder de los Mercados</a> de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★★★★☆(5)</li><li><a href="https://www.classcentral.com/course/edx-global-history-of-capitalism-10307?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Historia Global del Capitalismo</a> de la <em>Universidad de</em> <em><em><em><em>Princeton</em></em></em></em> ★★★★☆(5)</li><li><a href="https://www.classcentral.com/course/political-philosophy-4234?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Ideas Revolucionarias: Utilidad, Justicia, Igualdad, L</a>ibertad de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★★★★☆(4)</li><li><a href="https://www.classcentral.com/course/law-student-4897?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Las Herramientas Básicas del Estudiante de Leyes</a> de la <em>Universidad de Yale</em> ★★★★☆(4)</li><li><a href="https://www.classcentral.com/course/edx-monasteries-schools-and-notaries-part-1-reading-the-late-medieval-marseille-archive-3878?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Monasterios, Escuelas, y Notarias, Parte 1: Leyendo la Archivo de Marseille de la parte Final de la Epoca Medieval</a> de la <em>Universidad de <em><em><em>Harvard University</em></em></em></em> ★★★★☆(3)</li><li><a href="https://www.classcentral.com/course/edx-making-and-meaning-in-the-medieval-manuscript-3873?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Creación y Significado en el Manuscrito Medieval</a> de la <em>Universidad de Harvard</em> ★★★★★(3)</li><li><a href="https://www.classcentral.com/course/auc-3008?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">La Constitución no Escrita de América</a> de la <em>Universidad de Yale</em> ★★★★★(3)</li><li><a href="https://www.classcentral.com/course/edx-juryx-deliberations-for-social-change-3188?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">JuryX: Deliberaciones para el Cambio Social</a> de la <em>Universidad de Harvard</em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-monasteries-schools-and-notaries-part-2-introduction-to-the-transitional-gothic-script-3871?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Monasterios, Escuelas, y Notarias, Parte 2: Introducción A los Escritos Transicionales Góticos</a> de la <em>Universidad de</em> <em><em><em><em>Harvard</em></em></em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-the-history-of-medieval-medicine-through-jewish-manuscripts-6301?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">La Historia de la Medicina Medieval a través de los Manuscritos Judios</a> de la Universidad de<em><em><em><em> </em></em></em>Pensilvania</em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/positive-psychology-resilience-8331?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Psicología Positiva: Habilidades de Resilencia</a> de la <em><em><em><em>Universi</em></em></em>dad<em><em><em> </em></em></em>de<em><em><em> </em></em></em>Pensilvania</em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/introduction-psychology-12509?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción a la Psicología</a> de la <em>Universidad de Yale</em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/money-banking-6632?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Economía del Dinero y la Banca</a> de la <em>Universidad de</em> <em><em><em><em>Columbia</em></em></em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-making-government-work-in-hard-places-4562?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Realizando el Trabajo de Gobierno en Lugares Difícules</a> de la <em>Universidad de</em> <em><em><em><em>Princeton</em></em></em></em> ★★★★★(2)</li><li>De E<a href="https://www.classcentral.com/course/edx-wiretaps-to-big-data-1492?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">scribir Aplicaciones al Big Data</a> de la Universidad <em><em><em><em>Cornell</em></em></em></em> ★★★★☆(2)</li><li><a href="https://www.classcentral.com/course/edx-networks-crowds-and-markets-1565?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Redes, Ruido y Mercados</a> de la <em>Universidad <em><em><em>Cornell</em></em></em></em> ★★★★☆(2)</li><li><a href="https://www.classcentral.com/course/edx-predictionx-diviner-s-guide-8717?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">PredicciónX: Guía del Adivino</a> de la <em>Universidad de Harvard</em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/edx-scrolls-in-the-age-of-the-book-3508?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Pergaminos en la era del libro</a> de la <em>Universidad de Harvard</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-the-history-of-the-book-in-17th-and-18th-century-europe-3880?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">La historia del libro en la Europa de los siglos XVII y XVIII</a> de la <em>Universidad de Harvard</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-central-challenges-of-american-national-security-strategy-and-the-press-1231?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Retos Centrales de la seguridad nacional americana, la estrategia y la prensa</a> de la Universidad de <em><em><em><em>Harvard</em></em></em></em> ★★★☆☆(1)</li><li><a href="https://www.classcentral.com/course/edx-print-and-manuscript-in-western-europe-asia-and-the-middle-east-1450-1650-3872?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Impresión y manuscrito en Europa Occidental, Asia y el Medio Oriente (1450-1650)</a> de la <em>Universidad de Harvard</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/media-2839?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Inglés para la alfabetización mediática</a> de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/microeconomics-part2-5295?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Microeconomía: Cuando los mercados fallan</a> <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/political-philosophy-2-4171?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Ideas revolucionarias: Fronteras, Elecciones, Constituciones, Cárceles</a> de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/positive-psychology-applications-8332?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Psicología Positiva: Aplicaciones e intervenciones</a> de la <em>Universidad de<em><em><em> </em></em></em>Pensilvania</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/positive-psychology-visionary-science-8337?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Psicología Positiva: La Ciencia Visionaria de Martin E. P. Seligman</a> de la Universidad de <em>Pensilvania</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-intellectual-property-law-and-policy-part-2-6490?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Derecho y política de la propiedad intelectual: Parte 2</a> de la Universidad de <em>Pensilvania</em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/networkdynamics-9306?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Dinámica de Redes de Comportamiento Social</a> de la Universidad de <em>Pensilvania</em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/norms-5910?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Normas Sociales, Cambio Social I</a> de la Universidad de <em>Pensilvania</em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/edx-intellectual-property-law-and-policy-part-1-5001?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Derecho y política de la propiedad intelectual: Parte 1</a> de la Universidad de <em>Pensilvania</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/wharton-corruption-6888?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Corrupción</a> de la Universidad de <em>Pensilvania</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/change-7429?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Normas Sociales, Cambio Social II</a> de la Universidad de <em>Pensilvania</em> ★★☆☆☆(1)</li><li><a href="https://www.classcentral.com/course/everyday-parenting-8875?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">La paternidad cotidiana: El ABC de la crianza de niños</a> de la Universidad de Yale ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-global-muckraking-investigative-journalism-and-global-media-8029?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Global Muckraking: Periodismo de Investigación y Medios Globales</a> de la Universidad de Columbia ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-risk-return-9062?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Riesgo y Retorno</a> de la Universidad de Columbia ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/edx-reclaiming-broken-places-introduction-to-civic-ecology-2811?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Recuperando lugares rotos: Introducción a la Ecología Cívica</a> de la Universidad de Cornell ★★★☆☆(1)</li><li><a href="https://www.classcentral.com/course/edx-u-s-public-policy-social-economic-and-foreign-policies-11696?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Política Pública de los Estados Unidos: Políticas sociales, económicas y exteriores</a> de la Universidad de Harvard</li><li><a href="https://www.classcentral.com/course/edx-u-s-public-policy-social-economic-and-foreign-policies-11696?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">La política ciudadana en América: Opinión Pública, Elecciones, Grupos de Interés y Medios de Comunicación</a> de la Universidad de Harvard</li><li><a href="https://www.classcentral.com/course/edx-american-government-constitutional-foundations-11664?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Gobierno Americano: Fundaciones constitucionales</a> de la Universidad de Harvard</li><li><a href="https://www.classcentral.com/course/edx-citiesx-the-past-present-and-future-of-urban-life-9738?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">CitiesX: El pasado, presente y futuro de la vida urbana</a> de la Universidad de Harvard</li><li><a href="https://www.classcentral.com/course/edx-u-s-political-institutions-congress-presidency-courts-and-bureaucracy-11694?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Instituciones políticas de los Estados Unidos: Congreso, Presidencia, Cortes y Burocracia</a> de la Universidad de Harvard</li><li><a href="https://www.classcentral.com/course/edx-child-protection-children-s-rights-in-theory-and-practice-12686?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Protección de la Infancia: Los derechos de los niños en la teoría y la práctica</a> de la Universidad de Harvard</li><li><a href="https://www.classcentral.com/course/positive-psychology-project-8330?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Proyecto de Especialización en Psicología Positiva: Diseña tu vida para el bienestar</a> de la Universidad de <em>Pensilvania</em></li><li><a href="https://www.classcentral.com/course/edx-creating-an-effective-child-welfare-system-11665?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Creando un sistema efectivo de bienestar infantil</a> de la Universidad de <em>Pensilvania</em></li><li><a href="https://www.classcentral.com/course/trademark-law-13467?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Derecho de marcas</a> de la Universidad de <em>Pensilvania</em></li><li><a href="https://www.classcentral.com/course/exploring-renewable-energy-17025?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Explorando los esquemas de energía renovable</a> de la Universidad de <em>Pensilvania</em></li><li><a href="https://www.classcentral.com/course/introduction-intellectual-property-13446?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción a la propiedad intelectual</a> de la Universidad de <em>Pensilvania</em></li><li><a href="https://www.classcentral.com/course/positive-psychology-methods-8335?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Psicología Positiva: Carácter, agallas y métodos de investigación</a> de la Universidad de <em>Pensilvania</em></li><li><a href="https://www.classcentral.com/course/edx-the-top-10-social-issues-for-the-first-100-days-7586?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Los 10 temas sociales más importantes de los primeros 100 días</a> de la Universidad de <em>Pensilvania</em></li><li><a href="https://www.classcentral.com/course/contracts-1-12714?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Derecho Contractual Americano I</a> de la Universidad de Yale</li><li><a href="https://www.classcentral.com/course/contracts-1-12714?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020https://www.classcentral.com/course/edx-freedom-of-expression-and-information-in-the-time-of-globalization-foundational-course-15198?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Derecho contractual americano II</a> de la Universidad de Yale</li><li><a href="https://www.classcentral.com/course/edx-freedom-of-expression-and-information-in-the-time-of-globalization-advanced-course-15199?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">La libertad de expresión e información en la época de la globalización: Curso fundamentos</a> de la Universidad de Columbia</li><li><a href="https://www.classcentral.com/course/edx-freedom-of-expression-and-information-in-the-time-of-globalization-foundational-course-15198?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">La libertad de expresión e información en la época de la globalización: Curso avanzado </a>de la Universidad de Columbia</li><li><a href="https://www.classcentral.com/course/health-housing-educational-services-12826?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Servicios de salud, vivienda y educación</a> de la Universidad de Columbia</li><li><a href="https://www.classcentral.com/course/welfare-state-origin-12820?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Servicios Sociales para Familias, Ancianos y Discapacitados</a> de la Universidad de Columbia</li><li><a href="https://www.classcentral.com/course/welfare-state-origin-12820?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Servicios Sociales de los Estados Unidos: ¿De dónde vinieron?</a> de la Universidad de Columbia</li><li><a href="https://www.classcentral.com/course/poverty-population-demographics-policy-12818?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Pobreza y población: Cómo la demografía moldea la política</a> de la Universidad de Columbia</li><li><a href="https://www.classcentral.com/course/welfare-state-12819?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Los servicios sociales de EE.UU. comparados</a> con los de la Universidad de Columbia</li><li><a href="https://www.classcentral.com/course/edx-freedom-of-expression-in-the-age-of-globalization-6646?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Libertad de expresión en la era de la globalización</a> de la Universidad de Columbia</li><li><a href="https://www.classcentral.com/course/edx-protecting-children-in-humanitarian-settings-14482?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Protección de los niños en entornos humanitarios</a> de la Universidad de Columbia</li><li><a href="https://www.classcentral.com/course/edx-structuring-successful-business-deals-8285?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Estructuración de negocios exitosos</a> de la Universidad de Cornell</li></ul><h1 id="salud-y-medicina-32-">Salud y Medicina<strong><strong><strong> (32)</strong></strong></strong></h1><ul><li><a href="https://www.classcentral.com/course/science-of-meditationm-1355?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Budismo y Psicología Moderna</a> de la Universidad de Princeton ★★★★(26)</li><li><a href="https://www.classcentral.com/course/edx-humanitarian-response-to-conflict-and-disaster-6569?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Respuesta humanitaria a los conflictos y desastres</a> de la Universidad de Harvard ★★★★★(5)</li><li><a href="https://www.classcentral.com/course/breast-cancer-causes-prevention-6044?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción al cáncer de mama</a> de la Universidad de Yale ★★★★(5)</li><li><a href="https://www.classcentral.com/course/dentmedpenn-2902?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción a la medicina dental</a> de la Universidad de <em>Pensilvania</em> ★★★★☆(4)</li><li><a href="https://www.classcentral.com/course/edx-improving-global-health-focusing-on-quality-and-safety-1950?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Mejorando la salud mundial: Enfocandose en la calidad y la seguridad</a> de la Universidad de Harvard ★★★★☆(3)</li><li><a href="https://www.classcentral.com/course/edx-going-out-on-a-limb-anatomy-of-the-upper-limb-4520?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Tomar riesgos: Anatomía del miembro superior</a> de la Universidad de <em>Pensilvania</em> ★★★★★☆(3)</li><li><a href="https://www.classcentral.com/course/edx-united-states-health-policy-1616?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Política de Salud de los Estados Unidos</a> de la Universidad de Harvard ★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-fundamentals-of-clinical-trials-924?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Fundamentos de los ensayos clínicos</a> de la Universidad de Harvard ★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-anatomyx-musculoskeletal-cases-2024?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">AnatomyX: Casos musculoesqueléticos</a> de la Universidad de Harvard ★★★★(2)</li><li><a href="https://www.classcentral.com/course/trunk-anatomy-10390?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Anatomía del Tórax, Abdomen y Pelvis</a> de la Universidad de Yale ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-the-science-and-politics-of-the-gmo-6501?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">La Ciencia y la Política de los OGM</a> de la Universidad de Cornell ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-global-health-case-studies-from-a-biosocial-perspective-1619?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Estudios de casos de salud global desde una perspectiva biosocial</a> de la Universidad de Harvard ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-readings-in-global-health-5178?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Lecturas acerca de la Salud Global</a> de la Universidad de Harvard ★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-health-and-society-923?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Salud y Sociedad</a> de la Universidad de Harvard ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-the-opioid-crisis-in-america-7830?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">La Crisis de los Opiáceos en América</a> de la Universidad de Harvard ★★★★(1)</li><li><a href="https://www.classcentral.com/course/wo-pmo-healthcareinnovation-10802?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Inovación en los Sistemas de Salud</a> de la Universidad de <em>Pensilvania</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/essentials-global-health-7337?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Fundamentos sobre la Salud Mundial</a> de la Universidad de Yale ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/edx-strengthening-community-health-worker-programs-13318?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Fortalecimiento de los programas de trabajadores de la salud</a> de la comunidad de la Universidad de Harvard</li><li><a href="https://www.classcentral.com/course/edx-practical-improvement-science-in-health-care-a-roadmap-for-getting-results-5003?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">La ciencia de la mejora práctica en la atención de la salud: Una guía para obtener resultados</a> de la Universidad de Harvard</li><li><a href="https://www.classcentral.com/course/edx-innovating-in-health-care-1614?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Innovando en el cuidado de la salud</a> de la Universidad de Harvard</li><li><a href="https://www.classcentral.com/course/edx-prescription-drug-regulation-cost-and-access-current-controversies-in-context-13246?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Regulación, costo y acceso de los medicamentos de prescripción: Controversias actuales en contexto</a> de la Universidad de Harvard</li><li><a href="https://www.classcentral.com/course/edx-lessons-from-ebola-preventing-the-next-pandemic-4879?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Lecciones del Ébola: Prevención de la próxima pandemia</a> de la Universidad de Harvard</li><li><a href="https://www.classcentral.com/course/feedingtheworld-3913?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Alimentando al mundo</a> de la Universidad de <em>Pensilvania</em></li><li><a href="https://www.classcentral.com/course/oralcavity-9263?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">La cavidad oral: Portal para la Salud y la Enfermedad</a> de la Universidad de <em>Pensilvania</em></li><li><a href="https://www.classcentral.com/course/health-economics-us-healthcare-systems-10796?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">La economía de la prestación de servicios de salud</a> de la Universidad de <em>Pensilvania</em></li><li><a href="https://www.classcentral.com/course/addiction-treatment-17925?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Tratamiento de adicciones: Habilidades clínicas para proveedores de salud</a> de la Universidad de Yale</li><li><a href="https://www.classcentral.com/course/edx-pediatric-hiv-nursing-11350?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Enfermería pediátrica del VIH</a> de la Universidad de Columbia</li><li><a href="https://www.classcentral.com/course/edx-fighting-hiv-with-antiretroviral-therapy-implementing-the-treat-all-approach-11351?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Combatir el VIH con terapia antirretroviral: Implementando el enfoque "Tratar a todos"</a> de la Universidad de Columbia</li><li><a href="https://www.classcentral.com/course/edx-soins-infirmiers-en-vih-pediatrique-13333?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Cuidados de enfermería en el VIH pediátrico</a> de la Universidad de Columbia</li><li><a href="https://www.classcentral.com/course/edx-traitement-antiretroviral-pour-lutter-contre-le-vih-mise-en-oeuvre-de-l-approche-traiter-tout-le-monde-13312?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Tratamiento antiretroviral para la lucha contra el VIH: Implementando el enfoque "Trate a todos"</a> de la Universidad de Columbia.</li><li><a href="https://www.classcentral.com/course/edx-beyond-medical-histories-gaining-insight-from-patient-stories-11762?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Más allá de las historias médicas: Obteniendo una visión de las historias</a> de los pacientes de la Universidad de Brown</li><li><a href="https://www.classcentral.com/course/edx-artful-medicine-8541?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Medicina Artística</a> de la Universidad de Brown</li></ul><h1 id="ingenier-a-15-">Ingeniería<strong><strong><strong> (15)</strong></strong></strong></h1><ul><li><a href="https://www.classcentral.com/course/edx-the-art-of-structural-engineering-vaults-12040?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">El arte de la ingeniería estructural: Bóvedas</a> de la Universidad de Princeton ★★★★★(18)</li><li><a href="https://www.classcentral.com/course/robotics-flight-5025?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Robótica: Robótica Aérea</a> de la Universidad de <em>Pensilvania</em> ★★★★☆(9)</li><li><a href="https://www.classcentral.com/course/edx-the-art-of-structural-engineering-bridges-4561?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">El arte de la ingeniería estructural: Puentes</a> de la Universidad de Princeton ★★★★☆(6)</li><li><a href="https://www.classcentral.com/course/robotics-computation-5029?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Robótica: Planeación de Movimiento Computacional</a> de la Universidad de <em>Pensilvania</em> ★★★★☆(4)</li><li><a href="https://www.classcentral.com/course/edx-energy-within-environmental-constraints-6021?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Energía dentro de las restricciones ambientales</a> de la Universidad de Harvard ★★★★★(3)</li><li><a href="https://www.classcentral.com/course/robotics-mobility-5032?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020"></a><a href="https://www.classcentral.com/course/robotics-mobility-5032?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Robótica: Movilidad</a> de la Universidad de <em>Pensilvania</em> ★★★☆☆(2)</li><li><a href="https://www.classcentral.com/course/edx-robotics-kinematics-and-mathematical-foundations-8197?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Robótica: Fundamentos Cinemáticos y Matemáticos</a> de la Universidad de <em>Pensilvania</em> ★☆☆☆☆(2)</li><li><a href="https://www.classcentral.com/course/edx-robotics-7241?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Robótica</a> de la Universidad de Columbia ★★★☆☆(2)</li><li><a href="https://www.classcentral.com/course/edx-a-hands-on-introduction-to-engineering-simulations-5850?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Una introducción práctica a las simulaciones de Ingeniería</a> de la Universidad de Cornell ★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-the-engineering-of-structures-around-us-3208?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">La ingeniería de las estructuras que nos rodean</a> desde Dartmouth ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/robotics-estimation-and-learning-5030?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Robótica: Estimación y Aprendizaje</a> de la Universidad de <em>Pensilvania</em> ★★☆☆☆(1)</li><li><a href="https://www.classcentral.com/course/mosfet-547?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Transistores MOS</a> de la Universidad de Columbia ★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-robotics-dynamics-and-control-8196?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Robótica: Dinámica y Control</a> de la Universidad de <em>Pensilvania</em></li><li><a href="https://www.classcentral.com/course/edx-robotics-locomotion-engineering-8204?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Robótica: Ingeniería de Locomoción</a> de la Universidad de <em>Pensilvania</em></li><li><a href="https://www.classcentral.com/course/edx-introduction-to-engineering-and-design-12329?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción a la Ingeniería y el Diseño</a> de la Universidad de Brown</li></ul><h1 id="educaci-n-y-ense-anza-21-">Educación y Enseñanza<strong><strong><strong> (21)</strong></strong></strong></h1><ul><li><a href="https://www.classcentral.com/course/edx-leaders-of-learning-2027?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Líderes de Aprendizaje</a> de la Universidad de Harvard ★★★★☆(15)</li><li><a href="https://www.classcentral.com/course/usuniversities-1620?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Aplicando a las Universidades de EE.UU.</a> de la Universidad de <em>Pensilvania</em> ★★★★☆(10)</li><li><a href="https://www.classcentral.com/course/edref-2793?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Reforma de la Educación Americana: Historia, Política, Práctica</a> de la Universidad de <em>Pensilvania</em> ★★★★★(9)</li><li><a href="https://www.classcentral.com/course/edx-saving-schools-mini-course-1-history-and-politics-of-u-s-education-2365?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Mini-Curso Salvando Escuelas 1: Historia y Política de la Educación de los Estados Unidos</a> de la Universidad de Harvard ★★★★☆(3)</li><li><a href="https://www.classcentral.com/course/edx-saving-schools-mini-course-2-teacher-policies-2812?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Salvando a las escuelas, Mini-Curso 2: Políticas de los profesores</a> de la Universidad de Harvard ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/edx-saving-schools-mini-course-3-accountability-and-national-standards-2695?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Salvando a las escuelas, Mini-Curso 3: Responsabilidad y Estándares Nacionales</a> de la Universidad de Harvard ★★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/edx-saving-schools-mini-course-4-school-choice-2696?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Salvando a las escuelas, Mini-Curso 4: Elección de Escuela</a> de la Universidad de Harvard ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/edx-introduction-to-online-and-blended-teaching-8856?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción a la enseñanza en línea y mixta</a> de la Universidad de <em>Pensilvania</em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/applying-to-college-7504?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Cómo aplicar a la Universidad</a> de la Universidad de <em>Pensilvania</em> ★★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/classdiscussion-7421?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Orquestando la discusión en toda la clase</a> de la Universidad de Pensilvania ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/canvas-network-analytics-in-course-design-leveraging-canvas-data-he-6668?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Analítica en el diseño del curso: Aprovechando los datos del lienzo (HE)</a> de Dartmouth ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/edx-introduction-to-family-engagement-in-education-6513?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción a la participación familiar en la educación</a> de la <em>Universidad de Harvard</em></li><li><a href="https://www.classcentral.com/course/edx-introduction-to-data-wise-a-collaborative-process-to-improve-learning-teaching-3395?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción a Data Wise: Un proceso de colaboración para mejorar el aprendizaje y la enseñanza</a> de la <em>Universidad de Harvard</em></li><li><a href="https://www.classcentral.com/course/edx-saving-schools-8616?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Salvar las escuelas</a> de la <em>Universidad de Harvard</em></li><li><a href="https://www.classcentral.com/course/edx-understanding-classroom-interaction-7198?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Comprendiendo la interacción en el aula</a> de la <em>Universidad de Pensilvania</em></li><li><a href="https://www.classcentral.com/course/edx-the-science-of-learning-what-every-teacher-should-know-5725?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">La Ciencia del Aprendizaje - Lo que todo profesor debe saber</a> de la <em>Universidad de Columbia</em></li><li><a href="https://www.classcentral.com/course/edx-innovating-instruction-reimagining-teaching-with-technology-8019?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Instrucción innovadora: Reimaginando la enseñanza con tecnología</a> de la <em>Universidad de Columbia</em></li><li><a href="https://www.classcentral.com/course/edx-university-studies-for-student-veterans-9129?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Estudios universitarios para estudiantes veteranos</a> de la <em>Universidad de Columbia</em></li><li><a href="https://www.classcentral.com/course/edx-inclusive-teaching-supporting-all-students-in-the-college-classroom-13690?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Enseñanza inclusiva: Apoyar a todos los estudiantes en el aula del colegio</a> de la <em>Universidad de Columbia</em></li><li><a href="https://www.classcentral.com/course/edx-attaining-higher-education-13336?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Obtención de una educación superior</a> en la <em>Universidad de Columbia</em></li><li><a href="https://www.classcentral.com/course/edx-teaching-learning-in-the-diverse-classroom-15171?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Enseñar y aprender en el aula diversa</a> de la <em>Universidad de Cornell</em></li></ul><h1 id="matem-ticas-14-">Matemáticas<strong><strong><strong> (14)</strong></strong></strong></h1><ul><li></li><li><a href="https://www.classcentral.com/course/edx-introduction-to-linear-models-and-matrix-algebra-2963?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción a los modelos lineares y al álgebra de matrices</a> de la <em>Universidad de Harvard</em> ★★★★(8)</li><li><a href="https://www.classcentral.com/course/single-variable-calculus-5066?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Cálculo: Variable Única Parte 1 - Funciones</a> de la <em>Universidad de Pensilvania</em> ★★★★★(7)</li><li><a href="https://www.classcentral.com/course/differentiation-calculus-5068?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Cálculo: Variable única Parte 2 - Diferenciación</a> de la <em>Universidad de Pensilvania</em> ★★★★★(4)</li><li><a href="https://www.classcentral.com/course/integration-calculus-5069?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Cálculo: Variable Única Parte 3 - Integración</a> de la <em>Universidad de Pensilvania</em> ★★★★☆(4)</li><li><a href="https://www.classcentral.com/course/edx-fat-chance-probability-from-the-ground-up-10159?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Fat Chance: Probabilidad desde el suelo</a> de la <em>Universidad de Harvard</em> ★★★★★(3)</li><li><a href="https://www.classcentral.com/course/edx-statistical-inference-and-modeling-for-high-throughput-experiments-2967?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Inferencia estadística y modelación para experimentos de alto rendimiento</a> de la <em>Universidad de Harvard</em> ★★★★★(3)</li><li><a href="https://www.classcentral.com/course/applications-calculus-5070?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Cálculo: Variable Única Parte 4 - Aplicaciones</a> de la <em>Universidad de Pensilvania</em> ★★★★★(3)</li><li><a href="https://www.classcentral.com/course/ac-922?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Analytic Combinatorics</a> de la <em>Universidad de Princeton</em> ★★★★☆(2)</li><li><a href="https://www.classcentral.com/course/crash-course-in-causality-8425?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Un curso acelerado de Causalidad: Infiriendo efectos causales de los datos de observación</a> de la <em>Universidad de Pensilvania</em> ★★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/edx-calculus-applied-8778?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">¡Cálculo Aplicado!</a> de la <em>Universidad de Harvard</em></li><li><a href="https://www.classcentral.com/course/edx-introduction-to-probability-11423?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción a la Probabilidad</a> de la <em>Universidad de Harvard</em></li><li><a href="https://www.classcentral.com/course/discrete-calculus-5067?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Cálculo de la Variable Única</a> de la <em>Universidad de Pensilvania</em></li><li><a href="https://www.classcentral.com/course/causal-inference-12136?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Inferencia causal</a> de la <em>Universidad de Columbia</em></li><li><a href="https://www.classcentral.com/course/causal-inference-2-13095?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Inferencia causal 2</a> de la <em>Universidad de Columbia</em></li></ul><h1 id="desarrollo-personal-7-">Desarrollo personal<strong><strong><strong> (7)</strong></strong></strong></h1><ul><li><a href="https://www.classcentral.com/course/negotiation-4336?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Introducción a la negociación: Un libro de estrategias para convertirse en un negociador persuasivo y con principios</a> de la <em>Universidad de Yale</em> ★★★★★(8)</li><li><a href="https://www.classcentral.com/course/canvas-network-a-preview-course-on-collaborative-knowledge-services-6075?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Un curso preliminar sobre Servicios de Conocimiento Colaborativo</a> de la <em>Universidad de Columbia</em> ★★★★(3)</li><li><a href="https://www.classcentral.com/course/wharton-succcess-6893?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">El éxito</a> de la <em>Universidad de Pensilvania</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/wharton-communication-skills-8235?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Mejorando las habilidades de comunicación</a> de la <em>Universidad de Pensilvania </em>★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-rhetoric-the-art-of-persuasive-writing-and-public-speaking-16993?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Retórica: El arte de la escritura persuasiva y de hablar en público</a> de la <em>Universidad de Harvard</em></li><li><a href="https://www.classcentral.com/course/negotiation-ar-13419?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">مقدمة عن التفاوض: دليل استراتيجي لتصبح مُفاوضًا ذا مبادئ ومُقنعًا</a> de la <em>Universidad de Yale</em></li><li><a href="https://www.classcentral.com/course/edx-find-your-calling-career-transition-principles-for-returning-veterans-12258?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2020">Encuentra tu llamado: Principios de transición de carrera para los veteranos que regresan</a> de la <em>Universidad de Columbia</em></li></ul> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Como borrar una branch de Git en ambos repositorios, local y remoto ]]>
                </title>
                <description>
                    <![CDATA[ En la mayoría de los casos, es muy simple el borrar una branch de Git. Ahora aprenderás en este artículo como borrar ambas branches, tanto la local como la remota. Versión TL;DR // para borrar la branch local git branch -d localBranchName // para borrar la branch remota git push ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/como-borrar-una-branch-de-git-en-ambos-repositorios-local-y-remoto/</link>
                <guid isPermaLink="false">5fb8bc708c7cd154bb970d78</guid>
                
                    <category>
                        <![CDATA[ Git ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Arturo Maltos ]]>
                </dc:creator>
                <pubDate>Sat, 21 Nov 2020 16:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2020/11/photo-1521675333836-36e707ac1d20-1-.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artículo original:</strong> <a href="https://www.freecodecamp.org/news/how-to-delete-a-git-branch-both-locally-and-remotely/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How to Delete a Git Branch Both Locally and Remotely</a>
      </p><p>En la mayoría de los casos, es muy simple el borrar una branch de Git. Ahora aprenderás en este artículo como borrar ambas branches, tanto la local como la remota.</p><h3 id="versi-n-tl-dr"><strong>Versión <strong>TL;DR</strong></strong></h3><pre><code class="language-bash">// para borrar la branch local
git branch -d localBranchName

// para borrar la branch remota
git push origin --delete remoteBranchName
</code></pre><h2 id="cuando-borrar-branches"><strong>Cuando borrar branches</strong></h2><p>Es común tener diferentes branches en un repositorio Git. Son una gran forma de trabajar con diferentes funcionalidades y correcciones mientras el código nuevo se mantiene aislado del código base existente.</p><p>Los repositorios frecuentemente tienen una branch &nbsp;<code>main</code> para el código principal y los desarrolladores crean diferentes branches para trabajar en diferentes funcionalidades.</p><p>Cuando el trabajo de una nueva funcionalidad se completa, frecuentemente se recomienda eliminar la branch asociada a esta funcionalidad.</p><h2 id="borrar-una-branch-local"><strong>Borrar una branch LOCAL</strong></h2><p>Git no te permitirá borrar una branch en la que te encuentres ubicado, así que debes asegurarte primero de hacer checkout a una branch que no estes intentando borrar. Por ejemplo: <code>git checkout main</code></p><p>Borra una branch local con <code>git branch -d &lt;branch&gt;</code>.</p><p>Por ejemplo: <code>git branch -d fix/authentication</code></p><p>La opción <code>-d</code> eliminará la branch únicamente si esta ha sido empujada y fusionada con la branch remota. Utiliza <code>-D</code> si deseas forzar la eliminación de una branch, incluso si aún esta no ha sido empujada o fusionada aún.</p><p>La branch ya esta borrada localmente.</p><h2 id="borrar-una-branch-remota"><strong>Borrar una branch REMOTA</strong></h2><p>Este es el comando para borrar una branch remota: <code>git push &lt;remote&gt; --delete &lt;branch&gt;</code>.</p><p>Por ejemplo: <code>git push origin --delete fix/authentication</code></p><p>La branch ya esta eliminada de forma remota.</p><p>También puedes utilizar este comando corto para borrar una branch remota: <code>git push &lt;remote&gt; :&lt;branch&gt;</code></p><p>Por ejemplo: <code>git push origin :fix/authentication</code></p><p>Si aparece el siguiente error, esto quiere decir que alguien mas ya ha borrado previamente la branch.</p><pre><code class="language-bash">error: unable to push to unqualified destination: remoteBranchName The destination refspec neither matches an existing ref on the remote nor begins with refs/, and we are unable to guess a prefix based on the source ref. error: failed to push some refs to 'git@repository_name'
</code></pre><p>Intenta sincronizar tu lista de branches utilizando:</p><pre><code>git fetch -p
</code></pre><p>La flag <code>-p</code> significa "prune". Después de hacer el fetching, las branches que ya no existan en el repositorio remoto serán eliminadas en el repositorio local.</p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
