The other answers suggest you've made a mistake at some point. I tend to disagree: the situation was lost when Steve thought he could teach you to become a senior programmer and then couldn't keep his temper as he found out he couldn't do it.
Being a good programmer
...doesn't automatically mean you have good teaching skills.
I'm a programmer myself. I teach in a hackerspace in my spare time and on a few days a year in a school. Teaching needsrequires time and patience. Also you need a whole different skill-set. Just being able to program won't cut it. If your student is to make big steps, you need to prepare your lessons.
Steve tried to recruit because he needs more people on his team to help doingdo his job. So when he started to teach you instead, it meant he would have even less time to do his 'real' job.
He must have found out that teaching someone else isn't as easy as he hoped and, as his frustration grew, he began to looselose his temper.
Don't take it totoo hard on yourself
It probably isn't even anyone's fault. Take a deep breath. Look around for a new job. Take care it is the kind job you always wanted to do. Take care that your future colleagues are the kind of people you want to work with.