views:

321

answers:

10

Possible Duplicate:
What is the easiest language to start with?

Hi, I am trying to change my career to a programmer. I found interest in programming, and also quicker to learn. my confusion started when I have decide which language should I be with? should it be the languages and scripts from MS stable or should it be Java?

+4  A: 

If you have enough discipline to learn C sufficiently it will serve you well for learning higher level languages.

DShook
I Agree, C isn't easy to learn, but a solid foundation for higher level languages. I came from the other direction (PHP, then Java) and found it very hard to adapt to C as I got spoiled by the comfort of newer, higher level languages.
Michael Barth
A: 

C++ from my side. Java can be a little complicated to get on initially due to its compulsory class declaration and lack of easy options of getting input from the user.

Perhaps Python will also give you a good start with your pursuit.

OrangeRind
And C++ is simpler? You are cruel... ;-p
Marc Gravell
I think C++ is a good way to introduce procedural and OOP both.What made you think it is not simpler?i thought java was more tacky, too much code for getting just an input was the most painful thing.I agree that advanced programming can become a pain in the neck with C++ but isn't it fairly decent for day-to-day programming purposes?
OrangeRind
@Marc: It's an unwritten SO rule that every time someone asks for a language to begin, the most popular answers are C and C++. I suspect that people are building a wall against would-be future competitors :)
Daniel Daranas
A: 

I came across an app a while ago called 'Alice' which is a very baic introduction to programming concepts and methodologies. I reckon anybody who has absolutely no idea about programming should check it out.

As for a language, I am leaning towards PHP, but I feel a lot of new programmers get too spoiled by PHP and are then unwilling to learn others due to their seaminly over complex nature. You can't go wrong with learning a mature language like Java, its very rewarding, lots of resources available and a lot of other languages 'borrow' concepts to make switching later on, easier.

Hope that helps.

Christian
are you talking about www.alice.org
Thats it. Had a play with it, its a very basic intro to oo concepts. I am super curious about why I got voted down with my answer too.... I'd think if somebody was going to vote somebody else down, they'd explain why. Oh well, Guess I'll never learn. :)
Christian
+4  A: 

For learning programming, I would go the Python route. Using the basics of the language is quite easy and reminiscent of the glory days of BASIC before it turned into the massive behemoth that it is nowadays.

Python is, in my opinion, the best language for learning and, once the concepts of programming are known, you can apply them to most languages.

paxdiablo
+1  A: 

If you actually want to understand how computing works, read SICP. It uses a language called Scheme, which won't get you a job though, but learning languages is not the hard part anyway.

edit:

If you just want to get doing web applications quickly, learn PHP. But consider studying the theoretical side of things at a later time anyway.

abababa22
thanks for the link, but frankly speaking, I couldn't understand anything. do I need this to do web programming good?
Depends on what you want to do. For simple stuff, just learn PHP and get hacking. More complicated things you want to do, more knowledge you will need. Bookmark it, and return to it if/when you're feeling more theoretical.
abababa22
+1 for SICP, -1 for PHP. ;)
Svante
@Svante, well if the guy wants to code teh interwebs right now... ;)
abababa22
A: 

You haven't specified how much time you will dedicate to your learning. For an option which is not express but looks very useful to me, I'd do the following:

  1. Read Touch of Class by Bertrand Meyer. This book hasn't been released yet (in theory it will be on July 1st), but I downloaded the beta version when it was available (not now) and it looked like a somewhat easier alternative to his fundamental book Object Oriented Software Construction, 2nd Edition. This will introduce you to OO programming and the Eiffel language, one which I find very useful for learning to build high quality software - no matter what language you later program in.

  2. Choose either Java or C# and apply your recently acquired design knowledge to it. I can't compare really since I've only gone the latter route. It's good from the market point of view (there are jobs in C#) but I really can't compare it with other options. Anyway, I think you'll get a broader view by comparing the different answers.

Daniel Daranas
I am willing to spend 3-months full time to start and try to get into a job. but my mentor is suggesting to spend a 6 month time into it. I am slightly inclined to microsoft at this point becuase I have the mentor who can help
@AbcBlr: Choosing between traditional and web development is of course important, too. From my limited experience I feel most confortable with traditional development. If you're looking for a traditional app scenario, C# is a very good option. Again, I would give a go to Meyer's book to learn solid concepts first. Good luck!
Daniel Daranas
is there any way I can get the beta book?
Not that I can think of.
Daniel Daranas
+1  A: 

As said Java is a bit complex to start with but if you have the stamina to work it out it's worth it. Starting with C (ansi C) however.. don't do it. Either go for Java or C++, or a script language (python, php etc). Add a book on object oriented programming and you should be well on your way.

The Fairy
A: 

G'day,

Have a look at the Prag Prog book "Learn to Program" (sanitised Amazon link) which uses Ruby as its language. As well as programming, you get to learn the basics of OOP (Object Oriented Programming) later on in the book.

Good luck.

HTH

cheers,

Rob Wells
is this(Ruby) one more programming language? is it for web programing? I haven't heard about it. pardon me if I am ignorant. should i consider this as the 3 option other than MS based and java based?
Yes it is http://en.wikipedia.org/wiki/Ruby_%28programming_language%29 but you have many other options, see http://en.wikipedia.org/wiki/Alphabetical_list_of_programming_languages (Note that Wikipedia can often answer your basic questions faster than humans.)
Daniel Daranas
thanks for the link. looks quite exhaustive.
@AbcBir, it's a very popular dynamic language. When people talk about Rails being used for web sites, that framework is completely written in Ruby. Ruby on Rails is its full name.
Rob Wells
+1  A: 

You didn't specify what will be the domain you'll be working on. Will it be web design? Desktop applications? Pointy-haired boss?

If you're interested in programming per ansamble, maybe you should focus on a general purpose language, than can land you a job. I would suggest going with Java or C# if you want to learn a statically typed language, and Python , Ruby or Groovy if you want to go with a dynamically typed language.

For web development I would suggest you learn a dynamically typed language, all of the languages enumerated above have great web frameworks available.

Geo
web development is the only thing I am thinking off. is it easy to learn application programming. no great programming knowledge I have at this point.
what is statically typed language and dynamically typed language?
@AbcBlr: "is it easy to learn application programming." Is that a question with a missing '?' or a (badly written) statement?
Daniel Daranas
sorry missing "?"
@AbcBlr: Ah, ok. Then I'd say, not particularly :)
Daniel Daranas
A: 

What type of programming are you interested in? Websites will require different languages then desktop and embedded systems will be yet another different set. I would look at the various "express" editions from Microsoft. They cover C++, C#, and VB very well. JAVA is also a good language to learn. It a free download as is the eclipse development environment. Once you've decided on a language and development environment there are lots of learning resources on the web.

I also would not rule out taking a programming course at a local community college. Sometimes having a instructor assigning homework and giving tests is still the best way to learn. Many of us including myself spend a lot of money on various books about programming. While some people don't like them, the "head first" series covers many programming topics. "Head First Java" is a good beginners introduction to JAVA.

Jim C
yes seriously I am considering joining a local college to learn a language.