A language agnostic book on programming.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

64 lines
4.0 KiB

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.