How to visualise Mathematica code and how to become a better coder [closed]

I seem to be using functional coding frequently. However, it does not come naturally and I usually copy from example, and then adapt for my own. How do you recommend I improve as a coder? I would like coaching on Map, Apply, Thread and others. Is it possible to drill these into the subconscious so the coding starts to free flow. What functions do I need off pat to become a fully competent coder? What other skills do I need to work on?

closed as too broad by Bob Hanlon, LCarvalho, m_goldberg, bbgodfrey, ilianNov 20 '17 at 3:28

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

• WReach wrote a good answer on learning Mathematica, I recommend it if you haven't read it before. – C. E. Nov 14 '17 at 16:09
• I found these animations enlightening, and will sometimes build similar toy examples with symbolic arguments for myself if I need to remember how one of these functions work (I always have to rehash Outer e.g.). Which brings up another point, once you've read the docs, and kind of understand build your own examples to test your understanding. If you forget later on, build an example before you go to the docs. – N.J.Evans Nov 14 '17 at 16:18
• Thank you both for the interesting links and comments. I'm reading up now. – SPIL Nov 15 '17 at 10:47