No Magic
There is no magic in programming. Secluded towers of cables and equipment. Chairs suspended on beams from the wall. Men in black exploding shit with their furious key-mashing. Lines of random gibberish with occasional sequences of 0’s and 1’s. Movies might exaggerate the capability of guns and modern medicine, but it’s nothing like how computers are portrayed
Guys in trucks can’t blow up your computer by hacking around. You see, computer parts that explode just doesn’t fly with the FCC. Here’s a theory: CG guys and animators don’t get famous doing movies. So management satisfies them with computer-smart characters that can blow stuff up.
Believe me when I say programmers are all perfectionists. Naturally, people are used to super-high standards with computers. Dreams of utopian societies where computers make everything painless are inherently flawed. Most things can be taken care of by machine. Farming, construction, retail. Programs can handle all that. But who’s there to make the programs? If life becomes so convenient that higher-education becomes obsolete, nobody will know how to do anything anymore. A common motif: the doers, not the thinkers, will change the world. If so, the only jobs that will be relevant in the future are science-related ones. No more politicians, no more lawyers, no more businesspeople. But with these seemingly essential jobs removed, could a society function? Even the best of programs require constant development. Thus, a constant slew of programmers is required – required to maintain a perfect life-management system. But even with months of work, even the ideal program will wither.
A famous example of this: Google Wave. What happened? In a practical sense, Wave didn’t help the average consumer. It didn’t do anything for them, because it overlapped with existing services. We already have IM, text messaging, social networking and email to communicate. To the non-programmer community, Wave didn’t have anything particularly “new”. But in a technical sense, it was a breakthrough in web application programming. Only Google would have the server-power to match the bandwidth of the world – bouncing back data between users in real-time. Only Google would have taken on such a demanding project: inventing a protocol that would replace email. There are tons of practical applications for Google Wave (I can think of 10 off the top of my head). But above all, the UI was detailed beyond description. From embedding custom scrollbars to inline replies and editing, Google did a lot of scripting work that nobody really notices. It’s been more than a year since Google introduced Wave, and unless they a major comeback is around the corner, Wave is dead.
Second example: Internet Explorer. Why people still use it? I don’t know completely. But the main reason is: it still works. But at the same time, it doesn’t work at all. The paradox lies in the perfectionism of programmers. In this case: Wikipedia. The massive online encyclopedia recently went through a UI overhaul, but nobody really noticed because it looks exactly the same. But the proof lies beneath the surface:
Visit Wikipedia with 9-year-old piece of rubbish, Internet Explorer 6 and you’ll see that it looks just fine. But the truth is Wikipedia does a lot of background work to make it that way. See the code snippet? The lines of green text are called IE Conditional Statements. They link to other files that will fix problems with Internet Explorer.
In each of the Wiki-themes, there are separate Javascript and CSS files that fix problems in Internet Explorer. Only Internet Explorer will see load them, and therefore, use them. Because a huge website like Wikipedia can’t afford to lose visitors over browser-issues, they put in a lot of unnecessary effort to achieve this perfection. This process isn’t unique to Wikipedia; all major websites have some form of compensation for IE. Overall, so many websites have Internet Explorer-specific hacks that IE6 users still have no problem browsing the web. They’re so used to the extra effort web designers put in that they’ll never have reason to switch browsers.
If you haven’t noticed by now, this entire post was a scheme to lure in IE users with an interesting article description. Then as credibility was established, I would subliminally convince them that they need to switch to alternative browsing. Now, I’ll get back on topic:
Magic doesn’t exist. Seems like a simple concept, but it’s one that I keep forgetting. For instance, URL’s made to look like directory paths were genius when I first saw them. Does the script actually generate thousands of static pages for the sake of neater URL’s? Or perhaps, they’ve rewritten the web server software to use their custom file system they invented complete with indices that resolve URL’s to dynamic scripts? No magic there. Its basic regex url-rewriting.
At a simpler level: No. Facebook doesn’t hire people to type up every web page you see when you login. It’s dynamically generated. It’s fake. No. Youtube didn’t reinvent HTML forms when they did the posting-comments-without-stopping-the-video-or-changing-pages thing. It’s called AJAX. And guess what? It’s free (and it has been around for 15 years). To date, the entire concept of the magic key to programming has been the biggest source of procrastination.
And no, programmers don’t think with 0’s and 1’s scrolling in their heads. Nobody does that. A bunch of 0101000100 on a computer would be absolutely meaningless. At the very least, hexadecimal or some kind of grouping system is needed. Unless you’re planning to be a optimization analysts, you don’t need to bother with the details behind programming.
But Roger, this is so obvious. What’s your point? Well damn, I never had anyone telling me this stuff. There was no “Introduction to Programming” seminar for me. So for years, I wandered around like an idiot wondering “wtf is a loop?”
Oh yes, and that IB letter that came today. The money for being in IB increased by $200-some dollars this year (because of the financial crisis, apparently). They sent out a letter along with a list of things that we have to pay for. It didn’t list the individual costs, but only the final price. But with the numbers there and a little algebra, anyone can figure out what each of the items should cost. (Assuming their numbers are strait) It comes out toabout $4.86 for each of the overnight shipping things. 12 shipments sums to $58. But the price increased by $261. So more than $200 is going to wait… Extended Essay Advisor? CAS Advisor? I don’t know who those people are yet, but I’m assuming they’re teachers at school. So they get $100 per kid that joins IB ($200 if you count both years). That’s a heck of a deal. It makes sense that teachers get paid for helping out with IB. So did the state stop paying teachers $100/kid for their help? If so, that means the state was paying $100/kid before. If not, they’re just squeezing us for money. Of course, money squeezing could be justified easily. Free Home-Remodeling when you help overworked asian kids deal with their anguish. Wonderful.
I was watching this show called “Design For Life” on the flight back to LA. It completely changed the way I saw engineers. Go check it out (episode 1):