Dart is a beautiful thing, but I had never done anything serious with it. I have spent more than 12 hours of almost straight coding in order to get the player to walk an empty square room. Most of that time has been spent fighting my incompetence.
Sometimes, while my code is compiling, I think about whether it's easier to learn to program now or when I was growing up. I'm not that old, only 31 in April, but your experience and mine point to two very different mentalities.
The first is that these days people generally expect access to a solution rather quickly. The internet, basically. StackOverflow, Wikipedia, ready access to other people's source code and documentation make learning new things much easier!
The seconds, and it is an argument with some heat on all sides, is whether doing things "the hard way" is better when learning new things; I tend to land on the side of "not really."
Twelve hours, when learning something new, is really nothing in the grand scheme of things. I remember distinctly struggling with the Metrowerks IDE, compilers, and linkers on my dad's Mac G3 in the 90s. All you had was example code from the CDs, and if you did not have formal education with the languages (C++ and Pascal in my case), it really was an uphill battle to cobble together something remotely like a game. You may have struggled half a day with getting a player to walk across a square room, but I struggled for days implementing Towers of Hanoi iteratively because what the fuck was recursion?
Which is not to say it was good to have to struggle in that way, but it does inform your perspective on how long it should take to sink your teeth into something new and have it stick. Probably the converse for new programmers today is that it's hard to determine what to use. When I say I used C++ and Pascal it wasn't because I looked at my wealth of options and decided those best suited the programs I wanted to write - they were simply all I had access to (don't mention AppleScript, please.)
What I'm trying to say is for new programmers my advice remains 1) get it to work, 2) make it not shitty, 3) you're always learning so it's always shitty. Infinite loop, fuck, become a wizard instead.