I'm 52 and used to program in 'Basic' growing up. That and basic html is pretty much all the experience that I have. I have a few questions and would immensely appreciate your advice.

  1. What do I need to learn and in what order?

  2. If I build a Dapp, I understand that I do not need a website, but than how would my Dapp be found?

  3. How does the blokchain know that I own the Dapp and how does making changes to it work if the Dapp is already on the blockchain?

  4. Would it be easier to build a website and then convert it?

These are just a few of the questions I have, but I'm certain that if can get some answers to the above, a lot of other questions would be answered.

Thank you again for your time.


Q1. You'll need survival-level skills with linux, imo. If that's new, consider setting up a virtual machine with VirtualBox and playing with Ubuntu. You should be familiar with Ethereum from a user perspective, so the wallet and MIST which you will later learn to use to talk to your smart contracts. Find some existing contracts (tutorials?) to talk to with MIST. Thinking not as a developer but as a pro-user, install the geth command-line tool and learn how to create an account and start mining. You won't make any money but it will familiarize you with the surface area of the beast you'll learn to control.

Q2: Decentralized apps mean the important data and logic is not located on a specific server and anyone with the UI will be able to use it. Actual delivery of the UI means shipping the files, like index.html to the user and in many cases devs use traditional domain/server or cloud content-distribution networks to accomplish it. Not entirely decentralized.

Q3: The blockchain doesn't consider that anyone is any better than anyone else, but contracts can enforce logic such as access-control lists ... only do this if the transaction is signed by such-and-such an address who is the sysAdmin (owner). You can change the UI any time you want, but you only get upgradable contracts when you use advanced patterns and modular design. The default is your code cannot be changed. Any revision is a new initialized instance.

Q4: No. The flows are too different and other re-orientation is needed. It is not a 1:1 replacement for either server-side logic or storage. It's something entirely different. You would not be able, for example, to convert Basic or PHP solutions to Solidity on a translation basis. It takes some time to internalize what this platform can and cannot do and to acquire a good sense of how to tackle various problems. A server can indeed be a client to a blockchain app much it can be a client to an API. An API-first approach often helps, as well as a very minimalist approach to what the contract should be concerned with. I've observed that you'll find a lot of traditionally server-side concerns migrating to client-side, leveraging much smarter clients.

Hope it helps.

| improve this answer | |
  • Thank you for taking the time to give such a detailed response. I'm going to dive in and start learning. Maybe I'll pay someone to write my first Dapp. Being one of the first to have a Dapp on the Ethereum blockchain would be kinda cool. – D. Rendel Mar 27 '18 at 19:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.