Bitcoin Forum
April 26, 2024, 03:56:15 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 4 5 »  All
  Print  
Author Topic: What programming language to learn?  (Read 14366 times)
Bitcoin Swami (OP)
Full Member
***
Offline Offline

Activity: 182
Merit: 100


View Profile
July 10, 2011, 02:38:34 AM
 #1

Its been a while since I programmed (basic) <-- dont laugh.. gorilla was an awesome game!

anyways I'd like to learn to make scripts or programs that can help bitcoin, I'm just wondering if I had to learn one which would be the best.  Should I learn C or should I learn php for web stuff.   Kinda leaning toward php.  But just wondering what others think.  When i go to learn something I go balls to the wall.

What is the bitcoin client programmed in?

Anyways thanks.
There are several different types of Bitcoin clients. The most secure are full nodes like Bitcoin Core, which will follow the rules of the network no matter what miners do. Even if every miner decided to create 1000 bitcoins per block, full nodes would stick to the rules and reject those blocks.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
josell
Full Member
***
Offline Offline

Activity: 308
Merit: 100


View Profile
July 10, 2011, 02:57:53 AM
 #2

Python in the best for start programming. However, C++ ir good as well, but a little difficult.
wolftaur
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
July 10, 2011, 03:00:21 AM
 #3

I'm partial to Ruby, myself. And it's a pretty good first language, in my opinion. (Kinda wish it was available 28 years ago when I started coding!)

"MOOOOOOOM! SOME MYTHICAL WOLFBEAST GUY IS MAKING FUN OF ME ON THE INTERNET!!!!"
kr105
Hero Member
*****
Offline Offline

Activity: 938
Merit: 501


View Profile
July 10, 2011, 03:06:18 AM
 #4

- Learn C, then you're almost ready to learn PHP and others.
- The bitcoin client is written in C++
- Many users here write their scripts in Phyton, i personally don't like it, but i think that i'll need to learn it sooner or later.
skottiejay
Full Member
***
Offline Offline

Activity: 140
Merit: 110


bitcoinnaire


View Profile WWW
July 10, 2011, 03:07:13 AM
 #5

I second the Python/Ruby route myself, I'm not an experienced programmer and only dabble in a few languages (can't keep my attention span long enough) but these would probably be great languages to learn.

I see a lot of people in other places offer up the advice to just jump straight into a lower level language like c, c++, etc and I don't think that's a good idea. Personally I understand a lot more ABOUT those languages now that I've already programmed in a python/ruby/etc than if I'd just jumped ship and started with asm/c/c++

What else could I say?
Chick
Member
**
Offline Offline

Activity: 70
Merit: 10


View Profile
July 10, 2011, 03:15:53 AM
 #6

herp derp php.

ampkZjWDQcqT
Member
**
Offline Offline

Activity: 70
Merit: 10


GNU is not UNIX


View Profile
July 10, 2011, 03:28:33 AM
 #7

You shouldn't go with your mind set to "learn a programming language". A "programming language" is only an expression of the underlying art, The art of computer programming, there even is a multi-volume book bearing that title. Programmers ought to dedicate their career to master this art. I recommend Structure and Interpretation of Computer Programs. TAOCP is a legend, it's very lengthy but if you have enough time you can't afford to not to read it.

Lisp is a family of programming languages which bear the essence of programming than have been lost in modern computer languages made for the computer pawns, the bottom 99 percentile which dare to call themselves a "programmer". Scheme is probably the most elegant computer language, it is used in the SICP (The book linked above). Learning the proper use of Lisp is a unique enriching experience for the artist programmer, even if you are working with other computer languages. C does exactly what it's supposed to do and does it well. Unfortunately you will probably have to learn to find your way in C++ if you plan to work on the Bitcoin reference implementation.

Quote
Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary. Scheme demonstrates that a very small number of rules for forming expressions, with no restrictions on how they are composed, suffice to form a practical and efficient programming language that is flexible enough to support most of the major programming paradigms in use today.

In advance, the reply to this is your biased point of view accusation is Of course!. Pretending human recommendations or opinions aren't biased is naive. However, people honest with themselves and their fellows will try to make their opinions biased toward what's perceived by the former as good, right or better and I'm no exception.

Regards.

If you found my comment useful please express your gratitude by doing an action of similar magnitude towards a better society. Thanks you!.
Bitcoin Swami (OP)
Full Member
***
Offline Offline

Activity: 182
Merit: 100


View Profile
July 10, 2011, 03:31:33 AM
 #8

Thanks guys great replies.  I will be researching more.
MeSarah
Full Member
***
Offline Offline

Activity: 154
Merit: 100


View Profile
July 10, 2011, 03:45:44 AM
 #9

I would suggest php and sql. Php was easy to learn but I also have a background in c++ and vb, .net. If you learn php you can find alot of tutorials on youtube. With xampp you be programming in no time. The hardest thing to learn is the sql. I would suggest getting a book on mysql if you want to harness the power of sql. Also a good ide will help you learn faster. You can start with notpad++ but a better start is Phpdesigner 7.x. Phpdesigner is about the cost of a book and its a wonderful teacher. It will point out mistakes where notepad++ only does syntax highlighting. Once you have the base structures learned you can transer those to other languages. But the real question is what is it that you want to achieve?

60 GH/s BFL Single SC - Pre-Order Yours Today!
`````` Only $1299.99 - butterflylabs.com ``````
skottiejay
Full Member
***
Offline Offline

Activity: 140
Merit: 110


bitcoinnaire


View Profile WWW
July 10, 2011, 04:06:28 AM
 #10

You shouldn't go with your mind set to "learn a programming language". A "programming language" is only an expression of the underlying art, The art of computer programming, there even is a multi-volume book bearing that title. Programmers ought to dedicate their career to master this art. I recommend Structure and Interpretation of Computer Programs. TAOCP is a legend, it's very lengthy but if you have enough time you can't afford to not to read it.


+1 on the SICP, it's a definite must read.

What else could I say?
hugolp
Legendary
*
Offline Offline

Activity: 1148
Merit: 1001


Radix-The Decentralized Finance Protocol


View Profile
July 10, 2011, 04:51:32 AM
 #11

You should choose either go to C or go to python (or ruby, but I personally preffer python). C will give you a more clear understanding about programming and will make it easier to learn any other programming language in the future, but its harder to learn. Python is easier to learn and will allow you to achieve results way faster.


               ▄████████▄
               ██▀▀▀▀▀▀▀▀
              ██▀
             ███
▄▄▄▄▄       ███
██████     ███
    ▀██▄  ▄██
     ▀██▄▄██▀
       ████▀
        ▀█▀
The Radix DeFi Protocol is
R A D I X

███████████████████████████████████

The Decentralized

Finance Protocol
Scalable
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
██▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀██
██                   ██
██                   ██
████████████████     ██
██            ██     ██
██            ██     ██
██▄▄▄▄▄▄      ██     ██
██▀▀▀▀██      ██     ██
██    ██      ██     
██    ██      ██
███████████████████████

███
Secure
      ▄▄▄▄▄
    █████████
   ██▀     ▀██
  ███       ███

▄▄███▄▄▄▄▄▄▄███▄▄
██▀▀▀▀▀▀▀▀▀▀▀▀▀██
██             ██
██             ██
██             ██
██             ██
██             ██
██    ███████████

███
Community Driven
      ▄█   ▄▄
      ██ ██████▄▄
      ▀▀▄█▀   ▀▀██▄
     ▄▄ ██       ▀███▄▄██
    ██ ██▀          ▀▀██▀
    ██ ██▄            ██
   ██ ██████▄▄       ██▀
  ▄██       ▀██▄     ██
  ██▀         ▀███▄▄██▀
 ▄██             ▀▀▀▀
 ██▀
▄██
▄▄
██
███▄
▀███▄
 ▀███▄
  ▀████
    ████
     ████▄
      ▀███▄
       ▀███▄
        ▀████
          ███
           ██
           ▀▀

███
Radix is using our significant technology
innovations to be the first layer 1 protocol
specifically built to serve the rapidly growing DeFi.
Radix is the future of DeFi
█████████████████████████████████████

   ▄▄█████
  ▄████▀▀▀
  █████
█████████▀
▀▀█████▀▀
  ████
  ████
  ████

Facebook

███

             ▄▄
       ▄▄▄█████
  ▄▄▄███▀▀▄███
▀▀███▀ ▄██████
    █ ███████
     ██▀▀▀███
           ▀▀

Telegram

███

▄      ▄███▄▄
██▄▄▄ ██████▀
████████████
 ██████████▀
   ███████▀
 ▄█████▀▀

Twitter

██████

...Get Tokens...
adamstgBit
Legendary
*
Offline Offline

Activity: 1904
Merit: 1037


Trusted Bitcoiner


View Profile WWW
July 10, 2011, 04:57:36 AM
 #12

would help to have a site the dose wat bitcoin.local dose but much better.Bigger

so i ya go with quick and dirty php Tongue
and make the site!

or the best soution

a C# windows program called bitcoinlocal.exe

EconomicOracle
Member
**
Offline Offline

Activity: 71
Merit: 10

I can predict the future! Bitcoin will success!!!!


View Profile
July 10, 2011, 06:00:18 AM
 #13

PHP can do ANYTHING!

GOOOOOOOOOOO BITCOINS!!!!!!!!!!!!!!!
Edit: Oops. Just fixed a typo. It should be GO (like GO TEAM!) and not GOOB
Edit2: Just checked the dictionary and goob is not a word
Swishercutter
Full Member
***
Offline Offline

Activity: 210
Merit: 100


View Profile
July 10, 2011, 06:16:14 AM
 #14

Its been a while since I programmed (basic) <-- dont laugh.. gorilla was an awesome game!




I'm with you...all I really know is Basic and 8088 assembly (electronics class...8088 primer trainer, hex button input and 7 segment LED display...lol).  I have been learning "Processing" because I have been doing a bunch of Arduino/Reprap stuff and that is the language they use (I guess its pretty much C+ or something).

I would love to learn Python and PHP myself...just takes reading and playing around...the thing I love about coding is that you don't need to buy a lot of parts to do it (i.e. electronics requires buying parts for every project) just have a capable computer and create.
mouse
Newbie
*
Offline Offline

Activity: 56
Merit: 0



View Profile
July 10, 2011, 08:06:11 AM
Last edit: July 10, 2011, 01:27:30 PM by mouse
 #15

*edit* This is for those who are considering getting into programming. I'm not so much looking at just 'what is best to help with bitcoin'.

There are 3 main programming paradigm's that I’m aware of: procedural, object orientated, and functional. I'm going to suggest you start with Object Orientated. For that, I'm going to nominate Java or Python.

If you take up Java, you can help with the bitcoinj project. You can also work on Android clients.

I don't think that for learning programming, C or C++ are your best choices. I think you want a language that introduces to the most Object Orientated concepts with the least amount of technical baggage. From that perspective, C and C++ would be ruled out. I really can't see the point in learning about garbage collection as an initial introduction to programming.

If you ever want to get serious about functional (a lot of languages like to 'borrow' elements from this paradigm) have a look at Haskell.

For python or Java free learning resources:
http://diveintopython.org/
www.mindview.net/Books/TIJ/ (Bruce Eckels Thinking In Java)
www.mindview.net/Books/TIPython (Bruce Eckels Thinking In Python)

ShaggyB (BitCoinWorldMarket)
Newbie
*
Offline Offline

Activity: 32
Merit: 0


View Profile WWW
July 10, 2011, 09:26:02 AM
 #16

You shouldn't go with your mind set to "learn a programming language". A "programming language" is only an expression of the underlying art, The art of computer programming, there even is a multi-volume book bearing that title. Programmers ought to dedicate their career to master this art. I recommend Structure and Interpretation of Computer Programs. TAOCP is a legend, it's very lengthy but if you have enough time you can't afford to not to read it.

Lisp is a family of programming languages which bear the essence of programming than have been lost in modern computer languages made for the computer pawns, the bottom 99 percentile which dare to call themselves a "programmer". Scheme is probably the most elegant computer language, it is used in the SICP (The book linked above). Learning the proper use of Lisp is a unique enriching experience for the artist programmer, even if you are working with other computer languages. C does exactly what it's supposed to do and does it well. Unfortunately you will probably have to learn to find your way in C++ if you plan to work on the Bitcoin reference implementation.

Quote
Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary. Scheme demonstrates that a very small number of rules for forming expressions, with no restrictions on how they are composed, suffice to form a practical and efficient programming language that is flexible enough to support most of the major programming paradigms in use today.

In advance, the reply to this is your biased point of view accusation is Of course!. Pretending human recommendations or opinions aren't biased is naive. However, people honest with themselves and their fellows will try to make their opinions biased toward what's perceived by the former as good, right or better and I'm no exception.

Regards.



While there are a ton of languages out there, and I agree that a good solid programmer doesn't learn a language they learn how to program, every solid engineer gets their start in one language.

Myself, I lean towards C# and .NET, but I've messed around with PHP and Ruby. For web stuff, you might find PHP to be the most free. Its pretty powerful and quick. Some even say it can do anything, im still waiting for it to make me coffee in the morning but hey.

Find a language that you can get behind, learn the basics and then if you feel like moving on, explore a completely different language. PROLOG will blow you mind!
flug
Sr. Member
****
Offline Offline

Activity: 280
Merit: 250



View Profile
July 10, 2011, 09:36:33 AM
 #17

For a really nice language that's interoperable with Java on the JVM, have a look at Scala.

Here's a blog post by Bruce Eckel about it:

http://www.artima.com/weblogs/viewpost.jsp?thread=328540
Stardust
Full Member
***
Offline Offline

Activity: 189
Merit: 100


View Profile
July 10, 2011, 09:39:20 AM
 #18

Bash, Python, and C/C++. If I were you I would stay away from Java.
angelo95
Member
**
Offline Offline

Activity: 84
Merit: 10


View Profile
July 10, 2011, 10:14:51 AM
 #19

If you want to do web development, go for php
If you want something more general, go for python.

This advise is related to the experience you described.
giantdragon
Legendary
*
Offline Offline

Activity: 1582
Merit: 1002



View Profile
July 10, 2011, 11:26:01 AM
 #20

C++ with Qt Framework.
Pages: [1] 2 3 4 5 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!