Hi Blaze,
I respect your skill with respect to networks. While I am familiar with
networks to the extent that I have to write software that runs on them (and
therefore know a moderate amount about everything), I would hardly want to
jump right into network engineering! I am well aware of my deficiencies in
that area! ;-)
As to the "hello world" app, let me explain a bit.
There are 3 major concepts to programming that are important to understand:
input, output, and processing. Each of these is a world unto itself of
information to be learned and understood. Typically, a programming course or
book will start with what is well-known as a "hello world" app. Don't ask me
where "hello world" came from - probably the same place as "foo bar." Of
course, it doesn't have the same colorful flavor! Someone way back when
decided upon it, and it was picked up and embraced as something easily
recognizable to the community. I'm sure you have similar expressions in
network engineering.
The purpose of a "hello world" application is to introduce the developer to
one of these three concepts: output. Output can take on many forms, but the
earliest and simplest form remains the command-line, or "console" as it is
known today. The only thing that a console app puts out is text. And the
only thing it accepts is text. So, it clears away all the extraneous stuff
to enable the beginner to concentrate of pure concept.
A console app that writes "hello world" would look something like the
following:
namespace ConsoleTest
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
Console.WriteLi ne("hello world.");
}
}
}
Very simple and straightforward . It does introduce a few concepts, such as
namespaces, classes, the Main() method, Single Threaded Apartment Threading
model, and output.
All of these could be discussed, studied and understood before moving on to
the next step, which would be input. For that, the developer would add
something like:
string s = Console.ReadLin e();
Console.WriteLi ne(s);
This introduces a couple more concepts: variables, data types, and output.
Again, each new concept would be studied and understood before moving on.
Most beginning-level books and courses (good ones) include a "hello world"
app to start with. Learning programming is like eating an elephant. It can
be done, but is best done in small "bytes." ;-)
From there, the beginning-level developer adds a bit more, building on what
has already been learned, and often adding to the same program in the
process. Processing could be introduced with something like the following:
int i = 2;
int i2 = 3;
var i3 = i + i2;
Console.WriteLi ne("i = " + i.ToString());
Console.WriteLi ne("i2 = " + i2.ToString());
Console.WriteLi ne("i + i2 = " + i3.ToString());
Again, a simple, but powerful and clear example, which also introduces the
concept of Methods (the Int32.ToString( ) Method),
and operators ("+"), as well as operator overloading ("+" used for addition,
as well as for string concatentation) .
After that, other basic concepts, like sequence, selection, and iteration
could be introduced, studied, and mastered.
The idea here is that all programming, from a simple Console app to a Web
Service, does the same things "under the hood." Programming is like
mathematics (actually, programming *is* mathematics), which is all based on
counting at the lowest level. Addition is counting up. Subtraction is
counting down. Multiplication is counting addition operations. Division is
counting subtraction operations. Fractions express division operations. And
so on, defining arithmetic. Algebra is arithmetic with symbols representing
numbers and arithmetic statements that evaluate to numbers. And so on.
The same goes for programming. All programming is based upon the concepts of
input, output, and processing, and involves sequence, selection, and
iteration. Text is just numeric values translated into graphical
representations of the letters that correspond to the numbers. Graphics, and
graphical user interfaces, for example, are simply long strings of numbers
which are broken up into substrings of equal length, each representing a
combination of 3 numbers whose values represent intensities of red, green,
and blue, and displayed by coloring pixels on the screen with the color
values represented by those numbers, one line on top of the other, creating
a rectangle.
Each level of programming builds on the level below it. Skipping the lower
levels, while an attractive prospect to some, tends to cripple the student
at some point, requiring a re-learning of that which was skipped previously.
Sort of like trying to learn calculus after skipping trigonometry.
If you start with the basics, however, and work your way up, it isn't really
hard at all.
For the most part, of course! ;-)
--
HTH,
Kevin Spencer
Microsoft MVP
..Net Developer
There's a seeker born every minute.
- Dr. "Happy" Harry Cox
"Blaze" <Bl***@discussi ons.microsoft.c om> wrote in message
news:AB******** *************** ***********@mic rosoft.com...
I have 2 books on the way. I know a TON about web services and how to use
them and the way XML interacts with apps. I am a very experienced network
engineer with a pretty good grasp on technology. I just don't know how to
program, but am learning by myself. Do you have a suggested reading on the
"hello world" console app?
Thanks!
Blaze
"Kevin Spencer" wrote:
Dude, you're just starting to learn programming, and you begin by trying
to
write a Web Service? that could have something to do with it. You might
want
to start with a simple "hello world" console app.
A book about Visual Studio.Net presupposes that one has some experience
with
programming. Get yourself a beginning-level programming book, and work
your
way up from there. You really don't want to present yourself with too
many
challenges at first; you'll get frustrated and quit!
--
HTH,
Kevin Spencer
Microsoft MVP
..Net Developer
Complex things are made up of
Lots of simple things.