What denotes "Skill" in the programing world?

Started by Ryex, August 07, 2010, 02:41:52 am

Previous topic - Next topic

Ryex

do you have skill if you can pick up a new language with completely different syntax in three hours but still have to regularly look op functions in the languages you already know?
or is skill having a knowledge base of those functions and how to use them?

ect.

I want to know what you would consider a skill programmer.
I no longer keep up with posts in the forum very well. If you have a question or comment, about my work, or in general I welcome PM's. if you make a post in one of my threads and I don't reply with in a day or two feel free to PM me and point it out to me.<br /><br />DropBox, the best free file syncing service there is.<br />

Blizzard

August 07, 2010, 05:35:41 am #1 Last Edit: August 07, 2010, 05:41:36 am by Blizzard
I consider a skilled programmer to be somebody to be able to plan, organize and solve complex tasks. Familiarizing with a language is not a big deal. A skilled programmer should be able to solve problems on an abstract level rather than having to rely on a programming language. The better you know a programming language, the more optimized your actual solution for the problem will be and the more built-in features of a language you will use (of course only the stuff he needs, not trying to solve everything with the built-in stuff).

Everybody needs to look up features and commands once in a while, even when working with a language you know quite well. I consider that this is also part of the skill of a programmer. He should be able to identify what he is looking for, to do research, and to find possible solutions in documentation or online. Besides, it's impossible to know all possible functions calls from memory. That's what reference documentation is all about.

EDIT: I have noticed that sometimes when I write code, rather than implementing a function, I mark it as not implemented yet (I use a //2DO or #2DO comment, depending on the language) and add the abstract solution in comments. e.g.

//2DO - implement
// while CPU can act
   // execute AI actions
// end player turn
// switch to next player
// start turn for next player
// check victory and defeat conditions


One comment does not necessarily translate into one function and vice versa.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

winkio

Right, problem solving is the determining factor, in my opinion, but code neatness is a secondary skill.  Dividing your code up efficiently and making a good group of classes is one of the hallmarks of a good coder.

Blizzard

Of course, I totally agree. I actually consider the actual code (dividing code into classes and such) to be part of the problem solving skill. In fact, this is the the part that decides how good you solve the problem, the quality of the solution.

Like Kreso once said to me "We are programmers. We love to solve problems and analyze systems. That's natural." My reply to that was "Exactly. Social interaction is yet another system for us to figure out. And we're doing great. That's the same thing I think." We were talking about women, attraction and seduction. xD
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

Ryex

interesting,
so in short you guys would consider a skilled programmer to be one who could accomplish a complex task in the abstract, independent of the language.
I no longer keep up with posts in the forum very well. If you have a question or comment, about my work, or in general I welcome PM's. if you make a post in one of my threads and I don't reply with in a day or two feel free to PM me and point it out to me.<br /><br />DropBox, the best free file syncing service there is.<br />

Blizzard

Exactly. But since this is very difficulty, to actually accomplish a task, a programmer has to actually implement it. Doing a task in abstract is only theory after all. Some things can't be done practically done just like that and some things aren't possible. Also, most mistakes in the design of the solution are fixed during the implementation. So solving a task in abstract is only half the job.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.