First steps of a newbie in Programming
Published: 2022-08-26 14:37:57

What is Programming?
Programming is a set of codes (set of instructions) that is developed to communicate and instruct the computer to perform a set of tasks, A program has to be interpreted and executed by a computer to understand and perform a set of tasks or functions in a user’s desired way, This instructs a computer when and what has to be done, The people who write the codes and programs are referred to as “Programmers”. Computers only understand binary codes which are (0’s and 1’s) but as a programmer, it isn’t necessary to code in a binary language and so Programming languages were developed so a human can easily CRUD, Programming languages make human life easier by interpreting Human understandable language to computer understandable language (High-level language (English)  -> Machine level language (0’s & 1’s), Now let’s first understand the process of HLL being understood by a computer/Machines.

We, Humans, Use High-Level Languages.
HLL gets interpreted to Assembly Language.
Assembly Language gets converted to Machine Language.
Machine Language then gets converted as Inputs to Digital systems.

High-Level language -
 A high-Level language is nothing but a human understandable language that could be easily understood by humans and CRUD in it, These are always in English and Numbers

Examples of (HLLs) - 
 Java, C, C++, C#, Javascript, Python. Etc

Assembly-Level language -  
 Every computer architecture has its own assembly language, Assembly languages tend to be pretty low-level, yet some actual humans still write code in assembly, But most code is written in HLLs and compiled, Compiler is a program that automatically converts HLL to assembly.
The assembler program automatically converts assembly code into the binary machine language (0’s & 1’s) that the computer actually executes.

Basic Data Types -
 Bit: 0, 1
 Bit String: sequence of bits of a particular length
 4 bits is a nibble
 8 bits is a byte
 16 bits is a half-word
 32 bits is a word
 64 bits is a double-word
 128 bits is a quad-word

 Character:
 ASCII 7-bit code

 Integers:
 2's Complement (32-bit representation)
 Floating Point: Single Precision (32-bit representation)
 Double Precision (64-bit representation)
 Extended Precision (128-bit representation)


Difference between Coding & Programming -
Coding - It is a unit of programming that deals with writing codes for writing/developing instructions that a machine can understand.

Programming - It is a process that creates developed programs that involve in the ratification of codes.


Why is Programming/Coding Important? 
Computer programming is important today because so much of our world is automated. Humans need to be able to control the interaction between people and machines. Since computers and machines can do things so efficiently and accurately, we use computer programming to harness that computing power.


Applications of coding -
Arguably there are almost unlimited applications of coding, but it is mostly seen as making Human life easier by automating a task by giving a set of instructions
For Example - 
Developing Applications and software (Both system software as well as application software which are developed to perform specific types of tasks and operations).
Websites and web-app.
Understanding how a computer works.
Pursue it as a hobby.
It is a skill that is always relevant.
 

What should be the first language to start off with?
(Source - HackerEarth) 


Whenever a user googles this question, the very obvious answer they come through is Python, but why ? because it is easy to learn, but with the personal experience of not only just me but of the other engineers who are a proper fit to be called as a Programmer/ coder strongly disagrees with this, but why? you might ask, it is because Python is very easy to learn and it is so popular because it has an easy syntax and is also open-source. It means that this language is being contributed by the communities around the world and you can make anything by using it, but that is not the way we should look at programming, as compared to java, Java is generally faster and more efficient than Python because it is a compiled language. As an interpreted language, Python has simpler, more concise syntax than Java. It can perform the same function as Java in fewer lines of code. But the problem lays here is that the foundation part of programming must be learned with the history of programming and all the complex kinds of stuff programmers used to face back then, mostly choosing your first language should depend on the purpose of learning it, If all you are doing is front end web development, then obviously your focus should be on HTML, javascript, CSS and what CMSes you are comfortable learning. Or if you only want to build IOS apps, then learn Swift, etc. Also if “being easy” is a factor for you, then maybe go learn Python, but we assume that this is for people who are hopefully somewhat intelligent and are not intimidated by a little hard work. The world that says “learn Python first” often assumes that you are an idiot, but we are not going to make that assumption. We will factor out “easy” and just assume anyone who’s reading this is wanting to know which language will give the best foundation in computing.

There are a few more questions left to be answered, but it will be left unanswered to know if someone is truly interested in knowing more about programming. 

How to get started with learning a new language?

Why should we choose Java or C as our first language?

What duration of time is it going to take to become an intermediate-level programmer?

How much will it cost to learn all these?

Which course or Bootcamp is to be followed?

What is the right age to start learning how to code?

Is age or field of expertise even a barrier to learning how to code?

And many more…