How to make the jump into coding Ethereum: Part 2

Jason Gong
4 min readSep 4, 2021

Development Environment Framework

Continuing From learning about smart contracts, the next step is learning to work with a development environment framework. If your smart contracts are your materials that becomes your end product, you can think of your development environment as your work bench, tools and instructions on how to use those tools.

So what does it actually do for you. Well, it basically helps you compile, deploy, and test your Ethereum software. That and much more. You do not need to know the specifics now and you are better off learning the basics through a tutorial where you start building a full application. We will get to that I promise.

In the mean time, if you do not know what those functions are, read a bit about it first before moving on. I am a big proponent of having a general idea of what something is before learning about it in action. So take a skim below. Debugging is worth reading even for a seasoned programmer as debugging a smart contract is not the same as debugging a traditional application as they run in real time where as a smart contract runs a transaction against its code. Basically, you need to check math to debug a smart contract vs doing the math. For unseasoned programmers, it is ok if you do not understand the specifics of what you are reading. Skim through it and get a general understanding at the minimum.

Before I delve further into actual development environments, once you have a good grasp on the Solidity programming language, look at some smart contracts and execute them using Remix. Remix is a web based application where you are able to write and execute smart contracts right from your browser without having to setup a development environment. Get familiar with smart contracts through Remix. You should even use the ones that are pre-written from Solidity-by-example. They even have links to videos with walkthroughs for those videos. Links for both below.

Blue pill or red pill? You do have a choice in which development environment that you want to work with. At the moment, there are three that are popular. It is a matter of preference to which one to choose. I’ll post links below here to their documentation.

  • Hardhat — A Javascript/Typescript based framework. My development environment of choice. Has many useful plugins that puts it a step ahead of the competition.
  • Truffle — A Javascript/Typescript based framework as well. Although not be my first choice, is still a powerful toolkit in its own right. All the development environments are constantly innovating to create better tools to help development, so an eye should be kept on all of them.
  • Brownie — A python based framework. Not as popular as Hardhat, but for python users is the way to go. I do not have experience with it myself, but the notion is that to deploying the backend is much more intuitive as the quirks of Javascript can present hurdles.

You might be thinking that I have not suggested any tutorials yet or even coded anything. You are right I have not. There is a good reason for that. Most tutorials are fast paced and just give you a basic explanation of the tools they use. From my standpoint, I believe to learn something this in-depth, it is better to have at least some good associations of the tools you are working with to what you are using those tools for. Besides it just being better for learning, not understanding how some of the tools work could cause diagnosing problems in an application later. It has happened to me before.

Thats all I have in this post. Stay tuned for the next part. Thanks for reading!

Questions/ Comments are welcome below

If you missed Part 1 click the link below

--

--