if you are trying to learn software engineering it is not a good language to start out with
Curious what options you would suggest instead? I’m an old C/++ embedded diehard, but I do use Python and have been considering it as the next step for my 9yo daughter after Scratch.
Python feels like the modern replacement for Basic that I grew up with as a kid. Interpreted, garbage collected, good library support, sane typing and not too wordy or confusing. Lots of options to do fun things with it from games to robots.
IMO for a young beginner the C-likes are too strict and segfault-y, Perl is too permissive and could breed sloppy habits, Basic is obsolete, all the web languages are way too application specific, I haven’t had a chance to get into Rust yet, and fuck Java as a matter of principle lol.
Well, I think for a 9 year old it’s fine. I think the stage where you would run into issues is when trying to get into “actual” software development, where the flexibility in scoping and typing afforded by Python can lead to some bad habits (e.g. overusing global/shared variables, declaring them from within functions, catching errors late instead of validating data first, …)
I don’t have a ton of experience with it but I think C# strikes a pretty good balance between strictness and beginner-friendliness. Modern Java isn’t all that bad either, though it doesn’t have very good options for fun things to build. But again, I don’t think this necessarily applies to a child; I’m an educator at a university so both my target audience and point of reference are freshman compsci students.
Curious what options you would suggest instead? I’m an old C/++ embedded diehard, but I do use Python and have been considering it as the next step for my 9yo daughter after Scratch.
Python feels like the modern replacement for Basic that I grew up with as a kid. Interpreted, garbage collected, good library support, sane typing and not too wordy or confusing. Lots of options to do fun things with it from games to robots.
IMO for a young beginner the C-likes are too strict and segfault-y, Perl is too permissive and could breed sloppy habits, Basic is obsolete, all the web languages are way too application specific, I haven’t had a chance to get into Rust yet, and fuck Java as a matter of principle lol.
Well, I think for a 9 year old it’s fine. I think the stage where you would run into issues is when trying to get into “actual” software development, where the flexibility in scoping and typing afforded by Python can lead to some bad habits (e.g. overusing global/shared variables, declaring them from within functions, catching errors late instead of validating data first, …)
I don’t have a ton of experience with it but I think C# strikes a pretty good balance between strictness and beginner-friendliness. Modern Java isn’t all that bad either, though it doesn’t have very good options for fun things to build. But again, I don’t think this necessarily applies to a child; I’m an educator at a university so both my target audience and point of reference are freshman compsci students.