Skip to main content
gamedev.net
🔒 Locked

Most difficult programming feat...

Started by ragonastick Sep 29, 2000 at 7:01 AM 41 replies 1.3k views
Original Post
ragonastick
ragonastick
What would you say is the ultimate test of programming? Something that some people can do, but not all, something that only a few can explain in English, something that takes brains to be able to comprehend and basically something special? I put it to you, that the ultimate is not in making killer 3d graphics, or an ultra realistic combat engine, but in making Artificial Intelligence which is actually intelligent. Think about it, physics engines: You already have the laws of physics set out in front of you. Graphics engines? You already have you own eyes to show you what to put on the screen. But with AI, all you have is psychology textbooks (and they are a great read I find) and your own and other peoples minds to explore. Am I overlooking something? Am I a total fool (yes, but that''s not the question) What do you think? Trying is the first step towards failure.
Trying is the first step towards failure.
MadKeithV
MadKeithV
The most challenging problem: Solving the Travelling Salesman problem in Polynomial Time, or proving it cannot be done.

Then again, that''s a very typical Computer Science problem, and nowhere near as fuzzy as the AI challenge, though again, nobody knows for sure if it can be done!



People might not remember what you said, or what you did, but they will always remember how you made them feel.
~ (V)^|) |<é!t|-| ~
It's only funny 'till someone gets hurt.And then it's just hilarious.Unless it's you.
LeeW
LeeW
The ultimate test of programming is programming something you don''t know about, and getting it to work, even if it is just declaring a variable

Lee
justj
justj
This is more of a coding challenge than a programming one, but this is something I thought of a long time ago --

Not sure how PC machine code works, but on an IBM mainframe, instructions can be 2, 4 or 6 bytes long. So anyway, the challenge is - construct a program so that in its machine language representation, if you start executing at an offset of 2 bytes from the start of the original program, you execute an entirely different but also valid program.

I actually thought about writing a book wherein somebody would use this technique to create the ultimate virus.

"It's obvious isn't it Miller? Curiosity killed these cats!"
"It's obvious isn't it Miller? Curiosity killed these cats!"
JonStelly
JonStelly
AI isn''t really a test of programming, it''s more of a test of logic and math skills. If you''re talking about neural networks, it''s all a matter of determining thresholds and when to fire which synapse.

I kind of agree with the previous post that simply claims that doing something new to you is the ultimate test.
clonemaker
clonemaker
limitations of dated technology plays a big factor in programming skills. Code the human brain on a 486. code the milky way.
cmaker- I do not make clones.
Stoffel
Stoffel
The most difficult test of programming (for me) is keeping a large program stable, and keeping all parts of it tested as it grows.

Synchronization issues between multiple threads is also a bear--once there''s a problem, it''s very difficult to find a solution.
Houdini
Houdini
I don''t think learning something new is the ultimate test of programming. Anyone can be taught. There are only a few ways to declare a variable, for instance, and they are all concrete. These can be taught very easily.

What I think is the ultimate test, is the "non-concrete" parts of programming. For instance, program design. PROPER program design can''t really be taught. There is no concrete way to do it. You can''t say "This is what classes you will have, and this is how they should interact with each other".

Here''s a quote from Chris Hargrove on what he calls the 5th stage in the developement of a programmer, which explains what I''m talking about:

"Stage 5 - Holistic. Programmers at this stage attempt to see projects from all angles, before and during construction. Software engineering decisions become disciplined, and a project''s implementation becomes a mere manifestation of its design, not the controlling force. Construction details and related problems are increasingly seen before they happen, with the programmer capable of focusing on multiple levels of a design simultaneously."

This is where programming truly becomes an art, and it is something that just cannot be taught. IMO, most programmers will never reach this level.
Houdini
xtrmntr
xtrmntr
program a real OS without having it deadlock or crash everyday...
Aether
Aether
I agree with xtrmntr. As I see it, in order to program an OS, it must support the applications it runs, remain stable through running them, and otherwise provide the foundation for all programatic functions. Please don''t flame me too much, as I am just a beginner.
sEntiEnt
sEntiEnt
Coding a high level programming language

perception -> Consciousness -> life
Zook
Zook
Programming a 3d engine in Qbasic shouldn''t be too hard. Just wait 50 years and the computers will be fast enough.
clonemaker
clonemaker
quote:
Original post by sEntiEnt

Coding a high level programming language

perception -> Consciousness -> life



i then, am ultimate.
cmaker- I do not make clones.
Gorky
Gorky
Hello world of course!

Just kidding.
I think creating the perfect, superfunctional, 100% error free operating system, with a super easy language (also superfunctional and error free) would be quite the feat.

Then all other programming feats become easier!
TimSmith
TimSmith
I have to agree with the Chris Hargrove quote.

You really can''t look at any one problem or class of problems and say that if you have mastered those, then you are a programming god. For example, (I am not trying to be egotistical here) let''s compare John Carmack with myself. People here have mentioned 3D engines and multi-threading.

In Carmack''s own words, he is only now comfortable writing multithreaded applications. Myself, I been doing multiple thread, multiple process and multiple node applications for a long time. If you think multithreading is hard, you should try developing mission critical distributed databases that have to endure localized failures. When it comes to multithreaded applications, I can program circles around Carmack.

Now, 3d engines. No need to go into detail here. He is god, I am an idiot.

So, who is the better programmer? Who knows? I have learned a lot reading Carmack''s code. I would hope, that if Carmack ever read any of my code there might be something useful he could learn from me. But I am not holding my breath.

FYI: My programming hero? Dave Cutler, currently of Microsoft, but best known for his work in the OS department of Digital Equipment Corp.

Tim
tcs
tcs
The hardest challenge must be a challenge that can''t be solved by a brute force method. Everyone can code a good 3D engine on an infinetly fast computer in an infinite amout of time... I think even one of todays Neuronal Networks can become smarter than any human if you run theom on a 100 billion exaplop CPU with 100 million terabyte of RAM...



Tim

--------------------------
glvelocity.gamedev.net
www.gamedev.net/hosted/glvelocity
Tim--------------------------glvelocity.gamedev.netwww.gamedev.net/hosted/glvelocity
Vorador
Vorador
I think the biggest programming feat would be being happy with what you coded 100% and making everyone 100% happy with your code. That is a real challenge :-p




"This just goes to show that there are only two kinds of people in this world, stupid people... and me."
--------------------------------------------------------"This just goes to show that there are only two kinds of people in this world, stupid people... and me."
ahw
ahw
quote:

A novice asked the Master: "Here is a programmer that never designs, documents or tests his programs. Yet all who know him consider him one of the best programmers in the world. Why is this?"

The Master replied: "That programmer has mastered the Tao. He has gone beyond the need for design; he does not become angry when the system crashes, but accepts the universe without concern. He has gone beyond the need for documentation; he no longer cares if anyone else sees his code. He has gone beyond the need for testing; each of his programs are perfect within themselves, serene and elegant, their purpose self-evident. Truly, he has entered the mystery of Tao."

The Tao of Programming.

That''s my definition of being an ultimate programmer... Even though this is more of a parody, this is actually what I believe in
-----------------------------Sancte Isidore ora pro nobis !
Falden
Falden
I think that the most ultimate test of programming is to make something that everyone says is impossible, like blowing up a computer using QBasic, (ever even tried?) or making Windows not crash every few minutes and then take another 5min to boot up (that''s my biggest problem).

Anyone wanna take a crack at the second? (I''d greatly appreciate it!) And if anyone figures out the first one, send me the code. (Heheh... Here Mr. CS-Teacher, here''s my assignment, why don''t you run it somewhere far away from me?)

Falden
Buster
Buster
Try making a playable game with a MAC.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.