views:

479

answers:

18

Hi.

I'm a newbie programmer and I started to learn Java, but I have doubts. I want to study architecture and in addition programming web sites, web apps and some applications.

Which one is the better choice for me between Java and C++\Obj-C(for applications) and JavaScript (for web development)?

Thnx.

A: 

One thing I like to clarify is that with Java only, you can't survive in the market's demands. You've to learn the associated technologies to retain yourself as a developer.

Coming to the point, I suggest you to learn Java (For applications - Swing, Event Handling) and JavaScript (just not enough), but as a beginner you can start just from this. There are lot of technologies around to meet the demands of various needs. Just start learning technologies with good understanding leads to good opportunities...

All the best.

venJava
+3  A: 

C++ and Objective-C aren’t particularly good for writing web apps, as there aren’t (AFAIK) a lot of popular web frameworks for them.

So you might want to go with Java to start with, because you can use it for desktop and web apps. (Unless you’re planning to write desktop apps for Apple’s OS X or iOS, in which case you’ll need to learn Objective-C.)

If you want to do any client-side programming for websites (i.e. write code that runs in the browser and manipulates HTML pages), you’ll need to learn JavaScript. Despite the name, it isn’t particularly similar to Java.

As a newbie programmer though, the most important thing is to start making software, in whatever language is to hand. Principles are true in any language, and are hard to learn. Practices can be looked up.

Paul D. Waite
+5  A: 

If you want to do this for a living for the rest of your life you will learn many, many languages and supportive technologies. Keep your mind open. Learn new stuff.

In the current situation, find the project you find the most fun to do, and learn the languages needed for that. Repeat for the next project.

Thorbjørn Ravn Andersen
+3  A: 

I think it'd be best to focus on the language you'll probably end up using in the future. If you don't know yet which language that would be, Java might be the best place to start (it's very popular).

As a programmer you'll be learning at least several languages anyway. Once you know one language, the next one will be much easier to grasp.

One important thing to keep in mind is that programming skill doesn't equal "knowing a language". Think of a language and its concepts as "tools" which are given to you. Architecture, design, use of patterns and in general your code construction process is what you should focus on. These concepts are generally independent of the language and it's best to research on them as soon as you learn the syntax of your chosen language.

If you're a newbie, it's best to learn the basics before discussing specifics like choice of language or platform. Sometimes these choices are forced on you, anyway.

YRH
+28  A: 

As a newbie programmer, should I learn Java, C++, Objective-C or JavaScript?

Yes.

John
That was going to be my answer!
wheaties
I made the answer as a serious one, but I was a little worried it might get a load of minuses for being too flippant.
John
+13  A: 

Some rough, over-generalized hints:

  • Objective-C is a one trick pony: You can use it to write apps for Apple gadgets, and essentially nowhere else. There's certainly careers in Apple gadget programming, but it's a specialty.

  • C++ is ugly. When I had the opportunity to learn C++, I avoided it. C++ is the OO language with the potential for the highest performance (think game and number crunching apps) but there are pain points in it that don't make it the language I'd choose to be productive in on the Web.

  • Java is the language for Enterprise apps, including Web apps. There's a whole universe of code and applications built around Java, with the alternative being C# and all that .NET stuff, which is Microsoft-bound.

  • JavaScript is the language in which you program all the local browser interaction. For most methods of Web programming, JavaScript comes into play at some point, so you almost have no choice but to learn it; but it's an "on the side" language. You need it but you don't do most of your stuff in it. In some circumstances, such as if using a framework like GWT, you may be able to avoid JavaScript, as I have so far.

  • Java and C# are the "nobody ever got fired for..." languages in the business world. But there are a handful of languages in which Web programming is more fun and possibly more productive. The ones that come to mind are Python and Ruby.

Carl Smotricz
If you think Python and Ruby are more fun than Java, I suggest learning JavaScript instead of avoiding it or treating it as a side issue. If you can omit IE6 from your supported browser list, the DOM/CSS incompatibilities and annoyances are far fewer, and are taken care of by the various frameworks.JavaScript has the benefit of multiple large companies (Microsoft, Adobe, Apple, Google) putting lots of resources into improving its implementations.
Steven Huwig
@Steven: I tried to clearly distinguish my own preferences from generally applicable information. Javascript is used, not by choice but by force of its monopoly in the browser, to fiddle with CSS and the DOM in the browser, and to fake interactive application behavior on top of HTTP. There are very few "real" applications where the business logic is written in Javascript, so one needs to learn one of the "mainstream" programming languages.
Carl Smotricz
I’m with Carl on his assessment of tasks you can use JavaScript for today. It lives in the browser. There’s interesting developments elsewhere with V8 and node.js, but for the moment, it’s for client-side web stuff, where (currently) the opportunities for building entire apps are limited.
Paul D. Waite
Objective-C is also the major language for OSX applications, its not only for the gadgets. *"C++ is ugly"* is just plain subjective.
Georg Fritzsche
@Georg: Oops, I had truly forgotten about OS X. Now one could debate whether an iMac is or isn't an Apple gadget :) As for C++ being ugly, you're right, that's a subjective call. I do contend that languages have evolved and improved since the heyday of C++, though.
Carl Smotricz
A: 

You can start out with java. the important thing is that you learn objective programing. Because the case is if you learn it in java, you can do it in C#, PHP and other languages as well!

I started out with java, and today I'm doing work in C#, PHP and C++. Other languages I've been working with is html, css, asp.net, python, perl++.

So learn one language and you learn them all :D Hehe, it's not that easy, but with more experience you see how concepts pretty much is done the same way in other languages. The difference, I think, is how good you are in one language. Being a master C# coder you will instantly know your way around in C++ and Java for instance.

Choose one language and study the specifics, it's what makes a good programmer.

Jason94
A: 

I would also recommend Java, because C++ can be tricky sometimes and as an architect, you probably won't need that knowledge.

However, the hard part will be to learn programming itself. After learning one language you can easily switch to a similar one.

Zoltan Balazs
A: 

start with java, best for fresh programers...

easy to learn, any example you need just google it, eclipse..... its just easy and important to learn

seismael
A: 

IMHO you should look on the market, find a powerful software company and try to get hired by them. after that you'll catch programming on flight...

also it's not important to know a programming language, this ca be learned at any time, the most important is to know alghorithmics (sorting,etc), programming concepts, software engineering, etc.

best regards,

Radu Barbu
Your first paragraph does not make sense, because without having learnt a needed programming language you will most likely not get a job in a powerful software company.A lot of software companies let you program an example before employing. If you only know algorithms or concepts you won't master this first exercise.
mklhmnn
most of the important software companies put accent on the algorithms, and the interview is with a paper in front of you...if you know how to resolve a problem on a paper, than you can quickly learn data types, cycles, etc...but you make a point here...in my opinion, if i know how to resolve an algorithm on a paper, than when i'm going to an interview, i can read several books regarding the language used by that company so i have an idea on the technical interview....best regards,
Radu Barbu
In my experience the example program has to be done before having an interview. Interviews cost a lot of money for companies, at least in Germany, because they have to pay the employee candidate the travel. Hence interviews are done only for those candidates which are worse the effort.
mklhmnn
yes, indeed, but this can be a risky strategy, due to fact that the person can give the program to a freelancer, pay several dollars and after that to say he made it...anyway, today the most important thing is to pass over the HR...from my experience i've lost several jobs and a lot of time because of HR. back to subject, the days when a programmer know a single language and get the job are gone, except for the programmers in COBOL, EIFFEL, and several other languages. idea is that you must do the job, how you do it - it's your problem...best regards,
Radu Barbu
+2  A: 

Learn all of them if you can (have enough time), you won't regret. Also try some of the functional programming languages like Erlang or Haskell.

Al Bundy
A: 

Java is one of the friendliest programming languages to start with. Most universities are using it to teach the first few programming courses through classes and objects nowadays. However, the language you learn concepts in is not terribly important. Almost all of what you start learning (conceptually) in Java, C++, C#, Obj-C, etc. will transfer between languages, albeit with a different syntax.

tedmiston
A: 

Stick with java until you get it down cold, and then move on to something else; as well, learn the basics of socket programming with Java and you will be golden. The concepts from Java translate very well to almost everything else.

I would also suggest you pick a Database to start working with in order to make your apps useful...MySQL is a great choice for beginners and pros.

Anthony Pace
A: 

The answer "yes" is the correct one, but you probably want a little more detail.

In my opinion (and it is just an opinion), you should learn as many programming languages as you have time for. However, you need to first get a handle on some of the basic concepts.

You've already started with Java, which would not have been my first choice but you are where you are, not where I'd like you to be. So get comfortable with Java andthen move on to C - not C++ or Objective-C, just plain C. The reason for this is that both C++ and Objective-C are based on C, so learning C will give you a start in both of those languages. In particular, you need to understand what a pointer is and how it works in C.

Then you can learn Objective-C and/or C++. Objective-C is much easier (and, in my opinion, better) than C++, so I'd start with it, except for the fact that you will want to be writing real useful programs with them. Unless you are programming for OS X or iOS, C++ will be more useful in the long term.

You also should learn some other languages like Ruby or Python also some version of Lisp or perhaps Haskell.

JeremyP
A: 

As a newbie programmer, should I learn Java, C++, Objective-C or JavaScript?

A big NO, since learning so many things at the same time only messes your mind.

For me, I would choose only Java since JavaScript is quite similar to Java and you can use Java to write application, website and mobile. Of course, in the real case, you have to use a framework, but Java is the main core.

Hope you find it useful!

Truong Ha
Java and JavaScript are only superficially similar because JavaScript's syntax was modeled after Java to make it more attractive to potential developers but it, unlike Java who has its roots in C, has its roots in Scheme and Self, which are entirely different language families!
indieinvader
JavaScript’s object-oriented features are pretty different to Java’s, I believe. Going from one to the other could be quite confusing if you’re just starting out.
Paul D. Waite
A: 
Bruno Thomas
A: 

Get your programming concepts cleared with plain old C. Then get Object oriented concepts cleared with Java. Once that's done, its all logic you need. Learning syntax is not a big deal, put more importance on how you will think to solve given problem. Develop a logic, then think of the language which might help for given situation and check for syntax on net. If you are good in searching, most of the time you will be able to find good examples for the task. Now just use them and your code is ready. It is not mastery in particular language syntax, but the thinking/logic that matters more. Practice to get your mind thinking in right direction.

Ashish Patil
+1  A: 

Learning multiple languages have no negative side effects, as far as I'm concerned... :)

StudiousJoseph