Теория:

Запятая в бессоюзном сложном предложении ставится, если между его частями имеется тесная смысловая связь.
Такие предложения произносятся с интонацией перечисления.
Пример:
[Солнце садилось], [ветер всё крепчал], [закат разгорался пурпуром] (В. Короленко).
Точка с запятой в бессоюзном сложном предложении ставится, если между его частями нет тесной смысловой связи или они представляют собой распространённые предложения, часто со знаками внутри.
Пример:
[Лёгкая пыль жёлтым столбом поднимается и несётся по дороге]; [далеко разносится дружный топот], [лошади бегут, навострив уши] (И. Тургенев).
Двоеточие в бессоюзном сложном предложении ставится:
1) если вторая часть поясняет, раскрывает содержание первой (в этом случае можно вставить а именно).
Пример:
[В самом деле, шинель Акакия Акакиевича имела какое-то странное устройство]: [воротник её уменьшался с каждым годом более и более, ибо служил на подтачивание] (И. Гоголь);
2) если в первой части есть глаголы видеть, слышать, знать, чувствовать и т. п., а во второй — конкретизация, описание того, что именно было увидено, услышано и т. п. (в этих случаях между частями можно вставить союз что).
Пример:
[Вдруг слышим]: [во всё горло кричат чибисы] (М. Пришвин).
Вместо двоеточия может стоять запятая, если нет интонации предупреждения.
Пример:
«[Я знаю], [никакой моей вины
В том], что другие не пришли с войны...» (А. Твардовский);
3) если во второй части содержится основание, причина того, о чём говорится в первой части (между частями можно вставить союзы потому что, так как).
Пример:
[Я глядел в огонь и боялся поднять голову]: [казалось, кто-то смотрит на меня из темноты] (Ю. Коваль);
4) вторая часть представляет собой прямой вопрос.
Пример:
[И спрашиваю я их]: [зачем вы, батюшка и матушка, мне кланяетесь]? (И. Тургенев).
Тире в бессоюзном сложном предложении ставится, если:
1) во второй части содержится неожиданное присоединение, указание на быстроту смены событий (при этом можно вставить союз и).
Пример:
[Иван Иванович подошёл к воротам] — [изнутри поднялся собачий лай] (По Н. Гоголю);
2) вторая часть содержит противопоставление по отношению к содержанию первой (можно вставить противительные союзы а, но).
Пример:
[Несколько раз оглянулся] — [никого не было] (Л. Толстой);
3) вторая часть заключает в себе следствие, вывод из того, о чём сообщается в первой.
Пример:
[Лес рубят] — [щепки летят] (Пословица).
Нужно различать знаки препинания при причинно-следственных отношениях. Двоеточие ставится, если вторая часть предложения содержит причину того, что сообщается в первой части; тире ставится, если вторая часть содержит следствие того, что сообщается в первой части.
Пример:
ср.: [Гулять сегодня не пойдём]: [на улице метель] (\(2\)-я часть — причина). — [На улице метель] — [гулять сегодня не пойдём] (\(2\)-я часть — следствие);
4) в первой части обозначается время или условие совершения действия, названного во второй части (при этом в начале предложения можно вставить союзы когда, если).
Пример:
[Гром не грянет] — [мужик не перекрестится] (Пословица);
5) вторая часть содержит сравнение с тем, о чём говорится в первой (можно вставить сравнительные союзы каккак будто, словно, что). 
Пример:
[Улыбнётся] — [солнышко выглянет];
6) вторая часть разъясняет содержание первой (можно вставить союз что).
Пример:
[Порой мне кажется] — [надо скорее бежать];
7) вторая часть выражена присоединительным предложением, которое начинается со слова это (либо его можно подставить без потери смысла).
Пример:
[Данила Степаныч всегда любил поболтать] — [это было мне отлично известно] (В. Каверин).