This can be a top town approach and things can be done at all levels. You can help the world by participating in developer challenges like the one from the World Bank (http://appsfordevelopment.challengepost.com/)Apps for Development that tackles the Millennium Development Goals. Those guys have a lot of data that can be processed in a lot of useful ways. Also you can search Google with "PROBLEM-NAME developer challenge". That gives some interesting results. At
At a lower level you can offer your services to one of your national non governmental organizations. Surely they have some ideas and are in need of some skilled programmers. And of course there is the 1 to 1 approach. Volunteer your time to teach people how to use a computers/the internet in ways that help them do stuff with less money. Teach children computer programming.