https://dinis-maga.medium.com/a-guide-to-easing-the-shift-from-high-level-to-low-level-programming-languages-2e4baa7f7913