Así aprendi Solidity
Tags: solidity, devjournal, codenewbie
Published: 2022-07-13 01:50:30

A principios del 2022, decidí dedicar mi tiempo libre a aprender acerca de Solidity (Lenguaje de Ethereum para Contratos Inteligentes). Debido a el auge que tuvieron las Criptomonedas, NFT’s, Finanzas Descentralizadas (DeFi) y todos los productos derivados de la tecnología Blockchain en Ethereum, ya que luego de haber invertido en algunos proyectos se despertó mi interés por entender cómo funcionaba esta tecnología y el por qué los proyectos eran tan valiosos, aquí fue cuando inicie mi camino para aprender acerca de programación y el desarrollo de proyectos en Blockchain.

Luego de sumergirme en el mundo de las inversiones y ver a muchas personas impulsando proyectos basados en Ethereum, como todas las famosas Criptomonedas basadas en el token ERC20, o los NFT’s que vimos venderse a precios exorbitantes a través de los tokens ERC721 y ERC1125.

Habiendo contado un poco de mi historia empecemos con los temas importantes.


## **¿Qué es Solidity?**

Solidity es un lenguaje de programación creado entre 2014-2015 por Gavin Wood como un lenguaje informático Turing completo para interactuar con la máquina virtual de Ethereum. Turing completo significa que es un sistema que puede resolver cualquier problema computacional e implementar cualquier estructura compleja.

Este lenguaje les permite a los desarrolladores crear 
> 
protocolos de transacciones informatizados que ejecutan las condiciones de un contrato _smart contracts. (Nick Szabo).

La sintaxis es similar a la de JavaScript y es un lenguaje de tipado estático (como Java, C o C++) en el que los tipos de variables se conocen en tiempo de compilación. Lo que lo hace bastante comprensible para la mayoría de los programadores.


#**¿Qué es lo que Solidity puede hacer?**


Solidity == Contratos Inteligentes.

Los contratos inteligentes le dan poder al ecosistema de Ethereum y gracias a estos se han podido desarrollar grandes proyectos desde su nacimiento, dentro de los cuales podemos encontrar: 

- Los Tokens No Fungibles (NFT)
- Ecosistemas basados en Contratos Inteligentes
- Garantías inmobiliarias
- Finanzas descentralizadas (DeFi)
- Monedas estables (Stablecoins)
- Prestamos Criptos (Lending)
- Derivados

Y existen muchísimas aplicaciones mas para los contratos inteligentes.


#**El Proceso de aprendizaje**

Cuando se trata de aprender una nueva habilidad o algún nuevo lenguaje de programación, normalmente nos sentimos abrumados porque no sabemos por donde iniciar o que dirección tomar. Así que es importante recordar que debemos definirnos un proceso.

Estos son algunos de los pasos que podemos seguir para aprender acerca del Ecosistema de Ethereum y sobre los Contratos Inteligentes. (Cabe mencionar que es importante que tengas conocimiento acerca de algún otro lenguaje de programación).

1. Entender los fundamentos de la tecnología Blockchain es indispensable para desarrollar Contratos Inteligentes y para esto es indispensable estudiar estos documentos [Bitcoin Whitepaper](https://bitcoin.org/bitcoin.pdf) y [Ethereum Whitepaper](https://ethereum.org/en/whitepaper/). 

2. Y si no eres un habido lector, ver algunos videos en YouTube sobre [“Qué es Bitcoin”](https://www.youtube.com/results?search_query=Que+es+bitcoin) y [“Qué es Ethereum”](https://www.youtube.com/results?search_query=Que+es+ethereum) sería de gran ayuda para entender los fundamentos un poco más fácil y rápido.

3. Siempre es importante poder invertir un poco de dinero en nuestro aprendizaje, y poder adquirir algunos cursos en internet o inscribirnos a algún Bootcamp. Yo utilice algunos cursos de la plataforma [Udemy](https://www.udemy.com/courses/search/?src=ukw&q=Solidity). 

4. Ver tutoriales para principiantes sobre Contratos Inteligentes ERC20 o ERC721.

5. La mayoría de los proyectos ya desarrollados sobre el Ecosistema de Ethereum cuentan con la documentación de todo el proyecto en su pagina web, siempre es importante conocer los proyectos existentes, y allí podemos encontrar sus Contratos Inteligentes y echarles un ojo.

6. Después de esto ya podemos seguir algunos tutoriales intermedios acerca de Contratos ERC20 o ERC721.

7. Buscar tutoriales de juegos interactivos como “The Blockchain Game”, [“CryptoZombies”](https://cryptozombies.io/es/), [“Ethernauts”](https://ethernaut.openzeppelin.com/), [“Capture The Ether”](https://capturetheether.com/), etc.

8. Tratar de explicar lo que hemos aprendido siempre es de mucha ayuda, esto nos sirve para afirmar nuestro conocimiento y el manejo de este, plataformas como DEV community sirve para esto.

9. Conocer los entornos de programación es de vital importancia, aprender a utilizar IDEs como [Remix](https://remix.ethereum.org/), [Eth.build](https://eth.build/) o [Replit](https://replit.com/). (¡Atención! Remix y Replit no son solo ambientes de pruebas, estas las podemos utilizar para escribir, compilar y desplegar los Contratos Inteligentes a la Mainnet de Ethereum).

10. 10.	Ya teniendo las bases, podemos seguir con los cursos intensivos para desarrolladores como [ChainShot](https://www.chainshot.com/), [BloomTech](https://www.bloomtech.com/courses/web3), [_buildspace](https://buildspace.so/) o [Pointer](https://www.pointer.gg/).


#**Vídeos explicativos de Bitcoin y Ethereum**

Estos deberían ayudarte a entender los fundamentos de Bitcoin y el último vídeo de Vitalik Buterin (cofundador de Ethereum) es una gran explicación y una introducción a los aspectos técnicos.

{% embed https://youtu.be/bBC-nXj3Ng4 %}

{% embed https://youtu.be/IsXvoYeJxKA %}


#**Cursos de Solidity**

Pagué 10 0 12 dólares por los cursos de abajo y valió la pena increíblemente y pude aprender los fundamentos y hacer ejercicios tutoriales para aprender sobre el funcionamiento de Solidity, los matices, la sintaxis, y hacer algunos proyectos.

He incluido otros cursos gratuitos de Youtube como alternativa.

{% embed https://www.udemy.com/course/conviertete-en-desarrollador-blockchain-con-ethereum/ %}

{% embed https://www.udemy.com/course/complete-dapp-solidity-react-blockchain-development/ %}

{% embed https://www.udemy.com/course/blockchain-developer/ %}

{% embed https://www.udemy.com/course/master-ethereum-and-solidity-programming-with-real-world-apps/ %}

{% embed https://youtu.be/ipwxYa-F1uY %}

{% embed https://youtu.be/ipwxYa-F1uY %}

{% embed https://youtu.be/v_hU0jPtLto %}


#**Tutoriales para principiantes**

Estos tutoriales te ayudarán a ampliar los cursos anteriores y a poner a prueba sus conocimientos de Solidity y a crear aplicaciones reales con la web y EVM.

{% embed https://www.ludu.co/course/ethereum/what-is-ethereum %}

{% embed https://medium.com/pinata/how-to-build-erc-721-nfts-with-ipfs-e76a21d8f914 %}

{% embed https://youtu.be/ghwwOeNXa9s %}


#**Tutoriales de nivel medio**

Utiliza estos tutoriales para ampliar los tutoriales para intermedios y profundizar en las pruebas, el gráfico, Hardhat, y aprender las interfaces web3 con React.

{% embed https://dev.to/dabit3/the-complete-guide-to-full-stack-ethereum-development-3j13 %}


#**Grandes YouTubers a seguir**

Los siguientes Youtubers son recursos impresionantes para ayudarte a entender lo que está sucediendo en el espacio de Ethereum y enseñarte los fundamentos.

{% embed https://www.youtube.com/channel/UCY0xL8V6NzzFcwzHCgB8orQ %}

{% embed https://www.youtube.com/channel/UCZM8XQjNOyG2ElPpEUtNasA
%}

{% embed https://www.youtube.com/channel/UCh1ob28ceGdqohUnR7vBACA %}

{% embed https://www.youtube.com/channel/UCL0J4MLEdLP0-UyLu0hCktg %}

{% embed https://www.youtube.com/c/filosofiacodigo %}

**Realmente espero que este Blogpost y estos recursos te ayuden a trazar un camino o te ayuden en la construcción de tu carrera como desarrollador Blockchain.** 

**¡Por favor, tus comentarios siempre son bien recibidos, déjenme saber que les pareció el Post y si saben de algún otro recurso de habla Hispana que podamos agregar, me encantaría conocerlo y agregarlo!**   

**Y si este contenido te gusto, si no es mucho pedir me encantaría que me pudieras seguir en Redes Sociales para poder alcanzar a más personas.**

[Instagram](https://www.instagram.com/pepe_metaverse/)
[Twitter](https://twitter.com/pepe_metaverse)
[TikTok](https://www.tiktok.com/@pepe_metaverse)

**_Saludos, un fuerte abrazo._**