?+100 Programming Concepts
?+100 Programming Concepts
?+100 Programming Concepts
📚 1.2 Variables
Named spaces in memory that store values. The value of a variable can change,
hence the name.
📚 2.5 Recursion
The process where a function calls itself as a subroutine. This allows the
function to be repeated several times, as it can call itself during its execution.
📚 3.4 Trees
A hierarchical data structure with a root value and subtrees of children,
represented as a set of linked nodes.
📚 3.5 Graphs
A non-linear data structure consisting of nodes and edges. The nodes are
sometimes also referred to as vertices and the edges are lines or arcs that connect any
two nodes in the graph.
🧑💻 4. Algorithms
📚 4.1 Searching Algorithms (Binary Search, Linear Search)
Methods for finding a particular data in a structure. Binary search works on
sorted data, while linear search works irrespective of data being sorted.
📚 5.2 Encapsulation
The bundling of data with the methods that operate on that data. Encapsulation is
used to hide the values or state of a structured data object inside a class, preventing
unauthorized parties' direct access to them.
📚 5.3 Inheritance
A mechanism in which one class acquires the property of another class. Used for
code reusability and the method of creating a new class using properties of an existing
class.
📚 5.4 Polymorphism
The ability of an object to take on many forms. The most common use of
polymorphism in OOP occurs when a parent class reference is used to refer to a child
class object.
📚 5.5 Abstraction
A mechanism that represents essential features without including the background
details.
📚 7.3 Immutability
Unchanging over time or unable to be changed. In functional programming, data is
immutable.
📚 9.4 Pointers
A variable which stores the address of another variable. Pointers are used for
various purposes in C and C++.
📚 10.5 Debugging
The process of identifying and removing errors from computer hardware or
software.
📚 11.2 NoSQL
A non-relational database designed to scale out, with wide-column stores, graph
databases, key-value pairs and document databases.
📚 11.4 Indexing
A data structure technique to efficiently retrieve records from the database
files based on some attributes on which the indexing has been done.
📚 13.2 GitHub
A hosting service for Git repositories providing a web-based graphical interface.
📚 13.5 GitFlow
A branching model for Git, created by Vincent Driessen, that allows a team to
manage a project more efficiently.
📚 14.2 Scrum
An agile framework for managing knowledge work, with an emphasis on software
development.
📚 14.3 Waterfall
A sequential (non-iterative) design process, used in software development
processes, in which progress is seen as flowing steadily downwards (like a waterfall).
📚 14.4 Kanban
A scheduling system for lean and just-in-time manufacturing, developed by Toyota.
📚 15.2 Synchronization
Mechanisms to ensure that two concurrent processes do not interfere with each
other.
📚 15.3 Deadlock
A situation where a process is unable to proceed because the resources it needs
are being held by another waiting process.
📚 15.4 Starvation
A situation where a process is unable to proceed because the resources it needs
are continually given to other processes.
📚 16.2 Sockets
One endpoint of a two-way communication link between two programs running on the
network.
📚 16.4 Firewalls
A network security system that monitors and controls incoming and outgoing
network traffic based on predetermined security rules.
📚 17.2 Factory
A design pattern that provides an interface for creating objects in a superclass,
but allows subclasses to alter the type of objects that will be created.
📚 17.3 Observer
A design pattern in which an object, named the subject, maintains a list of its
dependents, called observers, and notifies them automatically of any state changes.
📚 17.4 Decorator
A design pattern that allows behavior to be added to an individual object,
dynamically, without affecting the behavior of other objects from the same class.
📚 17.5 Strategy
A design pattern that enables selecting an algorithm at runtime.
📚 18.2 Hashing
A function that converts an input (or 'message') into a fixed-size string of
bytes.