It's mainly about having a problem to solve and then taking the steps to accomplish the task. I am usually just taking the workflow that one would be doing in AutoCAD and automating it. Google and Bing are a great source to find code snippets that can be modified to suit the needs of the code.
Getting started for an Autodesk project is covered in this AKN:
https://knowledge.autodesk.com/support/autocad/learn-explore/caas/simplecontent/content/my-first-autocad-plug-overview.html
Creating a bundle file to autoload in AutoCAD:
https://knowledge.autodesk.com/search-result/caas/CloudHelp/cloudhelp/2017/ENU/AutoCAD-Customization/files/GUID-40F5E92C-37D8-4D54-9497-CD9F0659F9BB-htm.html
This book helps teach how to better organize code:
https://martinfowler.com/books/refactoring.html
The source code for the free version of the SincPac is a great resource for Civil 3D coding:
http://www.quuxsoft.com/SincpacC3D_source.aspx