First, of course you have to know either C/C++, as they're the only languages you can currently write NDS Homebrew in (apart from Assembly, but that's really hard).
For starters, you should watch this video by PolyMars:
Then read this:
Useful resources to help you out with starting to make NDS homebrew
For starters, you should watch this video by PolyMars:
Then read this:
Useful resources to help you out with starting to make NDS homebrew