We have actually seen a great developer spend weeks (yes, weeks) writing a solution for SharePoint that was perfect! The code was elegant. It achieved the business objectives flawlessly. Guess what? Code was written to do something that SharePoint already did! This developer did not know what SharePoint was capable of and spent weeks developing a solution that SharePoint did natively. Learn SharePoint.
SharePoint does not do everything. It does a lot of things but not everything. You may eventually have to write code and deploy custom solutions. Resist writing custom code. Leverage the platform fully before you write any custom code. Configure before you customize.