I know there's always a thread on a forum about learning a new language, whats the best for you, and what your trying to get out of your programs. So i'm just posting to see what everyone's preference is.

Be kool if you could give your thoughts, a quick description of what this lang can do, and maybe even your favorite site on the matter.

It really depends on what you're looking for. If you're into web development, then php and C#. If you're into low-level security, then assembly and C. If you're into scripting languages, python or perl. With python incorporating many of the libc functions right into the main language, python can be a powerful language.

I don't have any list of sites, unfortunately. I just learn from reading code and ideas from random searches on Google.

thats a really nice clean discriptions of some languages and what they are used for, i appreciate it man.
I'm currently reading up on Perl but i'm not exactly sure what i want my programs to do. Or what i'd like to make. I'll give a few others a look.

Here is a good starting point for Python.

http://openbookproject.net//thinkCSpy/ (How to think like a Computer Scientist: Learning with Python)

or for Perl here is a *load of free online books

http://www.perl.org/books/library.html (Perl.org Online Library)

have fun.

noone mentioned the never ending c to c++ debate so i figured id pitch in. c++ is usually my preference for ease of scalability. c++ makes coding with objects/data sets a bit more simple and orderly than with c where you have to manually keep track of any real type of abstract data with pointers and math which makes it somewhat easier to be off by a digit or byte when referencing data. C# I have found to be pretty impressive with its simplicity of integrating windows API's into your apps not to mention it makes dynamic sized datasets and variables a breeze to work with as well as making a lot of your code portable running it through .NET common language interface and using the .NET runtime engine to handle the CLI code and mem managing, makes for some slick program execution. When it comes to a favorite lang though it is always dependant on whats the functions ill use most and which lang does that best. Perl is great for strings/metadata/organizing/commandline formulas, PHP is just general good web language and javascript for lots of random web functions, shell script for managing simple tasks, C for easier and more forward access to program space, and pretty much swapped C++ for C#.

I figure I'll place this question here. I am not a programmer, except for some basic bash scripting knowledge. I am interested in starting programming by teaching myself in my spare time. I understand that what language to learn depends specifically on what you want to accomplish, but for someone (myself) who at this point has nothing in particular to code, that leaves me open to suggestion. I've read a bunch of debates on which lang is better to begin with, and I was hoping that someone might help point me in the right direction. As of right now I'm thinking Python might be the best place to start out, however, I wouldn't mind the extra work it would require to learn C/C++ first if it would lead to bigger and better things. Any recommendations?

I'm not sure if I would start with python. It has decent scalability but compared to other high level langs I think it might be on the go. If your goal is to eventually design high-end, scalable software I would say go with C# (language syntax is almost identical to C++ and some C, libraries are same except very extended) but make sure to find a good book because understanding object oriented programming aspects is pretty crucial. If you want to understand web programming than PHP/Perl/Python/Java/JS all sort of fit in there and aren't too difficult to follow in design although fairly abstract at times. IMO, go with C# so you can learn how to design structured deployable applications and programming concepts in general. If you run in to something you can't do in C# then go back to C and skip C++, easier in scalability/versability this way imo.

thanks for the advice.

I can't believe it hasn't been mentioned yet..Ruby. It's a powerful dyanamic single-inheritence object oriented language(with mixin support, look up these terms on http://www.wikipedia.org), that has a nice clean syntax,is very enjoyable to write, and can teach you a lot about good programming techniques. A unit testing module is shipped in stdlib, as well as a module that implements the Observer pattern for you(part of stdlib, too). You've got a great collection of libraries in stdlib, RSS,XML,YAML,HTTP,FTP library support(just off the top of my head)..What you can't find in stdlib, you'll most definetely find as a rubygem. Ruby package management system called 'rubygems', easily deploy your application, as well as retrieve applications/libraries with dependencies managed for you from the comfort of your shell.. You'll learn a lot about Object Oriented design, too.. from the get go. It also has Merb & Rails, two very popular MVC web frameworks for maintainable web development that makes sense.. But going past the web, and onto mobile devices, there is 'Rhomobile', a phone framework that you can use to deploy ruby-written applications on the iPhone, blackberry, windows mobile, symbian and android phone OSes.

Oh yeah, easy to use API for creating extensions in C, too ^_^

Apple have created their implementation of ruby 'macruby', built on top of Objective C, integrated with Cocoa, and shipped with OSX.

There is some other ruby implementations too, JRuby is another popular one, compiles to Java bytecode, and can be used to interact with Java classes too..

Stuff that has existed since ruby 1.0 in ruby, is only being added into PHP recentely.

Interested in having a look yet?

If you want an idea of what ruby can do, http://www.github.com , search for 'ruby' projects.
P.S : This post might be just a /little/ bit biast :P