Предлог «по» чаще употребляется, когда мы передвигаемся по какой-то поверхности: плывем (по чему?) по небу, по воздуху, по ветру; ходим (по чему?) по льду, по лесу, по саду.
Как правильно ходить: «по грибы» или «за грибами»?

Зная это правило, многие все равно считают, что ходить «по грибы» красивее и отражает саму суть процесса. Возможно, но с точки зрения грамматики — это неверно.
В магазин же мы ходим за молоком и за хлебом. Вот и в лес надо идти за чем? Правильно, за грибами.
Хотя, если мы откроем словарь дедушки Даля, то действительно найдем там выражения «по ягоды» и «по грибы». Объясняется это все просто: словарь отражает не литературную норму, а фиксирует лексику, терминологию и фразеологию носителей «народного языка» — представителей различных сословий, профессий и ремесел.
В поросшие мхом времена люди были очень близки к природе и тщательно подбирали слова, чтобы фраза ненароком не стала пророческой, судьбоносной.
«Пойти за грибами» означало заблудиться, в буквальном смысле идти по лесу, следуя за выросшими грибами. То же самое касается и ягод. Наши с вами предки ходили «по ягоды», боясь, что если они пойдут «за ягодами», то рискуют оказаться в глубине леса. С водой ситуация аналогичная. Раньше воду набирали в реках и ручьях и «пойти за водой» означало пойти следом по течению реки. Ох уж этот суеверный народ!
Но мы то с вами люди современные и во все эти сказки давно не верим, поэтому выберем вариант с предлогом «за» и скажем: ходить (за чем?) за грибами, за ягодами, за малиной, за земляникой, за водой.

Собирайте грибы и ягоды, но делайте это грамотно.