Pages:
Author

Topic: I want to learn coding / with blockchain whats the best language? - page 2. (Read 748 times)

legendary
Activity: 3122
Merit: 2178
Playgram - The Telegram Casino
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.
legendary
Activity: 3024
Merit: 2148

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.
copper member
Activity: 224
Merit: 0
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
full member
Activity: 378
Merit: 197
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.
legendary
Activity: 3122
Merit: 2178
Playgram - The Telegram Casino
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.
newbie
Activity: 13
Merit: 1
@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.



copper member
Activity: 630
Merit: 2614
If you don’t do PGP, you don’t do crypto!
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
member
Activity: 224
Merit: 11
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
jr. member
Activity: 56
Merit: 115
Lowest EVER interest lending! (Use escrow always)
Python and JS are great for beginners; also take a look at Solidity if you want to start building contracts on Ethereum.
jr. member
Activity: 111
Merit: 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!
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
member
Activity: 66
Merit: 22
You could learn Solidity and develop smart contracts on Ethereum network... It's like JS, pretty ease to learn.

Do you have experience coding?
legendary
Activity: 3122
Merit: 2178
Playgram - The Telegram Casino
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
newbie
Activity: 56
Merit: 0
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!
Pages:
Jump to: