I don't think I've ever started a project that I knew how to do backward and front. Every thing I know about iOS programming comes from "oh crap, a client wants this, how do I do it?". Although, it makes every past project look worse and worse every time I start a new one.
It depends on the technology of course but pretty much as fast as most of them move, most projects are going to involve new technology and a rapid learning curve to work with it. That being said, I think I am cut from a different cloth than a lot of developers, there are a lot of technologies that I do not know and have to pick up quickly but the part that I differ on is it seems that there are a lot of developers that scramble to adapt, where I never feel the pressure of that scramble. I can't explain it, but things just kind of fall into place for me. For any of you old enough to know the reference, I am kind of a Ferris Bueller like figure, where things appear to come easy for me. This can drive people crazy at times, my wife included because it appears that things are easy for me. While I do concern myself with adapting, I just don't stress about it, as I am confident in my ability to adapt. I personally don't feel that things are easy for me, rather I feel that things align for me a lot of times and I capitalize on that momentum. I never read stories from developers that have similar experiences, so I often wonder if my experience is an anomaly.
Well, I've had a pretty similar experience so far. Although, I have to admit, I'm still 24 and less than a year into my first job. However, I feel like I know exactly what you're talking about. It feels to people around me like I always know everything ahead of time and exactly what to do whereas I'm constantly learning and internally it feels like I really don't know what I'm doing. But I'm always confident in my ability to learn and adapt and somehow get things done on time.
About 5 months ago I took a freelancing project that was an android tablet app. I had never programmed for android before(and had just a vague idea of what that environment was like). But I took the job anyway and assured them I could get it done in a timely manner. And 5 months later, I did, and I learned the android framework in the process.
I also had a similar experience during the summer of my 3rd year in university where I worked on a project for 2.5months where the most challenging part was user interface design. It was also a tablet-based project, but this was 2008, iOS and android had just barely come out and there were no tablet OSs. I used linux + python + pyglet and wrote my own UI toolkit. Likewise, I was out of my depths most of the time as I had never done anything remotely similar but at the same time I was never stressed out and confident I could get it done over the summer, and I did.
So I guess your experience isn't anomalous or unique(though probably quite rare). And I know at least another person, a very good friend of mine, who's also had a similar experience.
Yes that is probably appropriate, and I think it comes from my world view, I never see a big problem, I see a bunch of small unknown problems, therefore everything to me is a small issue, nothing to freak out about. I quickly figure out what are the deadly problems and fix those first, they are always small quickly fixed issues, and from their I work to find the issues that lead to the deadly problems, I think this systematic processes may appear to others that the pieces fall into place, but they really could have been arranged in a multitude of orders and the outcome would have been the same. I am very good at putting blinders on when they are needed and to others this may appear that I am carefree, rather, I do care, just not at the moment that I am fixing what I feel is the most important issue to overcome or avoid a crisis.
Google it 'til you make it.