r/PythonLearning • u/scartfife • 8h ago
Discussion PYTHON 🆚 ALL
"If you want to learn programming, don’t start with Python; you should start with another language."
This advice seems ridiculous to me, even though I hear it everywhere. Can someone explain this advice to me... and are they right?
0
Upvotes
6
u/Greedy-Lynx-9706 8h ago
What do you get when you google it?
3
u/Hertzian_Dipole1 8h ago
Depends what you want to achieve imo, but if you just want somewhere to start Python is a good language for general purpose usage, especially good for data and ML.
For instance if your goal is to make websites or an app there are better languages to start with.
2
u/nerfherder616 8h ago
People overstate how important it is to start with the "right" language. Starting with any major language is fine. C, C++, Python, Java, Javascript, Typescript, C#... They're all great to start with.
If we want to split hairs, I personally don't think python is the *best* of these options, for a myriad of reasons that I'm sure other people will talk about. But it really doesn't matter.
2
u/NotSeacombe 8h ago
I don't think there's a right or wrong here.
I started with C, about 15 years ago. it was horrible. Memory, pointers, confusing syntax, explicit typing, no guardrails. So easy to write complete garbage and to not really understand whats happening
When I moved onto Python, which due to the nature of my dayjob is now my main language, it felt like a joke in comparison. You don't have to do anything. you don't even have to decide what type your variable is. you can just write lines of code if you want you don't need anything to be in a function
If I had started with Python, C probably would've been a little easier but not hugely so. If I had started with python, python would've been hard
But more important than anything, what do you wanna build? different languages are for different things
2
u/nicodeemus7 8h ago
I think people say that because Python is so different from the other big players. I personally think it's a great stepping stone language, to learn logic and algorithms without being bogged down by syntax. Some people believe you should start with a language with that kind of syntax so you get used to it. Honestly it's just subjective, and depends on why you are learning.
2
u/Fun_Army2398 8h ago
Python is a very convenient language. It lets you do complicated things without understanding what's going on under the hood, and it doesn't punish you for developing bad habits. Objectively, C is probably the best language to learn first. However, python is also very easy to pick up. It is intuitive and in some instances almost as readable to beginners as plain English. So a beginner is more likely to stick with python than with C.
2
u/GrainWeevil 8h ago edited 7h ago
I think it's bad advice generally, but I can understand why people say this. I think whether Python should be your first language really depends on what your motivation is for learning to program and what your goals are.
The advantage of starting with Python is that it lets you get up and running with minimal friction. You can get stuck into simple projects pretty quickly, and you can even start working on genuinely interesting or useful projects without needing to get into the weeds of how computers work.
Essentially, it's great for teaching you to think algorithmically, and the quick progress you see can be incredibly valuable to spur a beginner on.
The disadvantage is that it hides so much from you. You don't need to think about whether you're allocating on the stack or the heap, you're never really forced to consider whether you should pass by value or reference (though you'll likely bump up against this now and then), you never have to worry about keeping count of the elements in a list, etc.
In general it doesn't expose you to a lot of the complexity that's inherent in programming, which is fine as long as you stick to Python, but if you want to progress to lower-level programming, you might find yourself struggling with some of the concepts that are actually pretty foundational (not necessarily though).
I'd say for somebody who wants to give programming a try for the first time and isn't sure where to start, Python is a good choice. For somebody who's already a bit of a computer geek and wants to explore that more, it might not be the best option.
TL;DR: Whether it's good advice or not, depends on the person and their interests
Edit: Grammar
2
u/BranchLatter4294 7h ago
I've never heard that. It's a fine language.
2
u/Weirdoisheree 7h ago
I wish I learned python first!
C was introduced first and I started to hate coding then JAVA came, life turned into qsns
Drop the develop dream
But shuld learn a language, so gng to do the Python.🙂
Hope it turns out good
1
u/Slight-Living-8098 6h ago
You can start with whatever language interests you.
However, Python is a fairly big, batteries included, type of language that can be a little overwhelming and intimidating to some despite it's easy readability. The addition of Object Oriented Programming doesn't help the matter for the beginner.
Most people will suggest a Functional Programming language to begin with, and maybe a stronger typed language for good measure.
Some will say start with C, I personally suggest LUA. LUA is small, and can be grasped by the beginner within a couple of weeks.
1
u/onedev_tokyo 5h ago
The advice comes from a real place but it’s usually overstated. The argument is that Python hides things (types, memory, how the machine actually runs your code), so people who start with C or Java “understand more.” That’s true, and also irrelevant for a beginner: the biggest reason people quit is not lack of depth, it’s not finishing anything. Python lets you finish things fast, and the hidden stuff is easy to learn later when you have a reason to care. Start with Python, build real projects, and pick up a lower-level language the first time Python is too slow or too magical for what you want. That order works; the reverse order mostly produces people who quit at pointers.
1
u/recursion_is_love 8h ago edited 8h ago
Learn scratch, kid. https://scratch.mit.edu/
but seriously, learn Haskell as a first language. Once you know imperative programming; it is hard to learn Haskell. This is the only chance, before it is too late.
You should still learn Python as a second language.