Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: elliptic_kid on April 20, 2016, 05:40:24 PM



Title: [First Post] Mathematics undergrad - Interested in getting involved
Post by: elliptic_kid on April 20, 2016, 05:40:24 PM
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

 


Title: Re: [First Post] Mathematics undergrad - Interested in getting involved
Post by: Carlton Banks on April 20, 2016, 07:04:20 PM
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!


Title: Re: [First Post] Mathematics undergrad - Interested in getting involved
Post by: elliptic_kid on April 20, 2016, 11:30:41 PM
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"


Title: Re: [First Post] Mathematics undergrad - Interested in getting involved
Post by: achow101 on April 20, 2016, 11:38:22 PM
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.


Title: Re: [First Post] Mathematics undergrad - Interested in getting involved
Post by: elliptic_kid on April 21, 2016, 12:02:30 AM
Thank you


Title: Re: [First Post] Mathematics undergrad - Interested in getting involved
Post by: Manfred Macx on April 21, 2016, 09:01:08 AM
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 (https://bitcoin.org/en/developer-guide)

Finally, a few days ago an interesting article came out Bitcoin Core launches sponsorship program to support R&D (https://www.cryptocoinsnews.com/bitcoin-core-sponsorship/). 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.


Title: Re: [First Post] Mathematics undergrad - Interested in getting involved
Post by: elliptic_kid on April 22, 2016, 03:05:16 AM
Thank you, that is helpful.