CRASH couse in .NET, C++ basics
June 7, 2007 4:35 PM   Subscribe

I need a crash course that would help me understand (not a technical, but a "familiar" or "conversational" understanding) the framework and constraints of C++ and/or .NET. I know this is a very difficult/impossible task, but I'm in a bind.

Okay, so I have an interview for a position tomorrow that encompasses all of of my customer service/management skills, but is much more involved with the programming department (I currently manage a small tech support department). This job isn't really technical at its core, but I would be working daily with programmers.

I was told in my phone interview that I didn't need to have any technical, code-level programming skills, but I would need to know the basic framework of a "modern Microsoft product" (I'm guessing C++ or possibly .NET). This is a horribly murky question and I do apologize, but this is honestly the only place in the world where I know I can get a coherent and helpful answer.

PS The salary involved would put me in a whole different economic strata, so any help is REALLY appreciated.
posted by lattiboy to Computers & Internet (17 answers total) 4 users marked this as a favorite
 
UGH! Visual Basic, not .NET framework! Sorry......
posted by lattiboy at 4:38 PM on June 7, 2007


No offense, but as a developer I certainly wouldn't want to be working for you if you've never been part of a complete software development life cycle, don't know what unit testing is, have never heard of continuous integration and didn't know the difference between a QA environment and a preproduction environment. Once you've covered those then we can start talking about framework specific technicalities.
posted by furtive at 4:48 PM on June 7, 2007 [1 favorite]


If you just want an overview of the .NET framework, you could do worse than the wikipedia entry. And here is their entry on the .NET programming languages.

On preview, Visual Basic .NET.
posted by trip and a half at 4:50 PM on June 7, 2007


You need to do this by tomorrow? Dude. Well for starters C++ is a programming language, not a framework.

Anyway, you may want to read through Joel on Software. It's all about business, programming, etc, and he has a Microsoft slant to things. Maybe he'll have one article that is exactly what you need.
posted by chunking express at 5:10 PM on June 7, 2007


Thanks for the links all. I should've included the fact that the person who I will be replacing (and will be my new boss) is a major part of the interview process. She said that basically I had the skills that the job actually NEEDS, but that the team will ask questions that I will never actually use in the position (she's been doing it for a few years). I'm not trying to cheat my way into a position, I just want to go in fully prepared.
posted by lattiboy at 6:11 PM on June 7, 2007


Don't try anything drastic. It will become quickly apparent to you in your interview whether you're in over your head or not. Bullshitting your way through it won't do you or them any good. I assume this job entails not actually managing developers, but working more closely with them in a kind of product manager role?

No offense, but as a developer I certainly wouldn't want to be working for you if you've never been part of a complete software development life cycle, don't know what unit testing is, have never heard of continuous integration and didn't know the difference between a QA environment and a preproduction environment. Once you've covered those then we can start talking about framework specific technicalities.

As a manager, I certainly wouldn't want to have you working for me because you'd always be finding ways to be an arrogant pain in my ass.
posted by mkultra at 6:13 PM on June 7, 2007 [3 favorites]


If you want some information on the history and background of Visual Basic, and its place in the business market, wikipedia has some good information on that, as well.

When did I become a shill for wikipedia? I don't even use wikipedia that often!
posted by trip and a half at 7:57 PM on June 7, 2007


Modern development doesn't use VB. VB is used when you have legacy software and legacy developers. A modern Microsoft product, to Microsoft, means .NET. Understanding the .NET framework will be a useful thing, & isn't that complicated. Read about these terms: CLR, JIT, MSIL, C#/VB.NET, C++/CLI, and WinForms. It also probably wouldn't hurt to look up some webservice stuff, and maybe ASP.NET 2's model. Understand the difference between the .NET redistributable framework and the .NET SDK, and know what each does.

Microsoft is trying to push people away from C++ and onto .NET, so things like MFC are being phased out, but MFC is what Windows development meant to Microsoft for a while, and a LOT of applications still use it. For C++, you'll first want to understand that C++ is a language, Visual C++ is an IDE, and MSVC usually refers to the compiler. The Win32 API is how you use C++ to program on Windows on a 'low' level. Microsoft has a number of libraries and technology that sit ontop of this API and either abstract it or provide other functions. You'll want to look up, specifically, MFC (this is the big one), ATL, COM, COM+, DCOM, and maybe OLE. Maybe MDAC.

This'll get you familiar with the terms. Don't throw them around, it'll be painfully obvious, especially to a developer.
posted by devilsbrigade at 8:54 PM on June 7, 2007


Google the words and phrases people are throwing around here, then proceed to ask about the systems and procedures used on the job site.

There are a few buzzwords, but everyone does it differently. The least successful people lock on to a rigid definition of something they don't understand, and try to force everything to fit their misconceptions. The most successful people understand that software development processes are fluid and are never quite the same in two different places. Often they are implemented differently throughout a company.

You will be most successful if you flip every question around by saying "that sounds familiar, but tell me how you do that in your team."

People who pretend to know what they don't get shot down. People who do their homework, but admit that they have gaps and want to learn succeed.

PS The salary involved would put me in a whole different economic strata, so any help is REALLY appreciated.

Put that out of your mind. You need to be in a low-stress state to succeed in an interview.
posted by b1tr0t at 8:56 PM on June 7, 2007 [2 favorites]


Also, never try to bullshit the scary Russian, it never works.
posted by b1tr0t at 8:58 PM on June 7, 2007 [3 favorites]


You don't have enough time to go very deep into these. I should stick to Wikipedia and the top few Google results.

You seem to be getting a bit tangled with the basic concepts: you most need to get those straight. Which is tricky as definitions of these things are a bit loose.

The .NET environment is a way of writing and running software. It consists of:
1. The .NET Runtime. A package that is installed on a computer and is used to run programs.
2. Visual Studio.NET: a software development environment that is used to write programs for this runtime.

Conceptually, you consider the functions of the runtime to be the ".NET Framework".

Visual Studio.NET compiles source code in various languages to MSIL: a Microsoft Intermediate Language. This is run by the runtime, which compiles it into the 1s and 0s of machine code as it runs.

Visual Studio can compile various languages including:
C#, a new language written by Microsoft for .NET
VB.NET, (Visual Basic.NET) basically a new language but similar to an older Microsoft language also called Visual Basic
C++, a Microsoft implementation of an established standard language.

Because these languages all use the same framework/runtime, they have very similar capabilities in .NET.

However, VB.NET is very different to the older VB6, which used a very different runtime.

I believe Microsoft C++ is also somewhat different to the standard C++
posted by TheophileEscargot at 3:21 AM on June 8, 2007


I believe Microsoft C++ is also somewhat different to the standard C++

Minor point for this, but newer versions (MSVC2003 and MSVC2005) are nearly entirely standards-compliant (the only thing they don't implement is the export keyword, iirc). There are still some extensions that MS pushes, including some 'safe' versions of functions in the C standard library, but in general its quite close. Arguably closer than gcc, in fact, which has its own pretty extensive set of modifications and extensions.
posted by devilsbrigade at 4:26 AM on June 8, 2007


I just want to say thank you to EVERYBODY! futive included, even though he misunderstood the position I'm going for. This is the same job I am currently doing (managing a small tech support department), except with more emphasis on being a "user lobbyist" in meetings. The job mostly involves process streamlining, scheduling, escalation, and so on.

Once again, I can't thank you all enough. I poured over the things you all linked to and feel I have a much better grasp of the world of code (better, but still woefully lacking).
posted by lattiboy at 8:02 AM on June 8, 2007


This is the same job I am currently doing (managing a small tech support department), except with more emphasis on being a "user lobbyist" in meetings. The job mostly involves process streamlining, scheduling, escalation, and so on.

In my experience, what this effectively means is that they expect you to be able to have a conversation with a developer and follow what he's saying. They want to make sure you don't tune out (or worse, freak out) when a programmer tells you why something isn't feasible/will take a long time/is best left to a later release/etc.

If it's not too late to get in on the pre-interview suggestions, I'd emphasize asking about their processes, how far out they plan their release cycles, what their dev/test/production environment looks like, etc. They want to know you're interested in them and not Yet Another Drone who's going to give them grief at every meeting.
posted by mkultra at 8:57 AM on June 8, 2007


Thanks mkultra, will do. I am not quite as dumb as my original question made me seem, I am just too amped up about this because of the pay/perks/location. Will certainly ask about their cycles, as the main reason I'm leaving my current position is our hilarious lack of structure and competency with updates and new products. Suffices to say I spend a lot of my time explaining away fixable errors and enormously lacking features to people who don't know any better....
posted by lattiboy at 9:56 AM on June 8, 2007 [1 favorite]


Thanks mkultra, will do. I am not quite as dumb as my original question made me seem

BTW, I didn't mean to infer you were being condescending. I'm a bit of a mess of nerves. Trying to calm down now.
posted by lattiboy at 10:09 AM on June 8, 2007


Well, interview went swimmingly! Ended up not needing ANY of the valuable info I slammed into my head last night, so I guess that goes to show......... something. Thanks guys!

PS Hopefully this will be a useful resource for somebody else in the same position....
posted by lattiboy at 2:11 PM on June 8, 2007


« Older How can I get my laptop to tell me how much charge...   |   Cheap Vegas, again? Newer »
This thread is closed to new comments.