cwdegood

Member
Feb 7, 2006
109
0
0
I'm heading back to school in january , going for a BS in COMPSCI.

Long story short, the primary language being taught is C#..
Is C# mainstream ? I cant really say that i've been keeping tabs on it.

But C# over C++ ?

Just wondering ..
 

pcnerd37

Senior member
Sep 20, 2004
944
0
71
C# has become very mainstream, and a lot of major companies are developing with it. C++ is a good language to know too, especially if you end up working on existing code. there are a ton of job possibilities with C# as well as Java. I would say that C# and Java are the languages of the future, but I would definitely learn C++ as a good backup. The school I was going to taught C# and Java, so I would say its definitely becoming mainstream.
 

Tencntraze

Senior member
Aug 7, 2006
570
0
0
As a C# programmer, I have to say that it's disappointing that they're teaching C# because of the fact that all of the memory aspects are handled automatically, so it's easy for many people to never obtain a working grasp of this. I'd think that the reason the school is teaching C# is because they probably get some sort of benefits from MS.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
13
81
www.markbetz.net
It won't be too long before nobody has a working grasp of how memory operates anymore. Maybe the O/S designers and compiler-writers, or driver programmers, but at some point it will probably be abstracted away into hardware and not even dealt with by them.
 

Tencntraze

Senior member
Aug 7, 2006
570
0
0
I'd think it would be a good idea to do C++ (or C) first just to convey these concepts. I've seen this sentiment echoed on the forums a few times so I'll cut myself short, but after C++, doing some things with the .NET library is definitely simpler.
 

Cooler

Diamond Member
Mar 31, 2005
3,835
0
0
C/C++ will always have a home on linux systems. If your making a quick app C# is the way to go. But for DLL and drivers C/C++ is the king.
 

brandonb

Diamond Member
Oct 17, 2006
3,731
2
0
The languages I see out there in the field being used regularly:

C#
VB.Net
Java

Learn those if you want a job.
 

Tencntraze

Senior member
Aug 7, 2006
570
0
0
Originally posted by: brandonb
The languages I see out there in the field being used regularly:

C#
VB.Net
Java

Learn those if you want a job.

Agreed. If you see yourself wanting to learn ASP.NET for the web stuff, ensure that you also dig into some javascript, which shouldn't be a problem if you're familiar with C-style languages.
 

kamper

Diamond Member
Mar 18, 2003
5,513
0
0
Originally posted by: Markbnj
It won't be too long before nobody has a working grasp of how memory operates anymore. Maybe the O/S designers and compiler-writers, or driver programmers, but at some point it will probably be abstracted away into hardware and not even dealt with by them.
I'd agree that the percentage of programmers that understand memory management will go down but I'd bet the absolute number is going slowly up if it's moving. I think that's a good thing too. As we develop nice environments that abstract away scary things like memory management it's only natural that more developers spend more time thinking about higher level things. Somewhat depressingly, I'd bet the iq of the average developer is going down as the field turns more into a trade than a science.

Actually what I pictured when I read your post was an assembly developer complaining that malloc sucks because it makes life too easy for all those c developers Of course I agree that memory management and compiler design are still good things for all to learn as their patterns can be applied usefully at any level...
 

Noobsa44

Member
Jun 7, 2005
65
0
0
I would say about 70% of the work a computer programmer needs to do can be done with C#. 30% needs more specialization, or at the very least, the use of someone else?s DLLs. Basically it comes down to two things:
1. Computer Science is not Software Development. Managing memory, handling pointers, sorting/search as fast as possible, etc. are Computer Science. Software Development is building every day apps that every day people want to use. It sounds like that your classes are for Software Development, not Computer Science.
2. The cost of doing things the fastest way is inversely proportional to the cost of development. In other words, companies are willing to loose say 15% speed in an app to develop the app in 1/2 the time or for 1/2 the cost (these numbers maybe exaggerated, but you get the idea).

Most companies want C# people because they are cheaper (easier = cheaper), the build time is faster, etc. I think this is the question you must ask yourself: Do you want to be that specialist who commands higher wages, but has a slightly harder time finding a job (because companies want cheap) and a more difficult education or is it good enough to just do 70% of everything and command a lessor wage?

If you want the challenges and the higher wage, look for a C++ school, otherwise, stick with C#.
 

Aikouka

Lifer
Nov 27, 2001
30,383
912
126
Originally posted by: brandonb
The languages I see out there in the field being used regularly:

C#
VB.Net
Java

Learn those if you want a job.

The problem is... getting a degree in CS has nothing to do with learning a language. You're there to learn concepts; the language just comes with that.

When I was in college, one of the CS professors showed us how they determine what to teach us... some set of concepts and ideas that CS students should learn. I can't remember who made the list, but I'm quite sure the list is more common than where I went to school.
 

clamum

Lifer
Feb 13, 2003
26,255
403
126
I wish they would've taught us C# when I went to school. Would've helped a lot in the real world when I was looking for a job. I did learn Java though so C# wasn't too bad to pick up.

As far as mainstream, I'd say it's quite popular and a definite plus to have on your resume when job searching. I think the whole .NET framework is pretty slick.
 

jman19

Lifer
Nov 3, 2000
11,222
654
126
Originally posted by: brandonb
The languages I see out there in the field being used regularly:

C#
VB.Net
Java

Learn those if you want a job.

He's going to school for computer science. He shouldn't be worrying about what language will land him a job now, he should be worrying about knowing the important concepts in CS...
 

Tencntraze

Senior member
Aug 7, 2006
570
0
0
Originally posted by: jman19
Originally posted by: brandonb
The languages I see out there in the field being used regularly:

C#
VB.Net
Java

Learn those if you want a job.

He's going to school for computer science. He shouldn't be worrying about what language will land him a job now, he should be worrying about knowing the important concepts in CS...

I agreed with this statement about what will get you a job, but that's also why I wish they still taught C++ first so that you are exposed to all of the underlying concepts (the science portion of the degree).
 

jman19

Lifer
Nov 3, 2000
11,222
654
126
Originally posted by: Tencntraze
Originally posted by: jman19
Originally posted by: brandonb
The languages I see out there in the field being used regularly:

C#
VB.Net
Java

Learn those if you want a job.

He's going to school for computer science. He shouldn't be worrying about what language will land him a job now, he should be worrying about knowing the important concepts in CS...

I agreed with this statement about what will get you a job, but that's also why I wish they still taught C++ first so that you are exposed to all of the underlying concepts (the science portion of the degree).

Well, that's my point really. I wouldn't even start off a noobie with C or C++. Memory management is very important, but it isn't an easy concept to master and should be introduced after other concepts. High level programming concepts are probably best to start with. MIT uses Scheme, I believe, which is actually great for teaching newcomers. The language is small, so the chance of getting lost in the giant quagmire that is C++ isn't an issue.
 

Tencntraze

Senior member
Aug 7, 2006
570
0
0
I went to Northwestern and they also started us on Scheme for the same reason. I later did some LISP for some AI class, but Scheme did help me with initial concepts of iteration vs recursion and all that good stuff.
 

jman19

Lifer
Nov 3, 2000
11,222
654
126
Originally posted by: Tencntraze
I went to Northwestern and they also started us on Scheme for the same reason. I later did some LISP for some AI class, but Scheme did help me with initial concepts of iteration vs recursion and all that good stuff.

:thumbsup:
 

Aikouka

Lifer
Nov 27, 2001
30,383
912
126
Originally posted by: Tencntraze
I went to Northwestern and they also started us on Scheme for the same reason. I later did some LISP for some AI class, but Scheme did help me with initial concepts of iteration vs recursion and all that good stuff.

Back in college, I started with some simplistic Java where we just had the IDE create the classes and such for us. It was mainly meant to avoid having to learn the "advanced" stuff about classes and just focus on what they are and how you use them (note that the use of them and such came later in the intro course, the beginning was some of the basic programming ideas). I thought it was alright, but I'd been programming for awhile, so it was kind of easy .
 

cwdegood

Member
Feb 7, 2006
109
0
0
Thanks for all of the replies.
I really do appreciate the help you have all offered.

I just wasnt sure if C# had matured to a level of market acceptance.
Thanks again for helping me steer my life
 

Tencntraze

Senior member
Aug 7, 2006
570
0
0
Originally posted by: cwdegood
Thanks for all of the replies.
I really do appreciate the help you have all offered.

I just wasnt sure if C# had matured to a level of market acceptance.
Thanks again for helping me steer my life

As a developer in a .NET component company, I can definitely attest that there is 'market acceptance', especially in the enterprise market.
 

bsobel

Moderator Emeritus<br>Elite Member
Dec 9, 2001
13,346
0
0
Memory management is very important, but it isn't an easy concept to master and should be introduced after other concepts.

So what are we going to teach once garbage collection is formally added to the c++ standard (It's in work, one of my co-workers is one of the primary guys behind it).
 

imported_Dhaval00

Senior member
Jul 23, 2004
573
0
0
Originally posted by: bsobel
Memory management is very important, but it isn't an easy concept to master and should be introduced after other concepts.

So what are we going to teach once garbage collection is formally added to the c++ standard (It's in work, one of my co-workers is one of the primary guys behind it).

The C++/CLI built on top of the CLR 2.0 already does this...

I think they should continue teaching native C and/or C++ in colleges, but at the same time keep this topic limited. There are more emphasis on higher level languages that are more productive (Java, C#, etc.) in the real world. I did feel cut-off 2 years back while trying to land a new job when I graduated with C++ skills on my one-page resume. Having seen how most companies do their businesses, it is imperative that the push is for SOA with minimal depedency on lower-level languages like native C++.

Memory management is handled by the CLR, but it is still very important. I personally, manually dispose (using blocks) all my objects in my C# code to minimize garbage collections at the CLR level... I know quite a few developers who went to private universities and don't dispose their objects - they take memory management for granted. Simply put, they either were trained primarily in C# without formal knowledge of the internals of the CLR or had no classes in native C/C++.

Ultimately, I have dealt with quite a few companies and senior colleagues who think this is very important... specifically, during interviews, we'll ask questions about CLR's IDisposable, finalization, and object management. So whoever thinks memory management is a sparse topic that needs to be forgotten needs to wake up *now*.
 

bsobel

Moderator Emeritus<br>Elite Member
Dec 9, 2001
13,346
0
0
Originally posted by: Dhaval00
Originally posted by: bsobel
Memory management is very important, but it isn't an easy concept to master and should be introduced after other concepts.

So what are we going to teach once garbage collection is formally added to the c++ standard (It's in work, one of my co-workers is one of the primary guys behind it).

The C++/CLI built on top of the CLR 2.0 already does this...

Of course it does but thats not real c++, I'm talking about the ansi standard here not MS's extensions.

Memory management is handled by the CLR, but it is still very important. I personally, manually dispose (using blocks) all my objects in my C# code to minimize garbage collections at the CLR level... I know quite a few developers who went to private universities and don't dispose their objects - they take memory management for granted. Simply put, they either were trained primarily in C# without formal knowledge of the internals of the CLR or had no classes in native C/C++.

Your approach is just as wrong as their's. Dispose is only usefull if you have unmanaged items to take care of. Your not minimizing garbage collection and your fighting the system when you shouldn't be.

 

imported_Dhaval00

Senior member
Jul 23, 2004
573
0
0
Originally posted by: bsobel
Your approach is just as wrong as their's. Dispose is only usefull if you have unmanaged items to take care of. Your not minimizing garbage collection and your fighting the system when you shouldn't be.

Maybe you should look up on how the CLR manages garbage collection and what "Dispose" and "unmanaged" actually mean.

You're correct when you say that Dispose is useful when dealing with unmanaged resources. But you're wrong when you claim that developers aren't minimizing garbage collections by disposing objects that are actually disposable. Many folks who never had any formal training on how the CLR works carry this misconception. I used to, too

Any *wise* implementation of the Dispose method in .NET will will contain a call to GC.SuppressFinalize which tells the CLR not to GC that object because *you* are taking responsibility of cleaning up your unmanaged resources (FileStreams, SqlConnections, etc.). Obviously by disposing an object by calling Dispose on it, you're actually freeing resources. While by calling GC.SuppressFinalize you're minimizing all the CPU cycles that the CLR would have spent in cleaning up that object (note that this is not even possible, because the CLR can't clean up unmanaged resources... hence the IDisposable pattern).

This is exactly what needs to be taught in C# classes
 

Gunslinger08

Lifer
Nov 18, 2001
13,234
2
81
Originally posted by: bsobel
Originally posted by: Dhaval00
Originally posted by: bsobel
Memory management is very important, but it isn't an easy concept to master and should be introduced after other concepts.

So what are we going to teach once garbage collection is formally added to the c++ standard (It's in work, one of my co-workers is one of the primary guys behind it).

The C++/CLI built on top of the CLR 2.0 already does this...

Of course it does but thats not real c++, I'm talking about the ansi standard here not MS's extensions.

Memory management is handled by the CLR, but it is still very important. I personally, manually dispose (using blocks) all my objects in my C# code to minimize garbage collections at the CLR level... I know quite a few developers who went to private universities and don't dispose their objects - they take memory management for granted. Simply put, they either were trained primarily in C# without formal knowledge of the internals of the CLR or had no classes in native C/C++.

Your approach is just as wrong as their's. Dispose is only usefull if you have unmanaged items to take care of. Your not minimizing garbage collection and your fighting the system when you shouldn't be.

Dispose is incredibly useful and a Microsoft best practice for pretty much all of their product APIs. Enjoy crappy performance in SharePoint if you don't do site.RootWeb.Dispose() and site.Dispose().
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |