Bitcoin Forum
May 04, 2024, 05:44:47 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: How does one get started in devlopment for Bitcoin?  (Read 2918 times)
Aemon (OP)
Sr. Member
****
Offline Offline

Activity: 308
Merit: 250


View Profile
December 19, 2014, 04:29:19 PM
 #1

Hey all,

How would I go about contributing, helping people for Bitcoin.  I do have a degree in Computer Science I just don't know where to start here at all, if anyone has any advice, guides that would be great!

Thanks!
1714801487
Hero Member
*
Offline Offline

Posts: 1714801487

View Profile Personal Message (Offline)

Ignore
1714801487
Reply with quote  #2

1714801487
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
548845
Newbie
*
Offline Offline

Activity: 56
Merit: 0


View Profile
December 19, 2014, 06:31:36 PM
 #2

Hey all,

How would I go about contributing, helping people for Bitcoin.  I do have a degree in Computer Science I just don't know where to start here at all, if anyone has any advice, guides that would be great!

Thanks!

That depends on what you mean?

Do you mean contributing to the actual Bitcoin Core Software?
If so I cannot help you, I haven't even bothered. Too many developers on it anyway.

If it is contributing in general then ask around in the general discussion forum: what do members want to see that they didn't yet.

I believe that should get you started since many members here have something about Bitcoin they want to see.

In fact, here's one here: https://bitcointalk.org/index.php?topic=899379.0
(Android)
 
Good luck  Wink
Aemon (OP)
Sr. Member
****
Offline Offline

Activity: 308
Merit: 250


View Profile
December 19, 2014, 06:51:59 PM
 #3

Thanks for the answer, I am just looking to get some practice coding so I can try and one day get a job as a programmer, everywhere I apply I don't get many call returns because everyone wants experience.  Its hard to get experience if no one gives you the chance to get some, so I want to start working on side projects to show them I can code
shorena
Copper Member
Legendary
*
Offline Offline

Activity: 1498
Merit: 1499


No I dont escrow anymore.


View Profile WWW
December 19, 2014, 07:30:26 PM
 #4

Thanks for the answer, I am just looking to get some practice coding so I can try and one day get a job as a programmer, everywhere I apply I don't get many call returns because everyone wants experience.  Its hard to get experience if no one gives you the chance to get some, so I want to start working on side projects to show them I can code

Get your fork... https://github.com/bitcoin/bitcoin


Im not really here, its just your imagination.
Buffer Overflow
Legendary
*
Offline Offline

Activity: 1652
Merit: 1015



View Profile
December 19, 2014, 07:43:00 PM
 #5

I guess you should start with the developer guide to familiarise yourself how Bitcoin works.
https://bitcoin.org/en/developer-documentation

Reynaldo
Legendary
*
Offline Offline

Activity: 1143
Merit: 1000


View Profile
December 20, 2014, 12:03:44 AM
 #6

I guess you should start with the developer guide to familiarise yourself how Bitcoin works.
https://bitcoin.org/en/developer-documentation


Thanks a lot, this is really useful, i was thinking the same question as the OP but regarding mathematics with statistics.
cr1776
Legendary
*
Offline Offline

Activity: 4032
Merit: 1299


View Profile
December 20, 2014, 01:42:33 AM
 #7

Hey all,

How would I go about contributing, helping people for Bitcoin.  I do have a degree in Computer Science I just don't know where to start here at all, if anyone has any advice, guides that would be great!

Thanks!

One thing you might consider is to pick some language you like to use and intend to use (e.g. C, C++, Pascal, Ada, Swift, Smalltalk, php, perl, python, Java, Javascript, Prolog, Lisp, ML or whatever) and do some coding.  Pick a language that you know at least a bit, know the development environment, and have access to.  Some languages might be more of a challenge than others!

Then pick something small to familiarize yourself with how bitcoin works first.

For example, create a private/public pair.   Might be 50-100 lines of code depending on how much you comment it.  You'll learn a lot, and there are examples that you can look at to follow along.  And articles (e.g. http://procbits.com/2013/08/27/generating-a-bitcoin-address-with-javascript).  Then maybe redo it in a more common language if you used something esoteric like ML, Prolog or Lisp.

Then, find another area you can extend it.

Try to avoid using libraries (you may need some, for example an elliptic curve math library might be good).  You will familiarize yourself with some portions of the nuts and bolts if you do a few smaller projects.  Keep an eye on the forums (and join the development list) and see what areas people think need work or improvement.  Look at the BIPs.

You'll figure out what areas are of interest to you, which is important, and what areas you enjoy too!



Aemon (OP)
Sr. Member
****
Offline Offline

Activity: 308
Merit: 250


View Profile
December 30, 2014, 01:46:04 PM
 #8


One thing you might consider is to pick some language you like to use and intend to use (e.g. C, C++, Pascal, Ada, Swift, Smalltalk, php, perl, python, Java, Javascript, Prolog, Lisp, ML or whatever) and do some coding.  Pick a language that you know at least a bit, know the development environment, and have access to.  Some languages might be more of a challenge than others!

Then pick something small to familiarize yourself with how bitcoin works first.

For example, create a private/public pair.   Might be 50-100 lines of code depending on how much you comment it.  You'll learn a lot, and there are examples that you can look at to follow along.  And articles (e.g. http://procbits.com/2013/08/27/generating-a-bitcoin-address-with-javascript).  Then maybe redo it in a more common language if you used something esoteric like ML, Prolog or Lisp.

Then, find another area you can extend it.

Try to avoid using libraries (you may need some, for example an elliptic curve math library might be good).  You will familiarize yourself with some portions of the nuts and bolts if you do a few smaller projects.  Keep an eye on the forums (and join the development list) and see what areas people think need work or improvement.  Look at the BIPs.

You'll figure out what areas are of interest to you, which is important, and what areas you enjoy too!



Wow, Thanks a lot this is pretty much exactly what I am looking for.  The languages I know are C++, C, Javascript and Java really well, I am learning others but am not 100% confident in them yet.  Thanks again!
jonald_fyookball
Legendary
*
Offline Offline

Activity: 1302
Merit: 1004


Core dev leaves me neg feedback #abuse #political


View Profile
December 31, 2014, 12:16:18 AM
 #9

there is a bug log on the git repo, feel free to start fixin stuff Smiley

Fernandez
Legendary
*
Offline Offline

Activity: 1008
Merit: 1000



View Profile
December 31, 2014, 08:47:30 AM
 #10

One thing you can do is fork and create an altcoin. There are lots of altcoin guides around, and it will give you valuable experience.
You can even launch it in altcoin section while making it clear that you're doing it for study purposes.






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





...INTRODUCING WAVES........
...ULTIMATE ASSET/CUSTOM TOKEN BLOCKCHAIN PLATFORM...






DaNksta
Member
**
Offline Offline

Activity: 66
Merit: 10


View Profile
January 02, 2015, 10:15:16 PM
 #11

Thanks for the answer, I am just looking to get some practice coding so I can try and one day get a job as a programmer, everywhere I apply I don't get many call returns because everyone wants experience.  Its hard to get experience if no one gives you the chance to get some, so I want to start working on side projects to show them I can code


Lie about your experience and give your friends as refrences and inform them that someone may be calling and tell them who you put them down as.
I've had several friends land really good jobs doing this - they rarely delve deep into your references if you are applying for a starter position at a company. They will call and probably not much more than that... Get the job, work there and get real coding experience at a company, then you can either work your way up or apply for a different/better job once you have some real job experience.

Don't get so discouraged without actually trying. If you really put effort into getting a job and are willing to spin a few small lies (if needed) to make yourself better than the rest of the applicants - so be it..

If being dishonest doesn't suit you then just learn to sell yourself. If I were hiring people - I would hire someone with less experience if he wanted the job more, was more enthusiastic, and promised he would work hard and be grateful for the opportunity over some guy who just needed a job and had a degree. Especially if he came prepared with examples of his work or showed real effort or persistence.

Just a thought. Don't quit before the race starts.
ncsupanda
Legendary
*
Offline Offline

Activity: 1628
Merit: 1012



View Profile
January 02, 2015, 10:50:37 PM
 #12

When Gavin did an AMA on Reddit I asked a similar question.

http://www.reddit.com/r/Bitcoin/comments/2jw5pm/im_gavin_andresen_chief_scientist_at_the_bitcoin/clfnp9b?context=3
Nicolas Dorier
Hero Member
*****
Offline Offline

Activity: 714
Merit: 619


View Profile
January 03, 2015, 07:15:44 AM
 #13

If you are interested in C# https://github.com/NicolasDorier/NBitcoin.
The code is easier to read, and there is not lot of people. This is the smoother way to start contributing I believe.

You can play with some cool stuff with it, take a look to the articles listed in Readme. Smiley

(And it works on all : Microsoft, Linux and Apple plateform, mobile or not)


Bitcoin address 15sYbVpRh6dyWycZMwPdxJWD4xbfxReeHe
Aemon (OP)
Sr. Member
****
Offline Offline

Activity: 308
Merit: 250


View Profile
January 03, 2015, 07:35:23 PM
 #14

If you are interested in C# https://github.com/NicolasDorier/NBitcoin.
The code is easier to read, and there is not lot of people. This is the smoother way to start contributing I believe.

You can play with some cool stuff with it, take a look to the articles listed in Readme. Smiley

(And it works on all : Microsoft, Linux and Apple plateform, mobile or not)



Thanks for the response, I will check out the github and look around at the code see if I can contribute to anything and start the learning process!  Thanks!
starfeeder
Newbie
*
Offline Offline

Activity: 6
Merit: 0


View Profile
January 05, 2015, 07:54:36 PM
 #15

Thanks for the answer, I am just looking to get some practice coding so I can try and one day get a job as a programmer, everywhere I apply I don't get many call returns because everyone wants experience.  Its hard to get experience if no one gives you the chance to get some, so I want to start working on side projects to show them I can code

If you are at that level, I'd say start by making your own website / blog.

As far as Bitcoin goes, the easiest app you can make would be a price ticker, like preev.com or zeroblock. So if I where you, I'd make one of those.

I'm working on a public address watcher which will display total bitcoins in all accounts combined. Next after that is making a web wallet.

Like some others have said, I wouldn't touch Bitcoin core, don't know C anyways, also wouldn't want to mess anything up with the core client. Rather just built apps that connect to the blockchain.

For resources:

Bitcoin
https://bitcoin.org/en/developer-guide#full-service-wallets
http://www.amazon.com/Mastering-Bitcoin-Unlocking-Digital-Cryptocurrencies/dp/1449374042
https://github.com/aantonop/bitcoinbook

For Programming (web):
I like Tuts+ and Codeschool, I'm currently learning the MEAN stack, and there are various videos and tutorials all over the web.

jxm262
Newbie
*
Offline Offline

Activity: 18
Merit: 0


View Profile WWW
January 05, 2015, 09:06:41 PM
 #16

@starfeeder

You basically just described the path I'm taking Smiley  I just started a nodejs project to get the ticker info for a bunch of exchanges.  I'm thinking of expanding this to make 1 huge node.js wrapper library to aggregate all the api's for all the exchanges (or most of them anyways).  

But before that, I thought to start by making the ticker then maybe some website to send email alerts for a given exchange/price.  Maybe add some charting , etc...

Actually, if we're doing similar things, would you ever want to collaborate?  I'm a java dev during the day, but have been trying to get my hands dirty with Node and Scala.

acoindr
Legendary
*
Offline Offline

Activity: 1050
Merit: 1002


View Profile
January 09, 2015, 05:26:06 AM
 #17

Hey all,

How would I go about contributing, helping people for Bitcoin.  I do have a degree in Computer Science I just don't know where to start here at all, if anyone has any advice, guides that would be great!

Thanks!

Hey welcome!

We've got many great coders and can always use more. Where to start? That depends. Bitcoin now is like the Internet in the 90s, tons of potential but underdeveloped.

Bitcoin can use it all, but you probably want to stick to what you're most interested in. If you really want to help the core of Bitcoin at a minimum you can run a full node (make sure it's done properly). However, something Gavin also mentioned is a big need for people to review core code, because people often prefer writing code to reviewing.

If you're more of an app developer then dive into making things which support Bitcoin use cases, which strengthens the community (especially things with an emphasis on security). Like I said, Bitcoin needs it all!

Also, if you want coding experience for later job prospects a great way to go is contributing to open-source projects. You'll find a lot of opportunities for that in this community too.
legendster
Hero Member
*****
Offline Offline

Activity: 1778
Merit: 764


www.V.systems


View Profile
January 09, 2015, 01:26:14 PM
 #18

Thanks for the answer, I am just looking to get some practice coding so I can try and one day get a job as a programmer, everywhere I apply I don't get many call returns because everyone wants experience.  Its hard to get experience if no one gives you the chance to get some, so I want to start working on side projects to show them I can code

Age old dogma of what comes first ? the egg or chicken.

Freshers need to understand that experience doesnt need to be in a company. Build your own calculator, that counts as an experience. Get the meaning ?


   ██████████        ████████████
     ██████████        ██████████
       ██████████        ████████
         ██████████        ██████
           ██████████        ████
             ██████████        ██
               ██████████
                 ██████████
                   ████████
                     ██████
                       ████
                        ██
|
     ▄▀▀▀▀▀▀▀▀▀█                 ▄▀▀▀▀▀▀▀▀▀█
 ▄▀                ▄▀█             ▄▀                ▄▀█
 ██████████    █             ██████████    █
 █                █                   █                █    █
 █                █     ▀▀▀▀▀▀▀█                █    █
 █                █  ▄▀             █                █  ▄▀
 ██████████▀                 ██████████▀
          █                                    █
          █                                    █
     ▄▀ █  ▀▀▀▀█                   ▄▀ █ ▀▀▀▀▀▀█
 ▄▀             ▄▀█               ▄▀               ▄▀ █
 █████████   █               ██████████    █
 █              █   █               █                █    █
 █              █   █               █                █    █
 █              █  ▄▀▀▀▀▀▀▀  █                █  ▄▀
 █████████▀                  ██████████▀

Blockchain
Database
                             ▄▄▄
                         ▄▄▀  ▀▄▄
        ▄           ▄▄▀  ▄▀▄  ▀▄▄
      █▄█   █████████████████    █
        █     █                              █ ▄▀ ▌
        █     █        ▄    █   ▄         █▀ ▄▌
       ██    █      ▀▄   █    ▄▀       █▀█
       ▌ ▌   █            █                █  █
       ▌ ▌   █                              █  █
       ██    ███████████████████
                     ▀▀▄  ▀▄▀  ▄▀▀
                         ▀▀▄  ▄▀▀
                             ▀▀▀
Dev friendly
SDK Platform
                             ▄▄▄▄
                         ▄▄█    █▄▄
                     ▄▄█            █▄▄
                 ▄▄█       ▄▄▄       █▄▄
                 █       ▄▀      ▀▄       █
               █▀     █      █      █     ▀█
               ▀▀█  █   ▄█▀█▄   █  █▀▀
               █▀▀   █  ▀███▀  █   ▀▀█
               ▀▀█     █    █    █     █▀▀
                   ▀▀█   █  █  █   █▀▀
                       ▀████████▀
                           █▄▄▄▄█
                 █        █▄▄▄▄█      █
             ▄▀ █▄                   ▄█  ▀▄
            █   █▀▄         ▀      ▄▀█    █
           █   █  █  ▌      ▀   ▐  █  █    █
           █   █▄▀▄▌      ▀   ▐▄▀▄█    █
           █       █          ▀        █       █
        █▀▀▀▀▀▀█                █▀▀▀▀▀▀█
        ▀▀▀▀▀▀▀▀                ▀▀▀▀▀▀▀▀
User-friendly
Token Creation
|
Aemon (OP)
Sr. Member
****
Offline Offline

Activity: 308
Merit: 250


View Profile
January 09, 2015, 02:32:40 PM
 #19

Thanks for the answer, I am just looking to get some practice coding so I can try and one day get a job as a programmer, everywhere I apply I don't get many call returns because everyone wants experience.  Its hard to get experience if no one gives you the chance to get some, so I want to start working on side projects to show them I can code

Age old dogma of what comes first ? the egg or chicken.

Freshers need to understand that experience doesnt need to be in a company. Build your own calculator, that counts as an experience. Get the meaning ?

I understand that part, the thing is, I am not going to bring in to a job interview a working calculator, they will look at me like I am crazy.  What they want to see is you actively working with random people on the internet so that you can work and contribute to a team
legendster
Hero Member
*****
Offline Offline

Activity: 1778
Merit: 764


www.V.systems


View Profile
January 09, 2015, 06:41:44 PM
 #20

Thanks for the answer, I am just looking to get some practice coding so I can try and one day get a job as a programmer, everywhere I apply I don't get many call returns because everyone wants experience.  Its hard to get experience if no one gives you the chance to get some, so I want to start working on side projects to show them I can code

Age old dogma of what comes first ? the egg or chicken.

Freshers need to understand that experience doesnt need to be in a company. Build your own calculator, that counts as an experience. Get the meaning ?

I understand that part, the thing is, I am not going to bring in to a job interview a working calculator, they will look at me like I am crazy.  What they want to see is you actively working with random people on the internet so that you can work and contribute to a team

You've got this premade notion of job interviews being something out of Star wars perhaps, lol its not trust me, I have given many interviews scored many ditched many and got rejected by many. Most of the times company wants to know if they are gonna hire a baby who they'd have to babysit all the way through or do they get someone who knows how to get things done without relying on input.


   ██████████        ████████████
     ██████████        ██████████
       ██████████        ████████
         ██████████        ██████
           ██████████        ████
             ██████████        ██
               ██████████
                 ██████████
                   ████████
                     ██████
                       ████
                        ██
|
     ▄▀▀▀▀▀▀▀▀▀█                 ▄▀▀▀▀▀▀▀▀▀█
 ▄▀                ▄▀█             ▄▀                ▄▀█
 ██████████    █             ██████████    █
 █                █                   █                █    █
 █                █     ▀▀▀▀▀▀▀█                █    █
 █                █  ▄▀             █                █  ▄▀
 ██████████▀                 ██████████▀
          █                                    █
          █                                    █
     ▄▀ █  ▀▀▀▀█                   ▄▀ █ ▀▀▀▀▀▀█
 ▄▀             ▄▀█               ▄▀               ▄▀ █
 █████████   █               ██████████    █
 █              █   █               █                █    █
 █              █   █               █                █    █
 █              █  ▄▀▀▀▀▀▀▀  █                █  ▄▀
 █████████▀                  ██████████▀

Blockchain
Database
                             ▄▄▄
                         ▄▄▀  ▀▄▄
        ▄           ▄▄▀  ▄▀▄  ▀▄▄
      █▄█   █████████████████    █
        █     █                              █ ▄▀ ▌
        █     █        ▄    █   ▄         █▀ ▄▌
       ██    █      ▀▄   █    ▄▀       █▀█
       ▌ ▌   █            █                █  █
       ▌ ▌   █                              █  █
       ██    ███████████████████
                     ▀▀▄  ▀▄▀  ▄▀▀
                         ▀▀▄  ▄▀▀
                             ▀▀▀
Dev friendly
SDK Platform
                             ▄▄▄▄
                         ▄▄█    █▄▄
                     ▄▄█            █▄▄
                 ▄▄█       ▄▄▄       █▄▄
                 █       ▄▀      ▀▄       █
               █▀     █      █      █     ▀█
               ▀▀█  █   ▄█▀█▄   █  █▀▀
               █▀▀   █  ▀███▀  █   ▀▀█
               ▀▀█     █    █    █     █▀▀
                   ▀▀█   █  █  █   █▀▀
                       ▀████████▀
                           █▄▄▄▄█
                 █        █▄▄▄▄█      █
             ▄▀ █▄                   ▄█  ▀▄
            █   █▀▄         ▀      ▄▀█    █
           █   █  █  ▌      ▀   ▐  █  █    █
           █   █▄▀▄▌      ▀   ▐▄▀▄█    █
           █       █          ▀        █       █
        █▀▀▀▀▀▀█                █▀▀▀▀▀▀█
        ▀▀▀▀▀▀▀▀                ▀▀▀▀▀▀▀▀
User-friendly
Token Creation
|
Pages: [1] 2 »  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!