Bitcoin Forum
May 23, 2024, 11:00:41 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: [First Post] Mathematics undergrad - Interested in getting involved  (Read 898 times)
elliptic_kid (OP)
Newbie
*
Offline Offline

Activity: 6
Merit: 1


View Profile
April 20, 2016, 05:40:24 PM
Merited by ABCbits (1)
 #1

Greetings all,

I am a recent Mathematics undergrad interested in getting more involved with bitcoin.
I have some experience with the more theoretical math side of cryptography, but only a little exposure to computer science (some basic Python knowledge).

My question is: How can I study and get started in the world of bitcoin? read Mastering Bitcoin first? try to get an internship? learn C#?

I did the Princeton MOOC and read their book, I am studying more python since it seems to have widespread use outside of Bitcoin that could be helpful, and I lurk a few forums.

My current job bores me.
I have been around bitcoin since 2011/2012.  I'm sick of sitting on the side lines. Most advice will be appreciated.



Thanks

 
Carlton Banks
Legendary
*
Offline Offline

Activity: 3430
Merit: 3074



View Profile
April 20, 2016, 07:04:20 PM
Merited by ABCbits (1)
 #2

C# probably won't really help, most Bitcoin users wouldn't be too enthusiastic about using any kind of closed source software for cryptocurrency. It's kind of a difficult question to answer really, because the real answer is "become an accomplished computer programmer and contribute to the various open source Bitcoin projects", but that's easier said than done, and takes no small amount of time. If you intend to finish your mathematics qualification with a good degree, I'm not sure how you would find the time to do so, unless you're all work and no play (although to be fair, a significant minority of people can live like that).

If you think you could do that, learning C or C++ is highly desirable if you intend to write high performance, low resource code (and a vast majority of Bitcoin software may well subscribe to that description). This also involves learning something called the Standard Template Library (for C++, at least, don't think templates/STL are available for standard C). Python's also useful, although better suited to prototyping, or for software without demanding performance/resource requirements. If you're naturally good at any of the above, you could be making genuinely valuable coding contributions sooner than you might think. There will be other lesser programming frameworks you will end up picking up also, but C++ and C are the foundations to it all really (simple example; other programming languages like Python or Java and their runtimes are developed using C or C++ in any case).

I guess then it's just a case of finding an area of development that motivates/interests you, and the limits there are your own imagination, really. You can come up with something completely novel if you like!

Vires in numeris
elliptic_kid (OP)
Newbie
*
Offline Offline

Activity: 6
Merit: 1


View Profile
April 20, 2016, 11:30:41 PM
 #3

I think you highlighted a common problem younger, less experienced, minds face when trying to contribute to bitcoin.
The 'real answer' is a tough one because many people may never get started in Bitcoin if they didn't begin to form a strong foundation coding before they entered the workforce.

I think I'll check out C and C++ while I focus on learning more python.







Thanks for the thoughtful reply.

"And this is Little Carlton. He's trying to find his way back to the circus"
achow101
Moderator
Legendary
*
expert
Offline Offline

Activity: 3402
Merit: 6648


Just writing some code


View Profile WWW
April 20, 2016, 11:38:22 PM
 #4

A good place to start is all of the documentation on bitcoin.org. It explains in depth on how bitcoin works on a technical level. Also useful is the bitcoin wiki at bitcoin.it which also has various articles that also go in depth into the technical details. Through those two sites, you should be able to get a strong understanding on how bitcoin works. You should also read the bitcoin whitepaper by Satoshi available at https://bitcoin.org/bitcoin.pdf. Also good stuff to read are the BIPs (Bitcoin Improvement Proposals) which are available at https://github.com/bitcoin/bips.

If you want to get involved in Bitcoin development, it would be a good idea to have a basic understanding of programming and c++. Then you can also look at the source code for Bitcoin Core (the reference implementation) and contribute there. With python, there are also several other wallets out there written in Python such as Electrum and Bitcoin Armory.

If you have any questions, feel free to ask. However, I do ask that you google and search for your question before asking here as most questions have already been asked and answered.

elliptic_kid (OP)
Newbie
*
Offline Offline

Activity: 6
Merit: 1


View Profile
April 21, 2016, 12:02:30 AM
 #5

Thank you
Manfred Macx
Full Member
***
Offline Offline

Activity: 205
Merit: 105


View Profile WWW
April 21, 2016, 09:01:08 AM
Merited by ABCbits (1)
 #6

When I decided I wanted to understand Bitcoin's technical side I started reading Satoshi's paper. I would suggest you do the same. I had to read it several times and write things down because it' really dense. Every sentence and every diagram gives you a new piece of information. I would suggest you start with papers Satoshi references because they will help you understand Bitcoin better.

You might also want to look at Developer guide

Finally, a few days ago an interesting article came out Bitcoin Core launches sponsorship program to support R&D. It lists different things that the Bitcoin world needs, and not all of them are coding. Take a look and you might find something that you can do.

elliptic_kid (OP)
Newbie
*
Offline Offline

Activity: 6
Merit: 1


View Profile
April 22, 2016, 03:05:16 AM
 #7

Thank you, that is helpful.
Pages: [1]
  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!