Chaos Project

General => Electronic and Computer Section => Topic started by: Ryex on August 07, 2010, 02:41:52 am

Title: What denotes "Skill" in the programing world?
Post by: Ryex on August 07, 2010, 02:41:52 am
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.
Title: Re: What denotes "Skill" in the programing world?
Post by: Blizzard on August 07, 2010, 05:35:41 am
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.
Title: Re: What denotes "Skill" in the programing world?
Post by: winkio on August 07, 2010, 02:31:17 pm
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.
Title: Re: What denotes "Skill" in the programing world?
Post by: Blizzard on August 07, 2010, 03:32:15 pm
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
Title: Re: What denotes "Skill" in the programing world?
Post by: Ryex on August 08, 2010, 01:10:28 am
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.
Title: Re: What denotes "Skill" in the programing world?
Post by: Blizzard on August 08, 2010, 03:50:31 am
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.