<div dir="ltr">When I went through the microcomputer courses 6-7 years ago we started from 8085 assembly, then moved on to 8086 assembly and embedded C. I was first taught programming on my first semesters, Python then C, but I seriously hated it. It's not that I felt I <i>couldn't</i> do it; I <i>didn't want to.đ</i><div>Amazingly, going through the microcomputer lab turned me around. I loved how implicit assembly is - you tell it to do things and there's nothing cryptic as to what is going on. For a person that was a hardcore analogue electronics fanatic, this was a very natural process.</div><div>One could argue that 8085 is an ancient piece of crap, but it is simple and its lack of modern features has an incredible educational value at this stage. I think everyone would become a better person if they had to program for a while without division and multiplication operations available to them.</div><div>Nowadays programming is part of what I do for a living, so it has to be a bit faster to develop and easier to handle. I have settled with C++ on my embedded projects and didn't have any problems so far. I don't want to use assembly ever again, but the experience of learning it was indeed valuable and wholly recommended for anyone trying to get into this field on a professional or academic level.</div><div><br></div><div>I don't like python at all, but I had to start learning it since there are so many useful tools developed on it. I'm still on my first steps, but it promises me that I will be able to do fancy things very quickly without having to really understand what the hell I'm doing; I sure hope it delivers, because even looking at it is painful.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Dec 8, 2020 at 8:57 AM Ben Bradley <<a href="mailto:ben.pi.bradley@gmail.com">ben.pi.bradley@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">It's good you know C++, I think every compiler that outputs for ARM<br>
(perhaps even for most 8-bit processors) is both C and C++. The<br>
"problem" you now have is if you want to learn C, you need to<br>
"unlearn" the parts of C++ that aren't in C. Having learned C circa<br>
1987 and C++ slowly over the last 10 years or so, that's not a problem<br>
for me.<br>
<br>
If you want to learn assembly also, I think that would be good. It<br>
might possibly be helpful to learn assembly before learning C (that's<br>
what I and many old-timers ended up doing, so we might have a bias for<br>
that), but if you want to learn assembly, it's different enough from<br>
C/C++ that I think you can learn them together with no problem. I<br>
suggest often looking "under the hood" at a compiler's assembly<br>
output, or even doing single-stepping at the instruction level, so you<br>
can see 1. what the compiler turned your source code into, and 2. how<br>
the processor works at the assembly/machine level. Be sure to turn off<br>
optimization when you do this, else you may not recognize the object<br>
code as having any connection with what you wrote.<br>
There's this guy on the amazing things that modern compilers do:<br>
<a href="https://www.youtube.com/watch?v=w0sz5WbS5AM" rel="noreferrer" target="_blank">https://www.youtube.com/watch?v=w0sz5WbS5AM</a><br>
<br>
I do have a long rant on languages and how I learned them that I was<br>
about to write, but I should put it in a blogpost, if not a book. I've<br>
semi-jokingly thought of writing a book titled "C programming for C++<br>
programmers."<br>
<br>
On Wed, Dec 2, 2020 at 9:47 PM Shawn Rakestraw <<a href="mailto:shawnrakestraw@gmail.com" target="_blank">shawnrakestraw@gmail.com</a>> wrote:<br>
><br>
> Please don't go into extreme detail (unless you really want to). I ask too many simple questions and I feel bad that everyone spends great amounts of time with it.<br>
><br>
> I am thinking about programming ARM chips like the STM32 for something like Braids. I know that I will not be making my own Braids module anytime soon, but I would like to start thinking about the language I need to learn. I know the most about C++. I also realize that my question may be better asked as what libraries should I load / study up on.<br>
><br>
> Thanks guys/gals<br>
> _______________________________________________<br>
> Synth-diy mailing list<br>
> <a href="mailto:Synth-diy@synth-diy.org" target="_blank">Synth-diy@synth-diy.org</a><br>
> <a href="http://synth-diy.org/mailman/listinfo/synth-diy" rel="noreferrer" target="_blank">http://synth-diy.org/mailman/listinfo/synth-diy</a><br>
> Selling or trading? Use <a href="mailto:marketplace@synth-diy.org" target="_blank">marketplace@synth-diy.org</a><br>
<br>
_______________________________________________<br>
Synth-diy mailing list<br>
<a href="mailto:Synth-diy@synth-diy.org" target="_blank">Synth-diy@synth-diy.org</a><br>
<a href="http://synth-diy.org/mailman/listinfo/synth-diy" rel="noreferrer" target="_blank">http://synth-diy.org/mailman/listinfo/synth-diy</a><br>
Selling or trading? Use <a href="mailto:marketplace@synth-diy.org" target="_blank">marketplace@synth-diy.org</a><br>
</blockquote></div>