|
|
|
@ -1,33 +1,65 @@ |
|
|
|
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: paradigm, syntax, platform and even just the |
|
|
|
coolness factor. |
|
|
|
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 how the language is constructed. For example the three mainly disucessed paradigms are Functional, Object Oriented |
|
|
|
and Multi Paradigm. Functional refers to languages that are based around completing tasks using Mathematical functionals; C is an example of |
|
|
|
a functional language because it does not support the use of classes or objects. Object Oriented languages on the other hand are constrcuted |
|
|
|
by designing classes and objects to complete your programming tasks; Java is an example of an Object Oriented programming language because |
|
|
|
regardless of the type of program you develop you are forced into using 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. |
|
|
|
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. |
|
|
|
Functional refers to languages that are based around 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 are constrcuted by designing classes and objects to complete your 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, strickly object oriented or they offer the best of both worlds by supporting both. |
|
|
|
|
|
|
|
\subsection{Syntax} |
|
|
|
A languages syntax is very important when choosing a language. This is mainly going to be a personal preference. Personally I like C style |
|
|
|
sytanx languages like C,C++,Java,PHP,Javascript,etc. Other people might prefer other languages because their use of other syntax styles. Your |
|
|
|
personal preference will come with time as you move from one language to another and develop your own personal style and preferences. |
|
|
|
A languages syntax is very important when choosing a language. |
|
|
|
This is mainly going to be a personal preference. |
|
|
|
Personally I like C style sytanx 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 the options out there as some languages might not support developing on a |
|
|
|
Windows machine. |
|
|
|
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 the options out there as some languages might not support developing on a Windows machine. |
|
|
|
\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? Right now as I write this a lot of people are trying out Node.JS (even myself) as it is somewhat new and exciting. |
|
|
|
What do you want to learn? Does the idea of developing real time event based web applications seem cool? Then maybe you should check out |
|
|
|
Node.JS. Prefer to develop Windows based desktop applications, why not try out C\# or Vb? Go with what you feel. |
|
|
|
What seems cool to you? |
|
|
|
What is everyone else raving about right now? |
|
|
|
What is new and different? |
|
|
|
\par |
|
|
|
|
|
|
|
Some may think that this 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 picked up and learned PHP myself 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} |
|
|
|
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 and lastly it's syntax is |
|
|
|
going to be one of the closest to the sudo langauge that this resource uses. |
|
|
|
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 (you don't have to compile everytime |
|
|
|
you want to run your code) and lastly it's syntax is going to be one of the closest to the sudo langauge that this resource uses. |