I first tried learning programming around 2021 or 2022 by taking a Python course. Later, I studied C# for school, but my learning was inconsistent, and I eventually started associating programming with frustration. I tried to return to coding in 2025, but motivation was difficult to maintain, partly because I strongly disliked my old laptop and the memories connected to it.
A few days ago, I bought a new laptop, and it has given me a fresh opportunity to start again. I would like to focus on Python, but my understanding of algorithms and data structures is incomplete. Should I use LeetCode, or would another website or course be better for learning programming fundamentals and problem-solving? I am currently finishing a Git course and plan to begin studying Python afterward. I would appreciate advice on creating a realistic learning path and staying consistent.
3 Answers
A new laptop can definitely help break through a mental block, but the most important thing now is to start writing code consistently, even if the projects are small and messy. LeetCode is useful once you know the Python basics, but it can be discouraging if you begin there without enough foundation. Try a structured beginner course such as the University of Helsinki’s free Python MOOC, complete its exercises, and then move on to easy algorithm problems. You do not need to finish every Git topic before coding; you can learn the remaining commands naturally while working on projects.
You do not necessarily need to abandon C# because it felt complicated. Languages such as C# and Java use static typing, classes, objects, and garbage collection, while Python is more flexible and often easier to start with. Python is a good choice, but make sure your learning resources are current and explain fundamentals clearly. Whichever language you choose, concentrate on variables, control flow, functions, data structures, debugging, and testing before spending too much time on advanced algorithm challenges.
Focus on learning the craft and building things you actually care about instead of worrying about whether programming will immediately lead to a job or money. Pick a small project, such as a text game, calculator, file organizer, or simple automation script, and use it to practice one concept at a time. Finishing projects and solving problems regularly will build motivation more reliably than waiting to feel motivated first.

Thanks, that sounds like a much less overwhelming way to approach it. I’ll look into the Python MOOC and start with small exercises before attempting harder problems.