programming genius and design genius

Started by
13 comments, last by pcxmac 17 years, 12 months ago
Good, seasoned designers know what choices will lead to a good design. For a beginner, each design choice opens a door to the unknown. The experienced designer is like a good chess player: She can see more moves ahead. This takes time to learn. Maybe this is the reason why programming genius may show at an early age, whereas software design genius tends to take more time to ripen. what is different between them? I think programming genius is better, because if you take time, you will became a design genius.how about programming genius?
Advertisement
i'm going to have to go with the programming genius is "better" for the lack of another term i guess. just because in order to pull off a great design, a programmer has to be able to understand thoroughly the way that the various parts of the program will come together to achieve that design. I also think it's interesting, assuming it was intentional, that you referred to this experienced designer as a "she", definitely something that is not very common.
Well, I think that designing a software is not really the same as programming it. I consider myself a programmer, even if my boss says i'm a designer.

I don't want to say something like "a designer is more important than a programmer" because the coding part is really really important. You can always have a poor software design but a really elegant code : what is important is "does it run or not ?". Of course the design is important, but a customer will prefer something poorly (not badly) designed but solid as a rock than the opposite.

The difference is quite important : a designer does not care about lines of code, he must assumes they are rightly coded. He's in charge of defining not only how the software will work *soon*, but also how it will work later, and which feature will be included, and how to minimize the work required to build another software on the same code, and many strategy issues. It is not really related to programming, but many software designers are also handling the programming part.

In both programming and designing, you have *geniuses* : people that were already really good when they were 10, but it's a case-per-case basis so it is difficult to say anything general about them.
I think, as with many other disciplines, that experience is really what makes the difference between not-genious-people. It is the experience, and only the experience, that will lead you to good decisions.

Of course, everything in here is in "my honest opinion" and I am probably wrong on many points, but it is what I think right now.

Quote:Original post by derek7
Good, seasoned designers know what choices will lead to a good design. For a beginner, each design choice opens a door to the unknown. The experienced designer is like a good chess player: She can see more moves ahead. This takes time to learn. Maybe this is the reason why programming genius may show at an early age, whereas software design genius tends to take more time to ripen.

what is different between them? I think programming genius is better, because if you take time, you will became a design genius.how about programming genius?


What is the definition of a programming genius? IMHO this kind of guy don't exist, because programming without design is just applying the syntax of a language to a problem. It can't lead to any kind of complex program, hence don't prove anything at all. As a consequence, a programming genius have to be a good designer.

Have you a clearer definition?

Regards,
Design and coding each have their own place. It is not differnt then a car, you first design and then you build. In either stage the car can be make right or wrong. If the designer does his/her job right then the car will work good, look good and be easy to build. If the builder does his/her job right then the car will function right, look rightr and last a long time. The designer and the builder must work together to make the car come out right.

Without a "good" design the program with be harder to code, not work as well and be much harder to update. Can a great coder help in some of these things, sure, but in the end he is doomed to make a fair product instead of a great one. But you can have the best design in the world and if the coders are not up to the task then you will end up with a buggie pile.

So who is more important, neither. It is like asking which is more important, the heart or the lungs, well if you loose either you die.

theTroll
I would compare these to a driver/navigator pair, ala WRC.
With a great driver and a slack navigator, you can go really fast in the wrong direction.
With a great navigator and slack driver, you will get there slowly but surely.

As far as programming goes, if you don't mind spending a whole lot of time coding the wrong thing a few times before you get it right, then programming is more important.
I agree with the above that someone who is thought to produce genius level programs is most likely a genius designer and programmer.

With that said, I if given a choice I would rather pick a genius designer over a genius programmer for a team. A top designer will have things set up in a way that avg programmers will be able to get by and get things done. A top programmer will have a hard time getting out of a bad design.

IMHO (and all the profs I've had and others software types I've worked with) design usually plays a bigger role in system robustness than the code details anyways.
Are you guys talking about me again?
-----------------------------Language: C++API: Win32, DirectXCompiler: VC++ 2003
A good design vastly simplifies a system and negates the need for programming genius.
A "programming genius" is simply a "design genius" with a bit of programming education.

This topic is closed to new replies.

Advertisement