I'm still fairly early in my programming journey. I know some C++ from working with Arduino and have spent time learning object-oriented concepts in Java, but Python has been surprisingly frustrating. I keep forgetting syntax and having trouble getting used to the way things work. Java and C++ currently feel more natural to me, especially because I'm familiar with their OOP style. Is this transition normally difficult, and what helped other people become comfortable with Python?
5 Answers
What are you hoping to build or use Python for? If your goal is employment, becoming genuinely strong in one language can be more valuable than being moderately familiar with several. On the other hand, if Python interests you, stick with it long enough to learn its strengths instead of judging it only by how familiar it feels today.
Use a structured learning resource instead of trying to pick up Python randomly. Think Python is a solid book for building the fundamentals, and working through the examples yourself will help more than just reading them. Small exercises and projects are also useful for making the syntax stick.
Python may feel harder because it is unfamiliar, not because it is objectively more difficult. Java, C++, and Python make different design choices, so it takes time to stop translating everything directly from the languages you already know. Keep using Python regularly and focus on learning its idioms rather than forcing every problem into a Java-style solution.
That reaction is pretty normal when moving from C++ or Java to Python. Curly braces, static typing, and familiar class syntax give you expectations that Python handles differently. Even indentation-based scope and dynamic typing can take time to read naturally. Python also has important distinctions between class attributes and instance attributes: a value defined directly in the class is shared, while a value assigned through self in __init__ belongs to each individual object. Keep practicing and those differences will gradually become intuitive.
That makes sense. I definitely prefer curly braces right now, so I’ll have to give myself time to adjust.
Try comparing the same small program in Java and Python. Python is often more concise and expressive, but that can initially make the code feel less explicit. Practice writing short scripts, look up syntax when you forget it, and gradually pay attention to common Python patterns. Memorizing everything immediately is not necessary; repeated use will make the most common parts automatic.

Thanks, I’ll check it out and try to work through the exercises instead of only reading.