Many believe that not everyone is cut out to be a programmer. That’s hogwash, and here’s why:Programming:
- Programming is a way of telling a computer what to do.
- Every form of programming, with the possible exception of assembly/machine code, involves some form of abstraction. Many modern languages don’t even let you monkey with memory allocation, let alone register assignments.
Abstraction vs. Flexibiity
Different programming languages have differing levels of abstraction, and different capabilities:
- Perl is great for text processing, less so for 3D rendering or device drivers.
- Java is good for corporate database apps, less so for utilities or text processing.
- Flash is perfect for simple games, less so for first-person shooters and data processing applications.
Beyond Traditional Languages
There are other ways to “tell a computer what to do,” with even higher levels of abstraction and corresponding limited flexibility:Spreadsheet programs are great for defining moderately complex calculations on data sets, but not so useful for creating games or educational software.Photoshop is ultra-high abstraction programming: “telling a computer what to do.”Other forms of ultra-high abstraction include spreadsheets and customizable databases.There is currently a (perceptual) gap between ultra-high abstraction models and other forms of programming.The gap is closing (slowly).Eventually there will be no gap.