I'm merely stating my personal experience here but...
I went from HTML > PHP > C++ and then got interested in robotics.
I currently use an Arduino (development/programmer board) for my robotics, which has it's own programming language known as, (by memory), Processing. It's similar to C/C++/C#.
There are many other options out there in regards to dev/programmer boards and languages, though
Secondly when programming a robot if a mistake is made can the code be changed or will the robot be ruined?
It can be changed, yes
Mistakes are bound to happen, but don't be afraid to test if code works correctly, it's a great way to learn
I suppose it may
be possible to damage mechanical parts if you try to make something move further than it is able to, but you'll quickly notice it and be able to shut it down before any (real) damage occurs, in most cases. (in addition to what knossos has said about tables and walls
Now, if you get interested in programing/burning bootloaders to microcontrollers, you can risk making the microcontroller no longer able to function**.
In such a case, you just need to buy a new microcontroller chip, it won't wreck all the robot's parts etc.
Hopefully this has helped some.
If you need/would like more info, feel free to ask
**There -are- some ways to fix it if it happens, but sometimes the MC's completely bricked.