¿Por dónde y cómo comenzar para programar en blockchain? Para simplificar el asunto, Criptodinero.es presenta una serie de recursos y también consejos de un programador que comenzó a programar en blockchain utilizando la cadena de bloques EOS.
Recursos para programar en blockchain
¿Buscando material e información para programar en blockchain?
A continuación, una lista parcial y a la vez amplia, incluyendo libros y blogs de referencia, documentos técnicos, academias y cursos online, algunos desarrolladores blockchain Senior a nivel freelance, empresas de desarrollo de blockchain y más…
Materiales sugeridos para comenzar a programar en blockchain
Guías, libros, blogs, institutos especializados en formación de blockchain y otros recursos para quienes quieran iniciarse en la cadena de bloques y edificar por allí sus ideas…
Documentos técnicos
- GitHub – openblockchains/awesome-blockchains (GitHub es espacio web que reúne a millones de desarrolladores, encargados de revisar códigos, alojarlos, administrar proyectos o crear software en conjunto.)
- Program The Blockchain – Recursos recopilados por programadores para hacer contratos inteligentes
- Haseeb-Qureshi/lets-build-a-blockchain – Let’s Build a Blockchain
- CryptoZombis – aprender a desarrollar blockchain, a través de Ethereum DApps, construyendo tu propio juego
- Guía para desarrollar en blockchain publicada en Medium
¿Dónde estudiar blockchain?
Academias y empresas
- The Blockchain Academy
- Certified Blockchain Developer – Blockchain Council
- Consensys Academy (hasta junio 2018, tiempo para inscribirse)
- CryptoCurrency Certification Consortium
- Byte Academy
- También se imparten cursos en Stanford University, Princeton University, en varias plataformas MOOC o en University of Nicosia.
- 100 mejores cursos (pagos) de blockchain – según HowToToken
Te puede interesar:
Lenguajes de programación para blockchain: Los 6 más usados
5 Cursos para aprender sobre Bitcoin y/o Blockchain
En español
- Blockchain Institute & Technology Blockchain – Bootcamp de Blockchain – España
- Blockchain Academy Latam – Panamá
- Blockchain Academy – Colombia
- Curso en Desarrollo de Blockchain – Colombia
- BitcoinWiki.org anunció el 7 de mayo la creación de la Cripto Universidad en Chile
- Workshops gratuitos por Uniendo.LA – Chile
Empresas
- Las 10 principales empresas de desarrollo de blockchain según Medium
- Top 6 de las empresas de blockchain en San Francisco
Cursos online para aprender blockchain
Desarrolladores de blockchain freelancers a nivel mundial
- CodementorX (CodementorX ofrece desarrolladores de blockchain en nivel senior, ingenieros de software, programadores y consultores disponibles para contratar.)
- Blockchain Developers
Grandes desarrolladores
- Vitalik Buterin, Ethereum
- Zooko Wilcox, ZCash
- Nick Szabo, inventor of smart contracts
- Vlad Zamfir, Ethereum
- Marco Santori, Cooley LLP
- Riccardo “fluffypony” Spagni, Monero
- Matt Liston, Gnosis
Libros sobre blockchain
- The Truth Machine: The Blockchain and the Future of Everything
- Blockchain Technology Explained
- Blockchain For Beginners: The Complete Step BY Step Guide To Understanding Blockchain Technology
- That Book on Blockchain
- Decentralized Applications: Harnessing Bitcoin’s Blockchain Technology
- The Internet of Money
- Introducing Ethereum and Solidity: Foundations of Cryptocurrency and Blockchain Programming for Beginners
- Blockchain Applications: A Hands-On Approach
- Mastering Blockchain: Deeper insights into decentralization, cryptography, Bitcoin, and popular Blockchain frameworks
- Building Blockchain Projects: Building decentralized Blockchain applications with Ethereum and Solidity
- Ethereum: Blockchains, Digital Assets, Smart Contracts, Decentralized Autonomous Organizations
- Blockchain: Blueprint for a New Economy
- Mastering Bitcoin: Programming the Open Blockchain
- Blockchain, Discover the Technology behind Smart Contracts, Wallets, Mining and Cryptocurrency
- Bitcoin and Cryptocurrency Technologies: A Comprehensive Introduction
- Mastering Bitcoin: Unlocking Digital Cryptocurrencies
- Mastering Ethereum: Building Smart Contracts and Dapps
Y: 5 libros para la comunidad blockchain recomendados por Froilan Fernández de Criptonoticias
Blogs de referentes en el universo blockchain
- Vitalik Buterin y sus viejas publicaciones
- Hacking, Distributed por investigadores de Cornell
Entrevista con Viterbo Rodríguez
Contactamos a Viterbo Rodríguez, ingeniero uruguayo egresado de la Facultad de Ingeniería de la Udelar, quien si bien aprendió esta tecnología desde hace poco, hoy se encuentra desarrollando Cards & Tokens, proyecto propio que correrá sobre la blockchain EOS.
Te pueden interesar los siguientes artículos:
¿Qué es EOS, el software EOS.IO y cómo comprar tokens de EOS?
Blockchain Uruguay: Pioneros, Expertos y Entusiastas del Ecosistema uruguayo
¿Cuál es el ecosistema más amigable para comenzar a programar en blockchain?
Viterbo Rodríguez: Sin dudas, Ethereum es la blockchain más amigable de todas para comenzar. Esto se debe casi exclusivamente al hecho de que fue la pionera en presentar el concepto de contrato inteligente, lo que le valió una gran adopción por parte de la comunidad técnica.
Esto redunda en que el desarrollador que se enfrenta por primera vez a esta tecnología, va a encontrar mucho más material y herramientas para Ethereum que para cualquier otra blockchain.
Para empezar, cuenta con un editor online (https://remix.ethereum.org/), que le permite al desarrollador explorar y hacer pruebas con la tecnología sin necesidad de montar todo un ambiente de trabajo, lo cual es súper práctico. Incluso es posible utilizar ese mismo editor para poner un programa real en producción.
Luego, existe un montón de emprendimientos satélites llevados adelante por terceros, que aportan al valor final de la tecnología. Un ejemplo de ello, es el plugin para browsers Metamask. Este plugin no sólo te permite tener una billetera (o varias) sobre Ethereum, sino que actúa como proxy (intermediario) entre el sitio web que estás navegando y la blockchain de Ethereum.
Esto facilita increíblemente el desarrollo de aplicaciones web con Ethereum, dado que sin ese plugin, además de elaborar la aplicación, el desarrollador debería encargarse también de resolver este problema.
Dicho todo esto, ha de tenerse en cuenta que ya hoy es una tecnología vieja. No porque tenga muchos años, sino porque ya tiene muy buenos competidores en carrera y nuevos por venir. El lenguaje es excelente para empezar a conocer y aprender, pero no para pensar en desarrollar grandes aplicaciones allí.
Ver: Lenguajes de programación para blockchain: Los 6 más usados
¿Por qué comenzaste a estudiar blockchain? ¿Qué te atrajo?
VR: Todo arrancó a mitad del año pasado. En ese entonces, apenas sabía de la existencia del Bitcoin y mi único objetivo era entender cómo funcionaba para poder explicarlo. Sin embargo, en mi búsqueda por el conocimiento descubrí mucho más que sólo eso. Encontré toda una área tecnológica que está naciendo en este momento gracias a la tecnología blockchain.
Mi primer acercamiento a las criptomonedas fue exclusivamente financiero. Dediqué mucho tiempo a leer artículos y ver videos de otras personas haciendo análisis de los proyectos más prometedores. Fue así que me convertí en un pequeño inversor más de los tantos.
Cabe señalar que los inversores son personas que se dedican a investigar proyectos y así decidir en cuáles es conveniente invertir, comprando las criptomonedas relacionadas con los proyectos de mayor potencial.
A raíz de esa investigación, conocí muchas virtudes de la tecnología que me invitaban a participar no solo cómo inversor, sino como desarrollador.
Para empezar, es una tecnología muy nueva y por tanto hay muy pocas aplicaciones construidas con ella. Ser pionero en un área tecnológica con tanto potencial puede ser sumamente redituable.
Por otro lado, las singularidades de carácter político y económico que presenta la blockchain, invitan a construir nuevos sistemas que den lugar a nuevos modelos económicos que rompan con lo establecido y logren distribuir la riqueza de una forma más justa.
Esta tecnología tiene literalmente el potencial para cambiar el mundo, y conevtirlo en algo que considero mucho mejor. Eso es un estimulo de gran atractivo para mí.
Sin embargo, mi interés real como desarrollador se despertó a partir de conocer el concepto de ICO (Initial Coin Offering), el cual no es otra cosa que una versión nueva de crowdfunding (financiamiento colectivo), pero sin intermediarios (implementada con contratos inteligentes).
Este nuevo modelo de financiar proyectos tiene muchas ventajas, y sobre todo, un gran potencial para recaudar fondos en lo que a proyectos tecnológicos refiere. Yo mismo, hace tiempo me estoy dedicando a moldear la propuesta de un emprendimiento propio, y la tecnología blockchain se ajusta perfecto a mis necesidades.
¿En qué consiste el proyecto que estás desarrollando en blockchain?
VR: Actualmente estoy desarrollando un proyecto que se llama Cards & Tokens, el cual correrá sobre la blockchain EOS. Se trata de una plataforma de entretenimiento y autodifusión, en donde los usuarios creadores de contenido pueden usar su material para crear cartas digitales coleccionables y luego monetizar su trabajo vendiendo copias como si se tratara de criptomonedas.
Estas cartas obtendrán puntajes, que provendrán de sus datos estadísticos, que a su vez después pueden ser utilizados para competir llenando álbums o en partidas de juegos de cartas desarrollados por terceros y registrados en nuestra plataforma.
Al igual que en Steemit, en nuestra plataforma los creadores de buen contenido serán premiados por la aplicación. Sin embargo, nosotros utilizaremos otro enfoque más lúdico para resolver ese problema, dado que el modelo que propone Steemit tiende a degenerar en la concentración de poder (hablo de las conocidas ballenas de Steemit) y eso es exactamente lo opuesto a la filosofía que acompaña toda esta revolución tecnológica, basada en la descentralización.
Cards & Tokens ya está en etapa de preventa de los tokens, así que los que quieran invertir ya pueden hacerlo en nuestra página http://presale.cardsandtokens.com , utilizando Metamask y tokens EOS.
Ahora estamos trabajando en lo que va a ser nuestro DA-ICO que correrá directamente sobre EOS.
Este reciente nuevo formato de ICO consiste en un contrato a largo plazo con nuestros inversores, en donde una vez recaudados los fondos, estos quedan bajo custodia del contrato inteligente, a través del cual se habilitará a nuestro equipo, a realizar retiros restringidos y condicionados a la aprobación democrática de los inversores; quienes, con esto, pordán tener control sobre su inversión y al mismo tiempo les asegura no ser victimas de una estafa (scam).
A modo personal, tengo pensado publicar la experiencia como emprendedor, así cómo los avances y eventos en https://steemit.com/@viterbo , por si a alguien le interesa seguirme.
Programar en blockchain, ¿por dónde comenzar?
VR: Eso depende de cuál sea el objetivo.
Si lo que buscás es formarte como desarrollador blockchain (lo cual recomiendo), la mejor manera de empezar es por Ethereum por las razones que ya te conté.
Luego de que tengas cierto manejo de esa herramienta, NEO podría ser tu segunda parada. La llaman el Ethereum chino porque tiene sus raíces allí, cuenta con la aceptación del gobierno y un gran apoyo de la industria local, por lo que la hace una de las opciones más atractivas en funcionamiento hoy día.
La tercer herramienta que yo recomiendo es EOS porque promete ser una de las mejores plataformas descentralizadas.
Sin embargo, si al igual que yo, tu objetivo es emprender, lo mejor que podés hacer antes de arrancar a entrenarte como desarrollador, es entender algunos de los aspectos disruptivos de esta tecnología que son básicamente más económico-políticos.
Conceptos tales cómo la descentralización, democratización, distribución y acumulación de riqueza, comisiones por transacción, recompensas, el concepto de moneda cómo tal, inflación de una moneda,mercado, oferta y demanda, etc.
Todas estas nociones tienen que estar en tu cabeza antes de ponerte a inventar un nuevo producto o servicio, porque entonces conocés tus límites y sabés hasta donde podés llegar. Eso como innovador es fundamental.
En mi caso elegí EOS.IO porque es de código abierto, y va a ser de licencia libre luego del 1 de junio de este año, día en el que se termina su ICO y coincidentemente nuestra preventa también.
¿Cómo formarse en esta tecnología en Uruguay o a nivel de la región? ¿Has ido a cursos o sólo vía internet?
VR: No conozco que en Uruguay se estén dictando clases de esta tecnología. Pero eso es cuestión de que empiece a haber demanda, lo cual va a surgir cuando las empresas empiecen a necesitar ese talento. Yo mismo, si tengo éxito, voy a necesitar gente entrenada en blockchain EOS.
Mientras, los pioneros nos entrenamos de forma autodidacta en internet, buscando tutoriales, artículos, código fuente de ejemplos funcionando, y luego llevando lo aprendido a la práctica, y haciendo que algo funcione. Después, volverlo un poco más complejo y así.
El famoso a prueba y error.
Guías o recursos para comenzar a programar en blockchain que nos recomiendes: webs, cursos online, libros, etc…
VR: El sitio que debes consultar todas las mañanas si estás invirtiendo en criptomonedas es https://coinmarketcap.com/ que tiene estadísticas financieras de todas las criptomonedas existentes y las casas de intercambio.
Si te gusta escuchar exposiciones te recomiendo que busques a Andreas Antonopoulos en youtube. No solamente es un gran conocedor de la tecnología, sino también un excelente orador.
Finalmente recomendaría un programa de youtube que se llama «Good Morning Crypto», lo lleva adelante un joven suizo que se llama Ivan Liljeqvist y se hace conocer como «Ivan On Tech» en internet. Ese chico, además es programador, actualmente ofrece la preventa de cursos online de programación sobre las plataformas Ethereum, NEO y EOS para principiantes.
¿Qué tan complejo es aprender blockchain? ¿Cualquier desarrollador con maña y ganas de investigar podría, o es necesario ser un ingeniero actualizado?
VR: Es una tecnología como cualquier otra, el programador promedio no va a tener problemas en aprenderla. Lleva un tiempo, como todo y depende de las habilidades de la persona y el tiempo que le dedique. En ésta área en particular, también depende de que tan bueno y abundante sea el material didáctico que haya disponible para algo tan nuevo.
La formación de ingeniero, quizá te puede dar más herramientas en la etapa de diseño de la arquitectura porque te ayuda a identificar patrones, diseñar desde lo abstracto a lo concreto, modularizando funcionalidades, en fin.
Siendo ingeniero uno se toma el trabajo de aplicar las mejores prácticas que aprendió para el diseño de la arquitectura de un software, teniendo en cuenta escalabilidad, eficiencia, robustés, etc.