необходимость общения каждый для себя определяет сам. Конечно возникающие вопросы надорешать, но решать их лучше самостоятельно. Благо файлы справки и Интернет дают довольно богатую информацию (кстати, лучше сразу привыкнуть к английскому). Главное - побольше пытаться писать программ, практиковаться, постепенно повышая уровень сложности задач. Большой ошибкой будет пытаться сходу освоить какую бы то ни было визуальную среду (Delphi, __ Builder, Visual C++ ...). Понять-то может и поймешь, но разбираться в программировнии ты так не научишься. Для обучения лучше взять старый добрый Pascal, может и С. Но в С заморочек побольше. А далее основной язык уже надо выбирать, исходя из стоящих перед тобой задач. Писать драйвера под систему, программировать иск. интеллект или 3-D графику, писать скрипты для сайтов или интернет-приложения и игра для мобильников - совершенно разные вещи. Однако все это называют программированием.
Могу посоветовать в качестве наиболее универсального языка Java. Похож на C, нов то же время достаточно прост и современен, устойчив к ошибкам программирования, объектно-ориентированный, программа написанная единожды будет работать в любой операционке. Это и наиболее популярный язык - его предпочитают 25, если не ошибаюсь, % всех кодеров. Используется для написания приложений и для Интернета, и для мобильников, и для взаимодействия с базами данных... Вот такая вот реклама. Но это чтобы тебе проще было выбирать.
Тут ещё советывали начинать с основ - с архитектуры своего ПК, с ОС, сетей. На мой взгляд, это уже слишком глубоко ... и скучно. Начинаюшего программиста это только отпугнёт. Ты сначала должен понять, как приложения писать, какие инструменты тебе дают те или иные языки и библиотеки к ним. А уж на следующем уровне ты увидишь, как эти инструменты используются в реальных системах. Опять же, когда поймешь, что тебе конкретно нужно писать, каких знаний тебе не хватает, тогда и откроешь книжку/справочник (по ОС, по сетям и т.п.) и почитаешь, какие дополнительные средства есть и как они используются. Но ты уже будешь понимать, как эти средства приспособить к своей задаче. Это личный опыт. Я когда учился в универе, если честно, понятия не имел ни ок каих ОС или сетях. Когда пришел на работу, и мне сказали, что надо бы сделть то-то и то-то, я залез в Интернет почитал про это и сразу понял, как могу "перекрутить" эти средства под свои нужды. Сразу нельзя осознать "как и кто будет использовать твои конечные продукты". Нельзя сразу увидеть свои продукты! Это прийдет с опытом. А пока надо ставить близжайшие цели.
Начать можешь с курса Основы программирования, затем Введение в программирование. Можно выборочно. Только не забывай паралелльно пытаться писать программы.