Commit in small and concise chunks. Big commits which touch every single file 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!
Do include tests in every commit.
Put on your QA hat and really, really try to break the thing you made. 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 and start doing. Knowledge is no use if you don’t use it. Getting your hands dirty is the best way to challenge what you already know and to internalize the shinning new knowledge. Reading 10 programming books won’t make you a programmer, but making 10 programs and learn from the mistakes would make you one.
Never miss a story from Amie Chen, when you sign up for Medium. Learn more