My best friend's son recently turned 13, and he has stated an interest in wanting to learn programming and microcontrollers, etc.
I can certainly teach him, Arduino, to some extent, but I'm wondering if I should start him off with something like the Micro Bit device. The only thing that worries me about that thing is the "programming" isn't really programming more than it is block command connections and ... basically more visual than thought based programming. In my thinking, learning how to program that way would make it more difficult to transition over to OOP whereas if someone just dives straight in, they will have a better chance at learning how "the real world" codes for microcontrollers.
I'm looking for any thoughts or opinions on the matter. He's a pretty smart kid though I wouldn't say he's in the upper 10% of intelligent kids... but smarter than the average for sure.
There is nothing wrong with block programming to start. I like MIXLY because in 1 click you can see the Arduino code, and even copy it into the regular Arduino iDE... I did that with an 11 year old Grandson and he quickly moved to C and the Arduino IDE. in 3 months he is writing a lot of code and has built 3 different simple robots. He IS scary smart. And 70 years younger than me
Specially Designed Education Services is focused on providing products, training, & consultation related to programming for students with moderate to severe disabilities including autism. We provide training and consultation related to the implementation of The Styer-Fitzgerald Program for Functional Academics. We also work with teams to address child-specific concerns (initial programming, planning for communication, behavior, etc.), as well as classroom set-up and scheduling. We provide pre-scheduled workshops and webinars as well as district-wide trainings on location. Our mission is to share evidence-based resources and strategies for student learning and success. Our collaborative work with educators, families, & administrators leads to a team roadmap for students with complex learning challenges to reach their full potential.
As your friend's kid is only 13 years old, Scratch won't be a bad idea to initiate. This is also a programming language but visual, and was developed in MIT media lab. This program has helped to teach my kid the fundamentals of coding that have helped him while learning other languages.
I would help him find a simple Arduino project that would coincide with his other interests. Then start with an Arduino and do some of the basic sketches, working your way towards his interest. Plan and order some modules to work with, get at least 2 of each because they can be damaged. Teach him some basic skills like soldering, how to use his multimeter, how to work with a simple logic analyzer (available for less then $10.00 from Aliexpress). This will build his fundamental skills in electronics and while doing that he would also learn programming etc. As you build these projects download the data sheets on each part and work together so he can determine the important parameters etc. and understand them. Be sure he has the tools he needs, these can be gotten as needed. Remember no matter what he's accomplished it is a good thing, it is something just a few days before he could not do.