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.
 
 

65 lines
4.1 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.
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, 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.
\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 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}
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.