A flow chart uses symbols and arrows to visually represent an algorithm or process. It helps programmers and testers understand the logic of a program. Common symbols include boxes, circles, and diamonds to represent steps, with arrows showing the sequence and flow. Guidelines for effective flow charts include making them neat, logical, and avoid intersecting lines. Benefits are that the problem logic is easy to understand, communication is improved, and testing can validate the flow chart matches the program. Limitations include flow charts becoming complex for large programs and not supporting updates over time.