Thank you for your input. Say I wanted to extend that interest to something like... bts...
Should I just pick a language, pull up the source code for a version of graphene that can be released freely, and get to rewriting at my lack of skill level, just researching every single new thing as I go and pestering reddit relentlessly for advice? What sort of project do you suppose would be a good start?
Good questions. Learning how to code by rewriting Graphene is akin to learning construction by recreating the Burj Khalifa. It is possible, but the process will be extremely slow, difficult and fraught with peril (think more, "learning bad habits" and less, "plummeting 2.7km to your death"). No one will disparage your ambition, but there may be more effective ways for you to build your skill set.
Instead, think of the Burj Khalifa as the foundation that you will build upon (e.g., set yourself to the task of constructing a helipad at the top of the building). The existing tower will provide structure that you can use to support your creation, and you can reference aspects of the building for inspiration and best-practices.
This may sound anti-climactic, but starting small grants you many benefits:
- You can complete the project more quickly.
- You can publish your code more frequently and get valuable feedback from other developers.
- Other developers will be more inclined to review your code if there's less code to review.
- A smaller project has fewer moving pieces, which frees up head-space for learning and retaining new concepts as you go.
- A smaller project is easier to refactor if you realize that you made a mistake in a critical piece of code.
And, you can always expand the scope of the project later, when you're ready to work on v2.0.
If you'd like a starter app that you can use as a PoC, try this:
- The application runs via command-line.
- When started, the application will prompt the user to enter a BitShares account name and press return.
- If the account name is blank, the application will exit.
- Else, output the corresponding BTS balance.
- When finished outputting the balance, the application will prompt the user to enter another BitShares account name. Continue until the user enters an empty account name.
@xeroc has published a
fantastic library on GitHub that you can use in a Python application to interact with the BitShares blockchain. The code is incredibly well-documented, and it includes
several examples that you can look at and run to see how it works.
This may seem like a trivial application, but keep in mind that your primary goal at this point is to learn, so you want to design the requirements of your first application around that goal. Once you get the hang of it, new ideas will start to flow, and you will start building momentum to tackle larger and more complex projects.
If you have any questions, need help understanding how something works, run into a bug that you can't squash – even if you need assistance getting started – do not hesitate to post on BitSharesTalk/StackOverflow/Reddit/etc.