After his mathematician mom gave him an HTML book, Ivan Liljeqvist of Ivan on Tech read it over and over. “I remember very clearly there was a chapter about the objects and classes in C++,” he said. “I didn’t understand how it worked and why it worked. So I just kept re-reading it and then it clicked after awhile.”
When he began that book, which was the start of his programming experience, he thought he would know how to develop his own video games by the end. Instead, he came up a bit short, only knowing some HTML tricks.
“Once you understand the basics, you can apply the same knowledge to other programming languages,” said Ivan. “Programming is not difficult to start with.”
Yet, people tell Ivan that the reason he learned programming so young was because he was a wunderkind. He disagrees. “The smartest nine year old is still not as smart as the dumbest 20 year old,” he said. “It’s just dedication and interest. If you have the interest, you can always learn programming. You don’t have to be good at math, you don’t have to be Bill Gates or Einstein. It’s easy to start programming, but it’s difficult to master. Many people are so discouraged, because they think that you need to be very smart to even get started. But you absolutely don’t. As long as you find this interesting, and as long as you’re willing to put in the time, you will learn it.”
Not to mention, there are many resources for when you’re stuck programming––not the least of which is the Ivan on Tech Academy, which offers programming courses for Ethereum, EOS, and the Bitcoin Lightning Network. There are YouTube videos, forums, and communities. When Ivan started coding, many of these didn’t exist, however. He recalls watching the always sarcastic Bucky Roberts, who goes by The New Boston on YouTube, and enjoying his videos.
“It’s so much easier to learn programming with all the content and all the YouTube videos and all the courses and platforms,” Ivan says of today compared to when he started. “So, if you’re interested, you should do it.”
In his youth, Ivan developed several video games, which were available in the app store, though none became popular-––he didn’t want to pay the developer fee to keep them online. These projects were mostly for learning, anyway. He remembers a library called the Cocos engine which he used to develop games for iOS platform, which, as a matter of fact, now has a blockchain library. After that, he began developing on OpenGL, though he realized early on how very low level it is.
“I tried to make games in OpenGL, which is really an insane task because it’s very, very low level,” said Ivan. “You basically have to draw triangles yourself. It’s not how you should develop games, you should use a game engine.” That’s where Cocos helped.
When he stumbled onto Bitcoin, Ivan liked that it was coded in C, because he was a bit familiar with that programming language. “I could easily start reading the code and understanding the code,” he said.
He said if they had chosen another language, say, Erlang or Haskell, while it would take a bit more time to understand, he’d probably get the gist of it soon enough. But, for me, it was good that they chose something that I am comfortable with.”
Because it’s a protocol, C++ was a good choice for Bitcoin, says Ivan. “You don’t really want to use Python or other higher level programming languages. With C, you have access to hardware to the extent that is not possible with higher level programming languages. So it is a natural choice, when you’re writing something like Bitcoin.”
He never programmed on Bitcoin, but his developer experience helped him learn certain aspects of Bitcoin, like hashing, digital signatures, and how a system of digital cash without intermediaries, without a central bank or company to control everything, works. When he entered into the space there were many colored coins projects, too, which he looked into from a technical perspective.
The main thing that really caught his attention, in terms of building applications on blockchain, was Ethereum and Solidity. “There you could truly program whatever you wanted and you had the fully fledged turing complete programming language, which is solidity,” said Ivan. “So it was a whole other level. And you could really express yourself as a developer in so many different ways that simply wasn’t possible on Bitcoin. “
A turing complete programming language, which is most these days, is a language that can do everything that a turing machine can do, which, in part, means it can do any type of calculation. A turing machine is powerful enough to compute anything that can be computed.
You can build whatever you want on Solidity, says Ivan. “You can express the logic, you can express what the network should do,” he says. “With Bitcoin, you don’t have a turing complete programming language, so you cannot tell the network to do all the things that you could with Ethereum. So Bitcoin doesn’t, for example, have loops. You cannot have a program that is repeating some kind of action over and over again, a certain amount of time to the same extent as on Ethereum. On Bitcoin you cannot really tell the Bitcoin network to do a lot, but on ethereum you have more flexibility. “