Interview questions - best way to learn the answers
-
I consider myself a good developer, fellow developers and managers as well as clients have told me the same. I code to standards and make sure it is done correctly. So why is it that in an interview when asked a question about code I get stumped and not able to answer it correctly? Am I the only one that does this? Can you BE a great developer without being able to tell you the definition of polymorphism or the like? I know I can do the work, very well. So what can I do to learn the definitions of things? I am thinking of making cue cards and going from there. They have helped me in the past. What do you think? What is the best way for you to learn? Also, do you know definitions and meanings of everything you do? Thanks
-
I consider myself a good developer, fellow developers and managers as well as clients have told me the same. I code to standards and make sure it is done correctly. So why is it that in an interview when asked a question about code I get stumped and not able to answer it correctly? Am I the only one that does this? Can you BE a great developer without being able to tell you the definition of polymorphism or the like? I know I can do the work, very well. So what can I do to learn the definitions of things? I am thinking of making cue cards and going from there. They have helped me in the past. What do you think? What is the best way for you to learn? Also, do you know definitions and meanings of everything you do? Thanks
Don’t try to remember or memorize the technologies definitions, it’s a mistake. If you are familiar with the concept just explain it with your own words or even short verbal examples. This is how I got my current job, with describing my vision of what OOP and “object” is which is quite different from the “official” definitions.
The narrow specialist in the broad sense of the word is a complete idiot in the narrow sense of the word. Advertise here – minimum three posts per day are guaranteed.
-
I consider myself a good developer, fellow developers and managers as well as clients have told me the same. I code to standards and make sure it is done correctly. So why is it that in an interview when asked a question about code I get stumped and not able to answer it correctly? Am I the only one that does this? Can you BE a great developer without being able to tell you the definition of polymorphism or the like? I know I can do the work, very well. So what can I do to learn the definitions of things? I am thinking of making cue cards and going from there. They have helped me in the past. What do you think? What is the best way for you to learn? Also, do you know definitions and meanings of everything you do? Thanks
I bet you can be a great *solo* programmer/developer/engineer, but when working in team you need to know how certain patterns are named to make communication faster and more fluent. I was like you a couple of years ago, but then I spent some time learning a proper names for patters, structures, etc. and it is kinda worth knowing them (-. So keep up and you will eventually be there.
Trust is a weakness.
-
I consider myself a good developer, fellow developers and managers as well as clients have told me the same. I code to standards and make sure it is done correctly. So why is it that in an interview when asked a question about code I get stumped and not able to answer it correctly? Am I the only one that does this? Can you BE a great developer without being able to tell you the definition of polymorphism or the like? I know I can do the work, very well. So what can I do to learn the definitions of things? I am thinking of making cue cards and going from there. They have helped me in the past. What do you think? What is the best way for you to learn? Also, do you know definitions and meanings of everything you do? Thanks
Swelborn wrote:
Can you BE a great developer without being able to tell you the definition of polymorphism or the like?
Yes. You don't need to know the technical definitions of things to use them well. A lot of "new" design patterns are only things that experienced programmers have been doing for years - it's just that now they have a name.
-
I consider myself a good developer, fellow developers and managers as well as clients have told me the same. I code to standards and make sure it is done correctly. So why is it that in an interview when asked a question about code I get stumped and not able to answer it correctly? Am I the only one that does this? Can you BE a great developer without being able to tell you the definition of polymorphism or the like? I know I can do the work, very well. So what can I do to learn the definitions of things? I am thinking of making cue cards and going from there. They have helped me in the past. What do you think? What is the best way for you to learn? Also, do you know definitions and meanings of everything you do? Thanks
I don't think you should worry about the definitions. In fact if I asked someone about polymorphism and they answered me: "the ability to manipulate objects of distinct classes using only knowledge of their common properties without regard for their exact class", it would be more of alarm sign to me than anything else. A good answer would be something like: "yeah, that's the fancy word for executing the same code with different types"; if also they mentioned static vs. runtime polymorphism, than I would know they knew what they are talking about.
-
I consider myself a good developer, fellow developers and managers as well as clients have told me the same. I code to standards and make sure it is done correctly. So why is it that in an interview when asked a question about code I get stumped and not able to answer it correctly? Am I the only one that does this? Can you BE a great developer without being able to tell you the definition of polymorphism or the like? I know I can do the work, very well. So what can I do to learn the definitions of things? I am thinking of making cue cards and going from there. They have helped me in the past. What do you think? What is the best way for you to learn? Also, do you know definitions and meanings of everything you do? Thanks
First, figure out how you learn best -- visual? audio? hand-on? Then, create memory exercises using this modality. Machine Vision Lighting
-
I consider myself a good developer, fellow developers and managers as well as clients have told me the same. I code to standards and make sure it is done correctly. So why is it that in an interview when asked a question about code I get stumped and not able to answer it correctly? Am I the only one that does this? Can you BE a great developer without being able to tell you the definition of polymorphism or the like? I know I can do the work, very well. So what can I do to learn the definitions of things? I am thinking of making cue cards and going from there. They have helped me in the past. What do you think? What is the best way for you to learn? Also, do you know definitions and meanings of everything you do? Thanks
The best way to learn is by doing. You can't possibly know everything. I found that interviewers are quite happy to look at your code on a laptop, especially if they can watch the code execute. Many times, the fact that they can actually see your code (and see it running) eliminates their feeling that they should test you.
.45 ACP - because shooting twice is just silly
-----
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001 -
I consider myself a good developer, fellow developers and managers as well as clients have told me the same. I code to standards and make sure it is done correctly. So why is it that in an interview when asked a question about code I get stumped and not able to answer it correctly? Am I the only one that does this? Can you BE a great developer without being able to tell you the definition of polymorphism or the like? I know I can do the work, very well. So what can I do to learn the definitions of things? I am thinking of making cue cards and going from there. They have helped me in the past. What do you think? What is the best way for you to learn? Also, do you know definitions and meanings of everything you do? Thanks
Swelborn wrote:
So why is it that in an interview when asked a question about code I get stumped and not able to answer it correctly? Am I the only one that does this?
No. I'm right there with you.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Man who follows car will be exhausted." - Confucius
-
I consider myself a good developer, fellow developers and managers as well as clients have told me the same. I code to standards and make sure it is done correctly. So why is it that in an interview when asked a question about code I get stumped and not able to answer it correctly? Am I the only one that does this? Can you BE a great developer without being able to tell you the definition of polymorphism or the like? I know I can do the work, very well. So what can I do to learn the definitions of things? I am thinking of making cue cards and going from there. They have helped me in the past. What do you think? What is the best way for you to learn? Also, do you know definitions and meanings of everything you do? Thanks
Swelborn wrote:
Can you BE a great developer without being able to tell you the definition of polymorphism or the like?
Standard reply: Don't ask me questions whose answers I can look up on wikipedia. Marc
-
I bet you can be a great *solo* programmer/developer/engineer, but when working in team you need to know how certain patterns are named to make communication faster and more fluent. I was like you a couple of years ago, but then I spent some time learning a proper names for patters, structures, etc. and it is kinda worth knowing them (-. So keep up and you will eventually be there.
Trust is a weakness.
AWdrius wrote:
but when working in team you need to know how certain patterns are named to make communication faster and more fluent.
In theory, yes, but I'd have to disagree because most every programmer I've ever worked with (except for that Javaites that were trying to impress everyone with their new pattern jargon 20 years ago) really themselves don't know the names of these things either. Personally, what I find much more difficult, interesting, and useful, is learning the lingo of the domain, be it Wall St. or aeronautics or *cough* the entertainment sector, boatyards, etc. Marc
-
I bet you can be a great *solo* programmer/developer/engineer, but when working in team you need to know how certain patterns are named to make communication faster and more fluent. I was like you a couple of years ago, but then I spent some time learning a proper names for patters, structures, etc. and it is kinda worth knowing them (-. So keep up and you will eventually be there.
Trust is a weakness.
AWdrius wrote:
but when working in team you need to know how certain patterns are named to make communication faster and more fluent.
in my 17 years of programming, i have never had a discussion with a co-worker about a "pattern".
-
I consider myself a good developer, fellow developers and managers as well as clients have told me the same. I code to standards and make sure it is done correctly. So why is it that in an interview when asked a question about code I get stumped and not able to answer it correctly? Am I the only one that does this? Can you BE a great developer without being able to tell you the definition of polymorphism or the like? I know I can do the work, very well. So what can I do to learn the definitions of things? I am thinking of making cue cards and going from there. They have helped me in the past. What do you think? What is the best way for you to learn? Also, do you know definitions and meanings of everything you do? Thanks
OK, this'll be a little long because this is a huge bug bear of mine. The only reason you can't explain something is that you don't understand it. I have never met anyone who was unable to explain something that they understood. I meet lots of people who think they understand things but can't explain them, and on pressing they discover they don't. I fall into this category myself quite often. I saw this so many times when lecturing. People could give the text book definition of something but couldn't explain it. It's the difference between knowing and understanding. I test knowledge by whether or not someone can "teach" it. So in an interview situation I would ask the person to "teach" me how something works, or why some technique can be handy. Testbook definitions are meaningless in that situation. If you find you are stumped when it comes to explaining polymorphism it's because a) you don't actually understand it and b) while compensating for not understanding it you are getting hung up on the text book definition. For the record, my significant other has exactly the same problem as you, also with Polymorphism funnily enough. Now, you can use techniques in your code without fully understanding them. The hundrends of libraries, tools, frameworks and principles etc that we have to use mean that we spend big chunks of our time using things that we only superficially know (but don't understand). I still need my cheat sheets for a significant number of technologies. And that's fine, it's fine with technologies and tools to not get them on a deep level. If I had someone sitting in front of me who had trouble remembering the exact syntax of how to mock an object using Rhino Mocks, It would be interesting, but I wouldn't care too much. If they couldn't explain in their own words why you would want to mock an object I'd be more concerned. If I had someone sitting in front of me who claimed to be good at OO but who couldn't teach me about polymorphism I'd be very concerned. The best way test whether you understand something is to find someone who doesn't understand it and try to teach them. If you feel you get stuck on Polymorphism then use it. Create a demo and show it to a work colleague. You will feel the click in your head when you move from knowledge to understanding (for me it's "duhn duhn" the sound from Law And Order, it might be different for you). Stick at it, but forget about memorising text books. -Richard
Hit any user to continue.
-
AWdrius wrote:
but when working in team you need to know how certain patterns are named to make communication faster and more fluent.
in my 17 years of programming, i have never had a discussion with a co-worker about a "pattern".
Ditto
Need custom software developed? I do custom programming based primarily on MS tools with an emphasis on C# development and consulting. I also do Android Programming as I find it a refreshing break from the MS. "And they, since they Were not the one dead, turned to their affairs" -- Robert Frost
-
AWdrius wrote:
but when working in team you need to know how certain patterns are named to make communication faster and more fluent.
In theory, yes, but I'd have to disagree because most every programmer I've ever worked with (except for that Javaites that were trying to impress everyone with their new pattern jargon 20 years ago) really themselves don't know the names of these things either. Personally, what I find much more difficult, interesting, and useful, is learning the lingo of the domain, be it Wall St. or aeronautics or *cough* the entertainment sector, boatyards, etc. Marc
Marc Clifton wrote:
Personally, what I find much more difficult, interesting, and useful, is learning the lingo of the domain, be it Wall St. or aeronautics or *cough* the entertainment sector, boatyards, etc.
The way I earn my living, this is essential. I don't suppose I write academic-standard code (but hey, it compiles, runs, and is stable :) ) but when I get a project, the first thing I do is really understand the client's business, to the point where I can sit in a management meeting and understand everything, jargon and all. I also interview all the users who are going to work on the system, because their understanding of the problem is often very different to management's at the fine detail level. This also gives the users some feeling of ownership in the project, and this can be hugely useful further down the road. Oops - wandered off topic there, sorry. :-O
-
AWdrius wrote:
but when working in team you need to know how certain patterns are named to make communication faster and more fluent.
in my 17 years of programming, i have never had a discussion with a co-worker about a "pattern".
double ditto.
Watched code never compiles.
-
I consider myself a good developer, fellow developers and managers as well as clients have told me the same. I code to standards and make sure it is done correctly. So why is it that in an interview when asked a question about code I get stumped and not able to answer it correctly? Am I the only one that does this? Can you BE a great developer without being able to tell you the definition of polymorphism or the like? I know I can do the work, very well. So what can I do to learn the definitions of things? I am thinking of making cue cards and going from there. They have helped me in the past. What do you think? What is the best way for you to learn? Also, do you know definitions and meanings of everything you do? Thanks
I have the same problem. What does seem to work in my experience interviewing is to talk through an example. Of course you need to make sure interviewer is ok with that. I think a well articulated example how and why you used polymorphism impresses them better than the textbook answer.
-
AWdrius wrote:
but when working in team you need to know how certain patterns are named to make communication faster and more fluent.
in my 17 years of programming, i have never had a discussion with a co-worker about a "pattern".
-
OK, this'll be a little long because this is a huge bug bear of mine. The only reason you can't explain something is that you don't understand it. I have never met anyone who was unable to explain something that they understood. I meet lots of people who think they understand things but can't explain them, and on pressing they discover they don't. I fall into this category myself quite often. I saw this so many times when lecturing. People could give the text book definition of something but couldn't explain it. It's the difference between knowing and understanding. I test knowledge by whether or not someone can "teach" it. So in an interview situation I would ask the person to "teach" me how something works, or why some technique can be handy. Testbook definitions are meaningless in that situation. If you find you are stumped when it comes to explaining polymorphism it's because a) you don't actually understand it and b) while compensating for not understanding it you are getting hung up on the text book definition. For the record, my significant other has exactly the same problem as you, also with Polymorphism funnily enough. Now, you can use techniques in your code without fully understanding them. The hundrends of libraries, tools, frameworks and principles etc that we have to use mean that we spend big chunks of our time using things that we only superficially know (but don't understand). I still need my cheat sheets for a significant number of technologies. And that's fine, it's fine with technologies and tools to not get them on a deep level. If I had someone sitting in front of me who had trouble remembering the exact syntax of how to mock an object using Rhino Mocks, It would be interesting, but I wouldn't care too much. If they couldn't explain in their own words why you would want to mock an object I'd be more concerned. If I had someone sitting in front of me who claimed to be good at OO but who couldn't teach me about polymorphism I'd be very concerned. The best way test whether you understand something is to find someone who doesn't understand it and try to teach them. If you feel you get stuck on Polymorphism then use it. Create a demo and show it to a work colleague. You will feel the click in your head when you move from knowledge to understanding (for me it's "duhn duhn" the sound from Law And Order, it might be different for you). Stick at it, but forget about memorising text books. -Richard
Hit any user to continue.
I agree +5 Well said...
-
Marc Clifton wrote:
Personally, what I find much more difficult, interesting, and useful, is learning the lingo of the domain, be it Wall St. or aeronautics or *cough* the entertainment sector, boatyards, etc.
The way I earn my living, this is essential. I don't suppose I write academic-standard code (but hey, it compiles, runs, and is stable :) ) but when I get a project, the first thing I do is really understand the client's business, to the point where I can sit in a management meeting and understand everything, jargon and all. I also interview all the users who are going to work on the system, because their understanding of the problem is often very different to management's at the fine detail level. This also gives the users some feeling of ownership in the project, and this can be hugely useful further down the road. Oops - wandered off topic there, sorry. :-O
Chris C-B wrote:
because their understanding of the problem is often very different to management's at the fine detail level.
That is SO true. And not just at the fine detail level, but even the large picture. When there's a difference of perception of the problem at the high level between management and users, that's a huge red flag for me that the project is going to end up in flames--the disconnect that management has with users typically portends that users will not, ultimately, be supportive of the effort. And therefore, my livelihood, haha.
Chris C-B wrote:
This also gives the users some feeling of ownership in the project, and this can be hugely useful further down the road.
Exactly! Marc
-
I bet you can be a great *solo* programmer/developer/engineer, but when working in team you need to know how certain patterns are named to make communication faster and more fluent. I was like you a couple of years ago, but then I spent some time learning a proper names for patters, structures, etc. and it is kinda worth knowing them (-. So keep up and you will eventually be there.
Trust is a weakness.
Funny enough I used to work in the past with two different Java teams. The first team was mostly from mediocre/least said/ or wannabe programmer individuals and every second word coming out their mouths was “pattern” pronounced with self-confidence. In the moment I released in what I’ve get into I ran from there like a Salma Hayek from Pete O'Hanlon. The second Java team was from complete professionals who had created a huge complicated and bug free system using Java. These guys learned me, the C++ and SQLServer zealot, to like some aspects of Java and to respect Oracle. And for three years working with them I’ve never heard the word “pattern”, ever.
The narrow specialist in the broad sense of the word is a complete idiot in the narrow sense of the word. Advertise here – minimum three posts per day are guaranteed.