I have learnt C++ through the arduino IDE and built my own little autonomous cars, played around with almost all the cheap sensors available and managed to learn a lot of new stuff. Now I have been asked to show some younger learners a thing or two about robotics and they asked me to use mBlock. I tried and find it really difficult. I just don't seem to have the patience anymore.

so my question here is: Is it just me or do others also find learning those manipulatable blocks more confusing than the C++ code?

"Pete, it's a fool (who) looks for logic in the chambers of the human heart." Ulysses Everett McGill.Do not send technical questions via personal messaging - they will be ignored.I speak for myself, not Arduino.

I think it is hard for me to say, since I know programming on a decent level now, I did teach both Arduino and LEGO mind storms, for different audiences.

There are different aspects to it:

What is really good about the drag and drop blocks (blockly, scratch, duinoblocks, whatever) is that it is really easy to explore, as a novice in a certain language, When you don't know the words to express yourself, this makes it easier to find words from this limited list of 'blocks'.

Something like a proper autocomplete might also help a lot with this 'problem', still a user might not know what to start typing, but a exploratory user might get faster results this way.

Another thing is the visual aesthetics of the program. This is subjective, but I could imagine that Arduino code, looks way more scary than a sequence of blocks 'blockly'. I'm not saying that we should always design non-scary looking programming environments, but they should not make it look more complex than it is, but also not less.

Besides all these practicalities ask yourself the question why, why do they learn 'programming/STEAM' is it really to learn c++ (than definitely use Arduino/VScode/Atom). Is it (mechanical) problem solving, make the (mechanical) problems challenging. Is it learning about how the real world works, let them take apart devices, and hack into them... Is it learning that the world is make-able, let them work on changing the current world. Is it data and privacy, let them collect data in the school (in a visible way) and start conversations around it.

PS: Live debugging (seeing where the program is in the code is also super-nice for education, because this makes the whole debugging more visual and it is easier to explain concepts).

PS: Recently I heard that Buddy++ is popular in China to use as Arduino IDE, which indeed has auto-correct and the list of functions on the left.