One lesson I learned a long time ago is "Spend time getting to know the language." I find myself occasionally just browsing documentation to see if there are any functions I don't know or haven't seen before.
"Keep It Simple Stupid!" I quite often hear this echoing in my mind when throwing logic and code at a problem. I can't tell you how many times I have had to review processes and code I have written years after the fact and am amazed at how unnecessarily complicated I made it...