ИМХО, начинать лучше всего со связки асм + С + хорошая книга по железу + человек, который что-то знает и может объяснить. При внимательном штудировании за месяц можно научиться клепать мало-мальские программы сразу на двух языках, а также будет понятна работа программ, где они живут, что происходит...
Сам начинал с бэйсика, потом был паскаль, ассемблер, си, веб-языки... сейчас на очереди руби стоит.