It is quite a career change, but I think that is expected that most people will go through a couple of them in their careers. Any programming experience will help you greatly.
To answer your specific questions, at least the ones I am knowledgeable about..
1 & 2. I think the difference between a junior and intermediate and guru is mainly length of time working in the industry developing these type of applications. Flex is still new for the most part. You should be familiar with ActionScript3. You should be familiar with XML and other web standards. A lot of the Flex programmers I know deal with all aspects of the development including the database, middleware (CF, .NET, Java, Ruby, etc..), so familiarity with that will help you. my impulse is to tell you to learn C# and .NET given your C expeience, however I honestly don't know how much C / Assembler experience will apply to C#. Knowing about relational databases won't hurt you either. There are jobs where you just do Flex and someone else builds the services / database for you, but knowing the backend piece will help you.
3. Not at all! Most people doing Flex have very little Flash experience. They come from web developer backgrounds dealing with middleware and database programming, not from a Flash / design backgrond.
4. Adobe has formal courses. There is also the learn flex in a week videos. If you like podcasts, listen to The Flex Show which has both audio interviews and screencasts.
5.Working on Open source projects will help you more than hurt you. You'll get contacts, and experience. It is easier to get the job if you can offer samples of your work.
6-7. I can't help withi nterview or salary questions, sorry. I think that is pretty company specific and region plays into it too.
8. There is a huge demand for Flex Developers. It is a growing technology. I expect the demand to keep up for a while.
I hope some of this is useful.
I totally agree on every point stated by Jeffry. I would only like to add a few more details ( from my own experience ).
1 & 2. Beside the stuff that Jeffry already mentioned, you should definitely learn OOP and Design Patterns ( since ActionScript 3.0 is an OOP language, you'll definitely have to be good at OOP and in design patterns ).
3. History usually counts but if you have experience in other programming languages then I think that your experience in other programming languages will count a bit more than any possible Flash experience. Why? Because Flash is usually used in small to medium projects and usually web sites. Flex is more development oriented and is used for more serious software applications and enterprise projects. Comming from a Flash background sometimes is a disadvantage because it makes people think "ohh, he can build web sites and that's all" ( it's a commong misconception ).
4. If you have a good portfolio than education and formal classes don't count too much. If you don't have a good portfolio then an ACE examen/diploma in Flex should definitely be of some help.
6. I already mentioned that you should learn OOP and design patterns because ActionScript 3.0 is an OOP language ( totally different from C ). You should expect OOP related questions but most likely, design patterns related questions ( like: what's the purpose of pattern X, when should we use design pattern, when not, and so on ), even some technical questions related to ActionScript 3.0 so that the employer can see that you have a good understanding of the language's capabilities ( and how it works ).
With best regards,
- Can you forward this email to people who do technical interviews / hire flex developers? This will help me broaden my view before I make a decision.
Try signing up on LinkedIn.com to connect to relevant people.. ;-)
If you switch from C to Flex, is that considered a career change? Wouldn't that be considered a change in emphasis? I understand C and Assembly are low-level languages, but they are indeed computer languages. I would think a career change would be perhaps, if you are turning wrenches in a boiler room.
I think it is all a matter of perspective. From C to Flex is not so much a big deal [I assume].
But, from Embedded Systems / Device Programming to Rich Internet Applications is a big switch. Not as big as wrench turning to Programming, but one nonetheless.
C is quite different from OOP languages ( not only the syntax, but the way an application is structured, planned and so on ) and for some, it actually seems to be a huge deal. I remember seeing some of my friends struggling with Flash because they simply could not understand how the timeline works ( and they were not begginers, each of them having more than 6-7 years of C and/or C++ experience behind them ). I think it's a matter of person, some people can adapt really fast, others can't mainly because they are not sacrifice enough time and put enough effort into learning a new language the way it should be learned.
In the end, everything comes down to hard work and determination ( and "an open mind" ). Cheers.
Given the nature of his current activities, and the nature of programming Flex applications, I'd call it a career change, or at least a career adjustment.
You have been working on c for so many years and you must be very peficient in it, but it will take you some more time to be a senior flex developer, is that a deal?