In contract software development, if the client wants to know how the code works, should I charge for teaching them? How much can I earn on developing apps for people? I am new to the app developing for others and I don't want to over charge or be under paid. Also, should I sign a contract?