This question already has an answer here:
Yes, practice, practice, practice. I know the drill people suggest that helps learning new programming concepts. But that's only theoretical.
For me, even a line of code like this is new (Java) and really hard to grasp:
Integer.toString((byteData[i] & 0xff) + 0x100, 16).substring(1)
Now, I could start looking at
byteData and then trying to figure what
0xff means and so on. But each of those 'elements' leads to more elements, and by the time I start getting what one means, I forget where I was. It all leads to chaining - massive chaining of concepts.
Just last month, I wanted to learn about threading in Java, and one thing led to the other, and after a week of thorough research, I ended up using example code on Javadoc tutorials with few edits. But that's not how learning programming should be, I know. But I have been unable to find how it should really be.
I recently started learning Python, and there seems to be no way (IMO) to learn it in an organized manner. I start with one concept, which leads to the other (while the first one is still incomplete) which leads to the other.. you get the idea.
I'm an intermediary in Java and beginner in Python (although some concepts are transferable from Java). So, how should I go about all this making sure I understand what I venture into?
I'm sorry if this sounds like an off-topic question, it really isn't. It's a genuine question from a genuine guy who really wants to learn many programming languages, and build something useful for people.
EDIT: Just to be clear, I do not want to learn a new language. My question is not about learning a new language, but learning concepts of a language that I know something about.