I find that when I build a website and encounter a coding problem, solving the problem always feels very rewarding. It usually takes persistence and organized troubleshooting to find the problem.
The key is to be methodical, allowing time for the gathering information that will help with the understanding of the problem. Even when looking at a new library and API, I find that if I tackle it bit by bit in manageable pieces, I usually solve the problem fairly quickly.
Sometimes I work at my client’s facilities, rather than from my own office. If the client is not technically inclined, they may not understand the small changes to the code, the testing, and so on. Clients want to see dramatic changes for the most part, because visual changes are easy to understand. Often, I will do the debugging at my own location, so that I can work they way I am most comfortable; with persistence until the problem is solved.
Years ago, I was working on 3D animation projects for Hewlett Packard’s video department. I set up macros to automatically handle repetitive alignment tasks while building a complex model. When the department head came in to find out what I was doing, I learned that their whole department had been watching my screen, monitoring the progress. On the one hand they were curious about the process, on the other hand they wanted to also monitor what they were getting for spending money on a independent contractor. I can understand this. You need to understand what you are paying for and what you are getting. No surprises.
On a side note: Being methodical can help you solve almost any issue, it doesn’t necessarily have to be related to code.
Monique