What language should I learn?
This Very Important Article for Programming Beginners, Please Complete The Reading Of This Article
This question has been asked time and again here: What language should I learn? There are many different languages out there and it can be hard for somebody who has never programmed before to choose a new language. Every programmer has their own response to the question and it is usually their favorite language and they will give you the reasons why it is their favorite language to program with.
Before answering this question however, the person you are asking this question to should ask you a very important question. What is it that you want to program? Your answer to that question should effect their answer. So what do you want to program?
Your answer:
I want to develop desktop applications for Windows.
My Answer:
In that case you would be best learning a .NET language. The .NET languages have excellent support for creating GUI applications. They all have drag and drop features for dragging controls onto a form and coding the events that go with them. You could go with VB.NET, C# or C++.NET would work for this category of program. C++.NET is a good alternative and it would help you if you ever wanted to create native C++ applications, applications that do not require the .NET framework.
Your answer:
I want to write programs for Linux or Unix.
My answer:
In this case forget about learning a .NET language. There is the Mono port for developing C# programs in Linux but if you are serious about developing programs for Linux or Unix forget about .NET languages. The reason is they require the .NET framework and it is a Microsoft proprietary thing not supported outside of Windows. Look at C, C++ or Java. C or C++ because they have standards applied to them and they are the same on all platforms. Knowing how to write a C/C++ program on Linux is much the same as knowing how to write a program in Windows. Linux and Windows do have different libraries for many things, such as creating GUI applications, but the core of the languages is the same. Java is also a good because it can be run on any platform that has the JVM. A Java program in Linux is the exact same as a Java program in Windows.
Your Answer:
I want to write cross platform programs.
My Answer:
In that case definitely Java. Like I mentioned in the previous answer Java can be run on any platform that supports the JVM. The code is the exact same on any platform. If you write a Java program on one platform it will run the exact same way on another. You could also learn C/C++ for this. You would have to recompile the code to run on different platforms but C/C++ have standards applied to them and can usually be written to be run on different platforms with minimal changes.
Your Answer:
I want to write games.
My Answer:
In this case you would be best learning just regular C first and then moving up to C++ if you would like. Reason is that C is probably the fastest compiled language and is closest to the operating system. If you were ever to get a job as a game programmer you would more than likely use C or C++ in the work place. Learning them now would save you from having to learn them later. If you wanted to develop games for a console, C or C++ is again the way to go. I know you can create games for the Xbox 360 using C# and XNA. That is one exception to the rule and the reason is that the Xbox 360 is a Microsoft product and so are C# and XNA so the support is in the hardware. If you just want to develop Windows game it wouldn’t hurt to learn C# after C/C+++. It is not the perfect solution for developing games but it is a good framework and will more than likely continue to develop in the future. You can create many games using C# and XNA but there are times where you will need all of the processing power that you can muster. In those cases it is always better to code with C/C++.
Your Answer:
I want to create web applications.
My Answer:
Well, then you would probably want to start with simple HTML and CSS to learn how to create web pages. You could move on to things like Javascript and jQuery to add cool effects to your pages. Then you would want to go server side to develop persistent applications. For server side there are a few options. PHP, Perl, Python and ASP.NET would all be good for this. Some of this would depend on your hosting choice for the applications. ASP.NET is a Microsoft framework and the host would have to offer ASP.NET support with IIS. PHP can run on both servers: Linux and Windows. You can also create web applications using Java applets. There are many sites on the web that use Java applets. Pogo is popular site that hosts many games that were written in Java.
I’m sure that there are many other answers that a person might give to my question but those are some of the main ones and good, unbiased answers as to what you could concentrate on to accomplish those goals. There are also many other languages out there and new ones are being developed all the time. These are some of the languages that are used most often and the reasons that you would probably want to choose them.
This Very Important Article for Programming Beginners, Please Complete The Reading Of This Article
This question has been asked time and again here: What language should I learn? There are many different languages out there and it can be hard for somebody who has never programmed before to choose a new language. Every programmer has their own response to the question and it is usually their favorite language and they will give you the reasons why it is their favorite language to program with.
Before answering this question however, the person you are asking this question to should ask you a very important question. What is it that you want to program? Your answer to that question should effect their answer. So what do you want to program?
Your answer:
I want to develop desktop applications for Windows.
My Answer:
In that case you would be best learning a .NET language. The .NET languages have excellent support for creating GUI applications. They all have drag and drop features for dragging controls onto a form and coding the events that go with them. You could go with VB.NET, C# or C++.NET would work for this category of program. C++.NET is a good alternative and it would help you if you ever wanted to create native C++ applications, applications that do not require the .NET framework.
Your answer:
I want to write programs for Linux or Unix.
My answer:
In this case forget about learning a .NET language. There is the Mono port for developing C# programs in Linux but if you are serious about developing programs for Linux or Unix forget about .NET languages. The reason is they require the .NET framework and it is a Microsoft proprietary thing not supported outside of Windows. Look at C, C++ or Java. C or C++ because they have standards applied to them and they are the same on all platforms. Knowing how to write a C/C++ program on Linux is much the same as knowing how to write a program in Windows. Linux and Windows do have different libraries for many things, such as creating GUI applications, but the core of the languages is the same. Java is also a good because it can be run on any platform that has the JVM. A Java program in Linux is the exact same as a Java program in Windows.
Your Answer:
I want to write cross platform programs.
My Answer:
In that case definitely Java. Like I mentioned in the previous answer Java can be run on any platform that supports the JVM. The code is the exact same on any platform. If you write a Java program on one platform it will run the exact same way on another. You could also learn C/C++ for this. You would have to recompile the code to run on different platforms but C/C++ have standards applied to them and can usually be written to be run on different platforms with minimal changes.
Your Answer:
I want to write games.
My Answer:
In this case you would be best learning just regular C first and then moving up to C++ if you would like. Reason is that C is probably the fastest compiled language and is closest to the operating system. If you were ever to get a job as a game programmer you would more than likely use C or C++ in the work place. Learning them now would save you from having to learn them later. If you wanted to develop games for a console, C or C++ is again the way to go. I know you can create games for the Xbox 360 using C# and XNA. That is one exception to the rule and the reason is that the Xbox 360 is a Microsoft product and so are C# and XNA so the support is in the hardware. If you just want to develop Windows game it wouldn’t hurt to learn C# after C/C+++. It is not the perfect solution for developing games but it is a good framework and will more than likely continue to develop in the future. You can create many games using C# and XNA but there are times where you will need all of the processing power that you can muster. In those cases it is always better to code with C/C++.
Your Answer:
I want to create web applications.
My Answer:
Well, then you would probably want to start with simple HTML and CSS to learn how to create web pages. You could move on to things like Javascript and jQuery to add cool effects to your pages. Then you would want to go server side to develop persistent applications. For server side there are a few options. PHP, Perl, Python and ASP.NET would all be good for this. Some of this would depend on your hosting choice for the applications. ASP.NET is a Microsoft framework and the host would have to offer ASP.NET support with IIS. PHP can run on both servers: Linux and Windows. You can also create web applications using Java applets. There are many sites on the web that use Java applets. Pogo is popular site that hosts many games that were written in Java.
I’m sure that there are many other answers that a person might give to my question but those are some of the main ones and good, unbiased answers as to what you could concentrate on to accomplish those goals. There are also many other languages out there and new ones are being developed all the time. These are some of the languages that are used most often and the reasons that you would probably want to choose them.
No comments:
Post a Comment