The verb 'to go' is so much more complicated in Russian than in English, but once you know the rules you can easily work out which verb to use in any situation, just by applying logic. Both 'ходить' and 'идти' mean 'to go on foot' and they are both imperfective, meaning they describe an action in progress or a repeated action, rather than a completed action. The difference between them comes down to direction. 'Ходить' is multi-directional: it describes the action of walking around without a fixed goal or end point, a bit like the English verb 'to wander'. 'Идти' is uni-directional: it describes someone walking in a straight line from A to B. So if you are going shopping, you would 'ходить по магазинам', walking in and out of shops, wandering around and browsing. But if you are on your way to the bus stop or the cinema, you would 'идти на остановку/в кинотеатр', because you have a destination in mind and are making your way there directly. The next step involves adding prefixes to the verbs, for example 'при-', which signifies arrival. If you add a prefix to a multi-directional verb of motion such as 'ходить', it stays imperfective - 'приходить' - to arrive regularly. If you add a prefix to a uni-directional verb of motion such as 'идти', it becomes perfective i.e. 'прийти' - to arrive on a single occasion. It is a completed action. The principle is confusing at first, because we think of movement so differently in English, but once you know the rules and have done some practice, it should become much clearer! The same rules apply to all the verbs of motion (ездить/ехать, водить/вести, носить/нести etc.) Remember to be careful when distinguishing between 'ходить/идти' (to go on foot) and 'ездить/ехать' (to go in a vehicle)! It's easy to make a mistake and say you are walking to Australia rather than flying, just by using the wrong verb!