Bitcoin Forum
April 24, 2018, 05:44:59 AM *
News: Latest stable version of Bitcoin Core: 0.16.0  [Torrent]. (New!)
 
   Home   Help Search Donate Login Register  
Pages: [1] 2 »  All
  Print  
Author Topic: I want to learn coding / with blockchain whats the best language?  (Read 512 times)
MIT2K
Jr. Member
*
Offline Offline

Activity: 56
Merit: 0


View Profile
February 20, 2018, 10:54:52 AM
 #1

I want to start learning coding but am not sure what would be a good language to learn?

With a passion for cryptos and blockchain is there a language that is best to master that could help me understand the programming better and logistical process?

Thanks!
1524548699
Hero Member
*
Offline Offline

Posts: 1524548699

View Profile Personal Message (Offline)

Ignore
1524548699
Reply with quote  #2

1524548699
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1524548699
Hero Member
*
Offline Offline

Posts: 1524548699

View Profile Personal Message (Offline)

Ignore
1524548699
Reply with quote  #2

1524548699
Report to moderator
1524548699
Hero Member
*
Offline Offline

Posts: 1524548699

View Profile Personal Message (Offline)

Ignore
1524548699
Reply with quote  #2

1524548699
Report to moderator
HeRetiK
Hero Member
*****
Offline Offline

Activity: 714
Merit: 594


the forkings will continue until morale improves


View Profile
February 20, 2018, 12:49:13 PM
 #2

Start off with JavaScript or Python. Most cryptocurrencies are written in more complex languages such as C or C++, however I'm not sure whether I would recommend these as a starting point to a beginner. If you're serious about getting into software development you'll be learning multiple languages anyway, so you might as well start off with some of the easier ones.

Once you got a basic grasp you can do fun code exercises such as the cryptopals crypto challenges:

https://cryptopals.com/

Crypto not as in cryptocurrencies but as in cryptography, which is knowledge you will need either way Smiley

ETFbitcoin
Legendary
*
Offline Offline

Activity: 1288
Merit: 1029

Use SegWit and enjoy lower fees


View Profile
February 20, 2018, 04:06:02 PM
 #3

These days, most programming language can be used to create blockchain. Easy language such as JS/Python is recommended, but personally i recommend you to learn more complex language such as C++ or C# to have better programming knowledge and you could have easier time when you want to learn another language. You also need to learn at least basic cryptography knowledge.

Also, if you have plan to make blockchain which is similar with Bitcoin, i strongly recommend you to read this book Mastering Bitcoin, 2nd Edition.

joaco
Member
**
Offline Offline

Activity: 66
Merit: 22


View Profile
February 21, 2018, 12:58:11 AM
 #4

You could learn Solidity and develop smart contracts on Ethereum network... It's like JS, pretty ease to learn.

Do you have experience coding?
hgbing
Jr. Member
*
Offline Offline

Activity: 98
Merit: 0

without 'HER' even 'HERO' is '0'


View Profile WWW
February 21, 2018, 02:20:30 AM
 #5

I want to start learning coding but am not sure what would be a good language to learn?

With a passion for cryptos and blockchain is there a language that is best to master that could help me understand the programming better and logistical process?

Thanks!
I'm a programmer with more than 10 years experiences. i would like to talk programming skill . is anyoneelse interested in programming  skype robert_hgb

without 'HER' even 'HERO' is '0'
alia
Jr. Member
*
Offline Offline

Activity: 56
Merit: 113

Lowest EVER interest lending! (Use escrow always)


View Profile
February 21, 2018, 03:59:34 AM
 #6

Python and JS are great for beginners; also take a look at Solidity if you want to start building contracts on Ethereum.

Lowest interest lending in bitcointalk history. https://bitcointalk.org/index.php?topic=2846750.0
johniadeluca
Member
**
Offline Offline

Activity: 168
Merit: 11


View Profile
February 21, 2018, 04:05:16 AM
 #7

If you have NO experience start with HTML and CSS, slowly work your way into JS. Once in JS, Solidity should come fairly easy to you

❯❯❯ ❯❯❯  UNIBRIGHT.IO   ❮❮❮ ❮❮❮
A unified framework for blockchain based business integration.
nullius
Copper Member
Full Member
***
Offline Offline

Activity: 140
Merit: 720


Help! I’ve got the Pleurodelinaemia! @nym.zone


View Profile WWW
February 21, 2018, 05:03:39 AM
Merited by Foxpup (3), achow101 (3), AGD (1), hatshepsut93 (1), amishmanish (1)
 #8

Preliminary note:  This is a recurrent question on this forum, a genuine FAQ.

I want to start learning coding but am not sure what would be a good language to learn?

With a passion for cryptos and blockchain is there a language that is best to master that could help me understand the programming better and logistical process?

Thanks!

First, realize that you have a profound responsibility when you write code which handles Other People’s Money.

I am all for helping more people become Bitcoin users.  But we do not need more coders.  We need fewer and better coders working on Bitcoin and “cryptos”.  Whereas most people are innately incapable of ever becoming good coders, just as I myself am innately incapable of ever becoming an Olympic gymnast.

Do I discourage you?  I intend to!  You should be discouraged from learning to code machinery which handles Other People’s Money, unless you have such a keen ability that nothing I say could possibly discourage you.  People who have such an ability always do know themselves that way.

If you think you’re up to it, and you want to take on an awful responsibility:  First, learn much, much more about computing generally.  Read up on the fundamentals of applied cryptography.  Then, learn Bitcoin technical concepts inside and out.  By the time you get through all this learning, you won’t need to ask for advice on picking a language:  You’ll know enough to do that yourself.

I do not recommend selecting a “beginner’s language” for anything whatsoever to do with Other People’s Money.  Use a “beginner’s language” if you want to do casual programming, making little games or performing little practical tasks on your own computer.  If you want to handle Other People’s Money, then you need to be a serious programmer.  Serious programmers usually don’t start with a “beginner’s language”; certainly if they have the aptitude, they don’t need to.  If you read up on the concept of, say, pointer arithmetic, and you feel that little light bulb go on in your head—then why wouldn’t you start by playing with pointers?


If you have NO experience start with HTML and CSS, slowly work your way into JS. Once in JS, Solidity should come fairly easy to you

This is how we eventually obtain such threads as, “Bad Code Has Lost $500M of Cryptocurrency in Under a Year”.  See especially the discussion downthread of Ethereum.

If that’s how you need to learn to code, then YOU SHOULD NOT BE CODING.  Most of all, you should stay the hell away from Other People’s Money.

Think:  Would you trust a surgeon who started his formal studies by doing “surgery” on pineapples with a kitchen knife, then worked up from there?

We will stop getting “Bad Code Lost XYZ” threads, when people take the coding of financial software as seriously as they take the practice of medicine, engineering of bridges and tunnels, and other professional tasks where errors result in PEOPLE GETTING HURT.



Edit:  Cross-reference:  Re: Bad Code Has Lost $500M of Cryptocurrency in Under a Year

zonezICO
Newbie
*
Offline Offline

Activity: 13
Merit: 1

Trying to help independent musicians and artists


View Profile WWW
February 21, 2018, 06:40:49 AM
 #9

@MIT2K - I second what HeRetiK recommended as the first time I ever looked at C++ code, it looked like ancient hieroglyphics to me but after becoming familiar with the syntax and patterns of higher level languages such as Python, JS, (and my personal faves Clojure and Elixir) made it much easier to comprehend what Satoshi wrote (NOT easy but easier).  With that being said, Nullius' concerns are warranted in that if you're going to be serious about writing code that handles money, there's a whole level of responsibility that goes light years above your basic html/css/JS that's found in regular websites that you'll need to be cognizant of.

What helped me start was understanding the core fundamentals of programming in general vs focusing ONLY on the clerical aspects of any one language.  At the end of the day, we're all just talking to a computer and each language is a tool that was developed for specific use cases since a computer only understands 0's and 1's (assembly language).  And anybody who knows assembly language is just a OG pimp in my eyes.

Here's a free video by Bob Martin who is a funny yet brilliant teacher:
https://cleancoders.com/episode/programming-101-episode-1/show

And the entire clean coder series is great but most of it is in Java although some of it is in Go (programming language by Google and I believe what Ethereum was written in?)
https://cleancoders.com

Regarding fundamentals, there's this former martial arts teacher, Stefan Mischook, whose teaching style I personally liked when I started.   
https://www.youtube.com/watch?v=sRj1dMkoyOw
(Warning: He is NOT a blockchain/bitcoin expert like some of the gentleman on this board but for a beginner, gives a good foundation)

I might add (and I know I might get criticized for this but someone taught me this) that if possible, try to learn, or even understand the basics of a functional language FIRST, before learning JS or Python since you'll develop habits that will help organize your thoughts in a way to avoid messy coupling that could lead to bugs.  Mutable state will fuck you up man and even the new language that ppl are hyped about, Simplicity, is a functional language that has NO loops.  If I have time, I even want to try and pick up a little bit of Haskell which Simplicity borrows from I believe.

@Joaco @alia - I wanted to try to learn Solidity awhile back also but after of all the problems Ethereum had been having, I've been reluctant to invest in something that's not solid (pun intended).  What's your opinions of Solidity?

@hgbing - I'm game.  How about maybe setting up a Slack?  If not, I'll Skype ya.




Startup helping indie musicians/artists
HeRetiK
Hero Member
*****
Offline Offline

Activity: 714
Merit: 594


the forkings will continue until morale improves


View Profile
February 21, 2018, 10:09:12 AM
Merited by hatshepsut93 (3)
 #10

I do not recommend selecting a “beginner’s language” for anything whatsoever to do with Other People’s Money.  Use a “beginner’s language” if you want to do casual programming, making little games or performing little practical tasks on your own computer.  If you want to handle Other People’s Money, then you need to be a serious programmer.  Serious programmers usually don’t start with a “beginner’s language”; certainly if they have the aptitude, they don’t need to.  If you read up on the concept of, say, pointer arithmetic, and you feel that little light bulb go on in your head—then why wouldn’t you start by playing with pointers?

I have to partially disagree with you here. You can write great code in JavaScript or Python. You can write exceptionally shitty code in C or C++.

While I agree with your sentiment that "serious programmers" should heavily focus on computer science fundamentals I still believe there's nothing wrong with starting with more accessible languages as long as you are willing to move on and are aware of the limitations of the technology you use and especially your own skill level. That is to say, gather experience and knowledge before you even think about handling people's money, regardless of which programming language you start with.


If you have NO experience start with HTML and CSS, slowly work your way into JS. Once in JS, Solidity should come fairly easy to you

This is how we eventually obtain such threads as, “Bad Code Has Lost $500M of Cryptocurrency in Under a Year”.  See especially the discussion downthread of Ethereum.

This I fully agree with.


Think:  Would you trust a surgeon who started his formal studies by doing “surgery” on pineapples with a kitchen knife, then worked up from there?

Surgeons don't start their formal studies on human bodies either though. Point being, you need to start somewhere and that's okay as long as you're willing to continue learning and are aware of your own skill level.

Regardless of everything stated above I do agree with your sentiment that most people tend to vastly underestimate what it takes to become a software engineer that is actually able to handle money.

aplistir
Full Member
***
Offline Offline

Activity: 238
Merit: 104



View Profile
February 21, 2018, 11:30:59 AM
 #11

Python is the best. There are many easy to use libraries for python, that do all the hard stuff easily.

And I say this even though I have many years of experience in coding C++ and muh less in python.

My Address: 121f7zb2U4g9iM4MiJTDhEzqeZGHzq5wLh
J_CCreate
Copper Member
Jr. Member
*
Offline Offline

Activity: 84
Merit: 0

Grow with Crowdcreate


View Profile WWW
February 21, 2018, 12:53:29 PM
 #12

Yep, start with anything, but one thing you need to understand is the logic of the language. It`s popular now to do the Ether smart contracts, so try to watch how are they coded and slowly start to make your own. It will be difficult, but you`ll understand it deep
hatshepsut93
Hero Member
*****
Offline Offline

Activity: 756
Merit: 539


Vires in numeris


View Profile
February 21, 2018, 11:31:51 PM
Merited by nullius (1)
 #13


I have to partially disagree with you here. You can write great code in JavaScript or Python. You can write exceptionally shitty code in C or C++.

While I agree with your sentiment that "serious programmers" should heavily focus on computer science fundamentals I still believe there's nothing wrong with starting with more accessible languages as long as you are willing to move on and are aware of the limitations of the technology you use and especially your own skill level. That is to say, gather experience and knowledge before you even think about handling people's money, regardless of which programming language you start with.


I agree with your first statement, for example Lightning App and Zap desktop clients are written in Javascript and Electrum is written in Python. Also, Node.js is widely used for servers, so it's very wrong to mark high-level languages and "useless for serious applications".
But I think it's actually more correct to start with basics like low level languages, information theory, computer science, cryptography and first of all math and then moving on to high-level languages. Because even if they abstract away from low level concepts to make programming easier, it's still important to understand what's going on under the hood to be a better programmer overall.

HeRetiK
Hero Member
*****
Offline Offline

Activity: 714
Merit: 594


the forkings will continue until morale improves


View Profile
February 22, 2018, 12:08:48 AM
 #14

But I think it's actually more correct to start with basics like low level languages, information theory, computer science, cryptography and first of all math and then moving on to high-level languages. Because even if they abstract away from low level concepts to make programming easier, it's still important to understand what's going on under the hood to be a better programmer overall.

Point taken. I'd still argue that starting with a top level language and working your way down is an equally valid approach, alas I can't claim this to be more than my own personal opinion.

I fully agree though that it's incredibly important to get a holistic understanding of whatever technology you are working with. However that's knowledge that takes years to built regardless of whether you are approaching your studies from the top down or bottom up. (studies in the broadest sense of the world, if you ever stop learning as a developer you are likely doing your job wrong)

Apart from theoretic fundamentals, one thing I also find important is to learn new programming languages every now and then. You may never use the language in production, but being exposed to new paradigms and design philosophies can vastly increase your toolset for future endeavours.

without
Jr. Member
*
Offline Offline

Activity: 41
Merit: 0

Crypto Enthusiast and Software Developer


View Profile
February 22, 2018, 12:19:39 AM
 #15

I can recommend you C#. Its easy to learn and is much more valuable than learning JS for example.

Start by learning the language basics and then move on to creating your own crypto related project to gain some experience.
polang
Newbie
*
Offline Offline

Activity: 18
Merit: 0


View Profile
February 22, 2018, 01:45:10 AM
 #16

I like python and go. It is simple but powerful
nullius
Copper Member
Full Member
***
Offline Offline

Activity: 140
Merit: 720


Help! I’ve got the Pleurodelinaemia! @nym.zone


View Profile WWW
February 22, 2018, 02:10:33 AM
 #17

I request that this not become a “generically list your favourite languages” megathread technically unsuitable even for Off-Topic.

If you propose a language, please explain substantively why you think it will meet OP’s needs.  Better still, suggest an approach for learning that language.  Best of all, explain why picking a language is not the way to start.  —Also best of all, discuss others’ substantive posts.0  See upthread for examples of all these things.

Thank you.


(0. And I do hope to reply to some of the better posts upthread.)

Seattle2k
Newbie
*
Offline Offline

Activity: 3
Merit: 0


View Profile
February 22, 2018, 02:43:49 AM
 #18

Ivan just posted a video to get you started with Python + Bitcoin
https://www.youtube.com/watch?v=BRgpf97h0eI
Dirsh
Newbie
*
Offline Offline

Activity: 5
Merit: 0


View Profile
February 22, 2018, 09:32:41 PM
 #19

I would like to recommend Typescript for the following reasons:

  • It is modern language with simple syntax, but great potential.
  • You can use it for many purposes - server programming (Node.js), website programming (Angular 2+), and app programming (Ionic 2+)
  • It is based on Javascript, so you can use Javascript libraries.

I have learned 10+ programming languages and it is my favorite of all of them.
hatshepsut93
Hero Member
*****
Offline Offline

Activity: 756
Merit: 539


Vires in numeris


View Profile
February 23, 2018, 01:29:12 AM
 #20


Point taken. I'd still argue that starting with a top level language and working your way down is an equally valid approach, alas I can't claim this to be more than my own personal opinion.


Well, maybe it matters less how a person starts learning and more how dedicated and passionate they are.


Apart from theoretic fundamentals, one thing I also find important is to learn new programming languages every now and then. You may never use the language in production, but being exposed to new paradigms and design philosophies can vastly increase your toolset for future endeavours.

Sometimes this can be harmful when people try to learn too many languages and end up being a very mediocre programmer with no specialization. As for paradigms, a lot of modern languages have both object-oriented and functional capabilities, so programmers can learn multiple paradigms without the need to learn a new language.

I hope my posts are not drifting too far away from the topic, as I want to add one more advice based on personal experience.

Nowadays there's a lot of courses, online lessons, tutorials that try to teach programming and while they can be great entry points for begginers, I feel like their educational value quickly decreases as soon as a person grasps on the basics of programming. I think the best way to learn is by trying to solve progressively harder problems, reading docs and good technical articles.

Pages: [1] 2 »  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!