What Programming language should I start learning first?

I want to create a computer program that will translate from English to Spanish and vice versa. So someone could type in a word, phrase, or paragraph and translate from one language to another. What programming language would I use to write up the code and then implement this program?

I want to learn to start programming but I do not know what language to learn first. I have many ideas for programs. I want to create programs that have a server version and client version. I just do not know where to start! And I definitely want to have GUI is my programs.

So, here is your challenge:

  • Tell me what programming language is best to learn first and why?
  • Tell me what resources (Books, Software, Etc.) that would best help me learn the programming language.

I'm an Electrical Engineering student that want's improve my basic familiarity with C++ and Java into average skills or even better. I'm not going into programming but I want to learn more about programming simple programs or make my own budgeting programs or something.

I'd go with C or C++. The reason is because they have all the pointer stuff going on, which is not available in Java. Once you figured out how this works and have some experience there, migrating to other languages should not be a big problem.

OSDev.org � View topic - Advice for novice programmers thread

If you just want to do programming and not some low level stuff (device drivers, etc), then consider using a high level language like Python or Ruby. These languages let you concentrate on getting your stuff going, without having to learn low level stuff like pointers (c/c++) and such. Plus, they provide good to use data structures such as hashes, dictionaries and arrays (and abundance of libraries) which you can make use of in your programming task which you can find them lacking or hard to use in other languages. For Python, go to doc.python.org, For Ruby go to Programming Ruby: The Pragmatic Programmer's Guide

A rudimentary approach to convert your word from one language to another is to use a lookup table (that is, your hashes/dictionary). here's a demo in Ruby

>> words={ "ruby"=>"rub�", "is"=>"es", "great"=>"gran" } #english to spanish
>> words["great"]
=> "gran"

(of course, actual spanish may not be spoken like that.). you can further expand this list by creating a list of such mappings in a database or a flat file. And this is written in like less than a minute. Try doing that with C/C++ (or even Java)

In my opinion, you are asking the wrong question.

The questions you should be asking are:

  • What programming languages are currently used in machine language translations?
  • What programming libraries are available in these languages?
  • Who uses these languages and why? Google Translate?

Asking "what language should I use" is the wrong approach. You should find out how the experts in the field of machine language translation approach the problem and start from there.

is it called "machine language translations" ? sounds to me like translating assembly language :slight_smile: (because of the words "machine language" )

It is machine "language translation"... not "machine language" translation. It is also called "machine translation (MT)" but if the adjective "language" is not used, then the term MT is too vague; hence it is often referred to, by experts in the field, as Machine Language Translation, where the adjective is Language which describes Translation, and Machines doing the work.

Google is friendly :smiley:

:slight_smile:

Great use of punctuations & ofcourse language...

:slight_smile:

Speaking of google and learning programming languages, I have always benefited from the following source:
Google Code Search