Advice 1: Design Using Interfaces
Make sure you fully understand the need and use of interfaces. Always try to design thinking of responsibilities and services rather than implementations.
The best way to start is by designing small and simple interfaces; you can always amend them later.