What is Programming? How to get Started?
New to programming or Intermediate, this articles takes you by the hand and define programming in most simple way possible, as we break down what programming is and what are different programming languages as well as what should you do to make a strong foundation to learn any programming language that you desire.
Today we are going to discuss about what is programming, what are different programming languages and how to get started.
So few months back a first year student from computer science stream called me and asked me about what language of programming he should learn because he was really confused about where to begin as there are so many options to choose from moreover he was bothered about how will he learn all these languages.
Then I laughed and remembered that I faced a similar problem when I was getting started to learn more about programming and development in general. I knew exactly how he felt. So I decided to first clear his perspective on programming.
I asked him a question that what is programming and he went silent for few seconds and then he narrated a definition that we find in books, he didn’t even resonated with what he said. At this point I was really sure that he had approached this whole things with a wrong mindset.
My question to you is….
What is programming?
What are programming languages?
Well programming is nothing but a set of operations in the form of instructions that we want our computer to perform and programming languages are different languages for communicating with a computer about what those instructions are.
Seriously programming languages are nothing different that normal languages, let me give you an example for better understanding. Think about a real world operation performed by us, let’s take a simple example like drinking water. So if we want to drink water we will ask the other person to pass us some water, now keep that in mind passing the water is our underlying operation, we will accomplish this operation by instructing the other person to pass us some water and to instruct we will communicate in a language that other person understands. If the other person understands English we will communicate in English, if he understands Japanese we will communicate in Japanese, if he understands Chinese we will communicate in Chinese but keep that in mind the underlying operation of passing the water remains the same irrespective of the language we choose to communicate.
Similar is the case with a computers if we want to accomplish an operation for example printing hello world on our screens, printing hello world is our underlying operation and we instruct the computer to do so in a language that it understands. Now we know that every language is capable of printing hello world on our screen.
What Programming Language should you learn?
But now the question arises if a language capable of doing operations we desire why do so many languages exist in the first place, well the answer lies in the specifications of a particular language. All programming languages are not equal. Every language has its own pros and cons for example some languages are good for dealing with data structures while other are fast at compiling and so on it all depends on the context. The context in which you are using them.
For example if I want some client side operations to happen in web browser java script will be the language to go for or if I want to develop native apps for windows then C# will be the language to go for. Each language exist because it solves a particular problem elegantly and meets the required needs for a situation, it is for this reason that so many languages exist.
Now the next logical question that comes to your mind will be, So where should we begin? What language should we learn first? Now this is a high quality question, to tackle this we need a process in place. What process you might ask?
End goal of a programming language is to perform sets of operations, blankly learning a language without having those sets of operations in mind leads to vagueness. For you to find your first programming language you need to define what those sets of operations are for you?
What do you want to accomplish or rather what operations do you want your computer to perform. For example, for me it was that I wanted to make a Tic-Tac-Toe game for android, just this one thought made few things clear in my mind. First that I want to develop a game, which was my set of operations that I want my android to perform, second it gave me clarity on what should I learn in order to accomplish this goal, that was it. This made it clear for me that Java was the language to learn in order to code an application for android. Thus I found my first language to learn. This process is really simple by doing this you will know what you want to accomplish, that is your set of operations and what is the way to go, that is what language you have to learn.
Another interesting things regarding different languages is that the first language is the toughest to learn you may ask why because it is for the first time that you will be dealing with loops and logical structures. Once you build your competence in one language to communicate your operations you will have better understanding of how things fit in place and work, rest is just syntax. Once you have learned one language it is a transferable skill set that is it will be much easier for you to learn a different language the only barrier to entry will be the syntax of the new language. Let me be more precise once you know how to code in one language it will be much easier for you to learn another language because you have already learned what are variables, what are loops and other logical structures and you know how to use them the only thing that will be standing in your way will be the syntax of the new language. Lets assume you say bye in English and sayonara in Japanese when you are departing but you know when to say it, you know where to use it that is the key component once these fundamentals are clear to you it is easy for you to switch between different languages or to master a few of them.
Where to Start from?
For anyone who is new to programming and want to start everything from scratch to build a rock solid foundation for programming I would recommend one course to go about this process the right way. It doesn’t matter if you know how to code in one language or you don’t even know how to code at all, this course would be really beneficial in providing you with clarity and basic foundation to begin with.
To make sense of the of all the jargon of the programming world and what a program really is at a fundamental level and different ideas that are implemented during programming I would highly recommend What is Programming by Simon Allardice at pluralsight.com and from there you will have a foundation in place to learn any language of your choice.
What to do After Learning a Programming Language?
After learning a language of your choice you should implement it on a small project to get yourself comfortable with the language and the syntax to better understand the workflow.
How to get Advanced?
Every programming language has a community of developers helping each other to find better and efficient solutions to problems and over the years have developed best practices for certain operations in each respective language, such elegant solutions are called design patterns. For you to code more efficiently and effectively you should get yourself familiar with design patterns for your language of choice.
Let’s keep in touch.