Programmer's Guide to Avoiding Pitfalls