Support document for my video series about learning to program computers from the ground up.
©2024 Chris Athanas
A follow-along guide for anyone who wants a solid understanding of software development as a semi-historical walk through the essential parts of computing leading to present day software development paradigms.
This is not a thorough deep dive into any one topic, but a broad overview of the core concepts and principles that are missing from most programming tutorials and courses. My goal is to give you the context about why things are the way they are in computing, and how they came to be that way, and the issues and problems that arose from things being that way.
I have found that it's far more important to understand the process that people went through to create the current solutions than to understand the mechanical details of how the solution work. Many details about the disadvantages and limitations are often left out technical discussions, or worse, simply not known or dismissed as irrelevant due to ignorance.
$\textcolor{yellow}{Please\ consider\ giving\ me\ a\ STAR\ as\ THANKS!\ ⭐️ 🤩}$
This document is a reference and follow along guide for my video series on YouTube:
Check out the discussion group: https://twitter.com/i/communities/1759753866219040980
This is a "how-to" guide for anyone interested in creating software who needs an overview of techniques and concepts
used, from the fundamentals of physical logic representation to high-level programming languages and
the "how
" and "why
" of the various paradigms and methodologies used in software development.
Understand more the why
and how
of programming, not just the what
and mechanical explanations.
WHY
things are the way they are in computing, and HOW
they came to be that way.I have since discovered that the majority of my confusion derived from how things were presented to me. Instructors often completely misunderstood correct application and limits of metaphors and lacked real-world experience of the things they were teaching. Many just repeated what they were taught without understanding. When challenged about their knowledge, they would often become defensive and dismissive, and sometimes even hostile.
Many of the concepts are, in retrospect, full of needless jargon and unnecessary complexity. I now understand that the complexity was often used to make the instructor seem more knowledgeable and to make the subject seem more difficult than it actually is.
I would like to say at the outset that there is a TREMENDOUS number of technical-sounding words with all referring to the same basic core ideas. I will do my best to be as consistent as possible, and also work to point out the multiple definitions and reduce the jargon and clarify the core meanings and ideas.
THERE IS NO MAGIC IN COMPUTING, ONLY HUMAN CLEVERNESS, HUMAN SYSTEMIC THINKING AND HUMAN INGENUITY USED TO SOLVE HUMAN PROBLEMS.
Navigate to this README.md
file in the project and click on the links to the live sample code.
In the left-hand gutter, click on the green arrow to run the sample code.