Web info-x
   
THIS SITE IS FOR SALE
 
 
Info / Misc
 Info-x : Info-x Tutorials and Documents : Info / Misc
Message Icon Topic: The Beauty of Programming Post Reply Post New Topic
Author Message
deej
Admin Group
Admin Group


Joined: 22 Nov 1997
Online Status: Offline
Posts: 3
Quote deej Replybullet Topic: The Beauty of Programming
    Posted: 14 Dec 2004 at 17:16
I don't know how to really explain my fascination with programming, but I'll try. To somebody who does it, it's the most interesting thing in the world. It's a game much more involved than chess, a game where you can make up your own rules and where the end result is whatever you can make of it.

And yet, to the outside, it looks like the most boring thing on Earth.

Part of the initial excitement in programming is easy to explain: just the fact that when you tell the computer to do something, it will do it. Unerringly. Forever. Without a complaint.

And that's interesting in itself.

But blind obedience on its own, while initially fascinating, obviously does not make for a very likeable companion. What makes programming so engaging is that, while you can make the computer do what you want, you have to figure out how.

I'm personally convinced that computer science has a lot in common with physics. Both are about how the world works at a rather fundamental level. The difference, of course, is that while in physics you're supposed to figure out how the world is made up, in computer science you create the world. Within the confines of the computer, you're the creator. You get to ultimately control everything that happens. If you're good enough, you can be God. On a small scale.

And I've probably offended roughly half the population on Earth by saying so.

But it's true. You get to create your own world, and the only thing that limits what you can do are the capabilities of the machine and, more and more often these days, your own abilities.

Think of a treehouse. You can build a treehouse that is functional and has a trapdoor and is stable. But everybody knows the difference between a treehouse that is simply solidly built and one that is beautiful, that takes creative advantage of the tree. It's a matter of combining art and engineering. This is one of the reasons programming can be so captivating and rewarding. The functionality often is second to being interesting, being pretty, or being shocking.

It is an exercise in creativity.

The thing that drew me into programming in the first place was the process of just figuring out how the computer worked. One of the biggest joys was learning that computers are like mathematics: You get to make up your own world with its own rules. In physics, you're constrained by existing rules. But in math, as in programming, anything goes as long as it's self-consistent. Mathematics doesn't have to be constrained by any external logic, but it must be logical in and of itself. As any mathematician knows, you literally can have a set of mathematical equations in which three plus three equals two. You can do anything you want to do, in fact, but as you add complexity, you have to be careful not to create something that is inconsistent within the world you've created. For that world to be beautiful, it can't contain any flaws. That's how programming works.

One of the reasons people have become so enamored with computers is that they enable you to experience new worlds you can create, and to learn what's possible. In mathematics you can engage in mental gymnastics about what might be. For example, when most people think of geometry, they think of Euclidian geometry. But the computer has helped people visualize different geometries, ones that are not at all Euclidian. With computers, you can take these made-up worlds and actually see what they look like. Remember the Mandelbrot set¾the fractal images based on Benoit Mandelbrot's equations? These were visual representations of a purely mathematical world that could never have been visualized before computers. Mandelbrot just made up these arbitrary rules about this world that doesn't exist, and that has no relevance to reality, but it turned out they created fascinating patterns. With computers and programming you can build new worlds and sometimes patterns are truly beautiful.

Most of the time you're not doing that. You're simply writing a program to do a certain task. In that case, you're not creating a new world but you are solving a problem within the world of the computer. The problem gets solved by thinking about it. And only a certain kind of person is able to sit and stare at a screen and just think things through. Only a dweeby, geeky person like me.

The operating system is the basis for everything else that will happen in the machine. And creating one is the ultimate challenge. When you create an operating system, you're creating the world in which all programs running the computer live¾basically, you're making up the rules of what's acceptable and can be done and what can't be done. Every program does that, but the operating system is the most basic. It's like creating the constitution of the land that you're creating, and all other programs running on the computer are just common laws.

Sometimes the laws don't make sense. But sense is what you strive for. You want to be able to look at the solution and realize that you came to the right answer in the right way.

Remember the person in school who always got the right answer? That person did it much more quickly that everybody else, and did it because he or she didn't try to. That person didn't learn how the problem was supposed to be done but, instead, just thought about the problem the right way. And once you heard the answer, it made perfect sense.

The same is true in computers. You can do something the brute force way, the stupid, grind-the-problem-down-until-it's-not-a-problem-anymore way, or you can find the right approach and suddenly the problem just goes away. You look at the problem another way, and you have this epiphany: It was only a problem because you were looking at it the wrong way.

Probably the greatest example of this is not from computing but from mathematics. The story goes that the great German mathematician Carl Friedrich Gauss was in school and his teacher was bored, so to keep the students preoccupied he instructed them to add up all the numbers between 1 and 100. The teacher expected the young people to take all day doing that. But the budding mathematician came back five minutes later with the correct answer: 5,050. The solution is not to actually add up all the numbers, because that would be frustrating and stupid. What he discovered was that by adding 1 and 100 you get 101. Then by adding 2 and 99 you get 101. Then 3 and 98 is 101. So 50 and 51 is 101. In a matter of seconds he noticed that it's 50 pairs of 101, so the answer is 5,050.

Maybe the story is apocryphal, but the point is clear: A great mathematician doesn't solve a problem the long and boring way because he sees what the real pattern is behind the question, and applies that pattern to find the answer in a much better way. The same is definitely true in computer science, too. Sure, you can just write a program that calculates the sum. On today's computers that would be a snap. But a great programmer would know what the answer is simply by being clever. He would know to write a beautiful program that attacks the problem in a new way that, in the end, is the right way.

It's still hard to explain what can be so fascinating about beating your head against the wall for three days, not knowing how to solve something the better way, the beautiful way. But once you find that way, it's the greatest feeling in the world
IP IP Logged
Seb
Newbie
Newbie


Joined: 14 Dec 2004
Online Status: Offline
Posts: 11
Quote Seb Replybullet Posted: 16 Dec 2004 at 16:09
I've never thought of programming this way. Each time I program, it is for the technic, just to see a beautiful thing I've created. I know how does it work, I know all the things it composed of. That's why I like programming
Seb, apprentice in network tools
IP IP Logged
DrOwl
Groupie
Groupie


Joined: 14 Apr 2000
Location: UK
Online Status: Offline
Posts: 945
Quote DrOwl Replybullet Posted: 16 Dec 2004 at 16:49
oh yes i aggree Programming is most fun indeed, i like to think of it as a logic game...

you have X and you need to make Y , and you have to find the best way to do all the steps in-between.

alltho the smashing head agains the wall bit isnt to fun at the time its what you learn from it that counts.
some time i can spend days trying to get one little bit working ending up with masses of code, then ill look back when its working and relise i could do it all in one line, i just had to figger out what it was i really needed to do.

im oftern prowd of my self when i get soem thing working and learn something new, but its amasing how meny ppl go blank when i try to show it off =)


/me thinks to him slef he should make a script archive =)
<-- [url=http://23.me.uk/blog]23 me blog[/url] --> <-- [url=http://www.spreadfirefox.com/?q=affiliates&id=30837&t=70]Get FireFox Now[/url] --> <-- [url=http://is-root.de/wiki/]S²³ Wiki[/url] -->
IP IP Logged
H.IT
Groupie
Groupie


Joined: 08 Feb 2004
Location: Antarctica
Online Status: Offline
Posts: 601
Quote H.IT Replybullet Posted: 16 Dec 2004 at 17:04
As much as I agree with you all, you seem to have missed an important point.

It's not so important how you crack a nut, but what you crack it with!

So being able to select the correct tool for the job is as great a skill as being able to write the code. When you can do both of these things, then you will be able to produce something most beautiful!
"Security" isn't a dirty word, "Crevice" is a dirty word, but "Security" isn't!
IP IP Logged
DrOwl
Groupie
Groupie


Joined: 14 Apr 2000
Location: UK
Online Status: Offline
Posts: 945
Quote DrOwl Replybullet Posted: 16 Dec 2004 at 17:18
yes making shore you dont use a paper nutcracker is a good idear too...


i also find talking to my self helps
<-- [url=http://23.me.uk/blog]23 me blog[/url] --> <-- [url=http://www.spreadfirefox.com/?q=affiliates&id=30837&t=70]Get FireFox Now[/url] --> <-- [url=http://is-root.de/wiki/]S²³ Wiki[/url] -->
IP IP Logged
UnaBomber
Senior Member
Senior Member


Joined: 02 Feb 1998
Location: Kazakhstan
Online Status: Offline
Posts: 1400
Quote UnaBomber Replybullet Posted: 16 Dec 2004 at 20:14
Actually I would find that very useful, a System admins scripting thread.... I'll start one with some scripts I use for to envoke different stuff
"Blah Blah Blah."
--Me
IP IP Logged
Seb
Newbie
Newbie


Joined: 14 Dec 2004
Online Status: Offline
Posts: 11
Quote Seb Replybullet Posted: 17 Dec 2004 at 12:44
We'll see the result...
Seb, apprentice in network tools
IP IP Logged
wolph
Newbie
Newbie


Joined: 20 Aug 2003
Location: Sydney, Australia
Online Status: Offline
Posts: 704
Quote wolph Replybullet Posted: 16 Jan 2005 at 15:24
nice article, i feel the same way..the fun bit is making it cause u learn so many new things on the way. The end result is something to be proud of, your telling the computer to do something. In a way your talking to it
The reason i first started programming was because i was so interested in how computers worked. i was amazed by the fact that u can connect to a computer on the other side of the world, it was like travelling but in a digital form. For me computers are a world and programming is the language spoken within it.
IP IP Logged
sithlord
Newbie
Newbie


Joined: 06 Jun 2005
Location: Hamilton ON
Online Status: Offline
Posts: 110
Quote sithlord Replybullet Posted: 06 Jun 2005 at 02:40
Im glad someone feels the same way i do lol. Yes its an amazing experience, feeling so in control when u conquer the lines of code that u kept forgetting.

Its not fair that all major programs are not open source and that if u download a free program and it has an ugly banner ad, ur pretty much stuck with it, unless, like u said, ur good enough to be god.

Making my own programs is thrilling. I just recently made one that figures out the day of week of any date in history. You can set the reference point from today's date to a closer date to reduce the lag time of the loop. It was in vb, the language in which i am most efficient.

Next year im taking programming in skool again. Ppl in there learn more vb at the beginning of the year but eventually go into python and C. I dont know how far they get. Il go as far as i can, cause i really want to be the ultimate programmer one day.

A really easy program that may not be well known is turing. U can get it for free if u look hard enough. Its the most basic form of basic lol but its good for interfacing and making ur own parallel port peripherals which is why i use it :)

Keep up the programming f00
Its like speed 2, only with a bus, not a boat!
IP IP Logged
Post Reply Post New Topic
Printable version Printable version

Forum Jump
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot delete your posts in this forum
You cannot edit your posts in this forum
You cannot create polls in this forum
You cannot vote in polls in this forum

Bulletin Board Software by Web Wiz Forums version 8.04
Copyright ©2001-2006 Web Wiz Guide

This page was generated in 0.078 seconds.
  Log in  
User:
Pass:
Remember Me:
Register
Forgot Password
  Christmas Gifts  

Bar Gifts
Xmas Gifts for Him
Xmas Gifts for Dads
Gadgets and Gizmos
Sporting Gifts
Games
Unique Lifestyle Gifts
Geek Gifts
iPod Mains Charger More Gadgets

THIS SITE IS FOR SALE
Sedo - Buy and Sell Domain Names and Websites project info: info-x.co.uk Statistics for project info-x.co.uk etracker® web controlling instead of log file analysis