Bitcoin Forum

Bitcoin => Project Development => Topic started by: Mateausas on November 27, 2021, 11:41:07 AM



Title: Which programming language to choose?
Post by: Mateausas on November 27, 2021, 11:41:07 AM
Good day everyone!

I am thinking to start learning some programming/coding language just to better understand what is going on behind blockchain/smart contracts and crypto in general. What is more, coding skills are also useful for financial analysis and this is what I started to do recently.

Some of the choices I have came across: Python, C++, Java, JavaScript, (any other ones?);

Taking into account coding/programming for both blockchain and financial analysis, which you guys could recommend me to start learning and why? Which one is the best for a beginner with very low technical skills and no coding skills? Could I start with one of them and later start using other one or the transition between these could be difficult?

Really appreciate the help! Cheers! 8)

Matas


Title: Re: Which programming language to choose?
Post by: BlackHatCoiner on November 27, 2021, 01:33:27 PM
Hi, Mateausas. Can I assume you're a newbie? Why do you want to learn a programming language? Are you interested in contributing to projects, making your own or just use it as tool to your occupation? (e.g., financial analysis)

Python is a relatively simple language to start with, and I'd surely recommend it to someone who has never used another programming language before.

Coding for blockchain sounds absurd. If you tell us what you want to achieve, you may be assisted properly.




In case you don't know much about bitcoin, I'm quoting one of my recent posts that contains useful links;
  • Learnmeabitcoin.com (https://learnmeabitcoin.com/)
  • Bitcoin Information & Education - Resources (https://www.lopp.net/bitcoin-information.html)
  • Mastering Bitcoin 2nd Edition (https://github.com/bitcoinbook/bitcoinbook)


Title: Re: Which programming language to choose?
Post by: Mateausas on November 27, 2021, 01:40:23 PM
Thanks for you answer!

I am a newbie, even worse than that, I have 0 experience. Coding for blockchain sounded absurd because I didn't know how to put it haha, I am this new.

However, I want to learn it to benefit my financial analyst position (maybe become a developer in the future) and also to better understand the programming behind the cryptocurrency world in general, maybe to start with something and get some skills that in the future could help me to learn to build smart contracts or whatever.

I would put it like this, the program that is used widely and having the skills of using it would benefit both the blockchain/smart contracts and analysis sides in one  or another way.

I hope it is clear, maybe haha. Thanks!


Title: Re: Which programming language to choose?
Post by: BlackHatCoiner on November 27, 2021, 01:55:14 PM
I am a newbie, even worse than that, I have 0 experience.
Okay, then pick one of the links I quoted above and start reading. It's valuable, free, perfectly-formulated information.

However, I want to learn it to benefit my financial analyst position (maybe become a developer in the future) and also to better understand the programming behind the cryptocurrency world in general, maybe to start with something and get some skills that in the future could help me to learn to build smart contracts or whatever.
So here's what happened to you. You've drowned to articles that contain fancy words such as smart contracts, non-fungible tokens and decentralized finance that govern in the cryptocurrency industry. There's lot of money behind this; and as much money there is, so much scam as well.

Leave these confusing articles on pending and learn what's bitcoin. Mark my words, you won't regret clearing things up this way.


Title: Re: Which programming language to choose?
Post by: Mateausas on November 27, 2021, 02:09:06 PM
I mean I am a complete newbie in programming and coding, not really in the cryptocurrency. Not too experienced, but not a newbie, I probably did not understand your question haha.



Title: Re: Which programming language to choose?
Post by: sebdeveloper6952 on November 28, 2021, 05:03:21 AM
Python, great to begin your programming adventure. Search tutorials, write code, make mistakes and learn from them.


Title: Re: Which programming language to choose?
Post by: cajancharles on November 29, 2021, 01:32:11 PM
Some of the choices I have came across: Python, C++, Java, JavaScript, (any other ones?);

As long as you understand how things works under the hood, any programming language is sufficient.
If you are beginner- for the sake of learning just programming language syntax- use python.

but if you want to write blockchain. smart contract things you need to understand the low level things like stack, heap, memory management, assembly.
that you usually learn in college year.


Title: Re: Which programming language to choose?
Post by: goldkingcoiner on November 30, 2021, 03:21:46 AM
I would say start with C as your first language then move up to Java. This is how they learn it at every University in my country in courses that have something to do with computer science (or pure computer science). The basics they start you off with is using a Virtual Machine with Ubuntu to start off understanding the basics on a deeper level. I am currently using Oracle VM Virtualbox with an installed Ubuntu VM and basically just using the vim, debugger, compiler and makefiles.

But then again I am just telling you how they do it for first semesters at university. I am no expert. Just starting out.


Title: Re: Which programming language to choose?
Post by: NotATether on December 02, 2021, 08:43:58 AM
I would say start with C as your first language then move up to Java. This is how they learn it at every University in my country in courses that have something to do with computer science (or pure computer science). The basics they start you off with is using a Virtual Machine with Ubuntu to start off understanding the basics on a deeper level. I am currently using Oracle VM Virtualbox with an installed Ubuntu VM and basically just using the vim, debugger, compiler and makefiles.

But then again I am just telling you how they do it for first semesters at university. I am no expert. Just starting out.

You can't do anything in blockchain with Java as there are almost no libraries for it (BitcoinJ being an exception). So start with one of C++ (not C because too many libs now require C++ compilers), Python3 or Javascript/NodeJS.


Title: Re: Which programming language to choose?
Post by: goldkingcoiner on December 02, 2021, 10:04:02 AM
I would say start with C as your first language then move up to Java. This is how they learn it at every University in my country in courses that have something to do with computer science (or pure computer science). The basics they start you off with is using a Virtual Machine with Ubuntu to start off understanding the basics on a deeper level. I am currently using Oracle VM Virtualbox with an installed Ubuntu VM and basically just using the vim, debugger, compiler and makefiles.

But then again I am just telling you how they do it for first semesters at university. I am no expert. Just starting out.

You can't do anything in blockchain with Java as there are almost no libraries for it (BitcoinJ being an exception). So start with one of C++ (not C because too many libs now require C++ compilers), Python3 or Javascript/NodeJS.

Im just telling him how universities do it. First year students learn C first to understand the basics of programming (which they can later apply to almost any programming languages) and then they learn Java for basics on object-oriented programming. So that way its less about getting straight into blockchain but rather first getting into the groundwork of programming. I just think the university approach is more practical because that way, you don't stumble and crash with a long and time-consuming "learning-from-your-mistakes approach" with things you should have learned at the beginning. Its just more efficient.


Title: Re: Which programming language to choose?
Post by: PawGo on December 02, 2021, 10:11:54 AM
I would say start with C as your first language then move up to Java. This is how they learn it at every University in my country in courses that have something to do with computer science (or pure computer science). The basics they start you off with is using a Virtual Machine with Ubuntu to start off understanding the basics on a deeper level. I am currently using Oracle VM Virtualbox with an installed Ubuntu VM and basically just using the vim, debugger, compiler and makefiles.

But then again I am just telling you how they do it for first semesters at university. I am no expert. Just starting out.

You can't do anything in blockchain with Java as there are almost no libraries for it (BitcoinJ being an exception). So start with one of C++ (not C because too many libs now require C++ compilers), Python3 or Javascript/NodeJS.

I think it should be a bit different approach. In fact there are 2 ways:
1) problem
2) education

Ad 1)
If you have particular problem, find the best tool to solve it. Are you interested in machine learning, blockchain, computer graphic, music? Each problem has different tools and programs - so you may start to learn how to use them later how to enhance them and at the end how to build your own. If you know the scope or what you want to accomplish, it will be easier to understand the way program works. And reading good program you learn a lot.
Ad 2)
"Educative" paths are usually similar - you start with writing/designing algorithms, to understand what you may expect from such a stupid machine as computer. Then you start with structural programming and move to object oriented programming. Or typed language.
Apart of languages like Turbo Pascal ( ;D ) I think you may start with doing simple things in PHP. And later you will go into Java or C. Or C#. If you know one, you almost know others...

Anyway, I recommend that book to read "Clean Code" by Robert C. Martin: https://www.oreilly.com/library/view/clean-code-a/9780136083238/



Title: Re: Which programming language to choose?
Post by: pooya87 on December 03, 2021, 05:59:59 AM
Apart of languages like Turbo Pascal ( ;D ) I think you may start with doing simple things in PHP. And later you will go into Java or C. Or C#. If you know one, you almost know others...
I don't think this is a good approach. I find it best to start with a language from the start and focus on that completely. For example choose C# and stick to it from the beginning. You can learn the basics (doing simple things to understand how programming works) to advanced projects such as writing a full node for a cryptocurrency.
This way your focus isn't divided among multiple languages where you know like 5 languages but all at a beginners level. Besides, some languages may never be useful like PHP and if you needed to (after mastering that one language) you can quickly learn that secondary language with your background.


Title: Re: Which programming language to choose?
Post by: PawGo on December 03, 2021, 07:06:20 AM
Apart of languages like Turbo Pascal ( ;D ) I think you may start with doing simple things in PHP. And later you will go into Java or C. Or C#. If you know one, you almost know others...
I don't think this is a good approach. I find it best to start with a language from the start and focus on that completely. For example choose C# and stick to it from the beginning. You can learn the basics (doing simple things to understand how programming works) to advanced projects such as writing a full node for a cryptocurrency.
This way your focus isn't divided among multiple languages where you know like 5 languages but all at a beginners level. Besides, some languages may never be useful like PHP and if you needed to (after mastering that one language) you can quickly learn that secondary language with your background.

It makes you a technician, not an IT specialist or programmer. Usually one language is not enough, the more you know the better you are. And I don’t even talk about things like learning algorithms and other stuff you learn during computer science studies, but just the knowledge of differences between languages.
That’s true c# is a good choice in general, but it does not solve all problems. Maybe he will switch to building webpages? Or bash scripts?
I would say again- there is no one language for all, your problem decides what would be the best tool. But wide scope of education covers many subjects and - what is the most important- teach you how to think as a programmer, not just a dump copy-paste guy.


Title: Re: Which programming language to choose?
Post by: pooya87 on December 03, 2021, 08:09:47 AM
It makes you a technician, not an IT specialist or programmer. Usually one language is not enough, the more you know the better you are. And I don’t even talk about things like learning algorithms and other stuff you learn during computer science studies, but just the knowledge of differences between languages.
That’s true c# is a good choice in general, but it does not solve all problems. Maybe he will switch to building webpages? Or bash scripts?
I would say again- there is no one language for all, your problem decides what would be the best tool. But wide scope of education covers many subjects and - what is the most important- teach you how to think as a programmer, not just a dump copy-paste guy.
I agree and that's not what my argument was. I'm saying the approach was bad, I said you shouldn't start learning multiple languages or start learning a language that you aren't going to use.
Instead you should start from a main language and put 100% focus on becoming an expert in that language. Then start learning other languages to achieve things that you can't do in the main language or things that can be done better in another language.


Title: Re: Which programming language to choose?
Post by: OddyseyGames on December 11, 2021, 08:34:51 AM
It all depends on the specific goals. Regardless of how you use your knowledge, you must learn 2 languages, the syntax of which will help you to learn more languages in the future.

Must have.

Code:
1) C / C ++
2) Java

Now it is "fashionable" to write in Rust, but for a beginner, personally, I think that it is difficult and will not give as many basics as the languages suggested above.


Title: Re: Which programming language to choose?
Post by: icopress on December 11, 2021, 06:27:54 PM
You can view the index of the popularity of all programming languages here [https://www.tiobe.com/tiobe-index/ (https://www.tiobe.com/tiobe-index/)], but as was said above and with which I agree ... it is better to be more far-sighted and choose the programming language that will give a better understanding of the theory and make it easier for you to learn other languages in the future, (even if it gets tricky in the beginning, OddyseyGames gave a great example when talking about C ++).

Here are a few more rankings to rely on: Popularity of Programming Language index (https://pypl.github.io/PYPL.html) (GitHub rating) / IEEE (https://spectrum.ieee.org/) (rating based on 11 parameters).


Title: Re: Which programming language to choose?
Post by: DaveF on December 25, 2021, 02:10:55 PM
Quoting myself:
The right tool for the job. Will always depend on the job.
Want to move a lot of lumber. Then a full size pickup is great.
Want to deliver pizza in a crowded city. Then a smart car might be better.

JD saying rust is good for system / real time is fine. Unless it's a low power embedded system, then assembly language might be better, small and fast execution.
And so on. There is no good / better / best without knowing all the details.

-Dave

But for the OP there are 3 things.
1) Is learning HOW to program. As others have mentioned there are many easy languages to learn, and even if they don't have any direct way to be useful in the crypto world, learning them will still let you get a 'feel' for programming. If you like it, if you think it will be something you can do.

2) Is then learning more languages that are going to be more useful in the crypto world, but are at least in my opinion, are more difficult to learn.

3) Then here is the hard part, developing what you want to do "on paper" so to speak and figuring all the pitfalls and issues and things that are needed before you even begin to code your project.

-Dave


Title: Re: Which programming language to choose?
Post by: CoinsData on December 25, 2021, 06:42:16 PM
I can recommend you to start from Java -> then move to Kotlin (You can cover mobile and web part of development).


Title: Re: Which programming language to choose?
Post by: NeuroticFish on December 25, 2021, 07:08:31 PM
It would be best to study Python or C++. They are most focused on beginners.

C# is imho much more beginner friendly than C++.
On the other hand, a bit of C++, a bit of discipline in deallocating the resources you use, may come handy at some point too.
But while generic programming languages can help in Bitcoin, they may not be useful fro smart contracts.

However, I suggest OP start with one step at a time. Pick a programming language and learn/understand it well. Next ones will be easier to learn. And you'll need - sooner or later - to understand more than one.
Then you can move on to next step - understanding the backgrounds of the Bitcoin and its blockchain.
Then you can move to ethereum and smart contracts, if you want to.

I don't do smart contracts, but I think that if you miss a step it may be a problem later.


Title: Re: Which programming language to choose?
Post by: bitmover on December 26, 2021, 11:31:20 AM
I am studying some programming languages for some time, and I think now that studying different languages is good.

A good programmer needs to learn the mindset to solve problems in an efficient way. Learn how to use lists , dictionaries. Learn   how to organize data  how to groupby. How to use strings and regex. Those are a few examples. Most languages can do that.

I studied a bit of SQL, python,  Javascript   ,C, all of them will help each other and you may use that tools later on.

Focus on the problems you want to solve, and learn the tools you need to solve them


Title: Re: Which programming language to choose?
Post by: mindrust on December 26, 2021, 11:40:55 AM
Good day everyone!

I am thinking to start learning some programming/coding language just to better understand what is going on behind blockchain/smart contracts and crypto in general. What is more, coding skills are also useful for financial analysis and this is what I started to do recently.

Some of the choices I have came across: Python, C++, Java, JavaScript, (any other ones?);

Taking into account coding/programming for both blockchain and financial analysis, which you guys could recommend me to start learning and why? Which one is the best for a beginner with very low technical skills and no coding skills? Could I start with one of them and later start using other one or the transition between these could be difficult?

Really appreciate the help! Cheers! 8)

Matas

All programming languages are pretty similar. (except for the C family. Pointers can be hard to comprehend) The concepts are mostly the same. If you are going to develop crypto, you should probably learn C.

Python is more like a general use language which you  can use on almost anything but not without a cost. It is slow. When you learn some other language other than python, you'll learn the whole language in 30 mins.

Javascript is mostly about web/mobilephone stuff.

Java is... java. You can do anything with it. You can do anything with any of those languages. (I've seen people running linux on a browser using javascript wtf) The thing is there are certain libraries which you can find for Javascript and won't be available for C. So...

If you are sure that you want to be a crypto/blockchain guy, then C should be your choice. If you hate C, you can always go back and become something else.  ;D


Title: Re: Which programming language to choose?
Post by: Stalker22 on December 26, 2021, 07:05:39 PM
There are many disagreements regarding which programming language is the best choice for developers. Some people argue that all are equally good for developers, but this discussion is rarely taken seriously. That is because there are many different arguments about which language is best.
Most people end up picking their favorite and go on to learn it well. The developers who learn Java, JavaScript, and Ruby will end up far ahead of those who pick C++, for example. However, I believe that choosing a programming language is too important to get wrong. More important, I think that the choice of programming language has a significant impact on the development process and the initial requirements of a project. This impacts the design, building and quality of the initial product. It also affects how the product should be kept up to date with new developments.

There is an interesting article on this topic from Columbia Engineering Boot Camps which I think is good to read: Best Programming Languages for Finance & FinTech in 2022 (https://bootcamp.cvn.columbia.edu/blog/best-programming-languages-finance-fintech/)

1. Python
Quote
Python is a popular fintech language because it’s simple, flexible, and one of the easiest coding languages to learn — especially for beginners. Professionals use the language in a variety of industries and, as a result, more than 51 percent of hiring managers look for candidates who know Python, according to HackerRank.

2. Java
Quote
Java is the top-ranked programming language in finance, according to HackerRank, for reasons that mirror its general cross-industry popularity. The language has a friendly learning curve, can handle significant amounts of data, and boasts rigid security features.

3. C++
Quote
C++ is considered very fast, in part because it is a compiled language, meaning that a compiler translates its code to machine language. Since the computer requires less translation to understand the code you’re writing, it operates more efficiently.

4. C#
Quote
C# is an important language for companies that build applications on Microsoft’s .NET development framework. The language was created specifically for the framework, making app-builds easy and secure. It also benefits from a huge user community and library of tools.

5. Ruby
Quote
Ruby is a free, open-source language that launched in 1995. Ruby’s popularity grew with the development of the Ruby on Rails framework, which is used widely in developing web applications.
Ruby shares many programming traits important to fintech — notably speed, security, and flexibility.
source: https://bootcamp.cvn.columbia.edu/blog/best-programming-languages-finance-fintech/


Title: Re: Which programming language to choose?
Post by: PawGo on December 26, 2021, 08:53:51 PM
Maybe he should start with learning "programming", not learning "programming language"?
I mean - learn how to build a algorithms, how to construct/define loops and conditions.
Maybe it would be useful to buy a "toy" robot to assembly, with it's native programming based on blocks and UI on smartphone/tablet?
Something like: https://www.youtube.com/watch?v=hJiEoOvvIlk



Title: Re: Which programming language to choose?
Post by: Stalker22 on December 26, 2021, 10:13:09 PM
Maybe he should start with learning "programming", not learning "programming language"?
I mean - learn how to build a algorithms, how to construct/define loops and conditions.

Maybe you have a point. While the OP mentioned that it had very little technical skills and no coding skills, I believe everything can be learned with the right approach. There are some programming languages that are more suitable for beginners without prior programming experience. For example, Python and PHP are ideal languages for beginners and very easy to learn.


Title: Re: Which programming language to choose?
Post by: cryptoQueez on January 07, 2022, 11:08:23 AM
I suggest you to choose python programming language. Because it's easy than any other language that haven't done before.