By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
432,275 Members | 936 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 432,275 IT Pros & Developers. It's quick & easy.

Is it bad to start off learning Visual C#?

P: n/a
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?
Jun 27 '08 #1
Share this Question
Share on Google+
12 Replies


P: n/a
On Tue, 27 May 2008 12:37:56 -0700, <Mitch@_._wrote:
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'm not sure what you mean. There's just "C#". If I recall correctly,
there's the "Express" editions of Visual Studio, each of which delivered
to support just a single language. But the C# version is still using just
plain, regular C#.

Your question about console applications suggests that instead, you're
thinking more of one of the several GUI frameworks available in .NET.
While sticking to console applications may allow you to become more
familiar with the language without having to worry about other intracacies
such as the GUI frameworks, there's nothing in particular about the GUI
frameworks that "hides" parts of C#. If anything, I'd say that they use
_more_ of the language or at least use the more complicated parts more
often, and thus will expose you in greater detail to the language, not
less.
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 !
Hard to say without a specific example what you experienced. But
sometimes, it's just because it's a bad book.

I have to say, I've always had mixed feelings about the whole "dummies"
series. I'm ambivalent about a business model predicated describing your
customers as stupid. Granted, I also don't have a lot of exposure to the
actual books, but it's entirely possible that the particular book you're
talking about just wasn't well-written.

Anyway, back to the real question...
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?
With respect to "the language", I really don't see how the difference
between console applications and GUI applications is going to affect your
understanding. They both use the language, and neither have any aspect
that "does so much of the work behind the scenes" with respect to the
language itself.

It's true that as far as GUI programming goes, the .NET GUI frameworks all
hide a lot of the work. But that has nothing to do with the language, nor
is the work it's hiding work that is done by the language.

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.

Pete
Jun 27 '08 #2

P: n/a

>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?
Jun 27 '08 #3

P: n/a
Should I assume that any job requiring C# would mean buildings Windows
apps?
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.

Jun 27 '08 #4

P: n/a
On May 27, 9:45 pm, Mitch@_._ wrote:
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?
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).
Jun 27 '08 #5

P: n/a
On Tue, 27 May 2008 13:45:12 -0700, <Mitch@_._wrote:
[...]
Should I assume that any job requiring C# would mean buildings Windows
apps?
I think it's safe to say you should generally try to avoid assuming
anything. :)

As far as the question of "Windows apps", the question is ambiguous. But
however you interpret it, the answer is no. By far, the most common
platform for C# use in a business environment is going to be on the
Windows OS. In one respect, any application running on Windows is a
"Windows app". But not all applications running on Windows are actually
GUI applications, and no doubt there are jobs that require C# knowledge
but which don't involve writing GUIs.

Alternatively, if you literally mean that the application runs on the
Windows OS itself, GUI or not, the answer is still no. Mono
notwithstanding, there's a far broader-reaching platform coming out, with
much better support from Microsoft (it being theirs and all :) ):
Silverlight. So you _could_ be writing C# code that isn't specific to
running on the Windows OS.

C# requires specific support from a run-time environment. But obviously
that run-time doesn't really need to be .NET (even if the fundamental
aspects will always look similar to .NET). I suppose if you look far
enough down the road, it's possible C# could become even more ubiquitous,
being offered as a development language for a wide variety of platforms.
There's nothing about the language that is specifically tied to Windows
per se.

Pete
Jun 27 '08 #6

P: n/a
On May 27, 2:45*pm, Mitch@_._ wrote:
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?
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
Jun 27 '08 #7

P: n/a
<Mitch@_._wrote:
I'm wondering if I'm doing myself a disservice by learning Visual C# [i.e.
GUI applications], considering it does so much of the work behind the
scenes. Should I be learning console apps first?
If you are new to the concepts, then yes, I think you should.

The GUI stuff involves concepts like event handlers, delegates and
polymorphism that you'd understand better by experimenting in a simple
console environment. Yeah, anybody can dive into buttons and scroll-bars
from the start, but without a good grounding they are likely to founder when
they have to do something tricky that isn't just copy-and-paste code.

Eq.
Jun 27 '08 #8

P: n/a

>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.
Jun 27 '08 #9

P: n/a
On Tue, 27 May 2008 14:38:42 -0700 (PDT), "je**********@gmail.com"
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.
Jun 27 '08 #10

P: n/a
On Wed, 28 May 2008 01:05:49 GMT, Mitch@_._ wrote:
>
>>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.
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.

Jun 27 '08 #11

P: n/a
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

<Mitch@_._wrote in message
news:og********************************@4ax.com...
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?
Jun 27 '08 #12

P: n/a
clintonG wrote:
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.
Jun 27 '08 #13

This discussion thread is closed

Replies have been disabled for this discussion.