Как уже было сказано выше, нужно начинать с алгоритмов т.к. это основа всего, а на каком языке это будет происходить - не столь важно.
Думать на английском совсем не обязательно. Ннглийский, как и любой другой человеческий язык иррационален. Нужно учится думать не на к.н. языке, а думать логически, рационально, постапно, но при стом охватывать всю задачу целиком.
Но еще должен не согласится, что изучив к.н. один язык, например С++, можно с легкостью пересесть на любой другой. Это не правда. У меня 10 лет стаж работы программистом. Года 4 из них с программил на Delphi. Остальное время - Java. Иногда ради интереса кое-что пытаюсь по делыват на С/С++. Трудно, по началу, скажу с вам. Получается так, что вроде представлсешь, как оно должно выглядеть структурно, модульно, объектно и пр... Но как это описать не всегда кристально понятно...
Это то же самое, что утвержать - все человеческие языки одинаковые - выучив один - другой будет даваться вааще без напрсгу.