I have been looking for fresh engineers and also wannabe IoT Entrepreneurs to help them bringing out their ideas as products. One thing that struck me was their lack C and Assembly programming skills. They are good to show you a prototype made out of Arduino and they claim their product is complete.
What surprises me is, most of them lack understanding of the processor architecture to start with. To test them, I have few standard questions and ask them. Only 1% have answered. They are;
How does a processor interrupts work. What happens if two interrupts come together
With a microcontroller can I measure AC signals?
How the accuracy of A/D conversion is decided?
How do you make your system respond fast to real-time events?
I have never got an answer to these questions. Secondly, they have no clue how a processing power is calculated. In fact, I asked one of the would be entrepreneur (who incidentally had a prototype working on Arduino) how to increase the system’s performance from the current 2-3 seconds to 10’s of milliseconds. He had no clue about the issue and told by increasing the speed! Even more hilarious was, one prototype was tested using Arduino in the lab with PC connected. He brought the prototype to me with code loaded in the Arduino and the system was behaving randomly. I suspected a grounding issue and moved my hand over the system voila! the system behaved even more funnily. Next 1 hour have to explain about how Ground is important for both digital and analogue signals.
The common things I noticed were that none of them have learnt how to bring up microcontroller from reset. They have no idea how to control the different peripherals through their code rather than Arduino IDE. Worst is that most of them have no strong basis in C that too for embedded system. Most of them didn’t know how to to do single stepping and use of debugging tools like emulators
Couple of things I noticed seem to be the reason when I use to teach for both undergraduates as well as postgraduates classes and labs are;
Labs use canned software exercises and prewired boards.
Most of the times kids just cut and paste a code rather than developing their own.
Above all complete lack of Networking Knowledge which is essential for the IoT.
What I noticed is that Arduino masks the processor complexity and architecture and the peripherals that used have networking stacks built in. This essentially prevents students learning basics. In my opinion, Arduino may be a good tool for prototyping for hobbyists but not a tool for learning.
Save Trees! Avoid taking prints…
Srinivasa Moorthy S A has over 30 years of experience in the IT industry as Head, Leader & Technocrat in the Electronic Product Design & Engineering Services and is currently working as the Chief Executive Officer of the Andhra Pradesh Electronics & IT Agency.