Programming Fundamentals
Tags: programming, devjournal, 100daysofcode, codenewbie
Published: 2020-11-21 14:30:29

**Hello World, welcome to Dev Terminology, where we talk about dev concepts.**

**Today’s topic — Programming Fundamentals;** *the basic concepts of any programming language.*

<hr/>

When learning to code programming fundamentals always need to come first. The more you understand them, the easier it is to build upon it and learn advanced concepts.

> **The Fundamentals of Programming:**

- Data Types and Variables
- Operators
- Control Structures
- Data Structures
- Syntax
- Tools


> **These Programming Fundamentals — Do Or Complete Different Solutions Together.**

It's kind of a cheesy line, but I hope you get my drift.

"It's important to remember that a lot of programming languages are very similar, and knowing what's common between all programming languages will help you transition into any other programming language if you need to!" ([Trevor Page](https://howtoprogramwithjava.com/about-me/)).

You can call them building blocks, a road map, blueprints, tools even, but regardless of the name, they are a foundation. The fundamentals tell you where we came from, where we've been, and where we're going. They need to be similar across programming languages because it's that similarity that allows each of us, to some extent, to understand them regardless of what language we speak or interact with. It's what allows us to communicate.

<br/>

>**Programming Fundamentals Overview**

<br/>

### **Data Types and Variables**

`Data Types are the identity of a variable` — an attribute of data which tells the compiler or interpreter how the programmer intends to use the data.

Types of data types: 

```html
Boolean, Integer, Float, Character, String,
Nothing Data Types, [Array *], etc ...
``` 

Note: know how to convert one data type into another (Data type conversion).

`Variables are value placeholders` — an element, feature, or factor that is liable to vary or change.

```python
my_name = "Jane"
``` 
In this case, my_name holds the value of Jane.

<hr/>

### **Operators**

`Operators are symbols that tell you what to do.` You know like + - = ...

Common operator types include:
 
```html
arithmetic, comparison, and logical operators.
```

<hr/>

### **Control Structures**

`Control Structures are used to make decisions on what actions to take` — the types of instructions the program should follow. 

Types of Control Structures:

```html
Decision control, Selection control, 
and Repetition / Loop control.
```

These control structures may be better known as:

```html
Functions, Collections, Objects, Classes, 
Loops, Conditional / If Else statements etc...
```

<hr/>

### **Data Structures**

`Data Structures are ways to manage, organize and access data.` 

Some general data structures are: 

```html
Arrays, Linked Lists, Queues, Stacks, Hash Tables, 
Trees, Graphs, Heaps, Matrix, etc...
```

<hr/>

### **Syntax**

`Syntax is the way you order your words.` — The rules, principles, and processes that govern the structure of sentences in a given language. 

```python
print("Hello World!")
```
 In this case, this sentence structure is python syntax that when executed will print **Hello World!**

<hr/>

### **Programming Tools**

`Hardware with an operating system — A computer (preferably accompanied by a keyboard and mouse).`

- [macOS](https://www.apple.com/macos/big-sur/), [Windows](https://www.microsoft.com/en-us/windows), [Linux](https://www.linux.org/pages/download/), [Other](https://en.wikipedia.org/wiki/List_of_operating_systems)

`Some sort of internet connection — WIFI`

`A terminal — The command line`  

- [Terminal command line cheat sheet](https://gist.github.com/poopsplat/7195274)

`Some software — Your language's software developer kit (SDK)`

- This is where you click the big download button and let it do its magic
- Example: [Python SDK](https://www.python.org/downloads/)

`A code editor, IDE, and/or whiteboard if you prefer`

[VSCode](https://code.visualstudio.com/), [Vim](https://www.vim.org/download.php), [Sublime Text](https://www.sublimetext.com/), [Whiteboards](https://www.amazon.com/s?k=white+board&i=office-products&crid=3I4HQARMIIAN6&sprefix=white%2Coffice-products%2C162&ref=nb_sb_ss_ts-a-p_1_5) ... [pen and paper?](https://www.google.com/search?q=pen+and+paper&oq=pen+and+paper&aqs=chrome..69i57j0l7.1979j0j4&sourceid=chrome&ie=UTF-8)

`Version control — Your remote repositories (where you store your code)`

[Git](https://git-scm.com/), [Github](https://github.com/)

[Git cheat sheet](https://education.github.com/git-cheat-sheet-education.pdf)

`Project management tools`

[Linter](https://eslint.org/), [Debugger](https://code.visualstudio.com/docs/editor/debugging)

[Github project boards](https://github.com/features/project-management/), [Trello](https://trello.com/)

[CI/CD](https://circleci.com/) — continuous integration / continuous delivery

<br/>

For more information consider going to your local google or other browser if you're alternative.  

<br/>

> **Final note — When you start your developer journey**
1. Go slow 
2. Understand the fundamentals

<hr/>

This was Dev Terminology. Thanks for reading.

<br/>

Credits and acknowledgment to the dev community.
<br/>

> Written by **_Jessica Dosseh_**
> 
> **Find Jessica on:** [[GitHub](https://github.com/JessicaDosseh), [LinkedIn](https://www.linkedin.com/in/jessicadosseh/), [Twitter](https://twitter.com/JessicaDosseh), [Patreon](https://www.patreon.com/jessicadosseh), and [Portfolio](https://jessicadosseh.dev/)]

>  **Find theDevnotes on:** [[GitHub](https://github.com/theDevnotes), [Twitter](https://twitter.com/_theDevnotes), [Blog](https://thedevnotes.hashnode.dev), [Medium](https://thedevnotes.medium.com), [Dev.to](https://dev.to/thedevnotes)]

<br/>

**_P.S: [Dear reader — visit again sometime :)]_**