@FuZion
As DaveP has said, it would be a good idea to start learning ARexx. And I say ARexx and no other scripting language because in Amiga almost every serious program as an ARexx port, so it's quite interesting to automatize tasks.
Once you have some control over ARexx I would try to learn C. No C++ but C. It integrates better with AmigaOS and to learn C++ it's better to know C.
If you find that you need more speed and control try some asm. I don't advise you to go directly to asm because it will be even more frustrating that C, you will probably crash your computer a lot more.
I wouldn't use Pascal (although I used it for some practices) because C is faster, has better support and integrates better with AmigaOS
Keep away of any Basic, it integrates bad with AmigaOS and usually makes the programmer used to bad habits (like GOTOs).
For me Java is not an option because in Amiga there's no Java (ok, it's so slow that it's nearly unusable and the versions that use graphics are alphas). Just look at the number of Amiga apps/games written in Java. None. Ok, if you aren't interested in coding for fun on your Amiga and want to make some money Java may be interesting.
@Atheist:
the right ANSI C (that is the official C standard) hello world would be:
#include
int main(void)
{
printf("Hello ANSI C world!\n");
return(0);
}
you write that main returns an int, because ideally you should always indicate to the OS how your program has finished (if an error has ocurred etc...).
You put the stdio because you are going to use the printf() function. You may select not to use that function at all. If you have 2 million of functions would you want your compiler to check everything for you? That would be damn slow (basic comes to my mind).
You use ";" because you can do long complex sentences that take up various lines.
And no... loops don't require includes, you can use "while"s, "for"s "if"s etc... without adding a single include. In fact you may do everything without using includes at all, just using pointers, but that would be pointless.
printf uses () because it's a function. It logical, everything you use are functions.
Why you use " in basic instead of for example º 
its just a convention and that is what you do in C.
Why basic doesn't recognize that I want to show a line if I only write "Hello" instead of writting print"hello" that's illogical from your point of view.
That are language standards.
C is logical, well structured and used to learn structured programming, in contrast Basic is not so structured by definition, is slow and doesn't integrate so well with AmigaOS.
The only other language that integrates so well with AmigaOS is Assembler.
Every Basic sucks. If you don't want to learn C, at least learn Pascal, learning Pascal you may learn how to program correctly, with AMOS I'm sure you won't. Amos is quite incompatible with the OS, doesn't allow you to use third party libraries in a comfortable way (just try to use Warp3D from AMOS for example)... and yes, I used Basic when I didn't have a clue about programming, with c64, cpc and msx, but I wouldn't recommend it.
ARexx, C or ASM, that are the options for me in AMiga. And C++ to create some things, but I wouldn't suggest using Basic at all.
Simple fact: big apps/games aren't done in AMOS, they are done using C/C++ or even ASM, but these apps/games never are done using any Basic reincarnation.
Definitely... learn C before complaining so much about it. You can use C without pointers but one of the most powerful possibilities of C is using pointers.
And other advantage of C you only have to learn very few things to learn C. The rest are extensions that work following the standards. I recommend the Kerningan&Ritchie C book.
I think that argc stands from argument count...
but that is well explained in the K&R book. If you want to use graphic functions just load an autodoc viewer and do Amiga-M, you will have a list of functions with its input and output.
Just read a book about C, then you will be ready to code in C. Don't expect to use it even at 10% without any documentation... Use the sidewinder tutorial to set up a C environment and then start to read a book and do type some examples...
You won't do impressive stuff the first day, but once you have some experience you will be able to do things impossible to do in C. I would say the same if you started with ASM, without experience you won't do impressive stuff.
for me the following loop is not flexible:
for i=1 to 10 step 1
whatever
next i
why can't I for example multiply the variable each time? or why can't the for() increase 2 variables? and three? and four? Why do I have to write next if I have indicated in the for that I'm going to increase C?
wouldn't be easier to put
for i=1 to 10 step 1
{
whatever
}
why do I have to write "to"? it's obious that the goal is the 10 so why write that "to"
and why can't I use multiplication or divisions or simply do various things each time?
for i=1 10 i=i+1
let's order it a bit...
for i=1;10;i=i+1
and why it has to be that number? why can't I put other conditions, why I don't use the condition as a while condition to make it more flexible?
for i=1,j=2; i<11;i=i+1,j=j-1
why should I type i=i+1 to increment my variable? Wouldn't be faster to write that I want to increment the variable? isn't faster to write variablename and ++ or --?
for i=1,j=2;i<11;i++,j--
isn't it logical and flexible?
and to make it look cleaner and define better where the for ends why not put ()?:
for(i=1,j=2;i<11;i++,j--)
what do we have? oh yes a C "for" loop.
Firstly you put what you want to do the first time you enter the "for", then you type the condition of being inside the loop and at the end you put what it has to do each time. Quite logical in my opinion. With Basic if your code was big and you had two nested "for"s you would have to check that you have put next i and next j in the right positions (whyyy???) with c you don't have to worry about it and you simply put two "}"
Just learn C before complaining so much about it and saying that it's designed to keep people away of programming. Programmers read books, you know... if you want something scary try to learn ASM. Even better, try some 8086 asm instead of 68000... you will see something really scary then 