473,414 Members | 1,843 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,414 software developers and data experts.

Is it bad to start off learning Visual C#?

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
12 1573
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

>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
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
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
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
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
<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

>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
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
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
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
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 thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: GAVO. | last post by:
This probably is not the best group to post this question but any ways. I've been working with ms access for the last couple of years and gotten very good at it. I have never been on any ms...
3
by: Rainer Krauss | last post by:
I would like to code (just for learning) some band objects for Internet Explorer. To start with, i simply like to add a button to the Browser called "Trace". Pressing it should open a band like...
4
by: Christian Blackburn | last post by:
Hi Gang, I saw this for sale online: Microsoft Visual Basic.NET Deluxe Learning Edition Version 2003. I'm wondering is the CD that's bundled with the learning edition just a digitized version of...
3
by: Sen | last post by:
I'd like to ask: 1. Where are the best to start learing VB.Net, currently I am using Visual Foxpro as my depelopment tools 2. How to generate menu at run time, the menu it self is stored at...
2
by: tekhneek | last post by:
im about to start learning a new language... i just thought id ask what you guys recommended for building strong, solid windows applications that can use the internet... etc, C#? C++? Visual Basic?...
5
by: nyaubfan | last post by:
I am a professional scientist who is comfortable programming applications dealing data file conversions, program automation (activeX, DDE), and instrument contol using Visual Basic, LabVIEW and...
5
by: Amai | last post by:
I'm ineterested in learning ASP.NET, in conjunction with both C# and VB.NET. However, i don't really know where to start. Are there classes available at local colleges, or do i have to go...
2
by: londonblokde | last post by:
Hello, If I want to learn VBA should I start by learning Visual Basic? I have no background in coding, but I need to learn VBA. So what is the best way to learn it; do I need to learn Visual Basic...
5
by: =?Utf-8?B?cm9jY28=?= | last post by:
Hello, easy question: - what are the best books to start learning C#? Thanks! Rocco
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...
0
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.