I want to be a software engineer so, in your opinion, what language should I learn and why?
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
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
-low level programming language
-easier to learn
-many features like windows development and windows phone development and now iphone development
-similar syntax to c++
-many features like mobile and web development
-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
-It tends to get more complicated after a while
-can get frustrating if you're not a good programmer
-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
-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!
Apparently, you have not heard of Mono. C# is not Windows only because of this.
thank you for your advice
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.