В начале лучше не язык учить, а структуры данных и алгоритмы. Изучите разницу, линейного, функционального, объектного программирования. Для этого знания конкретного язык не требуется. Это база, и на ней многие ломаются. А язык, достаточно вникнуть в синтаксис и понять основные тонкости, с такой базой будет просто.