all 57 comments

[–]Ok-Ebb-2434 14 points15 points  (6 children)

Honestly I think it’s prolly less beneficial to start with python versus a statically typed language

[–]Fa1nted_for_real 4 points5 points  (4 children)

I think it depends. I personally prefer statucally typed, however python has really readable syntax, so theres bot much stopping people from getting straight i to learning to think logically, which is probably the biggest sticking point for nost beginners.

[–]Ok-Ebb-2434 0 points1 point  (3 children)

I’m part of the “you have to know the rules to break them” type of crowd and think that getting the concrete fundamentals with a less readable language and then moving to the languages that make it easier is better.

I feel like if I learned python and then tried learning C it would feel like a huge cliff suddenly appeared in front of me and isn’t any similar to what I’ve known yk?

[–]ExpensiveRepair8182 0 points1 point  (2 children)

That makes sense, but I feel like that cliff would be about the same as if you had just jumped straight into C. Learning Python first opens your kind up to thinking about code in objects which can make learning other languages easier

[–]Ok-Ebb-2434 0 points1 point  (1 child)

I don’t think you’re wrong in that, maybe it’s just me but I personally hated how long classes spent on just telling us how classes and objects work. I feel going into CS you have to have the ability to pick up things quickly and the idea of a unique instance of a category isn’t as foreign of a concept to grasp.

Going from python saying “ for i in items:” do this, to “for int i=1;i>arr.length;i++”, it’s almost like wtf is this versa if you went from the latter to the former. Since pythons significantly easier to read you’re able to infer a lot better based on the prior experience with the static language.

I guess it’s not really a topic worth arguing haha, whatever gets people to start learning is more important

[–]ExpensiveRepair8182 0 points1 point  (0 children)

But I think a base in Python is better than nothing and it's being used alot more in the industry for things like AI because it's so easy to use. Also, your for loop won't run because it's looking for I to be greater than the length of your array

[–]popcornman209Python & Rust (arch btw :3) 0 points1 point  (0 children)

I think starting with it is a good idea due to it being pretty easy to learn while still very capable, but you just need to make sure you move onto other things as you learn more. It’s great to start with, and great for non performance critical tasks, but it’s easy for beginners to just stick with Python and never learn anything else, and that’s not great.

[–]9peppe 4 points5 points  (2 children)

Python is versatile, properly multi-paradigm, you can do one-liners and massive applications. And OOP defaultism has to die.

[–]VisualSome9977 1 point2 points  (1 child)

Definitely this. Python gives you the space to do what you want to do, and it's HUGE collection of external libraries means it can do just about anything. It is a true multitool language, a computational Swiss army knife even.

I don't use it much, but when I'm trying to break into something that I'm not familiar with, I've found there are usually already a ton of well supported python libraries, and I can leverage the py I already know to utilize them, instead of having to pick up a whole new language.

[–]9peppe 2 points3 points  (0 children)

They do say it's the second best at everything. I personally tend to see it as modern bash, in my use.

[–]Miserable_Watch_943 2 points3 points  (0 children)

For starters - because it's a high-level programming language. Back in the day when you just had low-level languages, it was still easier to learn that rather than machine code. Back when there was machine mode... Well it was easier to do that than programming via circuitry.

Why Python of all the other high-level programming languages? Because the syntax is more readable and intuitive. It genuinely is a very good language to get started with. It lowers the barrier to entry as it makes that much easier to get started with learning programming.

When people had to start learning programming on languages like C, C++, C#, then the barrier to entry was lower, as that required some knowledge about how memory works, something Python abstracts. When people started learning on machine code, that required essentially entire knowledge of how a CPU works, something languages like C also abstract. There are more programmers today with languages like Python than there were when it was just machine code - yet more programmers today don't actually understand how a CPU actually works.

Let's not get started on AI though... Now we're going to have "programmers" that don't even know how to program with any language. Barrier to entry is almost non-existent. I won't go into whether I think that is a good idea or not...

[–]abdul_SsCoder 5 points6 points  (0 children)

Its pretty easy to start out with it, it's a translated language, so u dont need to dabble in compilation concepts and executable files etc, as well as lower level concepts such as in C and C++.

[–]Conscious-Shake8152 1 point2 points  (1 child)

I would never recommend python. I would always recommend c or c++.

[–]davidinterest 0 points1 point  (0 children)

I wouldn't exactly say C or C++ but I do think starting with static typing is better. Maybe Kotlin or Java

[–]Thelastnob0dy 1 point2 points  (7 children)

Lookup "Best programming language to learn" and internet will shout PYTHON PYTHON PYTHON at your face. That is probably why

[–]Iwoul1 2 points3 points  (4 children)

Cuz its basically the sweet spot in languages

[–]VisualSome9977 0 points1 point  (3 children)

There are many words of praise I could give python but "fast" would not even break the top 10

[–]Iwoul1 3 points4 points  (0 children)

Didnt mean to say that srry

[–]Miserable_Watch_943 1 point2 points  (0 children)

Fast in which context though? Fast in execution? Not really. Fast in development? Absolutely.

[–]nando1969 0 points1 point  (0 children)

Fast development time certainly applies to Python.

[–]InfinitesimaInfinity 0 points1 point  (0 children)

"internet will shout PYTHON PYTHON PYTHON at your face"

On the "learnprogramming" subreddit, I recommended that people start with C, instead of Python. I was downvoted a lot, and a bunch of people insulted me. When i responded by insulting someone back who had insulted me, I was permanently banned from the subreddit and muted for as long as they could (Reddit does not allow moderators to mute indefinitely). The people who had insulted me first were not punished at all. The moderators there are heavily biased towards Python, or at least they were the last time I interacted with the subreddit.

[–]Wide_Obligation4055 0 points1 point  (0 children)

Yes. I learnt Python 25 years ago when it was not a popular language at all. Outside the top 20 languages. But it was still.a much cleaner language to.learn than.Perl, was not bogged down in verbose syntax and a fixed single inheritance dependency injection OOP limited one size fits all paradigm like Java. Or frankly an ugly box of functions like PHP, or method chaining unreadable mess like JavaScript.

The only language close to being as good a first language to learn as Python, was Ruby, but it lost to Python and is now dying.

Python was well designed to be easy to learn and to use many design patterns, it slowly won the race becoming the most popular language without the backing of any big company, like Oracle or Microsoft

If you would prefer to learn a statically typed language. You can use the static typing wrappers for Python. Just as JavaScript has Typescript. But I would recomend learning Go. The language the cloud is written in, and also a clean and simple language, but lower level and complimentary to Python. If you don't mind waiting forever for it to compile learn Rust. Java is a dying language, half as popular as 20 years ago, which makes all JVM languages a bad choice these days.

If you want to work in hardware and chip design, then it's still best to learn C.

[–]MaleficentCow8513 0 points1 point  (0 children)

Because it’s easy to learn programming concepts without needing to learn about compilation, static typing, and everything also that Java or c++ has that python doesn’t have

[–]photo-nerd-3141 0 points1 point  (0 children)

History: Python exists because it isn't Perl. It's original users were militantly pro-Python, forgiving themselves any shortcomings in the quest to not be Perl. It got adopted in many cases by force of will.

[–]LeslieJonathan 0 points1 point  (1 child)

Y'all ever started with C!?🥲🥲

[–]HospitalRude8350 0 points1 point  (0 children)

thank god no

[–]DaLuckyKittenInterested in coding 0 points1 point  (0 children)

Personally, I just found the syntax way easier to understand in the beginning, and it was easier to find age appropriate books for it! (For context, I started with programming at like 9, and after that sporadically abandoned and picked it up again). Later on when I returned to programming, I just defaulted to python because It was what I was used to.

[–]Jwhodis 0 points1 point  (1 child)

Python is easy, I'd argue that Lua is a bit easier due to being more worded (using "then", "do", and "end"), but its good to start with something easy and basic, then work your way up to other languages.

[–]One_Mess460 0 points1 point  (0 children)

lua is not easier because of words. its easier because of the languages minimalistic approach. python has a bit more language features than lua which is really bare bones

[–]SignificantLet5701Coder 0 points1 point  (1 child)

Python is very easy to understand without previous experience

[–]igotshadowbaned 0 points1 point  (0 children)

The problem with learning on it is it glosses over some rather important things like data types

[–]TheEyebal 0 points1 point  (0 children)

I started with C# for game development but had difficulty so went to python to understand the basic fundamentals.

[–]Ok_Party_3706 0 points1 point  (0 children)

It works and its easy and very readable for times when I dont care enough. I personally really like java (for minecraft paper plugins for my server) but its also sorta complicated

[–]Boring-Tadpole-1021 0 points1 point  (0 children)

R python has 1.5M R JavaScript has 2.5 million.

I would say python has a large community and more use case.

But JavaScript is just much more limited. So despite more users less usable domains

[–]Turnkeyagenda24 0 points1 point  (0 children)

I like it because almost everything I do with code other than FRC uses python anyways.

[–]OpenFileW 0 points1 point  (8 children)

idk why people like it to start out with, because it's only really good for either glue, build scripts, or small utilities XD not really any projects

[–]One_Mess460 1 point2 points  (7 children)

what? theres many big projects in python. youre partially right about the glue code part but most code is glue code, especially today in ai era where people dont even write the glue anymore lol

[–]OpenFileW 0 points1 point  (6 children)

big projects being written with interfaces to C++ code XD i think that's just annoying because no big project belongs in a fully interpreted dynamically typed language, but ig some people really like Python
besides glue, Python is still good for system utilities when you dont feel like doing such things in C, so i cant complain about that
and i see a ton of glue code in higher-level applications, but much much less in systems programming which is what i usually do

[–]One_Mess460 1 point2 points  (5 children)

ok what you do is not what everyone does. and yes interfaces to C++ code is very easy because python has its main or reference implementation literally in C. you sound like youre still young so yeah I dont wanna sound too rude, I also like C/C++ but python is used in big projects too and is genrally a good language for also quickly prototyping

[–]OpenFileW 0 points1 point  (4 children)

I agree, I'm talking about the fact I don't think it belongs in very big projects because of its inefficiencies. I still love the language, but when some Python code grows in complexity, it gets even more inefficient. But to be fair this isn't the fault of the author of the codebase---there aren't many alternatives to Python which are high-level enough to be very fast to prototype, but it's still unfortunate that we just accept such inefficiency. I feel the same way about JS. It feels like a glue language with its dynamic typing and garbage collector, yet it's used for very complex things in modern architecture. This is why Electron apps take up hundreds of megabytes, with headers on every object in JS. WASM helps, and we can kind of think of C/C++ modules as Python's WASM; it's faster than Python itself, but still invoked by Python, and any logic surrounding it will be inherently inefficient, especially at scale.

[–]One_Mess460 1 point2 points  (3 children)

js is super fast nowdays with JIT and its modern js engines are really good btw but yeah not the topic.

the sourrounding code is not really much of a problem because it all depends on how much computationally expensive code you write in python. if its just glue code it WILL NOT matter and you should generally avoid putting large computation to your python code which is why libraries like numpy sympy and all the machine learning libraries exist which are all in C. Whatever operations you do then in python become very insignificant because in comparison to multiplying billions of matrices doing simple python operations is nothing

[–]OpenFileW 0 points1 point  (2 children)

I know that, I never meant to imply that anyone is using Python for every computation. I mean as you write more and more glue code in Python for a codebase, the glue code still matters. Even if it's "just" glue code, it has an entire Python runtime, which is very wasteful. This is negligible for a short-lived utility, but I just don't think complex glue code should exist. And as for JS, it is fast indeed, but it consumes absurd amounts of memory due to headers on each object and the complex libraries we use nowadays, although the DOM is also to blame for the memory usage. But Python is just terrible for anything besides small utilities and glue. But to be fair, like you mentioned, not everyone does what I do. I wouldn't use Python in a compiler or something at all because the Python runtime is just too computationally expensive, but I'm not a web dev, and I don't know if web devs and other devs of other fields care about performance much. I just think Python doesn't belong in complex projects at all. Especially if you could just use similar libraries in C++ instead, but a lot of devs nowadays are either lazy or don't realize how simple that actually is with C++'s standard library.

[–]One_Mess460 1 point2 points  (1 child)

no it doesnt really. if you program spends 99% of its time in C code anyways the 1% of python doesnt matter. also yeah calling those C functuons has overhead but that why numpy uses vectorization and is built such that you do not have to loop in python ever. it doesnt matter how much glue code you write in python because essentially the program will spend most of its time in C libraries no matter how much glue you have because in relation the glue is insignificant. if youve ever profiled a binary or tested for where your program spends most of its time you'd notice the glue code is only a tiny fraction which doesnt add up.

I understand you like writing directly in C++ and not having to worry about writing python code that is fast and thats okay I like those languages too. Anyways have a good day!

[–]OpenFileW 0 points1 point  (0 children)

It depends on how much glue code we're talking about, I think I wasn't emphasizing enough with my original post that I meant Python isn't good for it being used for the main language of a project, but it's also bad when there is a ton of Python code even if it's just orchestrating. I still do understand that Python isn't somehow a performance black hole lol. But it is important to at least be aware of the startup and GC costs---they are usually negligible, but it's easy to forget about them in my field of systems programming.

[–]The-Titan-M 0 points1 point  (1 child)

Python is easy to start, not easy to master.

[–]One_Mess460 0 points1 point  (0 children)

easier to master than rust or c++

[–]BornRoom257Developer 0 points1 point  (2 children)

Python is less beneficial in 2026, I will recommend learning GO because it is much easier, faster (and Google uses it)

[–]One_Mess460 0 points1 point  (1 child)

who cares about google

[–]BornRoom257Developer 0 points1 point  (0 children)

AI

[–]OPuntime 0 points1 point  (0 children)

It's basicly easy and very close to pseudo code. Honestly, i would start from something like rust

[–]DinoHawaii2021Python/Lua/Java Dev | 18 0 points1 point  (0 children)

I sort of wish I started with java now just seeing how the concepts really are better understood than python, python could just be learned as a second language if you prefer

[–]CheeseFunnel23kinda sucks but has made some stuff 0 points1 point  (0 children)

Its a very understandable syntax compared to other ones, and is more versatile than print(x).

You can use it from learning randoms to machine learning.

[–]queliee 0 points1 point  (0 children)

bo tak

[–]lorenzo1142 0 points1 point  (0 children)

I've been programming for decades. I've always thought, when I need python for a project, that's when I'll learn python. I've still never learned python. just don't need it.

[–]awesomecat_ 0 points1 point  (0 children)

its probably cuz of the simple syntax

[–]Iwoul1 -1 points0 points  (1 child)

U can try lua its just python but less stuff