Skip to content

Roadmap on 'Entering the Programming World' added #382

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
129 changes: 129 additions & 0 deletions Roadmaps/Entering the Programming world/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,130 @@
# Looking for a way to get started with programming?

## Here is a `Roadmap` on "Entering The Programming World" to master the fundamentals and core concepts of programming.

This repository is going to help you move forward in your journey to become a better programmer and achieve the 'pro' level you want!

Welcome! We hope you have a wonderful learning experience!

### What is a Computer?

A computer is a digital electronic machine that can be programmed to carry out sequences of arithmetic or logical operations automatically.

C.O.M.P.U.T.E.R stands for "Common Operating Machine Purposely Used for Technological and Educational Research"

[What is a Computer?](https://edu.gcfglobal.org/en/computerbasics/what-is-a-computer/1/)

### Why should we use computers?

A computer can help us perform/automate day-to-day tasks both at the consumer side as well as the developer side

[Importance Of A Computer In Daily Life](https://www.scientificworldinfo.com/2021/06/importance-of-computer-in-human-life.html#:~:text=A%20computer%20is%20a%20vital,their%20educational%20reports%20and%20projects.)

### How does a computer work?

A computer basically communicates in a language known as the Binary language which consists of 0's and 1's as it's letters.

For example. 2 can be written as 00000010 in binary language

Here, 1 represents electricity through the circuit and 0 represents no electricity through the circuit

To learn more about binary :

[Resource 1](https://www.youtube.com/watch?v=wgbV6DLVezo)
<br />
[Resource 2](https://www.techtarget.com/whatis/definition/binary#:~:text=Binary%20describes%20a%20numbering%20scheme,relevant%20output%20to%20the%20user.)

### What is an Operating System?

An Operating System is basically a software which talks to the hardware of your computer and provides a platform to run various applications on it such as MS Word, MS Excel , etc

[Resource 1](https://www.mygreatlearning.com/blog/what-is-operating-system/#:~:text=Windows%2C%20Linux%2C%20and%20Android%20are,run%20basic%20programs%20like%20browsers.)
<br />
[Resource 2](https://www.youtube.com/watch?v=pVzRTmdd9j0)

## Your First Programming Language!

### Now, you have enough knowledge to start programming ... I mean coding! What's the difference? Let's see!

Well , coding is basically when you try to solve basic questions like finding whether a number is prime or not, displaying your name on the console,etc.

Programming is more about what happens outside your terminal/console. It is the game you play, the websites you visit and the actual code which you use in everyday life. You should have in-depth knowledge on memory management, data structures and algorithms, time complexity,etc. Basically, you should know how to use the limited resources provided to you efficiently and in a manner which solves real world problems

You can read this [article](https://www.afternerd.com/blog/learn-computer-science/) where the difference is beautifully explained, and I wish that I knew the difference earlier.

Most people stay in the coding phase their entire lives and that is not an awesome <strong>Computer Scientist</strong>

### Which Programming Language To Choose?

There are many different programming languages which you can choose from!

[Python](https://docs.python.org/3/), [Java](https://docs.oracle.com/en/java/) , [C++](https://learn.microsoft.com/en-us/cpp/?view=msvc-170) ,and [JavaScript](https://www.w3schools.com/js/) are some examples of popular programming languages

It really <b>`doesn't matter which language you choose` </b>

That's because the logic of your code remains the same , only the syntax changes.

### What is Syntax?

It is the rules followed to write a code in a particular programming language. Don't worry , it's not to tough you just have to start coding and you'll know what I'm talking about!

### Computer Devices

We use various electronic devices in our daily life such as a printer, washing machine , air purifier , keyboards , mouse , etc.

It is important to learn about these devices and how these work.

This is to sharpen your fundamentals and create a strong foundation for the amazing journey ahead! :smile:

[Computer Device Fundamentals](https://edu.gcfglobal.org/en/computerbasics/basic-parts-of-a-computer/1/)

## The Next Step?

### The next step is to start learning <strong>`Data Structures and Algorithms`</strong>

A Data Structure is a way of arranging data on a computer so that it can be accessed and updated efficiently.

Some Examples of Data Structures are Stacks, Queues , Linked Lists, etc.

An algorithm is a sequence of instructions/steps done by a computer to accomplish a specific task.
This task could be to sort some numbers in ascending order, find the HCF of two numbers, etc.
Some Examples of Algorithms are Bubble Sort, Merge Sort ,etc.

To learn more about Data Structures and Algorithms, you can refer to the following resources:

[Resource 1](https://www.geeksforgeeks.org/data-structures/)
<br />
[Resource 2](https://www.algoexpert.io/product/)
<br />
[Resource 3](https://leetcode.com/explore/learn/)
<br />
### Object Oriented Programming

When programming , we often deal with a concept known as Object Oriented Programming(OOP).

Basically, here we define our code in the form of real life objects and classes.

Let me take an example to explain the concept in simple terms

Assume there is a 'Model X' of a car.

Now the design of the Model X car is known as a class. A class is basically refering to the design of Model X car, it's properties like color, engine ,etc and methods/behaviour such as moving forward, moving backward , applying breaks, etc.

Now , this Model X is produced in a factory and each car produced is an 'Object' of the class Model X.
There can be multiple objects of the type Model X ie. it's corresponding class.

To know more about <b>Object Oriented Programming</b>:

[Resource 1](https://www.techtarget.com/searchapparchitecture/definition/object-oriented-programming-OOP)
<br/>
[Resource 2](https://www.geeksforgeeks.org/object-oriented-programming-oops-concept-in-java/)

## And that's it, you have now <strong><em>`Officially Entered The World Of Programming`</em></strong>

# We Wish You Luck On All Your Future Endeavours! :smile: