Если вы задаёте этот вопрос, это наверняка значит, что вы думаете о том, чтобы заниматься хакерством под Windows. Это является само по себе плохой идеей. Когда я сравнил попытки хакать под Winndows с попыткой танцевать в гипсе, я не прикалывался. Не пытайтесь идти этой дорогой. Она ужасна, и никогда не перестанет быть такой.
Есть особые проблемы с Visual Basic и C#; и в первую очередь они связаны с тем, что они не переносимы между ОС. Несмотря на то, что есть прототипы свободных реализаций этих языков, соответствующие стандарты ECMA не покрывают чего либо, кроме маленького набора их программных интерфейсов. Под Windows их поддержка библиотеками пропритарна, и принадлежит только одному поставщику (Microsoft). Если вы не будете особо заботиться о том, какими возможностями пользуетесь, более мощными чем те, которые любой новичок может реализовать - вы кончите тем, что будете заблокированы только в те платформы, которые Microsoft захочет поддерживать. Если вы начнёте с Unix, вы получите намного лучший выбор языков и библиотек.

Visual Basic особо ужасен. Как и другие Бейсики, он плохо разработан и научит вас плохому стилю программирования. И не просите меня объяснить их в деталях - эти объяснения займут целую книгу. Лучше изучите хорошо разработанный язык.

Одним из этих плохих стилей является зависимость от библиотек, виджетов, средств разработки одного поставщика. В общем, любой язык, который не поддерживатся полноценно как минимум в Linux или одном из BSD Unix-ов, и/или как минимум тремя различными поставщиками операционных систем, не подходит для обучения хакерству.