It's possible to learn to drive a car without ever understanding how one works. (e.g. » what the pistons do, the crankshaft, transmission, differential, etc.) And many drivers do just that. No problem. But I like to know how things work. This includes my study of Programming.
My degree-path specified one "sciencey" Computer Science class. So naturally, that's all I took.
The first half covered the various components of a computer and their functions (» the processor, memory, hard drive, etc.). The second delved into programming (with Pascal) on a rudimentary level.
Our instructor seemed more interested in the girls in the class than teaching. In fact, the hottie (red-head) who I studied with in the hours immediately prior to the Final exam, told me she'd spent the night at his place. (Her hair was messed & she referred to him by his first name.)
Based on the material she suggested we review, I did not doubt her claim. Because it quickly became clear, soon as the Final was handed out, that her suggestions mirrored the material contained therein. (Much of this material was never covered in class.)
I have however, been delving into HOW programming languages work (crankshaft, pistons). I forget how I stumbled upon it, but there's an online version of this book: Programming Language Pragmatics .. located » HERE (Google books).
Actually, the online version is 2nd edition (2006), while the one for sale at Amazon is the 3rd (2009). But I doubt there's much difference .. that would matter to a rookie like me, anyway.
••• today's entry continues here below •••
Whatever the case, I've been learning how programming languages work. Not sure how long this book will continue to bear fruit, seeing I'm only on chapter 2.
I suspect, eventually, the material will become increasingly irrelevant .. as it moves on to increasingly complex topics. But so far, it's very much helping my understanding of HOW programming languages work (.. which is helping my study of Programming itself).
Didn't even know I was looking for a book like this .. until I started reading it. ( "This is great!" ). The Preface begins thusly:
After gaining some experience (presumably with the help of a good course in data structures & algorithms), the next natural step for the programmer is to wonder how programming languages work. This book provides an explanation. It aims, quite simply, to be the most comprehensive & accurate text available on the subject of how programming languages work, written in a style that is both engaging & accessible. This aim reflects my conviction that the more students understand what is really going on, the more of programming they will enjoy.
Much of learning any new field ('domain') consists in learning the TERMS associated with that field. At first, I had to keep stopping to find out what unfamiliar words meant. But now I'm able to cruise more smoothly. New phrases still send me searching, but not nearly as often.
It's kinda like working on a puzzle. At first, the going is slow. The bits of fragmented picture make no sense. But eventually you start to see somethng. A picture starts to form and you begin to see how the pieces fit together.
That's where I am. Things are starting to come together. It's starting to click. Pretty cool. (Cuz there are LOTS of new terms to learn.)
Programming is very much about » rules. You might even say it's ALL about rules .. just as math is all about rules. Both the military & the nuclear industry are also very much about rules (procedures). They don't want you getting "creative" with a reactor. So I know about rules & procedures. (Intimately.)
In fact, it wasn't that long ago when I'd spent so much time in the world Rules & Procedures ("verbatim compliance") that my 'creative' muscles were anemic .. from disuse. So I set out to develop them .. to try to bring some balance to my life.
In this area I've made much progress. But now, since delving into the world of Programming, I sense the pendulum swinging back the other way .. to the world of Rules & Procedures .. a place I know very well. Feels like .. coming home.
I'm definitely more comfortable operating in the world of Rules & Procedures (.. cuz I know it better). No emotion is involved. Your application is either right or wrong. No need to argue. Tho I guess and you could argue that learning how a car works makes driving more enjoyable. I would.
For more along these lines, here's a Google search preconfigured for the query » how programming languages work