Commit in small and concise chunks. A big commit that touches multiple files in the system should be avoided. Break down your big feature into small committable stories. The commit history of your (master) branch should be readable, reversible, and resettable. No one likes to have a big fat merge conflict.
Put on your QA hat Really try to break the things you make. Then write more tests to avoid the found bugs from happening unnoticed.
Underpromise and Overdeliver. Programmers usually work under some kinda deadlines. Don’t take on more than you can bite but really deliver a high-quality result.
Don’t count on frameworks or plugins. They can have many drawbacks: It’s hard to upgrade and maintain; It’s too complicated for what your need; It has shitty code behind the scene. Often times the pure, vanilla solution works if you are willing to tinker.
Learn when to stop learning. I used to be the kind of person who would beat herself up from not knowing everything. It brought me lots of anxiety and self-loathing till I read about the flow from Mihaly Csikszentmihalyi. The concept of flow shows us that we will be the happiest when the amount of challenge is just right. Too much challenge would make us give up; too little would make us bored. Note: if you find this interesting here is the popular TED video and the book.