|
Hello Gilbert,
could you tell me what did you mean step by step because i have no experience. I thought that if i use localdb i can't use database server to do what i want thus i use the shortcut instead.
Thank you in advance
|
|
|
|
|
|
|
Hi Everyone,
No this is not a homework question; not even sure if this question belongs in here or if anyone has the time to have a look over these, but here's the situation: I was recently provided with 5 technical questions over eMail from a recruiter for a very large video game company for me to answer and return to the recruiter, who was supposed to call me and go over my answers but hasn't done so yet. So of course I'm getting paranoid as I sit waiting for some sort of response regarding my answers and so I thought, heck, why not post the questions and my answers somewhere here on CodeProject in the hopes that at least one of the mad experts in this community might have a few minutes just to read through my answers and critique them (I mean really let me have it if need be). I've been developing for a long time but you know how the interview process goes, every day that you have to wait for a response is agonizing and can cause you to start doubting yourself.
So at the risk of this being in the wrong area of CP, here are the questions that I was given and the answers that I came up with (with a surprising minimum of Googling and any kind of word-for-word parroting of things that I've read and assimilated over the years):
1. In C#, what is an interface?
An Interface in C# is a way to achieve polymorphism within modules so that similar classes that need to readily utilize methods implemented in other common classes can do so without having to incur the overhead of instantiating the other classes within themselves. Interfaces are type declarations that can contain collections of declarations of methods, events, properties and indexers without their implementations; the actual implementations are left to any class that chooses to implement that interface. And since interfaces are technically contracts guaranteeing that any class that implements said interface MUST contain actual implementations of each and every method, event, property and indexer declared in the interface (with identical signatures). Interfaces are a valuable way of making code extensible and introducing abstraction into multiple classes that have a need for executing common tasks with slightly different implementations. The Interface concept can be counter-productive if it declares any methods that are specific and relevant to only one class, as the purpose of the Interface is to eliminate redundant method implementations between more than one class that must use said method. This is why interfaces best contain methods, properties, etc., that perform a related set of functionalities that need to be available to as many classes as possible to provide design abstraction, but only if the abstraction is actually necessary and does not lead to undue increased complexity and difficulty maintaining reusable code.
2. What does the “using” statement do in C#? (note: we are referring to its usage in code blocks, not when used to import namespaces).
The using statement in C# (not to be confused with the using directive to import namespaces) is used to provide a shorthand way to simplify the code necessary to properly encapsulate the acquisition, usage and proper disposal of a resource used within an object. At the IL level, the using statement is actually translated by the CLR (or expanded so to speak) into an instantiation of the required resource into an object, followed by an implementation of a try{}...finally{} block in which the execution of a method on that object's resource is attempted in the try{} portion and the disposal of the object containing the resource is performed in the finally{} portion by calling the object's Dispose method which is accessed via the IDisposable interface, provided that the resource is not null which would result in a run-time error since in that case there would be no object on which to call a Dispose method.
3. What does it mean to you when I say strings are immutable?
In .NET all variables of type string are immutable, or unchangeable, meaning that once the variable has been assigned a value, you can never actually change its value. This is due to the fact that the string datatype in .NET is actually a reference type which is a pointer to a memory location containing the contents of the string and then allocated in the heap until the variable comes into scope and the pointer therein is pushed onto the stack. So when you try to assign a new value to a string variable that already has been assigned an initial value, a new memory location is actually allocated in the background and the pointer to that new memory location is merely copied to our string variable which, in the foreground, appears as if the actual value of the variable has been changed. This characteristic can cause misuse and confusion by developers who are used to other languages in which operators such as the concatenation (+) operator can be used on a string variable directly. Hence in .NET the preferred (if not downright mandatory) way to essentially achieve string mutability is through the use of the System.Text.StringBuilder, which is actually not a string but a class containing a collection of character data along with methods that can perform mutable operations (concatenations, manipulations, etc.) on said character data collection and that can ultimately be finally converted into an actual immutable string type by using Object.ToString() on the instantiated StringBuilder object.
4. In C# in the Task Parallel Library, what is a Task?
In the TPL a Task is a class that when instantiated becomes a lightweight object that incurs minimal overhead by, instead of spawning individual threads that have their own overhead and initialization latencies and requirements for exception handling and propagation, utilizes the CLR's ThreadPool class (which can also be used manually using the ThreadPool.QueueUserWorkItem method directly but since .NET 4.0 the entire ThreadPool class has been overhauled to be specifically optimized for maximum efficiency when used intrinsically by Tasks. Tasks were designed for leveraging multi-core processors to efficiently manage parallelizable units of work (in fact the powerful Parallel class is directly based on the concepts of task parallelism) by containing powerful features such as tuning of a task's scheduling, starting of tasks within tasks to create parent/child task relationships that allow for such things as implementing cooperative cancellation between tasks, waiting on a whole set of tasks to complete without the need for signaling constructs such as delegates or heaven forbid, old-school CPU-intensive techniques like polling loops for thread results LOL), attaching of "continuing tasks" to be automatically started upon completion of one or more antecedent tasks, and automatic propagation of task exceptions to parents, continuations and actual task consumers.
5. What is the difference between a Mutex and a Semaphore and give an example of where you would use each.
The major difference between a Mutex and Semaphore is that a Mutex ensures that one and only one thread can access a resource (or section of code) at a time whereas a Semaphore establishes a maximum number of concurrent threads that are allowed to simultaneously access a resource by basically maintaining a queue of threads to enforce concurrency in an ordered fashion. Another important difference is that Mutexes, like simple locks, can only be released by the same thread that obtained the lock in the first place, whereas Semaphores have no owner; i.e., are "thread-agnostic", such that any thread can call Release on a semaphore regardless of which other thread may have obtained it initially. And while Mutexes and Semaphores are similar in the respect that both are thread-locking constructs that can be cross-process friendly, allowing them to work computer-wide as well as application-wide, Semaphores must be named in order to span processes in the same way that Mutexes can intrinsically. An example of a classic use for a Mutex would be to leverage its computer-wide synchronization and locking mechanisms to prevent more than one instance of an application from being allowed to be executed at the same time. An example of an appropriate use of Semaphores would be to implement a simple lightweight message-queueing data structure that could be easily used in situations in which multiple threads within a single application need access to the same message queue but where a full-blown MSMQ implementation would be overkill in terms of not only resource overhead but also would perform way too slowly to be practically used in real-time distributed applications such as those that may require, say, socket-level reading of UDP messages that each might require processing in a separate thread ASAP.
So that was my best attempt late at night on these; I welcome any critiques/corrections/comments/complaints/insults, etc., from anyone who has the time to wade through my rather verbose answers... Please be as brutal as necessary - I aint' skeered, just want to always keep learning and you guys are the best!
Thanks in advance CPians! Cheers
"... having only that moment finished a vigorous game of Wiff-Waff and eaten a tartiflet." - Henry Minute
"Let's face it, after Monday and Tuesday, even the calendar says WTF!" - gavindon
Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning. - gavindon
|
|
|
|
|
The length and breadth of your answers are an example of why "Interview Question" articles are a complete waste of time. Nice job.
|
|
|
|
|
OK I guess I deserved that, should have known better... I was just hoping that someone could quickly assess whether or not the type of answers that I gave would even be considered in the ballpark as far as length and breadth, not regarding posting guidelines on CP, but for providing written answers to stupid interview questions in general.
Sorry for any mental and emotional distress that I may have caused you and yours by not following the official proper etiquette, protocol, decorum, policy and/or procedure in my failed attempt to reach out to our community, and also for representing everything soulless and wrong.
I shall now go place my head in a vice and begin turning the crank. Is there a recommended area of CP that might have some advice on how best to do this? Perhaps with enough searching I can find an Arduino article on wiring up servomotors to vice cranks so that I can automate the process...
"... having only that moment finished a vigorous game of Wiff-Waff and eaten a tartiflet." - Henry Minute
"Let's face it, after Monday and Tuesday, even the calendar says WTF!" - gavindon
Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning. - gavindon
|
|
|
|
|
Deserve what? I was complimenting you on the accuracy and completeness of your answers.
There are too many "Interview Question" articles here and all over the web that are written by idiots who think that's a good way to help someone get a job. They all suck because none of them go into the detail and understanding required to give the kind of answers that you gave.
|
|
|
|
|
Very cool man... I was so ready for bad news that I read your answer wrong. Thank you so much for your compliments - very much appreciated today... I had a gut reaction that I had nailed the questions but it's been a little while since I've written so technically and I was proud of myself that all of that just kinda flowed out of me.
You made my day; good end to a day full of productive job hunting and networking for once! I think I may be finally starting to get the hang of this after 23 years in the biz...
Thanks Dave! Cheers!
"... having only that moment finished a vigorous game of Wiff-Waff and eaten a tartiflet." - Henry Minute
"Let's face it, after Monday and Tuesday, even the calendar says WTF!" - gavindon
Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning. - gavindon
|
|
|
|
|
OK so here is a concise question that really drills-in on what I wanted to know in the first place and hopefully it won't be TLDR for anyone:
Did I get the damn job or not?
"... having only that moment finished a vigorous game of Wiff-Waff and eaten a tartiflet." - Henry Minute
"Let's face it, after Monday and Tuesday, even the calendar says WTF!" - gavindon
Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning. - gavindon
|
|
|
|
|
Based on most of the people that I've had the displeasure of interviewing, you're in the top 5 to move on to the next round.
|
|
|
|
|
TLDR
Anyone that sends you interview questions over email is wasting their time and yours as it gives you ample opportunity to get the answers from elsewhere, it is no indication of your knowledge. The only possible reason I could think of to do this would be to google the answers I get back to see if the answers have been copied from the web for not. But do I want to work for someone who is more concerned with how Machiavellian I am than my technical abilities?
If, however, this is a genuine way of assessing people then there is a high chance you will be working alongside people whose idea of "coding" is to copy and paste the requirements of any task they are given in to a question on CP along with "plz send codez its urgent".
|
|
|
|
|
F-ES Sitecore wrote:
If, however, this is a genuine way of assessing people then there is a high chance you will be working alongside people whose idea of "coding" is to copy and paste the requirements of any task they are given in to a question on CP along with "plz send codez its urgent".
Well said... I agree completely about everything you're saying, I've been on the giving and the receiving end of phone and personal technical interviews for years and so yes the whole philosophy of them irks my craw in the first place...
Thanks for the feedback, I appreciate it...
"... having only that moment finished a vigorous game of Wiff-Waff and eaten a tartiflet." - Henry Minute
"Let's face it, after Monday and Tuesday, even the calendar says WTF!" - gavindon
Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning. - gavindon
|
|
|
|
|
So you understand the meaning of a few technical terms. Or do you? Much of what you have written reads (to me) like marketing speak, and gives no real indication of whether you understand what you have written, or whether you just copied it from the internet. And your answers are much too long. Remember, recruiters will be faced with a pile of applications and the first thing they do is throw out all the ones that are unreadable, then the ones that take too long to read.
|
|
|
|
|
OK thanks man, excellent food for thought on my part... I really appreciate the honest criticism/advice buddy... Cheers!
"... having only that moment finished a vigorous game of Wiff-Waff and eaten a tartiflet." - Henry Minute
"Let's face it, after Monday and Tuesday, even the calendar says WTF!" - gavindon
Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning. - gavindon
|
|
|
|
|
clientSurfer wrote: 3. What does it mean to you when I say strings are immutable? I'd say you have a managed mind
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Eddy Vluggen wrote: I'd say you have a managed mind
heheh! You are implying, kind sir, that my mind is part of some kind of Common Language Runtime; which troubles me because I never really considered my hopes, dreams and most innermost naissance-laden tendernesses in the context of being symbolically reduced to some sort of IL with all of the resulting compiler directives and localizations and identifiers and what-not.
But I refuse to be bytecode... So I endeavor to control and comply. I'm trying to dig deeply and greedily like Gloin and the Dwarve-lords, lower and lower into the hardware layer until I smote a Balrog or at least prove that a dry cell can power a light bulb in series.
Thanks in advance for your support all!
"... having only that moment finished a vigorous game of Wiff-Waff and eaten a tartiflet." - Henry Minute
"Let's face it, after Monday and Tuesday, even the calendar says WTF!" - gavindon
Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning. - gavindon
|
|
|
|
|
clientSurfer wrote: You are implying, kind sir, that my mind is part of some kind of Common Language
Runtime No, since only the strings of Microsoft are part of the CLR
I prefer to escalate these kind of questions; having the answer is one thing, seeing consequences another.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Then I'm guessing I must have a short between my seat and keyboard
"... having only that moment finished a vigorous game of Wiff-Waff and eaten a tartiflet." - Henry Minute
"Let's face it, after Monday and Tuesday, even the calendar says WTF!" - gavindon
Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning. - gavindon
|
|
|
|
|
Quick reactions:
0. overall: your answers are thoughtful and detailed, but I agree with other respondents here who have questioned the meaningfulness of the process.
1. Interfaces
"a way to achieve polymorphism within modules so that similar classes that need to readily utilize methods implemented in other common classes can do so without having to incur the overhead of instantiating the other classes within themselves." This seems "off" to me: specifically, this seems to imply an interface actually provides reusable something-or-other, and it most definitely does not. An abstract class, however, does "provide."
cheers, Bill
«I want to stay as close to the edge as I can without going over. Out on the edge you see all kinds of things you can't see from the center» Kurt Vonnegut.
|
|
|
|
|
BillWoodruff wrote: 0. overall: your answers are thoughtful and detailed, but I agree with other respondents here who have questioned the meaningfulness of the process
0. Thank you Bill for your positive feedback on my answers. I also agree with anyone who will question the meaningfulness of the current interview process; I've been on the giving as well as receiving end of technical interviews and I know for a fact that any one of us 12 millions CP'ers could easily right now come up with some obscure programming questions for a technical interview that would be so specific that not a single one of the other 12 million members would be able to answer in their right minds.
BillWoodruff wrote: 1. This seems "off" to me: specifically, this seems to imply an interface actually provides reusable something-or-other, and it most definitely does not. An abstract class, however, does "provide."
Thanks Bill I appreciate the schooling on this... Methinks I need to readdress this whole area of my understanding of interfaces vs. abstract classes vs. virtual classes/methods
Thanks CPians for failing to disappoint as usual... Cheers!
"... having only that moment finished a vigorous game of Wiff-Waff and eaten a tartiflet." - Henry Minute
"Let's face it, after Monday and Tuesday, even the calendar says WTF!" - gavindon
Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning. - gavindon
|
|
|
|
|
I can't claim to be at a "guru level" on choosing whether to use "standard," or virtual, or abstract classes, and using your choice of those with interface definitions.
It took me a long time to "grok" that on one level using interfaces was a contract, a compile-time enforced promise that any object that inherited from the interface implemented every specification in the interface ... and, that interfaces also functioned as a way to establish a kind of "semantic viewport" on objects, so you could expose an object instance "filtered" in a carefully controlled way by passing it cast to the interface.
Later, when I discovered that you can use generics with interfaces, that interfaces can inherit from interfaces ... well, I'm still digesting that
I'm still looking (eagerly) for wisdom in terms of best practices in OO design; and I doubt I'll ever quit looking.
cheers, Bill
«I want to stay as close to the edge as I can without going over. Out on the edge you see all kinds of things you can't see from the center» Kurt Vonnegut.
|
|
|
|
|
BillWoodruff wrote: I can't claim to be at a "guru level" on choosing whether to use "standard," or virtual, or abstract classes, and using your choice of those with interface definitions.
Wow that's actually saying a lot and is somehow comforting to me considering your impressive background and experience Bill!
BillWoodruff wrote: It took me a long time to "grok" that on one level using interfaces was a contract, a compile-time enforced promise that any object that inherited from the interface implemented every specification in the interface ... and, that interfaces also functioned as a way to establish a kind of "semantic viewport" on objects, so you could expose an object instance "filtered" in a carefully controlled way by passing it cast to the interface.
... never thought about the "semantic viewport" offered by interfaces; more appreciated food for thought you have provided me here...
BillWoodruff wrote: I'm still looking (eagerly) for wisdom in terms of best practices in OO design; and I doubt I'll ever quit looking.
Neat quote and well said, Bill - an encouraging thought that promises to inspire me today in my grok quest (hmm "Grok Quest" - that almost sounds like a good name for a bad video game, yes?)
Thanks Man, Cheers!
"... having only that moment finished a vigorous game of Wiff-Waff and eaten a tartiflet." - Henry Minute
"Let's face it, after Monday and Tuesday, even the calendar says WTF!" - gavindon
"I'm still looking (eagerly) for wisdom in terms of best practices in OO design; and I doubt I'll ever quit looking." - BillWoodruff
"Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning." - gavindon
modified 30-Aug-15 17:59pm.
|
|
|
|
|
hi
if speech a word in recognition and the word not found in grammar , how to access to the word ?
thank you
please help me
|
|
|
|
|
Member 11785200 wrote: the word not found in grammar , how to access to the word Think about that question. That is like saying, if there are no apples on the apple tree, how do I find the apple?
|
|
|
|
|
By looking in the hands of the staff. At least one will have an Apple.
|
|
|
|
|