#1 Mastering the core concepts of programming

#1 Mastering the core concepts of programming

A series on core concepts of programming in general.

In essence, a computer is used majorly for 2 things:

  1. For storage of data

  2. For the computation of data that leads to a meaningful outcome.

These days every organization that exists in our societies runs based on a data-driven strategy. Hence, all major companies out there are predominantly focusing on collecting all data(storage) and trying to progress efficiently into the future by generating necessary information out of that data. To achieve these goals, they require engineers who can program these supercomputers to perform the tasks of collecting data and generating meaning from that data.

What is a program?

A program in general is a set of instructions given to a computer(or) a machine to perform a certain task and generate a desired outcome.

In the world of programming, we need to understand that there is no such thing as a good program or a bad program. The only expected thing is to write an 'Efficient Program'. So, how do you decide whether a program is efficient or not?

Efficient Programming

The 2 major aspects which as a developer we need to keep in mind are as follows:

  • Readability

  • Scalability

In real-time, a developer works in a team in any organization. A team that will be responsible for the creation, updation, and maintenance of a particular project. So, the developer who writes the code will be collaborating with other developers in the team. Hence, in such a scenario, it is highly important that whatever code/program is written and shared must be 'Readable' code. This helps the peers to understand what you have coded and why.

Another major factor of efficient programming is Scalability, which makes sure that whatever code/program has been developed will be catered to a large number of inputs without any latency or downtime.

A program can be scalable mainly in two ways speed & memory.
speed: How faster the program can be executed?
memory: How much storage does a program require for execution?

To understand the speed of a program we need to dive deep into a concept called "Time Complexity". Click on this link: Time Complexity
To understand the memory/space occupied by a program we need to dive deep into a concept called "Space Complexity". Click on this link: Space Complexity