Learn Java first, dont learn FIOC first, FIOC takes a lot of shortcuts. Java has static typing and forces conventional OO. You need to learn OO because about every popular programming language in use today has it. Get the book "Head First Java", it is the best book for learning OO and Java. After you learn Java, learn Scala as your second language so you can find out how to break out of the OO style of programming and learn functional programming as well. After those two languages you can then learn C as your third language