---
tags: learn2code
title: Learn to code from scratch
---
# Overview:
The following are the basics for learning programming:
1. Fundamentals of programming
2. Data structures and Object Oriented Programming
3. Algorithms
# 1. Fundamentals of programming
## Overview
You can choose any language for your preference. I would suggest choosing one of the following languages:
- C++
- Java
At this point, you are supposed to stick to one language and utilize that for the entirety of the courses that you choose. While languages like Python and JavaScript are easier to get started with for beginners, the 2 languages mentioned above will help you with understanding what is happening in depth.
## Resources:
<!-- 1. [PluralSight: Learn to Program with C++ 17](https://www.pluralsight.com/courses/learn-program-cplusplus)
2. [Udemy: General Programming Fundamentals](https://www.udemy.com/course/general-programming-fundamentals/)
3. [Educative: Learn Java from Scratch](https://www.educative.io/courses/learn-java-from-scratch)
-->
Start from:
1. [C++ from scratch](https://www.educative.io/courses/learn-cpp-from-scratch)
# 2. Learning Data Structures
## Overview
This is highly essential which will give you an understanding of the general data-structures available in programming languages. These will fundamentally allow you to visualize any datastructure that you use in Computer Science.
You should also learn about object-oriented programming, its use-cases and how it can help simplify stuff using abstraction, polymorphism and more. Languages like Java and JavaScript make much more use of OOP compared to other ones.
## Resources
1. [Learn Data Structures with coding exercises](https://www.educative.io/courses/data-structures-coding-interviews-cpp)
2. [Learn Object-Oriented Programming in C++](https://www.educative.io/courses/learn-object-oriented-programming-in-cpp)
# 3. Algorithms
## Overview
This is where you learn about how one should write an algorithm and the complexities involved in choosing a certain algorithm.
## Resources
1. [Basic concepts](https://www.educative.io/courses/visual-introduction-to-algorithms)
2. [Concepts with exercises](https://www.educative.io/courses/algorithms-coding-interviews-cpp)