What programming languages to learn/start out with?

What programming languages to start with?

It all depends on what your aims and needs are and it depends on your method of delivery.

Is it a browser-based app? C# is a beautiful programming language and Microsoft's web platform has evolved considerably over the years. It's also great for desktop apps. There's virtually nothing you can't do with C#. And it performs well.

Want to write mobile apps? You might want to re-think Java, unless you want to learn Objective-C (iPhone, iPad) which, from what I've seen is an awful beyotch. Android is basically J2ME.

Another option is PHP. Ubiquitous and user-friendly, albeit slow or antiquated.

Try Ruby -- it has a bright future, and it's elegant. Less IS more.

I would avoid C and C++. Make it easy on yourself so you can make cool things and enjoy the learning process. If you really want to mess around with pointers and memory management, start with C#.

Ultimately, what's more important than the language you choose is that you learn one language *well*. Learn one language inside and out, so that when you need to pick up another language, it will be trivial for you. The principles are all the same. An object is an object, a method is a method, etc.

Also: don't waste your time reading books end-to-end. Too many books are written by authors trying to make a name. Even worse, they're in bed with the platform vendors *cough* Microsoft.

Build something cool. Charter a pet project and learn things as needed to build what you want. The only way to really learn is by doing lots of it.

Talk to others that know more than you and are nice ==> The ALT.NET Community Don't try to learn in a vacuum.

Have fun!

Not to dis you personally bro but I have to rage here (and I know a few of you saw this coming).

<rage>
I have never had, and will never have any respect for C# or .NET or similar developers. Early on Microsoft saw that they could not easily make money on c/c++ or PHP. What is the solution? Create a bunch of bullshit languages that they could sell the shit out of for no other reason than to profit from them. I'm not saying they shouldn't but it's plenty clear that the only real reason .NET and various Microsoft languages where created was to do none other than compete with the up and coming PHP. I remember the first time I looked in a C# book and said "WTF is this shit?". I also remember when .NET sucked so fucking hard (roughly 8-10 years ago or so) I could puke. A lot has changed since then, C# has become more powerful and faster but I honestly think you're better off with Java if you're going that route.

Down with Microsoft, and down with their shit-tastic languages. Microsoft has proven they are against the advancement of technology and standards, stay away and you'll be rewarded in the long run.
</rage>
 


Python>C>Java>HTML+Javascript+CSS+php+.NET

This makes no sense at all. If you where to start programming the most logical choices, assuming you wanted to actually learn things about how computer programs work would be something like:

Assembly->C and/or C++->Java->Some high level language like Python/PHP/Ruby. HTML doesn't really fit in because it hardly could be considered a programming language. CSS is another beast all together thanks to Microsoft, but best suites itself while learning HTML. Javascript is naturally a last choice after all the following. .NET is simply a joke and is not needed at all.
 
<rage>
I have never had, and will never have any respect for C# or .NET or similar developers. Early on Microsoft saw that they could not easily make money on c/c++ or PHP. What is the solution? Create a bunch of bullshit languages that they could sell the shit out of for no other reason than to profit from them. I'm not saying they shouldn't but it's plenty clear that the only real reason .NET and various Microsoft languages where created was to do none other than compete with the up and coming PHP. I remember the first time I looked in a C# book and said "WTF is this shit?". I also remember when .NET sucked so fucking hard (roughly 8-10 years ago or so) I could puke. A lot has changed since then, C# has become more powerful and faster but I honestly think you're better off with Java if you're going that route.

Down with Microsoft, and down with their shit-tastic languages. Microsoft has proven they are against the advancement of technology and standards, stay away and you'll be rewarded in the long run.
</rage>[/QUOTE]


And no offense to you, but I've never understood this type of zealotry, or "rage" if you want to call it that.

I couldn't give a shit what platform somebody chooses. Doesn't mean I don't have a preference. But, I don't go around "dissing" platforms and people. For what...?

If somebody can create a sound design, write code effectively, and deliver working, maintainable software, that person gets my respect.

Technical competence is platform-independent.
 
"Technical competence is platform-independent. " Cool. And boom goes the dynamite.

He is right. For you (Rage9) to care so much about a company or computer language to go off is unhealthy. I am probably older than anybody in this thread. I've touched more hardware and more languages than I can remember. And whenever I start a new project I still have to think about what would be best for the job.

For the original poster: Please remember that you need to learn good programming skills and good structure that will work no matter what language you choose. I bounce between PHP and .NET and both are good for a purpose. I love ASP.NET with C# because it comes with so many libraries of functions built for you. You can also create your own reusable libraries pretty easy. For PHP I've been CogeIgniter to give my projects consistency and structure.

In the end there is no best. They are all just hammers and they all pound nails in.
 
You need to learn about paradigms, their pros and cons and how to code in them properly whatever the language is. Designing an application using an object oriented language is not the same as designing one in a prototypical language, but both can be extremely useful.

Just for the love of christ, don't start off by writing short spaghetti PHP pages that "just work". If you do that, you'll be building your skill set on a wobbly foundation and as you try to do more complex things you'll have no idea what you're doing. If you understand why sometimes it's appropriate to hack together a few lines in PHP to get something done, then you can be confident.
 
I recommend you to learn PHP + MySQL, it's really useful, you can also learn some Action Script 3.0 it's not very difficult to learn and you can make great applications with it. :)