Several times over the past few months I have been asked what computer programming is. I find this understandable, because it is one of the things I study. But, despite this being a sensible question, I have yet to think of a totally satisfactory answer. If I’m feeling lazy I will simply say “Oh, it’s very abstract”, but that statement doesn’t really mean anything. If I’m feeling slightly less lazy I will say “I tell computers what to do”. This is a fairly accurate summary of what computer programming involves - it is, in fact, one of the first definitions of computer programming that I ever heard. However, when I first heard that definition, I found it quite misleading. After all, how can a computer be told what to do if it is not a living thing?
Computer Programming 101
Computers aren't smart - computer programmers are. So, just what is computer programming? Here is the simple answer.
The Humble Transistor
- billions of them
Indeed, a computer is not a living thing; it is an electronic device - but electronic devices are capable of “thinking” in a language of zeros and ones. This makes them capable of answering questions with two possible answers ( a Yes/No answer). The physical objects inside most computers that perform this logic are called transistors. Essentially, what a transistor does is take an electrical signal and either amplify it, or not amplify it. To a computer programmer; the difference between amplifying this signal, and not amplifying it, is the difference between a zero and a one (or a True and a False, or a Yes and a No). Computers have millions, or sometimes billions, of transistors - so that means a lot of ones and zeros.
Low Level and High Level Languages
- assembly language, the building block
It turns out, if you ask enough Yes/No questions, you can express just about anything - making binary code (the fancy name for these ones and zeros) a kind of language. A programmer can use this language to “teach” a computer another language - one that does not only involve ones and zeros. This low-level language looks like technical mumbo-jumbo to most people. Programmers can then use this low-level language (or assembly language) to create a high-level language, which looks slightly less like technical mumbo-jumbo.
|Programming for the Absolute Beginner (No Experience Required (Course Technology))|
Want to learn computer programming but aren't sure where to start? Programming for the Absolute Beginner provides a gentle learning curve in programming for anyone who wants to ...
|Beginning Programming All-In-One Desk Reference For Dummies|
So you want to be a programmer? Or maybe you just want to be able to make your computer do what YOU want for a change? Maybe you enjoy the challenge of identifying a problem and...
- and eye candy!
In a high-level language, you can give the computer instructions which actually make sense to humans, such as “ask the user to type a number, if this number is greater than three; tell the user to type another number”. You can also tell it to make all kinds of shapes and colours appear on the screen, meaning that you can use this language to create something like a word processor, a web browser, or even an application such as Wizzley!
Computer programming really is “telling computers what to do”. But, because computers aren’t very bright, this is actually quite a complicated task. If, as a computer programmer, you are often asked what you do - recite the above, but be prepared to hear the request "Can you repeat that please?"
|Python Programming: An Introduction to Computer Science 2nd Edition|
This is the second edition of John Zelle's Python Programming, updated for Python 3. This book is designed to be used as the primary textbook in a college-level first course in ...