How to communicate to ATmega328 with a PC
MAX232 is actually a TTL&lt;=>RS232 converter. While your AVR and PC have built in capabilities to understand each other's messages at logical level (if all communication parameters are the same encoding letter 'A' in on transmitter can be properly decoded on receiver side), they are not capable to understand each other's messages at electrical level (different voltage levels and signal inversion). That's why MAX232 is needed. MAX232 is not the only solution for this problem but it is probably the most popular. This can even be done with a pair of transistors if you need it.

Since RS232 port does not exist on many new laptops, there are ways to use USB instead of RS232. I would prefer some more complex CDC based solution which doesn't need drivers for specific OS, but the most popular and simplest for implementation seams to be FT232 with available drivers for most popular operating systems.