Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am recent graduate and I have applied for a job, but I'm stuck on how to answer one of the questions:

What programming technology, programming topics, and programming concepts are you following at present?

I am a little confused with this question as it's a bit vague. I know what programming technologies are—C#, Java, .NET, etc—but what are programming topics and concepts?

I take it that programming topics are everything related to C# or related to programming in general? I'm not so sure what programming concepts are.

How can I answer this question?

share|improve this question

5 Answers 5

It sounds like a filter question to weed out programmers who aren't passionate. A passionate programmer will be able to talk at length about various topics that he/she has a personal interest in.

We could give you suggestions but if you haven't had the passion to do your own investigations & research you almost certainly won't dig deep enough into the suggested topics so you can talk about them at length in an interview.

share|improve this answer
1  
Can you give an example of a programming concept that you can "follow"? I'm a bit confused about how someone can actually "follow" a concept. Or maybe I'm just taking it too literally. Have the urge of creating a twitter account to personify the concept, so I can follow it. –  Lionel Oct 14 '11 at 4:42
2  
Lazy execution is programming concept, so would tail recursion or currying. Examples from non-functional paradigms might be things like implementations of priority queues. –  World Engineer Oct 14 '11 at 5:29
    
@Lionel - DRY might be a good example of a concept that you can follow, although technically calling it a "principle" might be more accurate. YAGNI is another principle many live by :) –  Daniel B Oct 14 '11 at 7:04
    
@Lionel, one can only "follow" an evolving concept. There are some vaguely defined, unfinished but promising concepts aroung - e.g., language-oriented programming. –  SK-logic Oct 14 '11 at 10:21
1  
+1 because it's a good answer. Minor peeve: passionate must be one of the most abused words on this site. Passion connotes intense emotion bordering on irrationality. Some folks seem able to muster that level of intensity on certain topics (cough, singletons, cough), but interested, enthusiastic, curious, invested, fascinated, concerned, or involved are often more accurate terms. –  Caleb Oct 14 '11 at 16:33

The question doesn't hinge on you understanding the difference between a technology and a concept. The question hinges on two things:

  • is there anything going on in this industry that you think is worth "following" - whatever following might mean
  • how clearly, accurately, and passionately do you talk about whatever that is

It might be concurrency and parallel programming. It might be GPGPU programming. It might be programming for handheld devices. It might be moving everything to the cloud. It might be some new programming language and framework or platform you've been playing with in your free time. Once upon a time you might have been able to answer this with something about Agile, or Ruby on Rails, or web services. The key is that you don't give a one word or one sentence answer.

I mean come on! You want to work in this industry, right? Why? The answer to this question should burst out of you.

"X! Because X changes EVERYTHING and it's SO COOL and I remember when I first saw it I knew it would be great [or I didn't realize what it was] and then I started doing some of it myself [at home or after hours or on my second assignment] and wow oh wow I could see that [cool stuff about X] and now I read blogs about it, I follow [a,b and c] on Twitter, I went to all the X talks at [CodeCamp or whatever] and I just think it's the coolest thing!"

Seriously, they offer you a chance to go all fanboy (or fangirl as appropriate) on the tech of your choice, and your response is "What? programming concepts aren't something you can follow! This question is ill formed." Don't do that. The interviewer is throwing you a giant softball. Hit it out of the park.

share|improve this answer
    
+1 for softball. Incidentally, this is the best answer. –  vemv Oct 15 '11 at 16:40

All three refer to the same things really. Threading can be described as a development concept, a topic or a range of technologies that make the concept real. What they are actually asking is what development related stuff are you interested in at the moment.

Useful tip: If an interviewer asks you something that you don't understand, it is ok to get clarification. I actually ask questions which are barely coherent just to see if the candidate will try to get clarification or will struggle to answer a question that is clearly gibberish.

share|improve this answer
    
I like your tip, but I disagree that programming technology, programming topics, and programming concepts refer to the same things. For example, an IDE could be considered a programming technology, but not a concept. –  Mike Partridge Oct 14 '11 at 17:06
    
Yes, I see what you mean. I think I was trying to get at the fact they aren't sensible categories because an entity (Threading in my case, IDE in yours) can happily exist in 0..n of them. Because they aren't sensible categorisations the make the entire article confusing. –  Ian Oct 17 '11 at 13:50

Replace the word "following" with "practicing or trying to gain deep understand of"

share|improve this answer

I know what programming technologies are—C#, Java, .NET, etc—but what are programming topics and concepts?

You could look at software development methodologies or project management methodologies used in software like Agile, Scrum, XP, Pair-programming, various driven-development models like TDD, BDD, DDD, etc. The key here is what areas of development are you studying in terms of gaining a greater understanding. How is Saas impacting your development? How does the paradigm of distributed version control differ from a centralized repository model?

  • What are you getting to know?
  • How are you doing that?
  • What resources are you using to advance yourself?

Those are the kinds of questions that you can apply to any tool, practice, strategy, or thought within software development. You could even take off-shoring or outsourcing as topics to consider within programming.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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