I literally understand what a data-type is in a programming language like C++ or even C#; The question however is, how do you explain a seemingly ‘simple’ concept like that to a 10-12 year old to a point where he understands it well. Even before you do the explaining, you got make sure the concept itself is fully ingrained in your little mazzard. i recently read one of those-not-obviously awesome quotes from Albert Einstein “If you can’t explain it simply, you don’t understand it well enough.” this quote for the first time had an awesome new perspective that i definitely did not have before. So the next time you think you understand a concept really well, try to see if you explain it very simply to a young kid. Now i kinda feel the feel teachers have when explaining abstract concepts to kids or to even high school & college students especially those in STEM fields.
Understanding the purpose of type in programming language is also fundamental in understanding other data types built onto it. For example it would not be possible to understand structs, class type, pointers, memory use and many other conceptual terms in CS. Understanding type basics includes knowing the primitive types as well. (Cc. primitive types are the basic data types which for the most part are embedded or built in the OS; examples include int, float, char ..etc that more based on the OS architecture running either 32 or 64 bit operating systems.) ->FYI understanding Operating Systems will be a blog of its own pretty soon.
From basics, a data type mostly helps in structuring or organizing (or grouping) data properly, for purposes of ease in data-access and data-manipulation. Here is a simple example, imagine on your desktop computer having a bunch of downloaded documents with .docx .pptx .pdf etc for different classes and semesters all clustered without any order (or type). Accessing anyone of these docs could be a pain since there is on specific order (or type) to quickly access what you need. A good way to solve this would be creating different folders for specific class-course or by year, that way its easier to access them in case you want a specific doc for a certain course/year. When you look closely, the ‘concept of type’ is clearly ingrained in most of what we do and certainly very helpful. In this same way type in computers especially as software level of programming is that important.
For a second imagine a programming language that does not use any data types like ints or floats, as in it literally cant do type conversion or error detection, this would be obviously obnoxious. Not forgetting the fact that there be certain programing languages that don’t use type for example php that creates variables on the fly and does not have specific type. the fact that php is a server-side scripting language for mostly web development makes it more susceptible to needing less of type-kinda of manipulation that is evidently necessary in other programming languages like C++ or Java.
Anyone could definitely learn how to program without necessary understanding what type REALLY means and how useful it is in programing, Nevertheless anyone intending to deeply understand the mystery of computer programming or even being a great software engineer must definitely understand the underlying basics of type. Its that very fundamental. As a matter of fact i must admit that i finished college having taken programing classes in C++, C#, php, MySQL and other programing languages and must say that i passed these classes even when i never truly “understood” the core principles underlying many of the programming assignments i had to finish and submit online; on time. However, now so very glad that i can get to dive deep into this interesting lit-bit of programing mystery and un-cover these interesting fundamentals. I can already tell its going to be an interesting Adventure.
Watch out that next piece about Understanding Pointers and Memory Use in Computers.