|
I don't understand why you think anyone can answer what is MVVm while people who haven't used DI won't know what it is? why should people who haven't used MVVM know what it is?
Also you assume that everyone's CV is honest. Yours might say you have 7 years experience - but what have you been doing ReALLY for 7 years? Maybe working on some VB with MS Access project?
If the job requires MVVM, DI etc. then surely asking what your understanding of them is is quite legitimate? They arent's aying that if you don't know you won't get the job, just asking what your knowledge is. Maybe if you said "I never used DI" they'd set up some training for you.
|
|
|
|
|
_Maxxx_ wrote: why should people who haven't used MVVM know what it is?
Well mainly 'coz of this https://www.google.co.in/?gfe_rd=cr&ei=je1ZU-jcOo3V8gf17YGwBw#q=what+is+mvvm[^]
How people will start having problem until they have some real exp if you ask which situation do you think we should go for MVVM and which situation do you think we should avoid it ?
_Maxxx_ wrote: Also you assume that everyone's CV is honest.
direct opposite of it. people can fake theoretical knowledge but not practical.
_Maxxx_ wrote: If the job requires MVVM, DI etc. then surely asking what your understanding of them is is quite legitimate?
understanding ? Yep. definitions ? Not so much
_Maxxx_ wrote: They arent's aying that if you don't know you won't get the job,
i never said i didn't know. infarct i did answer the question. IMHO it's not a good way to judge a skill of programer by asking theoretical question. You should always ask more practical question (like where you can judge his problem solving skills)
|
|
|
|
|
CS2011 wrote: Well mainly 'coz of this https://www.google.co.in/?gfe_rd=cr&ei=je1ZU-jcOo3V8gf17YGwBw#q=what+is+mvvm[^]
Don't know about you, but I've never been to an interview where they allowed you to google stuff during the interview!
CS2011 wrote: f you ask which situation do you think we should go for MVVM and which situation do you think we should avoid it ?
well, any decent interviewer and interviewee will begin a dialog.
if the interviewer asks "what is MVVM" and you reply "Model View ViewModel" then shut up, it's all a bit pointless. depending on the position, perhaps they have existing MVVM projects on which they want someone to work. Pointless asking you when you wouldn't use MVVM - better to make sure you understand what it is.
CS2011 wrote: people can fake theoretical knowledge but not practical.
You can lie or exaggerate practical knowledge - I have interviewed people who have told me about their wide experience in xyz technology, but when asked to explain the technology have failed - giving textbook definitions rather than explaining how they have used it (or not) - so they have faked practical and theoretical knowledge. Remember, just because you know that you know something, doesn't mean the interviewer knows. and the way they find out it by asking questions.
CS2011 wrote: understanding ? Yep. definitions ? Not so much
Are you telling me that they asked "Please define what is meant by MVVM" with no expectation of beginning a discourse?
CS2011 wrote: never said i didn't know.
And I never said you didn't know. I said that they weren't saying that if you didn't know you wouldn't get the job. interviews aren't about asking questions with correct answers, they are about getting to know someone's abilities (can they do the job) and personality(do we want them to work here) quickly.
CS2011 wrote: it's not a good way to judge a skill of programer by asking theoretical question.
I entirely disagree. except for the most basic programming positions, the ability to write code is way down on my list of requirements - a good developer needs to have a good understanding of WHY certain things are done in certain ways, and have a good understanding of the shortcomings in their experience and knowledge.
Understanding what MVVM is, why it can be a good pattern etc. without ever having used it can be a far better indicator of someone who would be useful than having someone who can write some MVVM code without understanding.
The former tends to be a thinker, will look at alternatives and not just stick to doing things the way they have learned because, well, that's the way they learned, whereas the latter will more likely churn out the same stuff and not think outside the square.
Both types have their uses - the latter as cannon fodder, the former as generals.
as a real example.
given
.Where(predicate).FirstOrDefault();
vs
.FirstOrDefault(predicate);
Any dev could probably have a good guess at what they did - even if they had never seen either construct before.
Some devs would tell you that you should use the 2nd version over the 1st version.
The dev i want is the one who tells you which version they would use, and why.
it's not necessary that they concur with my personal choice (the first, incidentally) but that they can support their decision beyond 'that's just how I do it'.
I['m waffling -a sure sign I need another beer.
|
|
|
|
|
_Maxxx_ wrote: Don't know about you, but I've never been to an interview where they allowed you to google stuff during the interview!
How about a night before the interview. You get the JD in advance don't you ?
_Maxxx_ wrote: depending on the position
For a SW architect i think it's impotent to know when to use a pattern and when NOT to use a pattern. Knowledge of theory will not help you in this.
_Maxxx_ wrote: but when asked to explain the technology have failed - giving textbook definitions rather than explaining how they have used it.This is called practical knowledge (or not) -
As you statement says. he was not able to fake practical knowledge ( he tried but failed 'coz he was not able to explain)
_Maxxx_ wrote: Are you telling me that they asked "Please define what is meant by MVVM" with no expectation of beginning a discourse?
Yes. Kind of. They were more interested in just tell me What MVVM is
_Maxxx_ wrote: good understanding of WHY certain things are done in certain ways, and have a good understanding of the shortcomings in their experience and knowledge.
and how does you get to know that ? By reading books to writing actual code ?
_Maxxx_ wrote: someone who can write some MVVM code without understanding.
Well i have not met someone who can write a good code based on MVVM without proper understanding.(But again i am talking about people i work with)
_Maxxx_ wrote: The former tends to be a thinker, will look at alternatives and not just stick to doing things the way they have learned because
that again comes with practical knowledge not by knowing theory and definitions
_Maxxx_ wrote: The dev i want is the one who tells you which version they would use, and why.
and surely the will be able to answer that by reading it on MSDN. But internal working...that's a different ball game
|
|
|
|
|
CS2011 wrote: How about a night before the interview. You get the JD in advance don't you ?
Sure. And I have previously looked stuff up that i wasn't familiar with for an interview, and when asked, explained that I knew what it was but didn't have experience of it - explained my understanding, anyway.
CS2011 wrote: Knowledge of theory will not help you in this.
? Of course it will. Part of the theoretical knowledge about something is about when it is useful, and (more importantly) why.
CS2011 wrote: and how does you get to know that ? By reading books to writing actual code ?
well, both.
CS2011 wrote: Well i have not met someone who can write a good code based on MVVM without proper understanding.(But again i am talking about people i work with)
Well, who said anything about good code?
I work on an mvvm system where a lot of devs have been through the company, and much of the code is completely sh*t because they didn't understand the principals, so just copy/pasted code, or did things how they would have done in a non MVVM environment.
These are people, I think, who had much practical experience of various thechnologies - but unfortunately nobody asked them to explain MVVM at the interview
CS2011 wrote: not by knowing theory and definitions
Ah, now, definitions, I'm with you there. No need to know the name of something as long as you can communicate with your peers.
But theory? yes you do need to understand the theory.
CS2011 wrote: and surely the will be able to answer that by reading it on MSDN.
sure - and if they have read on MSDN and understood and retained the knowledge, then that knowledge is useful.
And that's why the interview needs to be a conversation not a monologue.
|
|
|
|
|
_Maxxx_ wrote: Part of the theoretical knowledge about something
Can you tell me what exactly do you mean by theoretical knowledge.
_Maxxx_ wrote: well, both.
reading books to get real life problem solving skills and i wonder why company looks for experienced guys when someone who had finished a book on C# can do the same level of job with same efficiency and quality.
_Maxxx_ wrote: unfortunately nobody asked them to explain MVVM at the interview
he might have answered What is MVVM same way by reading a night before
_Maxxx_ wrote: yes you do need to understand the theory.
And you will need to do some practical to understand the theory otherwise it's no good. Let me give a simple example.
if you ask some one what is DI. and he gave to the correct answer that DI is this and this and these are the way using which you can implement DI. Does it mean that person will be able to do that in real life and knows where this actually fit ? he might or he might not can't be sure.
Now ask someone i have class A,B and C,i need to access objects of class b and c from a. please explain how you are going to do that and bingo you know if this guy know DI or not.
|
|
|
|
|
CS2011 wrote: Can you tell me what exactly do you mean by theoretical knowledge.
Knowledge that is not practical - ie something you have learned about but not used in practice.
For example, I know a great deal about knockoutJs but have only tinkered with it - I have much theoretical knowledge and little practical knowledge.
CS2011 wrote: i wonder why company looks for experienced guys when someone who had finished a book on C# can do the same level of job with same efficiency and quality.
now you're being childish and silly.
Of course they cannot.
But, someone who has studied, and understood, a subject but not yet put the subject into practice can be far better than someone who has simply copy/pasted code without understanding,
CS2011 wrote: he might have answered What is MVVM same way by reading a night before
Again we come back to this; if the interviewer simply asks for a list of definitions, then you're right. what interviewers do, though, is to engage you in a conversation - what do you understand by MVVM? Interesting - are you currently using it? Oh! what framework do you use? Oh! we use xyz - do you have any exposure to that? why did you use that framework? and so on.
CS2011 wrote: you know if this guy know DI or not.
No, you don't.
You don't have to use DI to do that, for starters.
And, say, the interviewees answer was to pass an instance of the class to the constructor; does that mean they know DI, understand why it is used, understand when it is good or bad, understand the difference between passing concrete classes and interface references?
Bottom line. I would rather employ someone with good understanding and less practical hands-on than the other way around. there are many crap programmers out there, who can knock out code that is ill thought out, poorly constructed and not well maintainable - but they use MVVM, DI etc. etc.
those that understand their subject, don't tend to write such crap code, because they have an in-depth understanding of the whys and wherefores
|
|
|
|
|
I had an interview where they asked me to explain MVC. I said "Isn't MVVM the latest thing?"
Then there was the time time they asked "How would you reverse a string in C?" I went up to the white board and wrote "strrev". Got a good laugh. (Then I wrote the algorithm.)
|
|
|
|
|
That reminds me of an interview I had last time I was out looking.
Them: how would you reverse a string?
Me: I'd use the standard functionality already in the library. Why would I rewrite it? It's already provided, and the people who wrote that are probably better at developing software than me.
Them: What if it wasn't there.
Me: Well, ok, blah blah blah about null-checking, maybe making it an extension method, etc, etc.
I got home and phoned the headhunter, saying I didn't think it had gone too well. Twenty minutes later, she called back, saying they loved me, and wondering if I could come back that afternoon to meet with the CTO or VP or some such.
I ended up not taking that position; I didn't think it was as good a fit for me personality-wise as where I ended up. But, one shouldn't judge an organization by the kinds of questions they ask, necessarily. They're just trying to get some kind of insight into your analysis/thought process.
|
|
|
|
|
I think that's definitely a huge warning sign. If the interview is too simplistic, there is a good chance that you can get stuck on a system with tons of buggy poorly written code.
I would definitely make sure I asked about their development process, what they consider quality code and how they maintain that level of code in their system, etc. I'd also ask them to describe the best and worst features of their code base. Also, ask about improvements/refactorings driven completely by the development team. How do they make sure their system stays up to date with best practices? What kind if training has the team received? How much control do developers get over their systems and how easy is it to get the plugins that you need?
I think that's a good start.
|
|
|
|
|
It takes me less than five minutes to decide whether to hire someone or not. Several studies suggest that the hiring decision is actually made in the first 20 seconds. (Then it takes weeks to get it through management and HR.) It's pretty much the same when I'm being interviewed, a process I'm doing right now. Once I decide I do want to work at a place, I'll engage in a longer conversation (which often makes me more enthusiastic for the job), but it's not really needed.
|
|
|
|
|
Well, I have different sort of problems with those kind of questions: I don't memorize definitions.
I've been asked what SOLID is, and damn it, I always get stuck in the L
The point is... I apply all SOLID concepts on my daily work, but it really gets in my nerves when someone asks me to define the principles.
This applies to a lot of things and I believe I failed some interviews because I can't memorize things well. It's very hard to be asked questions that test my problem solving capabilities (which I excel at), but I wouldn't turn down a job because of the questions the interviewer asked. I'm more concerned about what type of work I will be performing, the environment and the earnings.
To alcohol! The cause of, and solution to, all of life's problems - Homer Simpson
----
Our heads are round so our thoughts can change direction - Francis Picabia
|
|
|
|
|
Fabio Franco wrote: I don't memorize definitions.
Same goes for me.
|
|
|
|
|
Likewise.
And if the interviewer here was genuinely just asking for a definition, then they're dumb.
I was asked at an interview about 3rd level normalisation in a Db.
I answered (truthfully) that I have never had to normalise a database I have designed, as normalisation is as obvious to me as putting a full stop at the end of a sentence. I can probably remember some of the rules of normalisation, but I don't need to know them.
It's a bit like asking in a driving test how far behind a car should you be if you are both driving at 60KPH. I have no idea of the actual recommended distance - I just know when I'm too close.
|
|
|
|
|
_Maxxx_ wrote: normalisation is as obvious to me as putting a full stop at the end of a sentence.
Awesome response
To alcohol! The cause of, and solution to, all of life's problems - Homer Simpson
----
Our heads are round so our thoughts can change direction - Francis Picabia
|
|
|
|
|
Fabio Franco wrote: I don't memorize definitions.
Agreed. I've been using most of the GoF Design Patterns long before the book was written. Why should I learn the definitions some people made up aound the stuff I'd been doing for years? Am I a worse programmer because I don't know what Gamma et al consider to be the difference between a factory and an abstract factory? I've been using that stuff. I know how it works. Why should I care how to call it?
Knowing definitions doesn't proof skill, it only proofs that you're good at Knowing definitions.
|
|
|
|
|
You can't do that! You can't ask someone for a solution of the problem because it's a work, but you're not working, you are trying to have a possibilty to give a solution, means you are trying to have the job first and then give a solution! Wow, what did I wrote I don't know, but it's correct..... this is how developer mind working...hahaha...
|
|
|
|
|
CS2011 wrote: what is MMVM I had one interview that they told me I answered wrong, it turned out their answer was wrong.
I didn't mind not getting a callback.
Psychosis at 10
Film at 11
Those who do not remember the past, are doomed to repeat it.
Those who do not remember the past, cannot build upon it.
|
|
|
|
|
BrainiacV wrote: I had one interview that they told me I answered wrong, it turned out their answer was wrong
that's completely different story. i has happened to me many time
|
|
|
|
|
I'm not sure I agree with the wording of the objection. Theoretical questions are not only fine, they are a good idea. A candidate who has no concept of computer science theory or the abstract concepts involved in software development will produce code that has no governing or organizing principles behind it, and who will make decisions with no awareness of why one choice is better than another.
I don't think it is "theoretical" that is objectionable. It is keyword and buzzword-based interviewing, and arbitrary arcane fact-based interviewing, that is the problem. A lot of technical interviews with non-technical or semi-technical people, or with technical people who haven't thought about what is an effective method of interviewing, go down a sheet asking things like "How many years experience do you have with REST?" "How many years experience do you have with ASP.NET custom controls?" "What is the third option on the file menu in Visual Studio?" This kind of interviewing makes me far less interested in the job, not only because it means the management may not be the greatest, but because everyone they've already hired went through the same, ineffective interview filter and therefore the team I'd be working with is unlikely to be inspiring.
But I've had occasion to ask people about theory, say, to explain the basic ideas that make up object-oriented programming, and it can sometimes very quickly take someone who looks good on paper and discover the reality. You have to do that kind of thing in order to get a sense of whether the person understands what the acronyms he has pasted onto his resume actually mean...because there are as many candidates out there who are nothing more than a collection of buzzwords and keywords as there are hiring managers who are the same.
|
|
|
|
|
Trajan McGill wrote: . A candidate who has no concept of computer science theory or the abstract concepts involved in software development will produce code that has no governing or organizing principles behind it, and who will make decisions with no awareness of why one choice is better than another.
Well i would disagree with this. Even i know what is MVVM there is no way i use it until i have some exp with it. To judge a person if he can make a informed decision about which pattern to use and which to avoid you need to ask practical question. if you ask him tell me what is factory pattern and what is command patterns or what is DI you can never judge if he can do a good design. Best way to judge a if someone has good knowledge give me a problem and ask for a design and see how good the design is and if is following Factory/DI/MVVM and so on where it's required.
|
|
|
|
|
You're actually disagreeing with the inverse of what I said. You're right, understanding a concept doesn't necessarily mean one knows the details as they work in practice, but not understanding a concept definitely means one doesn't know the details as they work in practice. If you can't even explain the idea of MVVM, there's no point in asking you to show it in practice.
You also can get some feel for whether the person has truly applied these concepts by their answers. Do the answers sound like recited, memorized dictionary definitions? Do they sound like a vague conceptual awareness? Does the person seem to have familiarity with the messiness that one encounters when taking pure-sounding ideas and putting them into practice?
But there's more to it than that. There are plenty of developers who can slap together things that work, more or less. There are a zillion programmers who have tons of technical knowledge at the detail level, without having any real conception of the higher, more abstract levels. I encounter their code all the time, and it has no forethought, no theory or philosophy, and no maintainability. Where they use patterns or concepts, they invoke them like magical incantations, rather than with understanding. An interview process should definitely look for this weakness. I'd rather have a person who thinks well and has never used the tool, language, or even specific programming patterns in question than one who cranks out cargo cult code based on a copy-and-paste-level understanding of MVVM or whatever.
The best way to examine this involves a variety of things going on in the interview process, and I agree it involves talking through actual problems and exploring their thought processes, but that is a part of asking about theory, it isn't a replacement for it.
|
|
|
|
|
The question is: can the interviewee know nothing of the concepts of MVVM just because he doesn't know the definition that you are asking about?
I've been using design patterns for many years, before Gamme et al even wrote that book! Just because at the time I couldn't answer what a bridge or factory pattern was didn't mean that I I didn't know and firmly understand the concepts!
It's an entirely different thing if you ask about some keywords that are familiar to you, or the concepts behind it! It's possible that the person you're asking is not familiar with that keyword, but knows more about the concepts than you ever will.
|
|
|
|
|
CS2011 wrote: and all the question he asked was theoretical like what is MMVM, What is solid principal and DI... i rejected it saying i was not OK with the way interview went and kind of question i was asked and would not like to work with a team like that Since I don't interview candidates as a full time job, I keep a list of interview questions that I pull from. Some questions are theoretical, some not. They don't really reflect how the team works together, but are tools for me to assess how well the candidate will fit in and how much they might need to pick up. Trying to judge how my team works by the questions I ask would be a mistake. If you want to know, ask me. If I'm only asking theoretical questions, asking why is a fair question from a candidate.
Are you sure you didn't reject that offer because of an incorrect assumption about how the team works that you based simply on which questions they asked to assess your knowledge and fit?
We can program with only 1's, but if all you've got are zeros, you've got nothing.
|
|
|
|
|
patbob wrote: Are you sure you didn't reject that offer because of an incorrect assumption about how the team works that you based simply on which questions they asked to assess your knowledge and fit?
Well you might be correct.
Some theory and some not i can understand but when every single question asked is theoretical..Well that's different story. In my personal experience person taking interview will be your boos (most of the case if not all and again in my experience) and i really didn't wanted to report to someone who is more interested in theory rather then checking out if a personal has some real problem solving skills.
|
|
|
|
|