How Do I Choose What Programming Language To Learn?

"How do I choose what programming language to learn?", is a question which I see a lot of people asking. So here is a comprehensive guide to choosing a language which will fulfil your needs. My main focus will be beginners who have no clue where to start but I hope that it is useful to a wider audience. Please note that I have tried to write the tutorial from a general perspective and have kept it free from biased opinions.


Deciding to learn a language because someone told you to is a bad idea. Instead, you should consider if the language is adequate for what you wish to achieve. Some of the important aspects which you should consider when choosing a language include:

Suitability
- Make sure that the language is suitable for the area in which you wish to program. Web, game and application development often require different languages to let you work efficiently.

Ease of learning
- If you want to start making useful programs quickly or want to get your head around the fundamentals of programming then you should consider a simple language. However, if you want to take up programming as a serious hobby then a harder language may benefit you in the long run.

Readability
- Programs are often shared and read by other people for learning purposes or during large projects. Being able to read and understand the language allows you to learn quicker and work on code with other people without confusion.

Speed of development
- Being able to write useful code in a short amount of time can be a major advantage of some languages. However, you should not only take into account the time it takes to write code but also how long it takes to debug and fix problems which occur. Therefore, languages with good error handling should not be overlooked.

Speed of execution
- Using a language which can execute quickly is always an advantage. However, in many cases the best performance comes with the most effort from the programmer. For example, in C++ tasks such as memory management slow down development but increase performance because it reduces the burden on the computer.

Portability
- When you make scripts or programs you often want to be able to share them. A portable language will be able to run on many systems, regardless of their operating system or platform. Java is popular for this reason and has over 3 billion devices running it.

Libraries
- When considering a language you should not only look at the standard library but also extended libraries which you can download to enhance the language in various ways. C#'s graphics library may not be ideal for 3D but the XNA framework can be installed and used for advanced graphics which would not be achievable otherwise.

There are hundreds of programming languages but I'm not going to talk about every single one. Instead, I will focus on the languages which have their own section in the coding forum because they are popular and fairly good choices.

Assembly - Closely resembling machine code, provides great control for maximum effort.

Pros:
  • You have direct control of memory.
  • Very fast to run.
  • You gain a fresh perspective of what goes on in your computer.
Cons:
  • Knowledge of hardware is required.
  • Difficult to make it executable on multiple machines.
  • Slow to code in.
C - An extremely popular language known for it's flexibility and efficiency.
Pros:
  • Will run on almost every system.
  • Programs will run fast.
  • It's old so major issues have been fixed.
  • Lots of tutorials, documentation and open source projects.
Cons:
  • Not very fast to write code.
C# - A multi-purpose language suiting lots of development needs.
Pros:
  • Faster to learn than C or C++.
  • Good for Windows and mobile applications.
  • Takes some of the best features from other languages.
Cons:
  • No real disadvantages. Some languages may be better in certain areas.
C++ - An extremely versatile and popular language.
Pros:
  • Fast execution of programs.
  • Very popular.
Cons:
  • Slow to code in.
  • Hard to learn with no previous programming experience.

Delphi - A rapid application development solution for Windows.

Pros:
  • Very good for making Windows applications.
  • As functional as C++ in the right hands.
Cons:
  • Not as popular as other languages.
Java - A portable language and versatile language.

Pros:
  • Reasonably easy as a first language.
  • Many devices can run Java.
  • Support for multi-threading.
  • Can be used to develop web services.
Cons:
  • Considered to be slightly slower than compiled languages (Java is interpreted).
Lua - A lightweight scripting language often used for game development.

Pros:
  • Lightweight (low memory usage).
  • Portable.
  • Simple syntax.
Cons:
  • Intended to be embedded in applications, not for the whole thing.
PHP - A popular server-side language often used to produce dynamic web pages.

Pros:
  • Fairly easy to learn.
  • Server-side instead of client-side (this can be a bad thing as well).
  • Lots of support and help documentation.
Cons:
  • Not a good choice for desktop applications.
Python - An extremely simple yet powerful language which is perfect for beginners.

Pros:
  • Easy to learn.
  • Easy to read.
  • Fast to write code.
Cons:
  • Not as fast execution as some languages.

Perl - A powerful scripting language used a lot for CGI scripts, system administration and networking.

Pros:
  • Powerful text processing and networking facilities.
  • Runs on most platforms.
  • Cryptic 1-liners save lots of code and therefore time.
Cons:


  • Cryptic 1-liners are often unreadable.
  • The syntax can make code hard to understand.
VB.NET - A popular language, known for it's simplicity.

Pros:
  • Easy to learn.
  • Easy to read.
  • Fairly quick to code in.
  • Lots of support and helpful resources.
  • Used a lot on Windows.
Cons:
  • Error catching and handling isn't great.
  • Not good cross-platform support. Primarily a Windows-based language.
When you've decided which language is sufficient for your needs you should get to work right away. Install any software needed to begin such as compilers and a development environment. There are lots of tutorials that explain and guide you through the required software. Once everything is set up, you are ready to learn. Different sources of knowledge include videos, books, eBooks, tutorials, teachers, open-source projects and documentation. It's up to you to find which method of learning works best for you.

Also Reade; How To Become A Pro Hacker, P1: Programming Languages
Categories:
Similar Videos

0 commentaires: