So basically if you want to learn how to program don’t start with python. But if you want to write programs right away and don’t care to learn programming learn python.
Don't confuse a programmer with a computer scientist. Programmers don't need to know about pointers and datatypes. The project engineer will deal with that stuff when it's important.
Because they're beginners, not niggers. Python is scripting for niggers.
Python is also full of jank, preferring to behave with quirks rather than warn about anything. It doesn't follow floating point standards. It barely works between versions.
Learning python leaves you unable to do various things such as starting concurrent threads for computation. I don't mean a beginner should learn advanced notions such as threading - I mean it burdens the beginner with a platform which can never do threading, forcing change and retraining rather than such happening by choice.
Python syntax is also just so full of niggery-diggery. Its conditional operator recycles keywords (see also Lua) and changes the usual argument order. It lacks sane flow control, which is fucking embarrassing for a line-interpreted platform with fully dynamic variables, not having at least a simple goto.
I almost want to recommend rust, but cannot due to being maintained by leftist faggots. I also hate how it comes with a build system which assumes not only that you want revision control, but that you want git specifically (the That's Not Your Fucking Job problem). Git is overrated, almost anything else except for SVN is better.
Ultimately I lean towards C++, but the learning curve is real and it's worth considering C# and Java for a bit. Either of those provide a decent enough start and can become a daily driver, although due to their use of garbage collection, I would force students to understand profilers and monitor the memory used by their creations at an early stage. They NEED to see the sawtooth memory bumps caused by repeated allocation and mass deallocation when the GC kicks in.
At minimum they need to see how C++ works for comparison, in the context of how every bit of syntax has memory management baked into it, and how much more slim that runtime profile can be when you don't have throwaway allocation and don't have an absolutely massive runtime environment. From there I'd rather see accelerated success with a GC runtime than impose C++ necessarily, as long as the tradeoff is understood fully, hence that profiler exercise.
Distant awareness of ASM is a plus alongside that, so I'd recommend those programming games from Zachtronics (TIS-100, Shenzhen I/O and Exapunks).
[ + ] Portmanure
[ - ] Portmanure 2 points 1 monthMar 5, 2025 12:57:26 ago (+2/-0)
[ + ] lord_nougat
[ - ] lord_nougat 3 points 1 monthMar 5, 2025 13:24:00 ago (+3/-0)
[ + ] ModernGuilt
[ - ] ModernGuilt 1 point 1 monthMar 5, 2025 13:56:07 ago (+1/-0)
Here we go....
[ + ] puremadness
[ - ] puremadness 0 points 1 monthMar 6, 2025 21:15:38 ago (+0/-0)
One thing C made very clear was that nothing was free.
[ + ] shitface9000
[ - ] shitface9000 1 point 1 monthMar 5, 2025 14:29:03 ago (+1/-0)
Nobody is stopping beginners from learning other tech.
[ + ] Master_Foo
[ - ] Master_Foo 0 points 1 monthMar 5, 2025 16:58:42 ago (+0/-0)
Programmers don't need to know about pointers and datatypes.
The project engineer will deal with that stuff when it's important.
[ + ] puremadness
[ - ] puremadness 0 points 1 monthMar 6, 2025 21:17:21 ago (+0/-0)
[ + ] SithEmpire
[ - ] SithEmpire 0 points 1 monthMar 5, 2025 19:09:52 ago (+0/-0)
Python is also full of jank, preferring to behave with quirks rather than warn about anything. It doesn't follow floating point standards. It barely works between versions.
Learning python leaves you unable to do various things such as starting concurrent threads for computation. I don't mean a beginner should learn advanced notions such as threading - I mean it burdens the beginner with a platform which can never do threading, forcing change and retraining rather than such happening by choice.
Python syntax is also just so full of niggery-diggery. Its conditional operator recycles keywords (see also Lua) and changes the usual argument order. It lacks sane flow control, which is fucking embarrassing for a line-interpreted platform with fully dynamic variables, not having at least a simple goto.
I almost want to recommend rust, but cannot due to being maintained by leftist faggots. I also hate how it comes with a build system which assumes not only that you want revision control, but that you want git specifically (the That's Not Your Fucking Job problem). Git is overrated, almost anything else except for SVN is better.
Ultimately I lean towards C++, but the learning curve is real and it's worth considering C# and Java for a bit. Either of those provide a decent enough start and can become a daily driver, although due to their use of garbage collection, I would force students to understand profilers and monitor the memory used by their creations at an early stage. They NEED to see the sawtooth memory bumps caused by repeated allocation and mass deallocation when the GC kicks in.
At minimum they need to see how C++ works for comparison, in the context of how every bit of syntax has memory management baked into it, and how much more slim that runtime profile can be when you don't have throwaway allocation and don't have an absolutely massive runtime environment. From there I'd rather see accelerated success with a GC runtime than impose C++ necessarily, as long as the tradeoff is understood fully, hence that profiler exercise.
Distant awareness of ASM is a plus alongside that, so I'd recommend those programming games from Zachtronics (TIS-100, Shenzhen I/O and Exapunks).