I'm interested in learning how to program and work on bugs related to Android ROMs. Just wanted some advice on which languages to start with and also any other subjects I should be learning. I'm going to be self taught so any advice on books or other resources I should use would be greatly appreciated. Thanks!