Kudos for jumping into blockchain programming. It's way beyond my league. I did one small PR for steem
and closed it shortly after, that's it, lol. Although blockchain development is different from other types of projects, your experience with it is generally what is encountered in other environments. For example, testing and debugging take most of my time. The code may seem simple at first glance, but testing it while covering all possible angles is a challenge. I usually step back and ask myself questions. What happens if:
- the RPC node is down
- the request is invalid
- the network connection is down
- a user tries malicious requests
- etc...
Then, I try to simulate each condition while fixing and optimizing the code.
Another important thing for me is efficiency: how much time does the code take to execute? My code is full of performance checkpoints and benchmarks, you may have noticed some of them in small font on my websites (Processed in ... ms).
People often judge and bitch at the developers too quickly, especially when something breaks (how many times have we seen it with Steemit?). It's not easy to cover all angles, the projects are extremely complex with sophisticated integrations. Despite all the efforts to avoid bugs, there will always be some lurking and waiting to happen. That's where the beauty of open source lies; it brings up the best in many developers to fix and improve projects. I wish people would understand why Steemit is still in beta, it's because that stuff takes time.