Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

This is only anecdotal evidence but from my past encounters with programmers at various workplaces the programmers that understand the fundamentals of parsing and interpreting seem to be overall better programmers. They also tend to be less religious about their tools. My subjective experience indicates they tend to write better code as well. I've mostly worked with application programmers and I know this is a very limited sub-discipline of programming in general so take my limited experience for what it is and nothing more.

What are some other foundational components of CS that tend to be correlated with programming skill and ability? I'm assuming some basic understanding of basic data structures so that's a given.

share|improve this question

closed as primarily opinion-based by gnat, kevin cline, Simon, Doc Brown, AProgrammer Jan 21 '14 at 14:43

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

I feel that the question is too broad and might be mostly opinion based. You're basically asking "how to judge if that programmer is a good programmer?". Having said that I am interested if anyone can give an interesting answer :) – Creative Magic Jan 21 '14 at 9:31
I generally find that most good programmers have some area of programming theory that isn't the current "cool" language or technology that, once they've started talking about, can only be stopped by straight up telling them to stop. Basically, showing enthusiasm for something non-trivial. – Phoshi Jan 21 '14 at 9:32
Knowledge of the language implementation techniques is essential and applicable in all the areas of software development. For one simple reason: Domain Specific Languages. So it's not a "very limited sub-discipline", it's one of the most important skills. Much more important than, say "object-oriented programming" or "design patterns". – SK-logic Jan 21 '14 at 15:43
up vote 4 down vote accepted

I think that parser and interpreter knowledge may correlate with skill simply because most people who are very interested in programming, and thus more likely to have higher skills in programming, have at some point written a parser themselves or taken at least a compiler course in higher education.

This of course assumes that interest in programming leads to higher skill in programming, which I think it does. But then you could likely say that most other advanced programming topics correlate with programmer skill.

share|improve this answer
+1. Correlation does not imply causation. Good programmers often like parsers and interpreters because they're interesting programming problems - to them. – Tom W Jan 21 '14 at 12:32

I think it. depends on your environment. For example I work in banking and finance. The most productive programmers there are those who are numerate, i.e. can look at numbers and understand what they mean. Understanding parsers etc but not understanding the numbers will not help you as much.

Those who understand parsers are more likely to have undergone extra training in computer science and so understand more things in computing.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.