Not explicitly declaring a data type for all variables and functions.
Dim, Function, or Property without As <type>
(Remember, this is NOT the same as using option explicit.)
Writing unreadable code.
Writing procedures longer than about 2 or 3 screens of code.
Not using a variable, object, and procedure naming convention.
Using the default object names provided by the VB IDE.
Hard coding values which should be data driven or user-defined.
Path or file names
Lack of attention to the needs of the end user.
Inappropriate use of jargon.
Unfriendly error messages.
Lack of attention to ergonomics.
Poor alignment of controls.
Deviating from standard windows UI guidelines without good reason.
Writing fragile code.
Not using appropriate error handlers.
Failing to anticipate or recover gracefully from common errors.
Not building reusable code.
Using custom controls to do simple programming tasks.
Putting too much code in event procedures.
Not writing dedicated procedures for common tasks.
Failing to provide header and source code comments.
Failing to provide supporting documentation.
Improper use of data.
Not limiting the scope of variables.
Not validating inputs and/or outputs.
Using inappropriate data types.
Inappropriately using the assistance of fellow programmers.
Asking for help without making an effort to learn.
Not asking for help with complex problems.