I don't like Assembler programming. I was forced to use it in 1997 in EE 380 on the Motorola 68000 with Prof Nelson Durdle at the University of Alberta. Ditto, for C++. My C professor, Prof. Martin Mintchev, in EE 445 convinced me that it was bloated and terrible. So, since that time, I've been programming in C on embedded systems, starting with Interactive C and then GNU tools. This is all in the dark, pre-Arduino days.
It's 2018 and I'm starting to have a change of heart. Last year, I used Python and R for some work. I realized that these OOP languages were actually better and more effective than C code. That opened up the door to C++ a crack. This was reinforced while listening to the Embedded.fm podcast. Specifically, the interview with Dan Saks on using C++ in embedded devices.
So, now I'm looking to apply myself to learning how to program in C++ on ARM Cortex M0 boards and to analyze the functioning of the code on these boards using disassembled views of the code using tools like Radare2.