I would say I've been using MATLAB consistently for about 11 years, since my first year in graduate school. In undergraduate, I may have used it a few times for a homework set. I say "I may have" because I don't quite remember anything about it except that I had an installation disk.
My experience in programming prior to MATLAB was some BASIC from childhood and a little bit of Pascal from a couple of courses in undergraduate. My graduate advisor was a heavy MATLAB user, and my initial experience with it involved deciphering his MATLAB code for doing some plots. At the same time, I was taking a controls course which required me to learn Simulink.
I remember struggling a lot for the first few months. I didn't hate it because I kind of liked programming. But I was definitely struggling. Having done some stuff in Maple before, understanding how to plot a function in MATLAB was very difficult. It took a little while for me to grasp the idea that I have to define the vector before I can plot it.
x = 0:0.1:10; <-- this was hard to grasp at first
Once I overcame that initial hurdle, I started to really enjoy it. I began experimenting with MATLAB code and reading the documentation and tutorials. But I didn’t really “get” the power of MATLAB until my advisor showed me this code for a simple peak-finding algorithm (of course there are more sophisticated, more robust methods):
t = 0:0.01:10;
x = sin(2*t) - 3*cos(3.8*t);
dx = diff(x);
pkIDX = (dx(1:end-1) >= 0) & (dx(2:end) < 0);
pkIDX = [dx(1)<0, pkIDX, dx(end)>=0];
plot(t, x, t(pkIDX), x(pkIDX), 'ro');
This was such an eye-opener. The fact that I could find peaks without having to loop through the vector really made me appreciate the power of MATLAB. Read a post about it here.
After a few months into using MATLAB, I discovered CSSM (MATLAB newsgroup). I started posting questions left and right, and I learned a lot from the forum. Soon after, I started to answer some questions, and reading CSSM became my daily ritual.
About a year after the start, I saw one of my lab mates creating a graphical application in MATLAB. I was completely blown away by what I was seeing, and I started to play around with GUIDE and then some programmatic GUI building. That’s how my passion for GUIs came about. Because of my research background (biomechanics), I had a need for creating animations of my biomechanics experiments. That allowed me to learn everything that I currently know about handle graphics. Having no formal training in programming, I found MATLAB to be a great tool for making me feel like a programmer. I love that a lot! With the new and improved capabilities in object oriented programming in MATLAB, I’m starting to do a lot more OO programming lately.
I think the key to becoming proficient in MATLAB is to be curious and to try things out. The documentation is rich with examples, so read up on it and experiment. And use resources like MATLAB Answers and CSSM to keep sharpening your MATLAB skills.