A partial answer to your many questions:
Jenkins - yes, Jenkins is used by many organizations for their CI pipeline, including UI automation like Selenium scripts.
Typical Selenium Project - there is no such thing, any more than there is a typical website. The best you are going to get is broad guidelines such as:
- Don't Repeat Yourself (DRY) - If you find yourself continually writing almost the same code (or copying code and pasting it elsewhere), turn it into a library method that gets called from different places.
- Single Responsibility - Each method should do only one thing. It should be provided with all the information it needs to do that thing. Similarly, each test should test and assert against only one thing. A lot of short tests are better than a few long, complicated tests.
- Keep It Simple, Stupid (KISS) - Each module of code should be as simple and stupid as you can make it. Complicated code is hard to read and hard to maintain.
- Independent Tests - Each test should be independent of other tests, so the failure of test 1 does not cause all the other tests to fail as well.
That said, the way these guidelines are handled varies depending on the needs of the project. If you learn to code - there are many good, free tutorials - and practice a lot, you will improve.