<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Fundamentals on vhmp.dev</title><link>https://vhmp.dev/programming/teaching/programming-fundamentals/</link><description>Recent content in Fundamentals on vhmp.dev</description><generator>Hugo</generator><language>en-us</language><copyright>© 2026 Vu Huy Minh Pham · Text: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/legalcode) · Code: [MIT](https://mit-license.org/)</copyright><atom:link href="https://vhmp.dev/programming/teaching/programming-fundamentals/index.xml" rel="self" type="application/rss+xml"/><item><title>Values</title><link>https://vhmp.dev/programming/teaching/programming-fundamentals/values/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://vhmp.dev/programming/teaching/programming-fundamentals/values/</guid><description>&lt;p&gt;This page was created with the assistance of &lt;a href="https:openai.com/index/gpt-5-6/"&gt;GPT-5.6 Sol&lt;/a&gt;.&lt;/p&gt;&#10;&lt;h2 id="values"&gt;Values&lt;a class="anchor" href="#values"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;This is the first programming concept that student learns. The prerequisites are omitted. Any difficulty in understanding would come from a lack of vocabulary due to age or the lack of engagement of innate intuition.&lt;/p&gt;&#10;&lt;h3 id="why-values-are-the-first-thing-you-understand"&gt;Why Values Are the First Thing You Understand&lt;a class="anchor" href="#why-values-are-the-first-thing-you-understand"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;There is no way to directly represent what a value is in any programming language. One might say that in programming language X, I can make a variable that is assigned a value. While that is functionally accurate, a value is more so an idea of the kind of information a computer can store, pass around, choose, change, remove, etc.&lt;/p&gt;</description></item><item><title>Data Types</title><link>https://vhmp.dev/programming/teaching/programming-fundamentals/data-types/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://vhmp.dev/programming/teaching/programming-fundamentals/data-types/</guid><description>&lt;p&gt;This page was created with the assistance of &lt;a href="https://openai.com/index/gpt-5-6/"&gt;GPT-5.6 Sol&lt;/a&gt;.&lt;/p&gt;&#10;&lt;h2 id="data-types"&gt;Data Types&lt;a class="anchor" href="#data-types"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;After learning &lt;a href="https://vhmp.dev/programming/teaching/programming-fundamentals/values/"&gt;values&lt;/a&gt; are, it&amp;rsquo;s likely that you have already &lt;a href="https://vhmp.dev/programming/teaching/programming-fundamentals/#what-about-the-first-programming-language"&gt;chosen a programming language&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;Most general-purpose programming languages share a small set of common basic data types.&lt;/p&gt;&#10;&lt;blockquote class='book-hint note'&gt;&#10;&lt;p&gt;&lt;strong&gt;General-Purpose&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;If you choose a programming language that&amp;rsquo;s attractive to beginners, they are most definitely &lt;code&gt;general-purpose&lt;/code&gt;.&#10;Domain-specific language (DSL) is another type of programming language. These languages cannot build any type of software (yes, even JavaScript, a general-purpose language can build an operating system that&amp;rsquo;s extremely inefficient).&lt;/p&gt;</description></item><item><title>Variables</title><link>https://vhmp.dev/programming/teaching/programming-fundamentals/variables/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://vhmp.dev/programming/teaching/programming-fundamentals/variables/</guid><description>&lt;h2 id="variables"&gt;Variables&lt;a class="anchor" href="#variables"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Think of variables as a tracker of values. Typically, we say that we &lt;code&gt;create&lt;/code&gt; a variable and we &lt;code&gt;assign&lt;/code&gt; a value to that variable. We also often can say that we &lt;code&gt;intialize&lt;/code&gt; a variable with a &lt;code&gt;value&lt;/code&gt; if we want to be specific and say that memory is allocated to a variable and it will automatically keep track of a specific &lt;code&gt;value&lt;/code&gt;.&lt;/p&gt;&#10;&lt;p&gt;To use a variable, you have to make sure it is declared (and most likely defined in the same process).&lt;/p&gt;</description></item><item><title>Namespaces</title><link>https://vhmp.dev/programming/teaching/programming-fundamentals/namespaces/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://vhmp.dev/programming/teaching/programming-fundamentals/namespaces/</guid><description>&lt;h2 id="namespaces"&gt;Namespaces&lt;a class="anchor" href="#namespaces"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;blockquote class='book-hint warning'&gt;&#10;&lt;p&gt;&lt;strong&gt;Warning&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;This is a more complex topic that can be skipped over for the first time you learn a programming language. It becomes important if you&amp;rsquo;re learning the historical trend of how unmanaged languages are designed which includes especially C, C++, Rust&amp;hellip;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Namespaces prevent naming conflict and they categorize different and names (synonymously labels, or &lt;code&gt;identifiers&lt;/code&gt;).&lt;/p&gt;&#10;&lt;p&gt;We generalize &lt;a href="https://vhmp.dev/programming/teaching/programming-fundamentals/variables/"&gt;variables&lt;/a&gt; to introduce the term &lt;code&gt;identifiers&lt;/code&gt;. A variable is a type of identifier. An identifier syntactic form of a name of a code element like function, variables, classes&amp;hellip; In C++ variables without a specified &lt;code&gt;namespace&lt;/code&gt; is inside the &lt;code&gt;global namespace&lt;/code&gt;. Standard C does use the term &amp;ldquo;namespace&amp;rdquo; but it is a different meaning than C++; &lt;code&gt;namespace&lt;/code&gt; in C is just a categorization of identifier while &lt;code&gt;C++ namespaces&lt;/code&gt; can group any identifiers together in a way that a programmer define instead of as mechanic of the compiler.&lt;/p&gt;</description></item><item><title>Scope</title><link>https://vhmp.dev/programming/teaching/programming-fundamentals/scope/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://vhmp.dev/programming/teaching/programming-fundamentals/scope/</guid><description>&lt;p&gt;Different from &lt;a href="https://vhmp.dev/programming/teaching/programming-fundamentals/namespaces/"&gt;namespaces&lt;/a&gt;, scope rules the declarations the computer can look up at a particular point in the translation unit. Scope does not have anything to do with access control which can deny the usage of a declaration if it&amp;rsquo;s for example &lt;code&gt;private&lt;/code&gt; or &lt;code&gt;protected&lt;/code&gt; in programming languages that you can set access control.&lt;/p&gt;&#10;&lt;blockquote class='book-hint note'&gt;&#10;&lt;p&gt;&lt;strong&gt;Declarations&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;A declaration introduces names (which include identifiers or non-identifiers) into a namespace (an existing classification or &lt;code&gt;arbitrary&lt;/code&gt; grouping defined by a programmer).&lt;/p&gt;</description></item></channel></rss>