|
|
It is wonderful that you have decided to undertake the hobby of computer programming, but which language should you choose: Python, PHP, Java, C\#,
|
|
|
C/C++, VB, Ruby, Scala, Groovy, Javascript, or one of the thousands of others languages available to programmers.
|
|
|
There are many factors to consider when choosing a programming language especially when getting into programming for the first time, some
|
|
|
of which are the languages paradigm, syntax, platform and even the coolness factor of the language.
|
|
|
|
|
|
\subsection{Paradigm}
|
|
|
A languages paradigm refers to the languages overall style of development.
|
|
|
For example the three mainly adobted paradigms are functional, object-oriented and multi-paradigm.
|
|
|
A functional languages are based around around the concept of completing tasks using Mathematical functionals; C is an example of
|
|
|
a functional language because rather than using classes or objects to complete it's tasks it used constructed functions.
|
|
|
Object-oriented languages on the other hand use classes and objects to complete programming tasks;
|
|
|
Java is an example of an object-oriented programming language because regardless of the type of program you develop you must use classes and objects.
|
|
|
Multi-paradigm languages are usually a mix of more than one paradigm.
|
|
|
For example Python is a multi-paradigm language because you can choose whether or not to use classes and objects when programming.
|
|
|
\par
|
|
|
|
|
|
There are many more types of paradigms that languages can follow but most languages you will come across today are either
|
|
|
strictly functional, strictly object-oriented or they offer the best of both worlds by supporting both.
|
|
|
|
|
|
\subsection{Syntax}
|
|
|
The syntax of a language is very important when choosing a language.
|
|
|
This is mainly going to be a personal preference.
|
|
|
Personally, I like C style syntax languages like C, C++,Java, PHP, Javascript, etc.
|
|
|
Other people might prefer other languages because their use of other syntax styles, like the almost sudo code style of Python.
|
|
|
Your personal preference will come with time as you move from one language to another and develop your own personal styles and preferences.
|
|
|
|
|
|
\subsection{Platform}
|
|
|
This is a very important factor when choosing which programming language to use.
|
|
|
What platforms do you have available to use?
|
|
|
Do you only have a Windows computer at your disposal?
|
|
|
That might remove some of your options as some languages might not support developing on your specific OS such as Windows or Mac OS.
|
|
|
\par
|
|
|
|
|
|
When starting out, try and choose a language that works on a platform that is readily available to you.
|
|
|
Do not try and move to a new or different operating system in order to learn programming.
|
|
|
Keep things simple.
|
|
|
|
|
|
\subsection{Coolness}
|
|
|
What seems cool to you?
|
|
|
What is everyone else raving about right now?
|
|
|
What is new and different?
|
|
|
\par
|
|
|
|
|
|
Some may think that coolness is a silly factor to introduce when trying to pick a programming language to use, but I can honestly
|
|
|
say that it has effected my choices in the past.
|
|
|
When I was learning programming in college we were being taught Java, but I taught myself PHP on the side
|
|
|
mainly because my friend was using it and I wanted to impress him.
|
|
|
This is not a bad thing.
|
|
|
Let others help influence your decisions when programming. That is how you will grow and learn things you might not of
|
|
|
experienced without the influence.
|
|
|
|
|
|
|
|
|
\subsection{Conclusion}
|
|
|
So, we have taken a quick look at how to go about picking a programming language.
|
|
|
Some of you might say, "That was not really helpful. You did not tell me which language to use.", and your right, I didn't.It should not be my choice which language you learn first.
|
|
|
I want to try and keep some bias out so that this resource is as lanuage agnostic as possible.
|
|
|
\par
|
|
|
|
|
|
\emph{Advice:}
|
|
|
\\
|
|
|
If after doing some research you are still unsure which lanauge you want to use, especially for going through this resource try out Python.
|
|
|
Python is available for every platform, or at least all of the ones I can think of. It is interpreted so you will not
|
|
|
have to wait for the program to compile. Lastly, its syntax is one of the closest to the sudo langauge which this resource
|
|
|
uses extensively.
|