Is it bad to start off learning Visual C#?

M

Mitch

I'm wondering if I'm doing myself a disservice by learning Visual C#,
considering it does so much of the work behind the scenes.

Should I be learning console apps first?

I still haven't found the right book.
C# For Dummies started out great, then the guy just goes into the
stratosphere, with no explanation on how he went from point B to point
X !

My main reason for learning C# is, hopefully, to get back into
automation after a 10 year hiatus. I'm trying to learn C# at home,
with the intent of using it in robotics applications.

If I learn Visual C#, will I still get all the "meat" of the language,
or no?
 
M

Mitch

All that said, since there's not really any such thing as the "Visual C#"
language, it's difficult to really grasp what you're asking, I think.

Makes sense. Let me try to rephrase it. Obviously I'm not too deep
into C# yet, so maybe I jumped the gun on asking stupid questions.

Should I assume that any job requiring C# would mean buildings Windows
apps?
 
C

cfps.Christian

Should I assume that any job requiring C# would mean buildings Windows

No, there are companies switching over from their old COBOL and RPG
systems right now and some are taking it to .NET since .NET
programmers are easy to come by. However that being said, I'm fairly
certain that the vast majority of .NET (C# or otherwise) jobs out
there are working with Windows/Web apps since it does both really
well.
 
M

Martin Bonner

Makes sense. Let me try to rephrase it. Obviously I'm not too deep
into C# yet, so maybe I jumped the gun on asking stupid questions.

Should I assume that any job requiring C# would mean buildings Windows
apps?

No. The Mono project means that C# applications can be run on non-
Windows platforms.

It is quite likely (but I am sure that there are LOTS of counter
examples), that a C# job will involve either creating a GUI
application (aka WinForms), or the code that runs on a web server (aka
ASP.NET).
 
J

jehugaleahsa

Makes sense.  Let me try to rephrase it.  Obviously I'm not too deep
into C# yet, so maybe I jumped the gun on asking stupid questions.

Should I assume that any job requiring C# would mean buildings Windows
apps?

You sound like you are trying to figure out what you can and cannot do
in C#. Believe me when I say, you can pretty much do everything in C#.
True, C# does hide a small level of detail, but the guts of the
programming are open for all to see.

I have programmed robots (mostly Legos) using Java. However, I have
been made aware that there are also .NET implementations available.
Correct me if I'm wrong, but you sound like you are worried C# will
limit you to a small subset of future jobs. The truth is that your
first language will not be your last. Picking up C# will allow you to
understand the fundamentals. Moving on to language that many robotics
engineers use, C, should not be a giant leap. In fact, recent trends
are showing that many up-to-date robotics are now using Java (and
other high high-level languages) as their languages of choice.

Just in case you are wondering, there is a limit to how much you can
interact with the hardware on your machine. C# provides facilities for
connecting to low-level programming languages, which means you can
still technically get down there if you need to. However, most robots
provide APIs for controlling them anyway. If you want to be the person
who closes an electrical circuit to turn on a motor, you will probably
need more than just a programming language (that's electical and
computer engineering). However, I highly doubt you will need that
level of control unless you are building the robot yourself.

So, no, you aren't doing yourself an injustice by learning C#. I am in
the opinion in recent years that learning low-level languages first,
such as assembler and C, will probably be more of an injustice. I only
say that because new programming languages capture good programming
practices. Learn how to write good code first, then learn how to do
the same things in low-level languages. Plus, if you learned
assembler, there would probably be a new language to learn for each
architecture. Personally, I learned C++ first. I can do things in C#
faster and cleaner than anything I could have written in C++. Hence my
opinion.

Thanks,
Travis
 
M

Mitch

You sound like you are trying to figure out what you can and cannot do
in C#. Believe me when I say, you can pretty much do everything in C#.

Good! I just wanted to make sure that I wasn't painting myself into a
corner by learning a Windows-only language.

As for robots, I'm waiting on my Mindstorms NXT to arrive.
Hoping to have fun this summer programming them with the kids.

Thanks for the replies, and sorry for the stupid questions.
 
M

Mitch

On Tue, 27 May 2008 14:38:42 -0700 (PDT), "(e-mail address removed)"
Personally, I learned C++ first. I can do things in C#
faster and cleaner than anything I could have written in C++. Hence my
opinion.


I wish I had physical, real-world friends with similar geek interests
like mine.
 
G

Gilles Kohl [MVP]

Good! I just wanted to make sure that I wasn't painting myself into a
corner by learning a Windows-only language.

C# isn't a Windows-only language. It comes with a powerful run-time
though - which is good if you develop for powerful machines (like
todays PCs, whether they run Windows, Mac OS or Linux). The units of
available RAM, HD space, and CPU cycles are usually prefixed with
"Giga".

To target hobbyist level (small, inexpensive - e.g. 8 bit PIC or AVR)
microcontrollers, assembler is no longer imperative, but C is still
preferrable when the above prefix changes to "Kilo". (OK, "Mega" as
far as the CPU cycles are concerned).
As for robots, I'm waiting on my Mindstorms NXT to arrive.
Hoping to have fun this summer programming them with the kids.

You may want to check out these links:

http://msdn.microsoft.com/en-us/library/bb483024.aspx

http://www.dcl.hpi.uni-potsdam.de/research/lego.NET/

The first one is about a Visual Studio-based environment for robotics
- it can remote-control the LEGO NXP via bluetooth, but not download
software to the device itself.

The second one is an attempt to do the latter. Both are (in my eyes as
a robotics novice) "advanced stuff" though, you may want to get a grip
on NXP (as it comes out of the box) on one hand, and C# / Visual
Studio on the other.

Regards,
Gilles.
 
C

clintonG

I've taught in the classroom. In the classroom we use textbooks. That's how
professionals teach. Using textbooks. The textbooks I recommend are from
Deitel and Deitel (http://deitel.com/) and can be prordered for review from
a Barnes & Noble. They are worth what you will be asked to pay. Every cent.

And yes, C# is the language you want to learn and use.

<%= Clinton Gallagher
 
B

Ben Voigt [C++ MVP]

clintonG said:
I've taught in the classroom. In the classroom we use textbooks.
That's how professionals teach. Using textbooks. The textbooks I
recommend are from Deitel and Deitel (http://deitel.com/) and can be
prordered for review from a Barnes & Noble. They are worth what you
will be asked to pay. Every cent.

Thank you for expressing your opinion of what professionals do in such a
condescendingly unprofessional tone.
 
M

Mitch

Thank you for expressing your opinion of what professionals do in such a
condescendingly unprofessional tone.

Ummm...I pretty much got that same tone.

I'm educated in another field, and I teach in that field, and that
post screamed "I get a nickel if you buy that book!"

There was a time when I had a very young professor who used a textbook
because it was authored by his Mormon BYU brethren.

It went on to be considered one of the worst texbooks in the field, of
all time. I wish this shit were punishable by law.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top