Introduction to programming

Your program will do exactly what you tell to do. Nothing extra and nothing less.

Photo by Chris Ried on Unsplash

Assuming you are just starting your journey in this field - it is tough. Sometimes you just want to throw your laptop away with the words “F*CK these small dots, variables, and everything together!”.

To start, continue, and finish strong make programming part of your life. Involve with our community. Watch news and movies about it. Socialize with your classmates.

A program is a set of instructions that can be executed by a computer to perform a specific task. Your program will do exactly what you tell to do. Nothing extra and nothing less.


A computer is a hardware machine. To list some computers: your laptop, your smartphone, your smartwatch, your fridge, etc. Almost every computer has input devices, output devices, CPU(central processing unit), RAM(random access memory), auxiliary memory(secondary memory).

Some input devices: keyboard, mouse, microphone.

Some output devices: screen, speaker.

CPU(central processing unit) is the brain of the computer that executes program instructions. The CPU performs basic arithmetic, logic, controlling, and input/output operations.

RAM(random access memory) holds data of the current running program. The data stored in RAM disappears when you shut down your computer. RAM is much faster than auxiliary memory.

Auxiliary memory. The data exist in auxiliary memory when the computer’s power is off. Hard Driver is an auxiliary(secondary memory).


A program is a set of instructions that can be executed by a computer to perform a specific task.

Most of the programs will fit in the above diagram. The program takes input and processes it and produces output. Our job is to write a code that will process input and produce output. A requirement of the program will tell us what kind of task we are trying to achieve.

Let’s take for example search engine. It takes input as a search key and processes it and gives us output as results of the search.

Every program is solving a certain problem otherwise it won't exist.

An algorithm is a sequence of instructions to solve a problem. Algorithms play a big role in the progress of information technologies. A well-designed algorithm can boost the efficiency of the program by 100s or even 1000s times, especially when dealing with big input data.

Phone Book Algorithm by David J. Malan

Pseudocode is a plain language description of an algorithm.


You might already hear that the computer can only work with 0 and 1. This is a binary system. Computer use 0s and 1s because it uses electrical switches which can be in off or in on stages. On — there is power, off — there is no power.

Humans use the decimal system and computers use the binary system. it’s all abstraction or we can say rules to store some amount of data(numbers).

Let’s say in a decimal system I have 101 as a number. How do we know by looking into 101 that it’s actually representing one hundred one pieces (amount) of something? If an alien will read 101 he might think it actually 2(1 + 0 + 1) or whatever. We know that it’s really one hundred one because we know how does the decimal system work. In decimal, we have ten numbers to represent all possible amounts.

The same story with a binary system. Binary uses only two numbers to represent different amounts. These two numbers are 0 and 1. One hundred one in binary is 1100101.

We can think about memory in the computer as a canvas of cells. Each cell is a switch that can by 0 or 1.

101 in binary is 1100101

Each cell is a bit. The bit is the smallest measurement.

Memory hierarchy

The above picture shows the memory measurements hierarchy. Now, when you say I have 8 GB RUM memory on my laptop, you know that you are talking about 64,000,000,000 bits which can store 0 or 1 only.

Ok, we have learned about numbers. How about characters? How do we work characters if we can store only numbers using a binary system?

Each character has a specific number representation. We have a standard mapping for characters. The name for this standard encoding is ASCII.

ASCII is an abbreviation for American Standard Code for Information Interchange.

How about pictures and videos?

The screen consists of small blocks known as pixels. Each pixel can take a specific color. By mixing red, green, and blue we can have all spectrums of colors.

Group of pixels makes a picture
A pixel consists of 3 Bytes

And the video is a collection of pictures executed in sequence.

Did you see how we went from 0, 1 to videos? Because we always abstract things out and create some kind of interface to able make it more comfortable for us. You will see the same thing when we will start writing code in Java. We will not use 0 and 1 to write our programs. Java is a high-level programming language and we will deal with keywords that pretty much intuitive and understandable.

This article is part of the series of articles to learn Java programming language from Tech Lead Academy:1. Introduction to programming 
2. OS, File, and File System
3. Working with terminal
4. Welcome to Java Programming Language
5. Variables and Primitives in Java
6. Methods with Java
7. Java Math Operators and special operators
8. Conditional branching in Java
9. Switch statement in Java
10. Ternary operator in Java
11. Enum in Java
12. String class and its methods in Java
13. Loops in Java
14. Access modifiers in Java
15. Static keyword in Java
16. The final keyword in Java
17. Class and Object in Java
18. Object Oriented Programming in Java
19. OOP: Encapsulation in Java
20. Inheritance in Java
21. Abstraction in Java
22. Polymorphism in Java
23. Overriding vs Overloading in Java
24. OOP Design Principles in Java
25. Array in Java
26. Data Structures with Java
27. Collection framework in Java
28. ArrayList in Java
29. Set in Java
30. Map in Java
31. LocalDate in Java
32. Exception in Java
33. IO in Java
34. Design Patterns
35. Generics in Java
36. Multithreading in java
37. JUnit
38. Big O Notation for coding interviews
39. Top 17 Java coding interview questions for SDET

Software Developer, Java Instructor