If you’re coming in from zero, a good place to start is www.hedycode.com
Hedy is a language specifically designed for learning. The things it does to ease the learning curve:
Comes with an online lesson program, so no setup (try it now!)
Has “levels” built-in to the language itself, to slowly introduce concepts and avoid accidentally running into harder/advanced things and getting stuck
As levels advance, it slowly becomes Python, a very popular and ubiquitous programming language, so no “switching to the real thing later”.
Is textual, so also no “switching to the real thing later” – it’s “real” from the start
I think so, to an academic (not necessarily a professional) level, because how could one reach a conceptual understanding without?
It’s like the professors that allow open book tests. If you’ve practiced solving before, it’ll be quick and easy to recall deep knowledge and expand on it. If you haven’t practiced solving and don’t really understand the concepts, you won’t perform well enough in time.
That’s fair, on the second point, but I can only partially agree with the other.
There’s no “shortcut” to real learning (i.e. developing an intuition, understanding, etc) besides practice, the closest maybe being cleverly developing new ways to teach.
We definitely don’t need to teach those old mental math tricks anymore, but brains learn via practice (i.e. manual computation) to gain the fundamental understanding needed before using tools to skip those steps.
The only way I can imagine really not needing for normal life is if you can afford to pay someone you trust to understand it for you.
It’s not really an analogy b/c I’m referring to how brains learn in general for any subject, whether math or basketball.
Yes, we don’t need to memorize all those old mental math tricks used before calculators were invented, but you still need to understand exponentiation, which follows from multiplication, which follows from putting time in to practice the basic times tables.
That’d be like trying to learn about basketball strategy without putting in the fundamental time shooting and defending.
Sure, coaches operate on a higher level and don’t have their hands on the ball as often as players do, but they definitely know how to play. Would you hire a coach that didn’t?
WET/DRY-ness is like a property of code – a metric or smell perhaps, but not something to goal towards. That’s like asking whether you drive fast or slow and whether we should all drive faster or slower.
For someone learning programming from zero, it was specifically invented to be:
Hedy is the easy way to get started with textual programming languages! Hedy is free to use, open source, and unlike any other textual programming language in three ways.
Hedy is multi-lingual, you can use Hedy in your own language
Hedy is gradual, so you can learn one concept and its syntax a time
Hedy is built for the classroom, allowing teachers to fully customize their student’s experience
Adding to the points above:
At the end of the gradual progression, Hedy becomes vanilla Python.
An aspect of the 3rd point is having an online editor & execution environment, so you don’t need to deal with setup.
That example doesn’t sound particularly difficult. I’m not saying it’d be trivial, but it should be approximately as difficult as writing a compiler. Seems like the real problem is not a technical one.
That route already exists today as “the web”, where the “latest” JavaScript source is downloaded and JIT-ed by browsers. That ecosystem is also not the greatest example of stable and secure software.
Wonder what makes it so difficult. “Cobol to Java” doesn’t sound like an impossible task since transpilers exist. Maybe they can’t get similar performance characteristics in the auto-transpiled code?