Learn , learn and learn again !
And when you think you know all that you need look for something new ( because all the time is something new to learn in this domain )
I agree with you all 100% !
But you have to put "youre hand" there too !
You can learn , learn and learn but you also learn many things from youre mistakes

Also you need to like what you are doing ... because if you don`t like what you are doing and you make it just to make $ out of it you will not be a great designer/programmer !
The rest is up

! Or allmost thate essential

!