I want to be a software engineer so, in your opinion, what language should I learn and why?

Reý Aetar

March 24, 2012 at 7:54 pm

There is no "best" programming language. It just depends on what you wish to program in the future.

Now the top 3 most powerful language that are mostly used today are the following

C++

C#

Java

Now there are specific advantages to each and out of these. You can
determine which programming language you want to use depending on these
advantages and disadvantages.

Now firstly C++ is considered a low level language or hybrid. Many
people say that it is low level because it can deal with the processing
unit and such but it's really a hybrid because it can do both low level
and high level programming which gives it a big advantage.

C# and Java are strictly high level languages and there are a lot of
advantages of high level languages. They are generally easier to program
in and require less code than a high level language.

A complicated code in say c++ code be say 100 lines of code but it java
and c# it could be only like 50 lines of code so that's a big advantage
and it increases production time.

Now c# and Java are strictly object oriented and since you are learning java I assume you know what that means.

C++ is not strictly object oriented but you can still use object
oriented programming so it basically gives you more variety and in turn,
the learning curve is much easier.

Now c++ made programs run faster than programs made with java and c#
because low level programming languages run faster because they are
closer to the processor.

But if coded right, Java and C# should run smoothly. and if you didn't know, the game runescape was made with java.

Now I am a c++ programmer. I can program with both c# and Java but I just prefer c++.

But anyways just for some advantages and disadvantages

Adv.

C++

-low level programming language

-faster

-easier to learn

-many features like windows development and windows phone development and now iphone development

Java

-cross platform

-easier code

-similar syntax to c++

-many features like mobile and web development

C#

-you can use xna to create xbox 360 games. Yes I said xbox 360 games

-very easy to learn after c++ and or java

-more dynamic than c++

-built in GUI for faster production

disadvantages

C++

-It tends to get more complicated after a while

-can get frustrating if you're not a good programmer

Java

-many features like java 2d and 3d can get a bit complicated

-documentation on the official website is not really straight forward all the time in my opinion

c#

-It's only for windows and windows only so forget about max, linux , unix , etc.

-People say its windows copy of java.

-Not that many resources to help you get started and often you don't know where to start

C++, Java and C# all basically have similar syntax so what I'd advise
you to do is learn c++ and then go into java and then c#. After learning
c++, java and C# will be a breeze!

Bruce Epper

March 25, 2012 at 6:23 pm

Apparently, you have not heard of Mono. C# is not Windows only because of this.

shaheer

July 17, 2012 at 4:17 pm

thank you for your advice

Bruce Epper

March 23, 2012 at 11:49 am

It all depends on what you want to do. If you intend to be doing system-level programming, you will need C/C++. If you are going to be doing web development, you should look at JavaScript, HTML5 (not exactly programming, but...), PHP, Ruby, Python and similar languages. Desktop application programming would be under any of the .NET languages for Windows-based machines, Objective C for Mac. Many of these languages are not strictly for the categories that are listed here. For example, Ruby and Python can also be used for applications developed for the desktop.

If you are looking to work in an engineering environment, Fortran is still frequently used. If you are lookiing at a large corporation, there are still hundreds of millions of lines of COBOL that need to be maintained and updated.

Overall, it doesn't matter a whole lot where you begin. The basic concepts that underlie development in any of these categories remains the same no matter what language you are using. The things that change are the keywords, syntax and other programming language-specific constructs, but those are easy to adapt to once you know the basics.

Finally, there is no "best programming language" to study. Some are better suited for some purposes than others, but that is about all. The key is getting the basics down and learning the strengths and weaknesses of the various languages that you learn (and you will eventually be learning many) so you know what language to use for your current project to make it come in within budget, on time, and functions as detailed in the specifications.