Click here to Skip to main content
15,879,095 members
Please Sign up or sign in to vote.
2.00/5 (2 votes)
See more:
Please i need help.
I dont know which language to learn first.
Some says,javascript,C,python,C++,C#

please which one is the best language for a newbie in programming world..
And which book the you recommand i should buy and read.

Thanks for you help
Posted
Comments
Sergey Alexandrovich Kryukov 1-Oct-12 18:38pm    
Not only this is a difficult question, but no answer can be perfect. I cannot be even sure that you need to learn any of them. :-)
--SA

Practically, I think this is the answer which could serve your well: That would be too dangerous to rely upon the answer by any stranger in the world, no matter how good is the answer.

Do I even have to explain why? We don't know what are you and what you want to do. Anyway, I could point out that there are some languages which no one should ever use, but… from your list, no one could be considered that bad. Even stupid and archaic C is good for something; take, for example, some embedded systems. What you want to do is also important. For example, if you want to do any Web development at all, you cannot afford going about it without JavaScript. Yes, this language is pretty hard to understand (despite of apparently simple look of many applications) and hard to debug, but it's one of the standards having no alternatives for client-side scripting, so you will need to know it, plus a number of other languages.

This is the key: do you want to become a decent reputed developer? If so, forget about the choice of languages: you will need to know a decent set of them. You will only be able to choose some languages of your main focus, but you won't be able to afford being not familiar with a number of others. Also, try to focus on programming technologies somewhat abstracted from the languages; try to see the common aspects rather then differences. You cannot learn everything at all, that why you will need to focus on the fundamentals first, and the detail will be much easier to learn when you need them. But the knowledge of the fundamentals should be very deep.

—SA
 
Share this answer
 
v2
Comments
pasztorpisti 1-Oct-12 19:39pm    
+5 For the "do you want to become a decent reputed developer?" question. You should have detailed that a bit. Becoming a programmer is tremendous work that can be done only if doing it is joyful for the individual.
Sergey Alexandrovich Kryukov 1-Oct-12 19:52pm    
Thank you very much.

And your suggested detail could make a decent answer by itself, especially if you could detail your detail a bit more:

...and if such joy is the case, the problem of the language choice will disappear by itself: a developer will readily absorb all languages withing her/his reach! :-)

--SA
Sergey Alexandrovich Kryukov 1-Oct-12 20:01pm    
...but, as a matter of fact, this is something one could read between lines of your own answer. :-)
--SA
pasztorpisti 2-Oct-12 4:44am    
Sure, to some extent I emphasized the importance of his interest in programming.
Sergey Alexandrovich Kryukov 2-Oct-12 10:49am    
This is the key component, if not the most important.
--SA
Have a look at C++ Builder[^]

Personally I think it's a good idea to learn a language that allows you to get "close" to the hardware. In a way it could be argued that assembly is a good first language, except that you would proably find the exercise rather frustrating.

C++ Builder comes with a set of libraries, and a visual user interface builder, that is rather gratifying to work with - that does not require you to learn everything at once.

Best regards
Espen Harlinn
 
Share this answer
 
Comments
pasztorpisti 1-Oct-12 19:44pm    
C++Builder? :thumbsup: +5 I'm a big fan of tools like Delphi/C++ Builder for certain kind of tasks. I think the power of these tools is highly overlooked and underappreciated by many.
Sergey Alexandrovich Kryukov 1-Oct-12 19:57pm    
I finally voted 5, but... please see also my comment below.
--SA
Sergey Alexandrovich Kryukov 1-Oct-12 19:56pm    
Well, isn't it somewhat obsolete? Isn't a Visual Studio a better choice these days? And, after all, this isn't about a choice of a language. I voted 5 though as I can understand your enthusiasm about it...

(But by the way, why not Delphi then? As the language, it is one of the most academic, clear, crystal-clear, simple and good for learning of itself as well as computer science and good programming practice. That would make is a great choice for the first one.)
--SA
pasztorpisti 2-Oct-12 4:40am    
I myself chose Delphi as a development platform for commercial stuff mostly because I was unwilling to drop its fast compile times (much better iterations). I also like its simplicity and the way it hides low level stuff/pointers - in my delphi projects (database frontends) I never needed those. The problem is that compile speed between these two tools matters if we speak of RAPID development tools. Still the ability to use both the components of delphi and rich C/C++ libraries of the world is a power. C++Builder isn't obsolete, its still in development. Some of my hobby projects were built in C++Builder. I just don't use it these days because its component set wouldn't be much help in my current hobby projects or at work. If rapid gui development/database support doesn't help you much then its definitely better to go with VisualC++ as it is the defacto standard, most supported, and (in my opinion) the best/fastest optimizing compiler on windows.
Espen Harlinn 2-Oct-12 6:45am    
There is a huge difference between someone who is able to think in terms of what actually goes on inside a computer, and one who never has related to how things actually work.

I'm pretty sure your own development style is heavily influenced by your prior knowledge of Delphi, C/C++ and assembly, even when you work in languages such as c#, java, python or javascript.

In this case I chose C++ builder over Delphi because the syntax will make it relatively easy to pick up languages such as C#, java and javascript - apart from that, Delphi would also be an excellent choice :)
I think the more languages you know the more you see from the big picture. Its easier to program in higher level languages like C# but some problems can be solved only with lower level ones like C. Of course there are a big set of problems as well where a higher level languages offers 1000 times better solutions than a lower level one. Both starting with a low level language (like asm/C) and with a high level one (C#/java) have their own advantages.

If you are more interested in bit twiddling, embedded systems, operating system internals/drivers then start with C, assembly, maybe later C++. Warning!!! If you are not doing this for fun it will be hell for you. Really. But if you like it then its heaven itself. :-) Lets make a try!

If you want to learn higher level stuff like enterprise software development and related frameworks, databases, object oriented design, then start with C# or java. In my opinion java is a much simpler language than C# and is much easier to learn but its better to know both of them. If you are just starting to learn object oriented programming then definitely go with C# or java as these detect your early mistakes quite well unlike C++ that just throws strange crashes in front of you for example in case of an invalid cast (at random points in your code...).

In my opinion if someone has the time to learn the lower level stuff (or even better: learns it just for fun as ahobby) then progressing up towards higher level languages is a breeze, but the same isn't true for the reverse order. Some higher-level-only programmers tend to be unable and/or unwilling to proceed towards lower levels.

There are some pretty useless languages but those you listed are very popular and shine in some areas/scenarios. List a few areas of development that you think you would enjoy and then we can help more on which language fits that area the most. What are you interested in? ("Everything" is not a good answer in this case... :-)) Of course sooner or later you should learn most of these langs...
 
Share this answer
 
Comments
Sergey Alexandrovich Kryukov 1-Oct-12 19:58pm    
It's my pleasure to read your considerations manifesting mature experience and wisdom. My 5, of course.
--SA
pasztorpisti 2-Oct-12 4:16am    
Thank you very much!
ridoy 2-Oct-12 1:39am    
excellent..+5
pasztorpisti 2-Oct-12 4:17am    
Thanks!
Espen Harlinn 2-Oct-12 6:48am    
Good points :-D
Every programming language (but COBOL) will do the job.
I would choose (for you) a mainstream one (e.g. Java or C#).
However, one of the best book on a programming language I've ever read is Iesuralimschy's "Programming in Lua".
 
Share this answer
 
Comments
Sergey Alexandrovich Kryukov 19-Nov-12 18:49pm    
I would say, but COBOL, Basic, and a lot more...
Learning Lua is one of good ideas...
5ed.
--SA
CPallini 20-Nov-12 3:50am    
Thank you.
every one have different point of view for this question
suppose comparing c# & vb, vb is easy for me

first you should decide on which technology you want to work.
language doesn't matter so much

like real-world example, we can convert french, hindi etc languages to some other languages using Google or other sources, same way we can say that it is something similar in programming languages if conversion does not replying exact result then you can do finishing.

basic programming concepts should be clear like class, enums, interfaces...

as per my point of view, Try to develop a small, real-time application in your target technology. that will help you to decide, you want to continue or not with such language.
and if you will do it with different technologies & languages your decision will be more clear and may you like to work with more than one technology.

decide which application you want to develop Winapp, mobileapp, webapp etc...
and start it with language you want(or have little knowledge for start code) and it's also depend on development-environment that allow to code in desired language. e.g. .net environment supports lots of languages, iphone apps in C language, php is different language and can develop web apps using it.

in short comparison & experience will help you a lot.
:)
 
Share this answer
 
v2
That will depends on your need to programming means How you are going to use ur programming skills and also How much time you have?
and also Which course you are offering as a part of ur studies.

If you have good time,

start with Python and
go for C.

Then you will get good understanding.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900