Photo by Christophe Hautier on Unsplash

Recursion is a very important concept in programming that you must master in order to efficiently deal with data structure when writing algorithms and solving problems.

Many of us find the concept of recursion difficult, though, and struggle a lot before fully getting it.

But when everything begins to just click, dealing with recursion becomes so fun and exciting.

Now, how can you make recursion “just click” for you?

In this article, I will introduce a fascinating (new) way of looking at recursion to help you master it. If you don’t like recursion and feel like wanting to avoid writing…


Created from Photo by T. Q. on Unsplash and Photo by Yancy Min on Unsplash

This article is for MacOS users.

In this article, I will walk you through on how to

  1. Save your GitHub account credentials on your computer.
  2. Update the Git credentials after you change your Github username and/or PW.
  3. Delete the Git credentials from your computer.

Git credentials

When you clone GitHub repositories using HTTPS, you will need to authenticate your credentials. Git will prompt you to enter your GitHub username and password.

This authentication process must pass before the cloning of a remote repository to your local environment can be successfully completed.

But you don’t want to do this every time you clone…


Here is a table of contents for the topics covered in this article:

  • What is Coding
  • Data Structures
  • Complexity Analysis
  • Memory
  • Big O Notation
  • Logarithm
  • Arrays
  • Linked Lists
  • Hash Tables
  • Stacks & Queues
  • Strings
  • Graphs
  • Trees

What is coding

→ Manipulating data

→ At the most basic level, what a software engineer does is manipulating input data to produce some desired output data.

Data Structures

→ A way to organize data in order to efficiently manipulate them to produce a desired output.

Complexity Analysis

→ The process of determining how efficient an algorithm is.

  • Involves time complexity & space complexity
  • Both time & space complexity are expressed using Big O notation.
  • Time Complexity → how fast an algorithm is
  • Space…

PATH variable

Your computer (Mac or Linux, or a Unix-based system) has an environment variable called PATH, which contains a set of executable program directories that contain the executable programs.

Executable programs are basically the commands you can use in the shell.

These include the essential boot-stage or early-stage required binaries as well as other general system-wide commands.

As per the Filesystem Hierarchy Standard (FHS), these commands are located hierarchically in the system as follows:

Peter Donghun Lee, CFA

Software Engineer. Trader and Investor. CFA charterholder.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store