understanding computer languages develops communications and complex thinking skills as well as encourages creativity and trains people in self-motivation and time-management. it allows anyone to fix problems by tackling them creatively and logically. even more significantly, learning to code is one of the most effective ways to combat disinformation because people who understand how the internet and computers work and have the logical deductive skills required for computer logic are resistant to false narratives and fictional information.
schools have finally begun to include app development in their curriculums but they've fallen into some predictable traps.
curriculum development, consultation and approval processes are slow and cumbersome. they are almost always reserved for teachers at the ends of their careers because they're the ones with the most experience and often the most classroom skills. unfortunately, unlike many other disciplines, coding changes rapidly, leaving courses developed now years, sometimes decades behind the times.
computer science and k12 classrooms are packed full of people learning useless languages like java because most academics love the "theoretical purity". they get tossed into inefficient and cumbersome languages like python because google can't be wrong, all evidence to the contrary. worse, they get taught by teachers who have no industry experience or who have been trained in procedure instead of creativity, worrying more about following the rules than making something that works.
coding is a creative pursuit like writing music or painting on canvas and it needs to be taught and learned that way.
i'm a proponent of learning by understanding, trial and, most importantly, error.
but there's no point in beginning with something that can't get results in the real-world.
there are many very useful languages out there to learn. some of them make excellent starting points while others, while possible to begin your code learning with, are unnecessarily steep climbs at the beginning, even if they're often some of the most practical in the long-run.
for example, c and c++ are two languages every developer should learn. they're the basis for every modern operating system and a huge portion of the code running on the device you're reading this on -- there isn't a single device on the market that isn't rooted in c/c++ and it's likely that won't change any time soon. but it's a thoroughly unpleasant learning experience if you don't already have a good grasp of the fundamental concepts of code.
swift is one of the most powerful and most enjoyable languages to write, not to mention the primary language for mobile app and mac development today. like c/c++, though, it is a steep learning experience if you haven't already mastered the basics.
one of the largest problems with c, c++ and swift is that they're strongly-typed. that's not a universally-bad thing because it makes them easier to compile and more efficient in the situations they're used in. but it makes them dramatically less flexible in other ways. of course, it would be impossible for operating systems and many other types of software to be written in loosely-typed language for all kinds of technical reasons, even if that would be a far more pleasant experience to write.
but learning to code in a strongly-typed language is like learning to drive while wearing clown shoes and a motorcycle helmet. possible, sure. but neither helpful nor beneficial in the long-run. once you have mastered functional logic and understand types from experience, having to write in a strongly-typed language, while annoying at times, is something that's not particularly hard to learn. so it's a huge stumbling block that can simply be stepped over if it's avoided at the beginning.
there are lots of loosely-typed languages but only two are really practical in the modern development environment -- php and javascript.
if you're developing for the web, both are absolute musts but php is procedural while javascript is (mostly) object-oriented so php is a much better place to start. you'll learn all the same concepts but you can create practical and functional software earlier in the learning journey. sure, you can do basic things easily in either right away. but more advanced things in php come more quickly than the same tasks in javascript because of the unnecessary complexity of its object system.
if you want to develop for the web, you should learn...
if you want to develop mobile/desktop applications, you should learn...
after the initial languages, you can branch out. lots of web development projects benefit from learning ruby and bash. plenty of desktop software is written in rust. large-scale data processing often needs languages like scala and r. but none of these is nearly as difficult to learn after you have a few other languages learned.
i believe it's a good plan to begin developing for the web. it's a gentler learning curve to go from absolute beginner to competent user. any language can get you to "hello world!" quickly but languages like php and javascript can get you to functional, useful code that can run in the real world much more quickly than other modern languages. javascript is often used to develop mobile and desktop applications now, too, so it's multipurpose.
don't get bogged down in languages like python, java or typescript. they're the development equivalents of medieval plagues.
enjoy your coding journey...