Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I don\'t work at a software company, and I\'m one of a small handful of people i

ID: 642485 • Letter: I

Question

I don't work at a software company, and I'm one of a small handful of people in the company that know anything about programming. I spend a lot of time automating other programs that are used in the office through public APIs, and I've also created a few stand alone applications. I work almost entirely in C#.NET as every application we seem to use in the office seems to have some form of .NET API.

I've had a few people here ask me about learning "how to program", and where they should start. I think it makes a lot more sense to learn a .NET language as nearly all the programs they would want to automate have a .NET API, and it sounds like VBA is on it's way out and being replaced by VSTA.

However, I'm trying to figure out how to explain what .NET is and why they should learn it to a someone that doesn't know anything about programming. It's not really a language, as there are a number of languages that are considered .NET languages. Plus I think there is a distinction between ".NET" and "The .NET framework" as the latter is more about the libraries provided by Microsoft.

Explanation / Answer

.NET for the Non-programmer

Programming - Basically telling a computer what to do and how to do it.

Source File - This is a document written in a programming language that tells the computer what you want it to do.

Programming Language - This is a language that (usually) resembles a mixture of English and math. It is both simple and strict enough for a compiler to understand.

Compiler - This translates a programming language that you can understand into a language the computer can understand, you can call it Computerese.

Library - A collection of useful code that has already been translated into Computerese that you can use in the programs you write.

.NET Platform - A large collection of tools, languages and libraries for writing programs with a heavy emphasis on productivity.

Sure, there's a lot more to it than that. You could tell them about IL and JIT compiling or garbage collection but these details aren't very relevant to a non-programmer.