I agree that a beginner who first encounters the Arduino site will struggle with C/C++ and this has been brought up before.
I'm well experienced and indeed rejected Arduino when I first started looking at getting back into embedded work because I though it had a brain-dead instruction set. It took me a while to realise what the deal was.
So I think it should be made more clear that you really need to study up on C.
In Arduino's defence the argument goes that Arduino runs the C/C++ language and there are so many tutorials and books about the language that trying to describe it there is superfluous.
Hidden at the bottom of the reference page there is this
The Arduino language is based on C/C++. It links against AVR Libc and allows the use of any of its functions; see its user manual for details.
This is hardly hardly beginner-friendly, for example "links against AVR libc", what does that mean? Anyway the link takes you to the AVR library info which has nothing about the C language per se.
What they do describe on the Arduino page (to varying degrees of usefulness) are the Arduino libraries.
So I think maybe making it obvious that you need to study up on C and also providing some recommended reading would be useful.
those who explain how to program have no idea how to explain.
This is a common problem in all fields (except maybe teaching
). The people that are good at it aren't usually the people that are good at describing it.
NOTE: C is a notoriously difficult language to learn which doesn't help, but in the embedded game it's the only language worth learning IMO.