Advertisements
The pressure is on; you have a phone interview tomorrow for a Sr. .NET[i] developer job at "HealthyBank". Being a savvy professional you know these screening interviews keep the posers from showing up for the in-person interviews, only to be shown the door after several hours wasting precious staff time.
I've done hundreds of these screens, over as many years (ok, less than a hundred) and one of the tactics I've found works well, is to ask the most obvious interview question and see how well the candidate does. You find out fast who can't see the forest for the trees or who has memorized arcane detail over learning core concepts. Sometimes you even find the person who makes up a complete wrong answer, admittedly, pretty rare in my experience, but it does happen!
So, back to tomorrow's interview for that .NET Developer job, what are you going to say when the interviewer asks "What is .NET? Can you explain it to me?"
My advice � Simple is better. Clarity is King!
First, picture in your mind who you're speaking with. You can't know the level of expertise on the other end of the phone, and you don't have time to find out. You don't care if the interviewer is a Senior Technologist or a freshly minted HR professional, answer the question the same...as if you're at the family table for the Holiday feast and your favorite Aunt or Uncle just blurted it out. That's the test.-
Do you know .NET well enough to explain clearly, and in the time it takes the potatoes to make it all the way around the table?
Second, pick a few of the talking points below, find an anecdote from your own experience and mash them together into your own story. You don't have to use them all, pick one or two that you'll be able to remember easily under pressure. Remember, simpler is better, clarity is king.
What is Microsoft .NET and What You Need To Know To Land That .NET Developer Job!
Think of .NET as Microsoft's platform for Windows applications. It provides a robust execution environment (common language runtime) for applications to run in, isolated from the Windows operating system and from other applications. It organizes the vast lower level Win32 API into a coherent framework (the.NET Framework).
Consumers of .NET applications can move applications from one version of Windows to another without having to recertify them. This is a subtle, but important, boon for organizations that build, deploy, and support an application over many years, while deploying PCs or Servers running different versions of Windows over time. The application is portable across all versions of Windows.
The core of the .NET platform is called the Common Language Runtime (CLR). The .NET platform allows programming language developers to add different programming languages to the environment. You'll see everything from COBOL and FORTRAN to Visual Basic and C#. As the name befits, the CLR provides services to all of them. The CLR takes care of low-level details such as memory management, creating application domains, threads and object context boundaries, and performing various security checks. The CLR composes two critical components you should know about. The Common Type System (CTS) describes all the possible data types and programming constructs supported by the runtime. The CTS effectively enables systems of .NET components to be much more robust while communicating with each other, even when the components are written in different programming languages. The Common Language Specification (CLS) defines a subset of common types and programming constructs that all .NET programming languages can agree on. You'll need in depth knowledge of the CTS and CLS if you're going to implement a custom programming language or .NET Framework library.
The second major component of the .NET platform is the Base Class Library (BCL). The BCL is available to all .NET programming languages it encapsulates various primitives such as threads, file input/output (I/O), graphical rendering, and interaction with various external hardware devices. It provides important common services, such as structured exception handling, required by real world applications.
That's it. .NET, the platform, is the CLR and the base class library. But as the late Billy Mays might have yelled "But, wait! There's more!"
In addition to the base class library, Microsoft packages a comprehensive class library of literally thousands of classes and methods for developing Windows applications. Referred to as the Framework Class Library (FCL), it is a superset of the BCL classes and includes support for Windows features such as WinForms, ADO.NET, ASP.NET, Language Integrated Query, Windows Presentation Foundation, Windows Communication Foundation among others. Depending on release cycles you'll see updates to the FCL for new Microsoft technologies, such as Silverlight, as they become available.
The Microsoft integrated development environment, Visual Studio, is tightly integrated with .NET and provides great tools for navigating the FCL, writing code in the .NET language of your choice, and helping you debug your applications. You can write .NET applications without using Visual Studio, but most people don't. And you can still use Visual Studio for native code development in C++.
Besides helping solve the problems of API complexity and application robustness, .NET is also a response to the threat to Microsoft of Java as a competitive development platform. The Java language is syntactically similar to Microsoft's C# and both share a common C language heritage. The Java platform provides common runtime and shared libraries for developers targeting non-Windows platforms. Marketers will shout (Billy Mays again) "faster, stronger, cheaper!" to try and differentiate the two. Technologists will dither in the arcane details of programming language constructs and design patterns. But the differences all boil down to the Microsoft vs. non-Microsoft platform choice. Be very skeptical of architectures that span the two.