Saltar al contenido
0%

La mejor forma de aprender Solidity gratis (2025)

Escrito por Frederik B

Publicado el 22 de septiembre de 20239 min de lectura

Solidity es un lenguaje de alto nivel orientado a objetos para programar smart contracts. Aprender Solidity te permitirá crear smart contracts y aplicaciones descentralizadas.

Este artículo cubre los métodos más comunes para aprender Solidity e introduce conceptos importantes de Solidity que los estudiantes deben aprender para convertirse en desarrolladores de Ethereum.

¿Por qué es importante aprender Solidity?

Solidity, el lenguaje de programación para escribir smart contracts en Ethereum y blockchains compatibles con EVM, es una de las habilidades más importantes para los desarrolladores blockchain. A medida que crece el ecosistema alrededor de Ethereum y otras plataformas de smart contracts, también crece la demanda de desarrolladores de Solidity.

El salario anual promedio de un Senior Solidity Developer es de $120,000 a $225,000 al año antes de sumar equity en tokens u opciones sobre acciones para empleados. Según cryptocurrencyjobs.co, el salario base promedio de los desarrolladores de Solidity en Estados Unidos es de $127,500, con un salario base mínimo de $80,000 y un salario base máximo de $180,000. En contraste, los desarrolladores remotos ganan entre $111k y $200k al año. Comparado con el salario promedio de un desarrollador basado en Estados Unidos de $103,000, es evidente que la especialización en blockchain tiene una demanda alta.

A continuación se presenta una lista de estructuras salariales por ubicación de los desarrolladores de Solidity al año (en dólares estadounidenses):

  • Norteamérica - $125K-$200K
  • Europa - $80K-$135K
  • Asia - $46K-$116K
  • Oceanía - $85K-$120K
  • Sudamérica - $49K-$150K
  • África - $49K-$75K
  • Remoto - $111K-$200K

Aprender Solidity no solo puede ofrecer grandes oportunidades financieras, sino que también te permite construir aplicaciones increíbles que pueden tener un impacto enorme en el mundo. De hecho, Ethereum por sí solo tiene cerca de 3,000 aplicaciones que cubren objetivos que van desde la inclusión financiera hasta la energía sostenible.

Formas de aprender Solidity

Hay muchas formas de aprender Solidity, incluyendo cursos en línea, bootcamps, tutoriales y la lectura de documentación de herramientas populares de desarrollo en Solidity como Hardhat.

Aprende Solidity con cursos en línea

Los cursos en línea son una excelente forma de aprender Solidity si buscas más estructura y guía que la que ofrecen los tutoriales. Existen muchos cursos de alta calidad disponibles, incluyendo el curso gratuito de desarrollo en Solidity de Alchemy University.

Mientras que los tutoriales se realizan a tu propio ritmo, los cursos en línea suelen tener lecciones y plazos fijos, lo que da a los estudiantes una motivación con límite de tiempo para mantenerse al día. Además, los cursos de Solidity suelen incluir cuestionarios y otras tareas para evaluar tu conocimiento a medida que avanzas.

Aprende Solidity con un bootcamp de Ethereum

Si quieres aprender Solidity y otras habilidades de desarrollo blockchain en un entorno estructurado e inmersivo, un bootcamp de Solidity puede ser la opción adecuada para ti. Los bootcamps de blockchain ofrecen capacitación intensiva y práctica para ayudarte a convertirte en un desarrollador blockchain listo para trabajar.

Después de que Alchemy adquirió ChainShot, Alchemy rediseñó el bootcamp de desarrollo en Ethereum de 7 semanas y $3,000 de ChainShot, y lo ofrece al público de forma GRATUITA bajo Alchemy University. Para aprender Solidity con instructores expertos y junto a compañeros motivados, asegura tu lugar en la fila para el bootcamp de Ethereum de Alchemy University.

Si los desarrolladores son nuevos en el desarrollo en general, el curso intensivo de JavaScript de 3 semanas de Alchemy University es un excelente prerrequisito antes de comenzar un bootcamp de Ethereum.

Aprende Solidity con tutoriales

Si eres autodidacta y quieres aprender a tu propio ritmo, los tutoriales son una excelente forma de aprender Solidity. Hay muchos tutoriales de Solidity de alta calidad disponibles en línea, que van desde niveles principiantes hasta avanzados.

Los recursos oficiales para desarrolladores de Ethereum incluyen 53 tutoriales etiquetados como "Solidity", que cubren desde los fundamentos de los smart contracts hasta temas más avanzados como la optimización de gas y la firma segura.

Conceptos importantes de Solidity para aprender

Una vez que hayas elegido tu método de aprendizaje, es momento de empezar a aprender a programar en Solidity. Hay una serie de conceptos centrales de Solidity que es importante entender para escribir código efectivo.

ABI de Solidity

La Interfaz Binaria de Aplicación (ABI) es un conjunto de reglas que permite que dos piezas de software distintas interactúen entre sí. En el contexto de Solidity, la ABI permite que los smart contracts interactúen entre sí, así como con software externo como wallets.

La ABI te permite escribir código que puede interactuar con cualquier contrato, sin importar si tienes el código fuente o no. Esto es posible porque la ABI incluye toda la información necesaria para codificar y decodificar los datos que se transmiten entre contratos.

Smart contracts

Un smart contract es un fragmento de código que se ejecuta en la blockchain de Ethereum y realiza ciertas acciones cuando se cumple un conjunto de condiciones. Los smart contracts pueden usarse para crear tokens digitales, aplicaciones descentralizadas y más.

Un caso de uso común de los smart contracts es crear un token ERC20, lo cual se puede hacer en solo unas pocas líneas de código. Smart contracts más complejos incluyen swaps de tokens, yield farming y activos sintéticos. Estos contratos se compilan usando un compilador de Solidity, que genera el bytecode usado para desplegar el contrato.

Tokens ERC20

Los tokens ERC20 son un tipo de activo digital que se ejecuta en la blockchain de Ethereum. Suelen usarse para representar activos del mundo real, como materias primas o monedas fiduciarias.

Los tokens ERC20 son el tipo más común de activo digital en Ethereum. Dado que los tokens ERC20 también son uno de los tipos de contratos más fáciles de escribir, aprender a crearlos es una habilidad importante que dominar.

Interfaz de contrato

Una interfaz es una forma de especificar qué funciones debe tener un contrato. Las interfaces te permiten crear contratos que se pueden reutilizar y extender fácilmente. Por ejemplo, podrías crear una interfaz para un contrato de token, y luego cualquier contrato que implemente esa interfaz podrá usarse como token.

Herencia

La herencia es una forma de reutilizar código en Solidity. La herencia te permite crear contratos "hijos" que heredan todo el código de un contrato "padre". Esto permite a los desarrolladores evitar duplicar código y hace que el mantenimiento de smart contracts sea mucho más sencillo.

La herencia es un concepto importante en la programación orientada a objetos, y es una de las cosas que hace tan poderoso a Solidity. Aprender a crear contratos estandarizados que se puedan extender y modificar fácilmente es una lección importante de Solidity que dominar.

Funciones

Como en cualquier lenguaje de programación, las funciones son una parte clave de Solidity. Las funciones de Solidity son fragmentos de código que reciben entradas, realizan alguna acción y devuelven una salida.

Las funciones se pueden escribir dentro de smart contracts de Solidity para realizar todo tipo de acciones, desde enviar tokens hasta almacenar datos. Un conjunto de funciones destinadas a ser reutilizadas se llama librería.

Un principio básico en programación se llama el "principio D.R.Y.", que significa "Don't Repeat Yourself" (no te repitas). Este principio establece que los desarrolladores nunca deberían escribir el mismo fragmento de código dos veces. En cambio, los desarrolladores deberían escribir una función una vez, y luego llamar a esa función cada vez que necesiten realizar esa acción.

Visibilidad de funciones

Algo importante que hay que notar sobre las funciones de Solidity es que tienen configuraciones de visibilidad. La visibilidad determina quién puede ver y ejecutar la función. Hay cuatro niveles de visibilidad en Solidity: public, external, internal y private.

  • Las funciones public pueden ser vistas y ejecutadas por cualquiera.
  • Las funciones external pueden ser vistas por cualquiera pero solo pueden ser ejecutadas por otros contratos.
  • Las funciones internal solo pueden ser vistas y ejecutadas por otras funciones dentro del mismo contrato.
  • Las funciones private solo pueden ser vistas y ejecutadas por el propio contrato.

Función call

La función call te permite ejecutar código en otro contrato. Así es como los contratos interactúan entre sí en Ethereum.

La función call te permite escribir código que puede interactuar con cualquier contrato, sin importar si tienes el código fuente o no. Esto es posible porque la ABI incluye toda la información necesaria para codificar y decodificar los datos que se transmiten entre contratos.

Función delegatecall

La función delegatecall es similar al método call, pero con una diferencia importante: ejecuta el código en el contexto de quien la llama. Esto significa que cualquier cambio en el storage realizado por el contrato llamado se aplicará al storage de quien hizo la llamada.

La función delegatecall te permite escribir contratos que pueden ser reutilizados por otros contratos. Por ejemplo, podrías escribir un contrato que implemente una interfaz, y luego otros contratos podrían hacer delegatecall a ese contrato para usar la interfaz.

Modificadores

Los modificadores son parecidos a las funciones, pero con algunas diferencias importantes. Primero, los modificadores solo se pueden usar en funciones. Segundo, los modificadores se ejecutan antes de que se ejecute la función. Un ejemplo de modificador es payable, que permite que una función reciba Ether en el contrato.

Los modificadores te permiten cambiar el comportamiento de una función sin tocar el código real. Por ejemplo, un modificador podría verificar si un usuario tiene suficiente balance antes de ejecutar una función, o agregar un evento que se dispara cuando se llama a la función.

Arrays

Los arrays son estructuras de datos lineales que almacenan una cantidad fija de elementos del mismo tipo de dato, guardados en ubicaciones de memoria contiguas y adyacentes. Un array puede tener tamaño fijo o dinámico. El tamaño de los arrays dinámicos no está predefinido al declararlos, a diferencia de los arrays fijos, que tienen un tamaño predefinido.

Si los desarrolladores necesitan iterar sobre un conjunto de datos (por ejemplo, usando un loop), entonces deben usar un array. Si no es necesario iterar sobre un conjunto de datos y, en cambio, se pueden recuperar valores a partir de una clave conocida, entonces conviene considerar el uso de mappings.

Structs

Un struct es una forma de almacenar datos en un contrato de Solidity. Los structs son útiles para crear tipos de datos más complejos que tienen múltiples propiedades.

Mappings

Un mapping es una forma de almacenar datos en un contrato de Solidity. Los mappings son similares a los arrays, pero las claves pueden ser de cualquier tipo y no solo enteros. Esta característica hace que los mappings sean versátiles y potentes. Los mappings te permiten almacenar datos en un contrato de una forma flexible y fácil de usar.

Eventos

Los eventos son una forma de disparar la ejecución de código cuando se cumplen ciertas condiciones. Por ejemplo, los desarrolladores pueden escribir un evento que se dispara cuando un usuario compra un token, o cuando una transacción se confirma en la blockchain.

Los eventos de Solidity permiten a los desarrolladores escribir código que se ejecuta en respuesta a eventos del mundo real. Así es como muchas aplicaciones logran interactuar con el mundo real, por ejemplo enviando un correo electrónico o un SMS cuando se cumple una condición.

Require (manejo de errores)

La palabra clave "require" es una de tres funciones especiales: require, assert y revert. Require verifica si una condición es verdadera, y si no lo es, revierte la transacción y devuelve un mensaje de error.

Usar require te permite prevenir que ocurran errores en tu contrato. Por ejemplo, podrías usar require para verificar que un usuario tenga suficiente balance para hacer una compra, o que una dirección sea válida antes de enviar una transacción.

Smart contracts actualizables

Los smart contracts actualizables son un tipo de contrato que puede actualizarse sin necesidad de volver a desplegar el contrato. Los smart contracts actualizables te permiten hacer cambios a un contrato después de haberlo desplegado, sin afectar ninguno de los datos o el código que ya está en la blockchain.

Contratos proxy

Un contrato proxy es un contrato de enrutamiento actualizable diseñado para canalizar llamadas a funciones hacia la implementación más reciente.

De esta forma, los protocolos pueden actualizar sus implementaciones sin requerir que todos los usuarios actualicen su código a la nueva dirección. Al usar un proxy, los builders pueden tener una dirección estática para que sus funciones sean encontradas.

Los contratos proxy tienen una función de actualización que el equipo puede llamar para actualizar la ruta de enrutamiento de funciones hacia nuevas direcciones de contratos de implementación.

Contratos multisig

Un contrato multisig es un tipo de contrato que requiere más de una firma para ejecutar su código. Los contratos multisig de Solidity son útiles cuando los desarrolladores quieren requerir que varias personas aprueben una transacción antes de que se ejecute.

Los contratos multisig también son útiles en casos en los que los desarrolladores quieren limitar la cantidad de dinero que se puede gastar en un período de tiempo determinado. Por ejemplo, podrías usar un contrato multisig para requerir dos firmas en cualquier transacción superior a $1,000.

Ataques de reentrancy

Los ataques de reentrancy son un tipo de ataque que puede ocurrir en contratos de Solidity cuando un contrato llama a otro contrato, y luego el segundo contrato vuelve a llamar al primer contrato u otro contrato no confiable, generalmente antes de que el primer contrato haya terminado de ejecutarse.

Los ataques de reentrancy pueden usarse para explotar vulnerabilidades en contratos. Por ejemplo, un atacante podría usar un ataque de reentrancy para drenar todo el Ether de un contrato.

La mejor forma de aprender Solidity

Sin importar cuáles sean tus objetivos, hay una forma de aprender Solidity que se ajusta a tus necesidades. Si buscas una forma rápida y sencilla de empezar, los tutoriales son una excelente opción. También puedes consultar nuestra introducción a Solidity. Si quieres más estructura y guía, los cursos en línea podrían ser una mejor opción. Y si buscas una experiencia inmersiva y práctica, un bootcamp podría ser la elección correcta.

Una vez que hayas elegido tu método de aprendizaje, hay una serie de conceptos importantes que debes asegurarte de dominar, incluyendo smart contracts, funciones, eventos y más. Al comprender estos conceptos, estarás bien encaminado para convertirte en un desarrollador de Solidity competente.

Background gradient

Construye magia blockchain

Alchemy combina los productos y herramientas de desarrollo Web3 más potentes con recursos, comunidad y un soporte legendario.