views:

225

answers:

12

I had this question in my mind. I thought i figured out the answer like each one of you. So,

1) what do you think as the secret behind being a good & passionate software developer? 2) What is the single most important thing that a software developer should posses?

I never meant to pollute this forum with non-programmatic question, but is naturally interested in knowing the secret behind each one of you. Its been only few months, since I started liking programming and want to pursue it further by knowing more secrets.

Thanks!

+3  A: 

Being willing to learn.

Robert Harvey
+3  A: 

Being willing to accept criticism.

JasCav
+4  A: 

At least 10 years of hard work: Teach Yourself Programming in Ten Years

neves
95% of us must really suck!
kirk.burleson
@kirk: You got that right!
Dan Moulding
A: 

Not starting every sentence with "Being." :)

It's very important that you understand logic and how computers work, before you can ever make them do what you want.

Fosco
WTF are you talking about?
kirk.burleson
Hmm.. the first sentence was a joke.. oh well.
Fosco
+1  A: 

The desire to makes things better every time you look at code.

ScottE
+1  A: 

Willingness to accept that 99% of the time, it's your fault.

Matthew Jones
+7  A: 

According to Larry Wall, creator of Perl, as he wrote in Programming Perl (via Wikipedia, can't check book now), the Three Virtues of a Programmer are:

  1. Laziness - The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful, and document what you wrote so you don't have to answer so many questions about it. Hence, the first great virtue of a programmer. Also hence, this book. See also impatience and hubris.

  2. Impatience - The anger you feel when the computer is being lazy. This makes you write programs that don't just react to your needs, but actually anticipate them. Or at least pretend to. Hence, the second great virtue of a programmer. See also laziness and hubris.

  3. Hubris - Excessive pride, the sort of thing Zeus zaps you for. Also the quality that makes you write (and maintain) programs that other people won't want to say bad things about. Hence, the third great virtue of a programmer. See also laziness and impatience.

MvanGeest
I disagree with every one of those.
kirk.burleson
real pro-programmer is lazy and try not do anything and that is a real skill.
01
+1  A: 

I wouldn't ask "what's the secret to being a good and passionate software developer... Rather, I'd say passion is, itself, one of the secrets to being a good software developer (or a good anything else!)

Being interested-enough in a subject to want to know everything about it, I'd say that's awfully important. Shallow knowledge won't take you very far in this biz. You need breadth AND depth.

djacobson
+1  A: 

Doing your job and not wasting your employer's money while you surf on stackoverflow asking hypothetical questions. =)

George
Caught me! But you did get an up-vote. :)
kirk.burleson
+1  A: 
  1. The ability to think beyond the problem. To be good programmer, you need to be able to relate to nearly anything. I often find myself making analogies in my head to relate the programming concepts to real-life ideas. The key here is to be able to take a defined concept (your programming goal) and extend your past experiences to the task at hand in order to come up with a means of solving the problem.

  2. I'll probably catch some flak for this, but a tablet and a good pen. There are so many times where I need to jot something down or make a doodle and I don't have anything to do it with. Having paper and a smooth, working pen handy in your workspace is likely to significantly improve your productivity.

mattbasta
I have a drawer at work, the sole purpose of which is to hold an open ream of printing paper, so that I can grab a sheet at a moment's notice; and high-quality blue, black and red ball-point pens. It is an effective, inexpensive and portable communications tool which doesn't require power, software or special expertise to make it work. I have yet to see an equally effective electronic tool.
Robert Harvey
I doodle when I'm on the phone.
kirk.burleson
@Robert: I find it easier to just just doodle something than type it somewhere. It seems that every tool/program/device I've used for note management has only gotten in the way.
mattbasta
+1  A: 

Persistence - not giving up when the going gets tough.

HLGEM
Good answer. I've seen too many co-workers who are too quick to call a lead over to solve the problem.
kirk.burleson
A: 

I attribute much of my success to my personality type, also known as a System Builder. As you read about those personalities, you can see how they would work well for a software developer. Perhaps the key helpful skill is an ability to incorporate knowledge into a "working system" so that you constantly have a picture/understanding of what you're working on and can quickly devise solutions to new problems; Developing this system requires a good deal of experience and practice with the technologies you work with. As with many things, practice makes perfect... not really a secret. Develop a feel for understanding software problems and systems at the right level and a familiarity with how various kinds of problems are commonly solved or identified.

BlueMonkMN

related questions