Программист должен владеть поиском.
Для начала вот вопрос с 52-мя ответами:
С чего начать изучать программирование?
А потом воспользуйтесь внутренним поиском, найдете ещё десятки вопросов именно на Ваш вопрос в близких формулировках.
:)
Задал вопрос специально ради вашего ответа :)