Advertisement

What makes a GOOD programmer?

Started by November 07, 2001 04:20 PM
39 comments, last by Dale 23 years ago
quote: Original post by Dale
Are there any "secondary" skills required outside of programming? I''ve heard some people say that a background study of physics and maths is beneficial (which I have at first-year uni level) and problem-solving skills (which I have a knack for, why I went into support originally. )

Math and physics are very useful because a) computers are mathematical (their entire operation is based on binary math and boolean algebra, when viewed at a low enough level); and b) because many problems you will be faced with solving will involve a fair degree of math, especially calculus (rate of change anyone?)

In some situations you''ll be given the formulaic solution to your problems, so all you need to do is code/implement. Most of the time, however, you''ll be given fairly broad objectives and left to find a solution on your own. Which leads us to your next question...

quote: How much and what parts of the programming cycle, is a programmer allowed to exercise independant decision-making? I assume there wouldn''t be too much in the design cycle, but when it comes down to HOW an outcome is reached it would be a lot of decision-making. Is this true?

Yes... no... it depends.

(And in the final analysis, the answer to most questions is "it depends.")

There are definite instances where you will be given a set of parameters (inputs) and a desired outcome/output and told to do it your way. In such situations, you obviously have total flexibility, and might want to find the most efficient or most flexible way so that you can reuse your code. Other times you may be extending or integrating with existing software, meaning you may be confined by the (possibly bad) decisions made by the original software designer(s). In cases like this, grit your teeth and get through it as quickly as possible.

Case number three is when you''re asked to "update" (ie rework that pile of shit) or "modernize" (ie untangle my spaghetti and produce lovely OO) code. In such cases, I almost always advocate a complete redesign; it''s what I did for one of my former employers (never got to finish the app sadly). Figure out what is done, when, how and why, and incorporate that knowledge into an elegant framework of your design. You can rip out relevant pieces of code if you want to, but you''ll probably end up tracing globals and renaming variables till your hair turns white.

So, as you can see, the answer truly is "it depends."


I wanna work for Microsoft!
quote: Original post by CruxMihiAncora
I would have to disagree that you have to use C++ and/or Assembly in order to be a GOOD programmer.


agreed.

its not what you know, its how you use it.


Edited by - Bezzant on November 7, 2001 6:56:33 PM
Advertisement
Without doubt the most important skill is:

Problem solving.

Language is not important at all. If you are a good programmer you will know when to use what language and how to use it most effectivly.

Once you become a programmer you will

- reduce complex problems to simple sub problems
- write code that is easy to read from an outsider
- use the most effective algorithms (or most elegant)
- express your code in english or any other native language
- program fast and know how to reuse your code

It is an advantage to have a lot of math knowledge but it depends on what you are programming.
Why make it simple when you can make it sooo nice and complicated?
depends on what you do.

In game programming you may need musical or audio engineering knowledge if you program audio software, for graphics you should know your maths pretty well (analytical, not stats), and if you program in the mechanical field (or if you want to make a decent simulator) learn your mechanics. Not this simple physics crap you think yo learn in high school and standard uni courses. I mean Mechanical Engineering stuff. Most games (all except maybe MS Flight Sim''s) use closed systems or tables to simulate the movements. A "good programmer" in this field would have wacked in some dynamics formulai instead.
Oh yeah. If Bugbear is telling the truth, they have used this method in Rally Trophy. The game is awesome anyway, but most games claim "state-of-the-art" simulation but only use tables and formulai from high school and first year physics.

Basically, know what your field is. Don''t just bollocks your way through it like most people do.
Thanks for all your help guys. It''s certainly opened my eyes to a few things in programming that I was wondering about.

Going by all the info provided above, I believe I could become a good programmer. I have all the skills mentioned, but maybe a rework of my physics wouldn''t go astray.

Now that I know C++, I''ll work on my "good programming methods" now with psuedocode, comments and OO design.

Like you say, if I put the time in and have patience, I''ll get there.

Dale


-----------------------------
Student - "How do I make my first game?"
Lecturer - "Based on your marks from your last assessment?"
-----------------------------Empires! Visit online at http://www.daleszone.comProgramming for a funner world.
Abstract reasoning is the essential talent a software engineer needs. An important secondary skill is to be able to read and understand new material quickly. You then need specific knowledge of systems, languages, and techniques.

Magmai Kai Holmlor
- Not For Rent
- The trade-off between price and quality does not exist in Japan. Rather, the idea that high quality brings on cost reduction is widely accepted.-- Tajima & Matsubara
Advertisement
Ok, for anyone that said no to anything, I hope you notice that unless you use a definition for good thats specific enough (doestn exist) you can''t really answr the question and thus such threads really shouldnt be started.

By anyways, its a little bit of everything but in the end the a program is supposed to do its task and in SOME situations its supposed to do it as fast as possible, thus a 1337 assembly freak has all the reason in the world to use VB, or B if you really don''t like M$.
this was written about hackers, but i think a lot of it applys to programmers also:

Another one got caught today, it''s all over the papers.
"Teenager Arrested in Computer Crime Scandal",
"Hacker Arrested after Bank Tampering"...Damn kids. They''re all alike.


But did you, in your three-piece psychology and 1950''s
technobrain, ever take a look behind the eyes of the hacker? Did
you ever wonder what made him tick, what forces shaped him, what
may have molded him?

I am a hacker, enter my world...

Mine is a world that begins with school... I''m smarter
than most of the other kids, this crap they teach us bores me...
Damn underachiever. They''re all alike.


I''m in junior high or high school. I''ve listened to teachers
explain forthe fifteenth time how to reduce a fraction. I
understand it. "No, Ms. Smith, I didn''t show my work. I did it
in my head..." Damn kid. Probably copied it. They''re all alike.


I made a discovery today. I found a computer. Wait a second,
this is cool. It does what I want it to. If it makes a mistake,
it''s because I screwed it up. Not because it doesn''t like me...
Or feels threatened by me... Or thinks I''m a smart ass...
Or doesn''t like teaching and shouldn''t be here...
Damn kid. All he does is play games. They''re all alike.


And then it happened... a door opened to a world... rushing
through the phone line like heroin through an addict''s veins, an
electronic pulse is sent out, a refuge from the day-to-day
incompetencies is sought... a board is found.

"This is it... this is where I belong..."
I know everyone here... even if I''ve never met them, never talked to them, may never hear from them again... I know you all...

Damn kid. Tying up the phone line again. They''re all alike...


You bet your ass we''re all alike... we''ve been spoon-fed baby food at school when we hungered for steak... the bits of meat that you
did let slip through were pre-chewed and tasteless. We''ve been
dominated by sadists, or ignored by the apathetic. The few that
had something to teach found us willing pupils, but those few are
like drops of water in the desert.

This is our world now... the world of the electron and the switch,
the beauty of the baud. We make use of a service already
existing without paying for what could be dirt-cheap if it wasn''t
run by profiteering gluttons, and you callus criminals. We
explore... and you call us criminals. We seek after knowledge...
and you call us criminals. We exist without skin color, without
nationality, without religious bias... and you call us criminals.
You build atomic bombs, you wage wars, you murder, cheat, and lie
to us and try to make us believe it''s for our own good, yet we''re
the criminals.

Yes, I am a criminal. My crime is that of curiosity. My crime is that of judging people by what they say and think, not what they
look like. My crime is that of outsmarting you, something that
you will never forgive me for.

I am a hacker, and this is my manifesto. You may stop this
individual, but you can''t stop us all... after all, we''re all alike.

Thats amaizing, that passage about hackers. Linux for the rest of us says this about hackers:
"If you have seen films like Sneakers, War Games or Swordfish you might think you know about hackers. You don''t. The hacker ethic is fundamentally about knowledge. Hackers share knowledge. They will build something "just for fun" or rip something apart to see how it works"

On the actual topic, I agree with most things said, esspecially Problem Solving, but I think its also about the way that you think. Think like the programming language, and all you will need to do is jot down your thoughts.
This is completely off-topic, but I feel a detailed response is necessary for the sake of the beginners who may be taken in by this pile of shit. Crime never pays, and crackers and script kiddies will steal your game and all your rightful profit because they don't want to pay for anything. DO NOT support them.

quote: Original post by Anonymous Poster
[stripping out a lot of irrelevant, self-serving nonsense]
...We make use of a service already existing without paying for what could be dirt-cheap if it wasn't run by profiteering gluttons, and you call us criminals.

To the "hackers" out there:
  1. It is dirt cheap. Compare US telephone price to other places in the world, anf you'll start to udnerstand that. I suppose you're not curious enough to figure that out, eh? "Selective curiosity."

  2. Profit is a necessity. Commerce is a necessity. WIthout them you wouldn't have the networks over which you practice your misdemeanours, so quit bitching and learn something useful.

Oh, and the rest of us "early programmers" (I wrote my first script when I was eight) were bored in junior high and high school too, we simply learned to harness our inquisitiveness and creativity more positively. You have no excuse.

quote: We explore... and you call us criminals. We seek after knowledge... and you call us criminals. We exist without skin color, without nationality, without religious bias... and you call us criminals.

Yeah, yeah, yeah... "exploring" when you make other people pay for your connections, or abuse their credit cards.

I'm as much for the underdog and little guy as anyone else (and I love reading 2600 as it's full of interesting political positions), but crime is something I am fundamentally opposed to. And as for all that shit about your lack of bias, your androgynous state - come off it! That's just because you've (generally) failed to develop your social skills significantly to interact with others, and realize that with interaction comes both conflict and understanding. Giving nerds and geeks a bad rep, motherfuckers.

quote: You build atomic bombs, you wage wars, you murder, cheat, and lie to us and try to make us believe it's for our own good, yet we're the criminals.

We also research medicine, developed the internet (that's right, us "real" hackers - the inquisitive minds who seek knowledge and share it freely - did that, not you lamers who try to break all we've built) and further the investigation of the world around us through science. Your point is?

My point is that the world consists of the good and the bad, and that for so-called "hackers" (and please, let's use their proper names: crackers and script kiddies) to focus exclusively on the bad and point to that as justification for their actions indicates serious problems.

quote: Yes, I am a criminal. My crime is that of curiosity. My crime is that of judging people by what they say and think, not what they look like. My crime is that of outsmarting you, something that you will never forgive me for.

I am curious, yet you don't see me commiting virtual breaking and entering. Instead, I look for legitimate avenues to learn. The vast majority of you look for the tools other have written - lacking the skill, the drive, the discipline and the smarts to devise your own - and use them to commit crimes. Yes, crimes. Accessing private/personal information is a violation of my right to privacy as a human, and of government laws; you think your curiosity places you above that? I don't! Go fly a kite and wonder why it stays up; go figure out when the sun will burn out; go find the "meaning of life". That's satisfying curiosity!

This is in no way an attack on, or any form of response to, the Anonymous Poster who presented this material. Rather it is a response to those who further this uninformed ideal, and an informative message to those who may be buying the rhetoric.

[EDIT:] GameDev, we have a buggy bold tag...


I wanna work for Microsoft!

Edited by - Oluseyi on November 8, 2001 11:22:30 AM

This topic is closed to new replies.

Advertisement