facebook-developer-circle-delhi / Ask-The-Community

This is an initiative where-in people can ask questions (directly or anonymously) as issues. People can then respond to them as comments. Once there is a satisfactory answer, we can close that issue down.
14 stars 1 forks source link

Blockchain Pre-requisites and learning path #5

Closed learner213 closed 6 years ago

learner213 commented 6 years ago

Hi! I'm here again with my doubt :p

I have good knowledge of Python, C++, HTML, CSS. But still not that good at data structures although( P.S: I'm just a fresher). After hailing through all available tech fields, I'm most interested in exploring blockchain technology and wants to build a project on it. Are their any pre-requisites for the same? Do I need to know any other programming/ scripting language/ framework as well before starting? Please share any good resources as well to start with. Currently all the resources seems to be scattered everywhere, and I found some of them difficult to understand. And it's so time consuming to go through all of them.
P.S.: There are still no resources added for learning blockchain in curated-resources repository.

saranshkataria commented 6 years ago

Added a resource for cryptocurrency in that repo. And it makes more sense to open this issue there if you want resources instead of here?

gaurav-gogia commented 6 years ago

Here are some of the things that I believe are important for BlockChain:

  1. Linked Lists
  2. Hashing Algorithms
  3. Merkle Tree
  4. Types of BlochChains: Private, Consortium, Public
  5. BlockChain & CryptoCurrency (difference)
  6. Proof of Stake/ Proof of Work & other methods of transaction validation.

There are more concepts like double spending but this should be more than enough to get you started. As for programming language that you can use. Here are following worth looking into:

  1. GoLang
  2. Solidity

The only tutorials I could find:

  1. Primer on Blockchain and Bitcoin: Fundamentals and Use Cases
  2. Create Ethereum & Blockchain Applications Using Solidity

Disclaimer: Above provided tutorials might not be high quality. I still haven't been able to find good tutorials related to BlockChain yet.

saranshkataria commented 6 years ago

@DesmondANIMUS add it in the community resources repo instead?

gaurav-gogia commented 6 years ago

@saranshkataria, I would but I'm not sure if they'll help or how long they'll be available for free. I wouldn't want to add bad resources.

learner213 commented 6 years ago

Thanks a lot @DesmondANIMUS for such detailed insights and course links. :blush: Besides, @saranshkataria I'll take care of this next time, but since I also wanted to know the pre-requisites, i.e., concepts/ languages I should know well before starting, I thought it's better to post it here. Closing this issue now.

shubhamoy commented 6 years ago

@learner213

There are two aspects of getting indulged with blockchain, first being making use of the available resources, like, you can quickly spin up a blockchain project using ethereum, solidity, and the web3 library(check truffle).

The second option is a bit tricky where you invest time in getting through with the concept of distributed systems, Byzantine generals' problem, Byzantine fault tolerance, working of torrents, and other theoretical topics.

Anyways a theoretical clarity is a must but sometimes getting a quick start is helpful. Check this repo where I have tried to allow anyone to quick start with blockchain(https://github.com/shubhamoy/HelloEthereum).