I'm just starting out in the programming world and I know that I have a long road ahead of me..but I learn quickly. :) I want to be able to build RIAs and I've been going through Adobe's PDF files on ActionScript 3.0 and Flex. The more I learn, the more interesting it gets. My questions are these: Am I starting at the right spot? Should I be learning a different language first? Should I focus on MXML and AS, or should I start learning ROR or some other programming language? Any advice for a beginner would be greatly appreciated.
Start with whatever language will be the shortest path to creating the kinds of things you want to create. Learning a language like say C just because somebody said so is going to seem like drudgery, and may put you off programming. Build something you're excited about, and use the right tools to do it.
As you progress, do keep an eye open toward learning other languages and systems, though. In programming, your first language is very rarely your last!
Personally I would recommend C# to you. Once you learn that, you can create Windows Applications, Websites (WebForms/MVC) Games(XNA) and Silverlight applications(.NETs flash rival)
Sounds like a good deal to me.
I'm finding that starting with .NET and VS2008 is keeping me from learning concepts. Although I can code something and get it to work, I'm being kept at a distance from WHY it's working, with intellisense, etc.
As a 41 year old person who's just now getting back into programming, I may pickup something like Python.
It's akin to learning math with a calculator versus writing the problems out on paper.
My 2 cents.
What do you want to do?
Programming skill isn't really tied to one language or technology. Decide on a goal that you feel is within your limits, and then ask about the tools.
If you want to learn programming, ActionScript is not a good choice.
Start with a general purpose programming language such as C#, Java, and yes, Ruby.
Once you know the basics, think of a project that you want to build and then go from there.
When I started I learned JavaScript (truly painful back in 1996), and then I took Comp-Sci and learned (in this order) C, C++, VB6, ASP, Java, and after University .NET. Of all the frameworks I used, I enjoyed .NET the most, Java still is a close second.
As for your question, It really depends on how "deep" you want to go. I have friends who call themselves "programmers" and they write shell scripts, and I have colleagues who could write garbage collectors in their sleep, but they can't call themselves Software Engineers.
Also, Instead of focusing on a language (and there are lots out there) think about what you want to achieve. Once you've figured that out, there are many frameworks to help and provide building blocks, .NET, Java, Ruby, etc.
If you don't know what you should learn, ask yourself, what else do you want to write (besides an RIA)? There are frameworks like .NET and Java which can do both. I don't know about Ruby, because I've never used it.
There are many HOT languages out there today (and they are truly awesome), some have a higher learning curve than others, but don't be afraid to learn fundamentals. Fundamentals will help you understand WHY something works, so when it breaks, you have somewhat of an idea what to do. Pounding away at an API is painful if you don't know how to put the "blocks" together.
I hope that helps.
P.S. Silverlight is more than just a Flash rival.
I'd recommend picking up a Python tutorial. Ruby is a similar language in many ways, but my experience (and bias) shows that Python has a much gentler learning curve. If you search online, you'll find Python tutorials that are written both for and by kids!
Personally, I went from my beginnings in non-object-oriented C, Perl, and UNIX shell scripting to highly-object-oriented C# and I credit learning Python as the reason that I was able to "get" object-orientation. I started learning Python as "another scripting language" and learned object-oriented design by reading the code for some Python libraries/packages.
At the end of the day, no matter what you decide to dive into first, here's some other advice: avoid Perl and COBOL like the plagues that they are.
Start with COBOL. Then after that, no matter what language you use most, you'll just be happy it's not COBOL.
English! (I'm kidding, but I couldn't help myself)
Seriously, try Silverlight + Visual Basic.NET.
ActionScript/ecmascript is as good as any other language to pick up and will get you into the RIA world fastest. You'll suddenly know javascript too btw
It's totally NOT about what's the best language but the frameworks and support APIs you will have to learn to get anything real accomplished.
I really enjoyed going through "Practical Common Lisp" to learn Common Lisp, which supports almost any programming style you may be fond of. However, I do not think that you can really go wrong as long as you keep an open mind.
I just have to add that I would not recommend any Basic dialect.
I began my journey back in 1996, and first looked at C++ because it was a buzz-word at the time. Once I got into high school, I had a class on C++ and I loved it. Once in college, they taught the languages in this order: Java, C, C++. I picked up C# along the way, because it was really similar to java, but had a better IDE, in my opinion. Now, I do mostly web development in ASP.NET and C#, but, on occasion I do some PHP programming for my own personal blog.
You may just have to look at some coding samples, a-la lots of "Hello World" apps, and see which language makes more sense to you and your own sense of coding-style.
Good luck!