Bitcoin Forum
December 14, 2018, 12:02:49 AM *
News: Latest Bitcoin Core release: 0.17.0 [Torrent].
 
   Home   Help Search Login Register More  
Pages: « 1 [2] 3 »  All
  Print  
Author Topic: Learning to program on the blockchain?  (Read 5059 times)
ScripterRon
Full Member
***
Offline Offline

Activity: 136
Merit: 106


View Profile
September 01, 2017, 02:47:23 PM
 #21

What makes Java easier?  I've heard that I should try it.  I haven't programmed for a very long time, and am part of the generation that was ruined by BASIC.  OOP blows my mind still lol

Java SE is basically C++ but without some things that may produce errors for inexpert programmers like pointers, and with a exception handling system that avoids mistakes for you.

But for enterprise applications Java EE is much more complex than solutions with .Net C#.
I'm a big fan of Java.  I started with Fortran on an IBM 1130, but I really like object-oriented program.  I prefer Java because it solves some of the problems with C++ and it has a rich set of libraries (both standard and third-party).  And, most of the time, you can run a program on multiple operating systems without having to generate system-dependent versions (and JNI is available for those situations where you need to directly access system functions).

You can look at my GitHub projects if you want some examples.
1544745769
Hero Member
*
Offline Offline

Posts: 1544745769

View Profile Personal Message (Offline)

Ignore
1544745769
Reply with quote  #2

1544745769
Report to moderator
1544745769
Hero Member
*
Offline Offline

Posts: 1544745769

View Profile Personal Message (Offline)

Ignore
1544745769
Reply with quote  #2

1544745769
Report to moderator
1544745769
Hero Member
*
Offline Offline

Posts: 1544745769

View Profile Personal Message (Offline)

Ignore
1544745769
Reply with quote  #2

1544745769
Report to moderator
"If you don't want people to know you're a scumbag then don't be a scumbag." -- margaritahuyan
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1544745769
Hero Member
*
Offline Offline

Posts: 1544745769

View Profile Personal Message (Offline)

Ignore
1544745769
Reply with quote  #2

1544745769
Report to moderator
pebwindkraft
Full Member
***
Offline Offline

Activity: 258
Merit: 240


View Profile
September 01, 2017, 05:41:37 PM
 #22

@bitbollo
Quote
Hi pebwindkraft in which section Andreas Antonopoulos explain how to program on the blockchain?

His book gives an overview of how the bitcoin world "works", and has many examples on the data structures and how they interact.
It is not a book "how to program the blockchain" btw: I like achow101's comment on this  Grin
But it helps you to understand the detail and if something is unclear, you can even use it as a reference.
EADG
Newbie
*
Offline Offline

Activity: 13
Merit: 0


View Profile
September 01, 2017, 06:43:10 PM
 #23

What makes Java easier?  I've heard that I should try it.  I haven't programmed for a very long time, and am part of the generation that was ruined by BASIC.  OOP blows my mind still lol

Java SE is basically C++ but without some things that may produce errors for inexpert programmers like pointers, and with a exception handling system that avoids mistakes for you.

But for enterprise applications Java EE is much more complex than solutions with .Net C#.
I'm a big fan of Java.  I started with Fortran on an IBM 1130, but I really like object-oriented program.  I prefer Java because it solves some of the problems with C++ and it has a rich set of libraries (both standard and third-party).  And, most of the time, you can run a program on multiple operating systems without having to generate system-dependent versions (and JNI is available for those situations where you need to directly access system functions).

You can look at my GitHub projects if you want some examples.
Oh right, I forgot how complicated variables can get.  So it makes things easier, that sounds good.  I'll need all the help I can get.  Do you feel at all pigeon holed, though?  I see Java as being closely intertwined with web development.  That may be ideal for me depending on what direction I go. 
Back to OP's question about development around bitcoin centered ideas and using blockchain technology.  Is Java the best in this case?  For instance, a person decides to make a program that uses a blockchain for their local municipality that takes care of some problem much cheaper and effectively.  Does a programmer who is comfortable in several languages go to Java in that situation?
On the other hand, should I just jump in?  Learning any language makes the others easy?
aleksej996
Sr. Member
****
Offline Offline

Activity: 462
Merit: 314


Do not trust the government


View Profile WWW
September 02, 2017, 12:52:17 PM
 #24

Quote
Is Java the best in this case?

As I understand, Java is not the most resource efficient language, That would probably be C/C++.

Quote
Learning any language makes the others easy?

It makes it a lot easier. It can depend on differences between languages, some are simply for different purposes, but they still use same ideas and syntax is the easiest to learn. If you know C++, you will probably learn Java very quickly. Other way around, I think is harder. But they are all probably like 90% the same when you are learning for the first time.
yugyug
Sr. Member
****
Offline Offline

Activity: 602
Merit: 256



View Profile WWW
September 02, 2017, 01:00:42 PM
 #25

let's assume zero knowledge in programming and you want to learn about the blockchain programming. first thing first, you will need the basic foundation of computer programming regardless of what language you will use. since blockchain and other bitcoin or altcoins related programming required mathematical skills since they are mathematical problems, first you will need to study the foudnation of computer algorithm like sha256, rsa, or any hash-related algorithm. then you will need to learn also the cryptography skills for computer. need the basic algebra and calculus. there are so many basic things to learn in creating a blockchain from scratch unless if you are just forking or cloning some codes from github but the reward from hard work is not so challenging.

.


.
.



▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
██████████████████████████████████████
██████████████████████████████████████
███████████████████████▀██████████████
█████████▄▄      ▀▀██▀╜  ▀▀███████████
████████████▄       ██   ▀^╓▀█████████
██████████████      ║█    ,▀██████████
█████████████▄▄      █▌   ████████████
████████████████▄     ▀█▄  ███████████
████████████████▀,,,    ╙▀▀█▀ ████████
█████████████████▀▀▀█▄▄       ████████
███████████████▀     ▀███████▀████████
██████████████▌       ▐█* ▀▓▀ ████████
████████████*██▄     ▄██▄▄▄▄▄▄████████
██████████▀`  ▀██▄   ▀████████████████
████████▀`  ▄█████▌   ╙███████████████
████████▄,   ▀████ ,,,  "▀▀███████████
██████████,,,,, ╙█▄███▄▄,,,,╙▀████████
██████████████████████████████████████
██████████████████████████████████████
██████████████████████████████████████
L B X.


■                         ■                        ■                        ■                        ■                        ■                         ■
The London Block Exchange
■                         ■                        ■                        ■                        ■                        ■                         ■
.


.
.


.
WDownload OnW
[.
          ▄▄█▀
         ███▀
   ▄▄▄▄  ▀  ▄▄▄▄
 ▄███████▄██████▌
▐██████████████▌
███████████████
▐██████████████▌
 ███████████████▌
  ██████████████▌
   ▀████▀▀▀████▀
/      ▌ ▄▄▄▄ ▐
     ▄█▀████▀█▄
    ▐██████████▌
 ▄▄ ▀▀▀▀▀▀▀▀▀▀▀▀ ▄▄
▐██▌████████████▐██▌
▐██▌████████████▐██▌
▐██▌████████████▐██▌
 ▀▀ ████████████ ▀▀
    ▀██████████▀
      ▐██  ██▌
      ▐██  ██▌
]
.


Abs_korleone
Newbie
*
Offline Offline

Activity: 44
Merit: 0


View Profile
September 02, 2017, 03:56:16 PM
 #26

Start learning Javascript, Javascript will be the language of the future. You can do both frontend and backend atm with Javascript and its syntax is very similar to Solidity which is the most popular high level language used for blockchain development
dream_maker82
Full Member
***
Offline Offline

Activity: 322
Merit: 100



View Profile
September 02, 2017, 09:11:01 PM
 #27

If you do not have programming experience, it's better to start with the basics: to study the structure and algorithms of programming languages. As a basis to take the language of Java, to understand what object-oriented programming is and forward, in this area, intelligent developers are needed.

CupONoodos
Newbie
*
Offline Offline

Activity: 1
Merit: 0


View Profile
September 03, 2017, 03:17:47 AM
 #28

As someone who has just started his journey into Blockchain development, here's resources that helped me on my journey. I'd like to note though that I have a background in coding in Java, C++, and Python already although I would say I'm average in my coding experience. As everyone said, it would be best to learn a little bit of coding so you can at least understand how to read code and know the fundamentals of how to write it. Once you get there, definitely check these resources out.

http://consensys.github.io/developers/articles/101-noob-intro/ (A good read to start your journey into developing)

https://www.youtube.com/playlist?list=PLH4m2oS2ratdoHFEkGvwvd7TkeTv4sa7Z (A free set of tutorial videos on YouTube that goes over smart contracts and how to write your own DApp)

https://app.pluralsight.com/library/courses/blockchain-fundamentals/table-of-contents (Sign up for their free 10 day or 200-minute trial. You can easily watch this whole course within the trial, just be careful in rewinding and take your time.)

https://www.coursera.org/learn/cryptocurrency (An online course that goes into the technical details of Bitcoin and Cryptocurrency. Very detailed and works like an online class with assignments that need to be submitted at certain times.)

https://github.com/ethereum/wiki/wiki/Ethereum-Development-Tutorial (More reading material)

I've also bought a bunch of Udemy courses for $10 each that I haven't gotten to yet. If you want to buy these courses for that price, use the coupon TIENDEO10 to get them for only $10. I don't know how long the coupon will last so if you really want an extra source to teach you the material, I recommend to buy them quick as these courses can go up to $100+. This is without knowing how often these courses actually go on sale however.
Andre_Goldman
Sr. Member
****
Offline Offline

Activity: 322
Merit: 251

Property1of1OU


View Profile
September 03, 2017, 07:03:35 AM
 #29

I'm following Nicolas Dorier's book since very beginning ...

ps-> sorry Nicolas I was one of the lazy guys who forgot to do the back/fwd thing when I got the opportunity ... I guess I was busy doing something else on Opnet Guru Window  Tongue ...

Patent1number: ****-****
Trofo
Sr. Member
****
Offline Offline

Activity: 504
Merit: 322


Translating to Croatian


View Profile WWW
September 03, 2017, 08:37:42 PM
 #30

This might help.
https://medium.com/crypto-currently/lets-build-the-tiniest-blockchain-e70965a248b
Covers blockchain basics and, as a bonus, it's written in Python. So if you have zero programming experience it should lessen the pain a little bit.

Thanks for this link. I am new to blockchain and crypto currencies but i have solid programming background (c++, c#, html, JS, but mostly python). Therefore your link managed to explain much about blockchain for me.

baryonlee
Newbie
*
Offline Offline

Activity: 33
Merit: 0


View Profile
September 04, 2017, 12:43:44 AM
 #31

Thanks, cool exams. just convert it to python3.

Code:
#!/usr/bin/env python3
# -*- coding: utf_8 -*-

import hashlib as hasher
import datetime as date

### Define what a Snakecoin block is """
class Block:
    def __init__(self, index, timestamp, data, previous_hash):
        self.index = index
        self.timestamp = timestamp
        self.data = data
        self.previous_hash = previous_hash
        self.hash = self.hash_block()

    # hash a block with sha256
    def hash_block(self):
        sha = hasher.sha256()
        sha.update(str(str(self.index) + str(self.timestamp) +
                       str(self.data) + str(self.previous_hash)).encode('utf-8'))
        return sha.hexdigest()

# Generate genesis block
def create_genesis_block():
    # Manually construct a block with
    # index zero and arbitrary previous hash
    return Block(0, date.datetime.now(), "Genesis Block", "0")

# Generate all later blocks in the blockchain
def next_block(last_block):
    this_index = last_block.index + 1
    this_timestamp = date.datetime.now()
    this_data = "Hey! I'm block " + str(this_index)
    this_hash = last_block.hash
    return Block(this_index, this_timestamp, this_data, this_hash)


# Create the blockchain and add the genesis block
blockchain = [create_genesis_block()]
previous_block = blockchain[0]

# How many blocks should we add to the chain
# after the genesis block
num_of_blocks_to_add = 20

# Add blocks to the chain
for i in range(0, num_of_blocks_to_add):
    block_to_add = next_block(previous_block)
    blockchain.append(block_to_add)
    previous_block = block_to_add
    # Tell everyone about it!
    print("Block #{} has been added to the blockchain!".format(block_to_add.index))
    print("Hash: {}\n".format(block_to_add.hash))

Chillance
Sr. Member
****
Offline Offline

Activity: 307
Merit: 250


View Profile
September 04, 2017, 05:53:03 PM
 #32

My favorite language right now is Go https://golang.org/ (made by Google). Quite easy language to learn as the specs are not that much.

And I just came over this: https://www.ibm.com/developerworks/cloud/library/cl-ibm-blockchain-chaincode-development-using-golang/index.html
EADG
Newbie
*
Offline Offline

Activity: 13
Merit: 0


View Profile
September 05, 2017, 06:24:49 PM
 #33

If you do not have programming experience, it's better to start with the basics: to study the structure and algorithms of programming languages. As a basis to take the language of Java, to understand what object-oriented programming is and forward, in this area, intelligent developers are needed.
What do you guys think the role of Programming Language Theory is for someone learning?  After seeing this comment I looked around and there are some great resources.  I'm thinking now that maybe my problem the last couple times I started was that I didn't have this overview.
sachinunchwal02
Newbie
*
Offline Offline

Activity: 42
Merit: 0


View Profile
September 05, 2017, 06:33:17 PM
 #34

There are multiple programming languages that you could focus your efforts on and it will depend on which cryptocurrency you would like to use as a base platform for plug and play functionality. It would also be important for you to consider what the top programming languages are in 2015/2016, published by IEEE,To establish a strong crypto programming foundation, I would suggest concentrating on first learning C++ by using a few beginner books (if you are on a tight budget, you can actually purchase many of these books from a nearby Goodwill or used book store for 1/20th of the price), and then begin to experiment with Node.JS, Python, Perl, and other relevant languages as these are typically compatible/accepted/supported in activate crypto environments.
Bastime
Sr. Member
****
Offline Offline

Activity: 524
Merit: 250


THE FUTURE OF INVESTING


View Profile WWW
September 06, 2017, 12:49:17 PM
 #35

So, I have absolutely no programming experience.

But I find the blockchain technology incredibly exciting, and I would like to learn at least how to use it to a certain extend, I realize im not going to become an expert overnight, but where do i start?

I graduated as computer science but it's not really my ideal job but as far as I know that programming is a very far journey along with dedication and hard work and you must be logically capable to solve such problems. Most students found it really difficult dealing with such problems because solving problem logically is far annoying than solving legal cases.
My point is, if you want to contribute blockchain programming then be a child by spoon feeding yourself.

.▄███     ██████     ███▄
██████   ███████   ██████
 ██████ ██████████ ██████
  ██████████████████████
   █████████  ████████
    ██████    ██████
    ███████    ██████
   █████████  █████████
  ██████████████████████
 ██████ ██████████ ██████
██████   ██████   ██████
 ▀███     ██████     ███▀
IMPRESSIO     ▄███████████████▄
     ██             ██
     ▀███████████████▀
           ██ ██
           ██ ██
       ▄▄█████████▄▄ ▄███▄
    ▄███▀▀       ▀▀████ ▀██▄
  ▄██▀   ▄▄█████▄▄   ▀██▄ ██
 ▄██  ▄███  █  █████▄  ██▄█▀
 ██  ███         █████  ██
██  ██████  ███   █████  ██
██  ██████  ▀▀▀  ▄█████  ██
██  ██████  ▄▄▄▄  █████  ██
██  ██████  ████   ████  ██
 ██  ███          ████  ██
 ▀██  ▀███  █  █████▀  ██▀
  ▀██▄   ▀▀█████▀▀   ▄██▀
    ▀███▄▄       ▄▄███▀
       ▀▀█████████▀▀
Trofo
Sr. Member
****
Offline Offline

Activity: 504
Merit: 322


Translating to Croatian


View Profile WWW
September 06, 2017, 02:34:20 PM
 #36

https://www.coursera.org/learn/cryptocurrency (An online course that goes into the technical details of Bitcoin and Cryptocurrency. Very detailed and works like an online class with assignments that need to be submitted at certain times.)


I've also bought a bunch of Udemy courses for $10 each that I haven't gotten to yet. If you want to buy these courses for that price, use the coupon TIENDEO10 to get them for only $10. I don't know how long the coupon will last so if you really want an extra source to teach you the material, I recommend to buy them quick as these courses can go up to $100+. This is without knowing how often these courses actually go on sale however.

Thanks for coursera link. I have taken few courses there in the past but had no idea they have something on cryptocurrency. I have enrolled there.

Please reply here or send me a PM after checking Udemy courses I would like to hear your review of them. Thanks

yg10
Newbie
*
Offline Offline

Activity: 80
Merit: 0


View Profile
September 07, 2017, 05:25:33 AM
 #37

It is actually not that difficult to be experienced in the blockchain. One month of checking news and informing and you'll know more than a lot of others. If you want to do something for the blockchain in the programming direction, then you should learn solidity. Solidity is the most used code language for programming smart contracts. Good Luck!! Smiley
Just wondering how checking the news may help with the understanding of blockchain basics - private key cryptography, P2P networks, etc.
There are a lot of things in the blockchain that cannot be expressed in smart contract language.
alex_shemesh
Newbie
*
Offline Offline

Activity: 3
Merit: 0


View Profile
September 08, 2017, 05:51:10 AM
 #38

So, I have absolutely no programming experience.

But I find the blockchain technology incredibly exciting, and I would like to learn at least how to use it to a certain extend, I realize im not going to become an expert overnight, but where do i start?

I graduated as computer science but it's not really my ideal job but as far as I know that programming is a very far journey along with dedication and hard work and you must be logically capable to solve such problems. Most students found it really difficult dealing with such problems because solving problem logically is far annoying than solving legal cases.
My point is, if you want to contribute blockchain programming then be a child by spoon feeding yourself.


I dont agree. Now days learning new language is 6 month job. You can learn enough to be efficient programmer and write useful programs. Dont be afraid. Start with Python and dont listen to anybody who says "there are paradigms, and known design patterns". If your program stable and does what its suppose to do you are ok. Real programmer experience comes handy in support of system that's in production and in code refactoring/otimization. Programming is not an art, its a trade that can be learned.
Qunenin
Hero Member
*****
Offline Offline

Activity: 812
Merit: 505


Earn with impressio.io


View Profile
September 14, 2017, 08:06:50 AM
 #39

This is something that can and will take some time. Start with hashing perhaps, not even crypto currency related. Make a simple GUI in whatever language that goes into and out of MD5 and other hashes. Then, try hashing out your own TX's in Bitcoin or whatever, try the very basics and then try to program something special into the system. Perhaps link to a JSON in the OP data and use that information for something on both ends.

.▄███     ██████     ███▄
██████   ███████   ██████
 ██████ ██████████ ██████
  ██████████████████████
   █████████  ████████
    ██████    ██████
    ███████    ██████
   █████████  █████████
  ██████████████████████
 ██████ ██████████ ██████
██████   ██████   ██████
 ▀███     ██████     ███▀
.IMPRESSIO.     ▄███████████████▄
     ██             ██
     ▀███████████████▀
           ██ ██
           ██ ██
       ▄▄█████████▄▄ ▄███▄
    ▄███▀▀       ▀▀████ ▀██▄
  ▄██▀   ▄▄█████▄▄   ▀██▄ ██
 ▄██  ▄███  █  █████▄  ██▄█▀
 ██  ███         █████  ██
██  ██████  ███   █████  ██
██  ██████  ▀▀▀  ▄█████  ██
██  ██████  ▄▄▄▄  █████  ██
██  ██████  ████   ████  ██
 ██  ███          ████  ██
 ▀██  ▀███  █  █████▀  ██▀
  ▀██▄   ▀▀█████▀▀   ▄██▀
    ▀███▄▄       ▄▄███▀
       ▀▀█████████▀▀
aleksej996
Sr. Member
****
Offline Offline

Activity: 462
Merit: 314


Do not trust the government


View Profile WWW
September 14, 2017, 11:35:06 AM
 #40

This is something that can and will take some time. Start with hashing perhaps, not even crypto currency related. Make a simple GUI in whatever language that goes into and out of MD5 and other hashes. Then, try hashing out your own TX's in Bitcoin or whatever, try the very basics and then try to program something special into the system. Perhaps link to a JSON in the OP data and use that information for something on both ends.

You really should use MD5 anymore, it is too weak to even be used as an example, since you can hardly consider it hash anymore.
Pages: « 1 [2] 3 »  All
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!