Few newbie Quesions on C#

JC0724

Weaksauce
Joined
Oct 11, 2008
Messages
105
Is there free software I can use to write/compile code in C#? If so which ones and where can I get it?

Any good tutorials out there on C#?

What are some of the common things C# is used for?

Ex. I heard C is good for embedded programming, C++ is good for video game development.

What are the core difference between C# vs C++ and C# vs Java?
 
Visual Studio Express is free. Download and register it for a free code to end the trial.

Any C# book would do for now

C# can be used for general windows application programming(WPF), Web app development( ASP.NET), Xbox game programming(XNA) and a slew of other things.

Each of those languages also excel in other areas.

I don't even know where the heck to start on these differences between those three languages. But I would tell you that C# and Java are complied to a bytecode and run in a vm. C++(unmanaged C++) is compiled to machine language. This is a very crude explanation of one difference/similarity between the languages

Edit:// I didn't realise you said X language vs Y language
 
Last edited:
While the manner in which code is executed is a distinction between these languages, it's not (usually) a tremendously important one in practice. What is a more important distinction, in my opinion, is how memory is managed in these different classes of languages.

Frankly, this probably won't really matter to you unless you intend to build very high-performance systems, target very low-resource platforms or unless your domain involves hard real-time constraints. If you want to explain what types of applications you hope to build, we can give you a better sense of why C# might be or might not be the most sensible choice.
 
Is there free software I can use to write/compile code in C#? If so which ones and where can I get it?

Visual C# Express Edition should work.

Any good tutorials out there on C#?

Yes.

What are some of the common things C# is used for?

There's quite a long list of things. I work in enterprise software, and C# is one of the big platforms there. You can find C# almost anywhere, but some of the most prevalent areas are web applications and web services.

What are the core difference between C# vs C++

While they share syntax, there are some notable differences. The biggest difference is that C# compiles to a 'virtual assembly language' which runs on a 'virtual computer' on your machine, whereas C++ is usually compiled down to real machine code.

The other important thing to pay attention to is memory management. C# is garbage collected. What this basically means is that the runtime will delete objects for you when you're done using them. The garbage collector uses an algorithm to determine in a piece of memory is reachable in your program, and if it isn't, it deletes it.

In C++, there is no mechanism for this. If you allocate memory on the heap (using malloc or new), you must delete it when you're done (with free or delete, respectively) with it or you'll have memory full of stuff you aren't using, which is wasteful. This can be made somewhat easier using 'smart pointers'. If you're sharing memory among classes, it can be difficult for you to keep track of when the memory is safe to delete. So there are constructs which keep a reference count to keep track of how many references to the memory there are. When all of these references are deleted and the count reaches 0, it will delete the memory for you, but this is not the same as garbage collection.

C# also comes with a fairly comprehensive built-in library. Lot's of tasks have already been done for you. C++ doesn't do much for you. It does offer the 'STL' which has plenty of containers, functions and algorithms to do many of the most tedious tasks, but it lacks the breadth of what's included with C#.

and C# vs Java?

C# and Java are very similar. They both compile to 'virtual assembly', and they both have garbage collection, and they both have large built-in libraries. I would say C# is the better language/platform (and I say this as someone who has made most of their living on the Java platform) due to having more features and a more cohesive ecosystem.
 
Your last question indicates a bit of a lack of research on your part :)

IMHO everybody who jumps on a windows-only thing right now is outright insane. There are so many windows-only developers out there and so many new platforms that either don't support C# at all (e.g. all mobile systems that matter) or don't like C# (Linux via Mono).
 
There are so many windows-only developers out there and so many new platforms that either don't support C# at all (e.g. all mobile systems that matter) or don't like C# (Linux via Mono).

I'm not sure where you're getting the idea that mobile systems don't support C#. C# backend + something like PhoneGap is a fairly easy route to take. And even if your mobile app was written in Java or native code, there's no reason the web services it consumes aren't going to be C# especially if you're consuming web services that have already been written and are already being used by other systems. The 'app' itself is just a front-end, and there's a huge amount of work that needs to be done in the backend to support it. Most of the enterprise world doesn't waste time writing traditional 'applications', anyways. You generally don't write something like a windows forms app in the enterprise unless you really have to. Everything is a web app in the enterprise world, and that makes it very possible to have two 'incompatible' systems interoperate well.

And maybe people wouldn't be so willing to put up with C#'s Microsoft-oriented nature if it wasn't one of the most powerful platforms around. Having C# be mostly Windows-only isn't actually a draw back at all, and any of the truly 'multi-platform' ecosystems (like Ruby or Java) just aren't as nice.
 
How many job openings do you see asking for C# work on mobile? I mean I am the first to say that job ads can be highly misleading, but a complete absence might tell us something.

Nobody says there will be no microsoft-only jobs.

All I am saying is that there is a LARGE number of MS-only programmers and an drastically increased non-windows computing market out there. How are you gonna fit all those existing people into the jobs if you add new ones now?
 
How many job openings do you see asking for C# work on mobile?

How many job openings do you see for C# work on web services? Without the web services, there can be NO mobile app in the enterprise.

All I am saying is that there is a LARGE number of MS-only programmers and an drastically increased non-windows computing market out there. How are you gonna fit all those existing people into the jobs if you add new ones now?

Please research the terms 'web service' and 'backend' and come back to try to make your argument. It doesn't matter how many people are on Windows and how many are on something else, and it doesn't matter if we're talking about desktops or tablets or phones.
 
But there's not a complete absence. There are C# toolchains for both iOS and Android, and of course C# is supported on Windows Phone. I'm not claiming C# is the preferred language on either (iOS or Android) platform, but there is certainly mobile development being done with it. Also going back to Windows .NET, which runs many handheld scanners and other embedded applications, C# is the primary supported language.

/one of those weird/nonexistent C# mobile programmers I guess
 
But there's not a complete absence. There are C# toolchains for both iOS and Android, and of course C# is supported on Windows Phone. I'm not claiming C# is the preferred language on either (iOS or Android) platform, but there is certainly mobile development being done with it. Also going back to Windows .NET, which runs many handheld scanners and other embedded applications, C# is the primary supported language.

/one of those weird/nonexistent C# mobile programmers I guess

None of that really matters at all. It's not about running C# on the client. It's about running C# on the server and using a well designed API to allow the client to be whatever the hell it wants.

Think of all of the popular mobile apps out there. Things like Snapchat, Facebook, Twitter, Instagram, etc. These aren't useful apps by themselves, in isolation. Without being able to phone home to the website, these applications would be useless. What makes them popular is their ability to talk to your favorite social media network. There's lots of apps out there that pull content from the network, and these apps use APIs to do this. So even if your phone app wasn't written in C#, the APIs and backend services that drive your web app can be.

Other things to look at are event-driven AJAX websites. Highly interactive 'web applications' (think something like Google Docs or Mint.com) are applications that live in the web and are consumed through a browser. As long as the end user is using a standards compliant browser, it doesn't matter what they're running...they'll still be able to use the application, windows or otherwise. These are web applications and they are the kinds of applications used in the enterprise. Again, this style of application can easily be written in C#, but consumed from a non-windows device.

Finally, lots of websites are written with ASP.NET, which is a C# driven platform. Sites like Newegg use ASP.NET, and the people writing the code for the site are doing so in C#. You don't need to be running a windows computer to reach newegg.

And all that data behind the scenes is often loaded, transformed, moved around and maintained by applications written in C#. C# isn't just about Windows forms applications that can only run on Windows computers. That's just a small sliver of what it does.
 
I don't see C# behind major internet services and more and more businesses just do whatever the heck Google does. Must be right, right?

Leaving aside that C# is an insane choice for a web service backend for the company, it still sounds like bad career move.
 
I don't see C# behind major internet services

Then you haven't been in the industry writing these major internet services, because they're everywhere.

Leaving aside that C# is an insane choice for a web service backend for the company

No, let's not leave that aside. Claiming such a ubiquitous practice to be insane is a fairly bold claim, and that's not something we can just move on from like it's nothing.

Please. Explain in your great wisdom why that would be such an insane choice. What makes C# unsuitable for that? Spare me no details.
 
Then you haven't been in the industry writing these major internet services, because they're everywhere.



No, let's not leave that aside. Claiming such a ubiquitous practice to be insane is a fairly bold claim, and that's not something we can just move on from like it's nothing.

Please. Explain in your great wisdom why that would be such an insane choice. What makes C# unsuitable for that? Spare me no details.

Because it binds you to a single platform and a single OS vendor unless you consider Mono an alternative.

And please name a major internet service backed by windows with C#.
 
Because it binds you to a single platform and a single OS vendor unless you consider Mono an alternative.

The Windows platform has proven itself to be a top platform for infrastructure, though. So if there are no drawbacks other than you can't switch to something else, how does that outweigh other factors such as programmer productivity and maturity of libraries and tools for that ecosystem?

What would you choose instead, then?

And please name a major internet service backed by windows with C#.

Bing.

Though I should point out that this isn't something which is transparent to the user. Unless the developers release this information, or you or someone you know has worked on the site (or they goofed and allow errors to bubble up and be visible to users), you don't really have a good means of knowing. For example, if I point you towards the BBC's web presence, can you tell me what their backend was written in?
http://www.bbc.com/
 
C# programmer are very much in demand and get paid up there with the rest of them. It is also a better a language than java(IMO). I have come to love LINQ.

http://readwrite.com/2014/01/08/in-demand-tech-skills-of-2013-java#awesm=~osyW4E7Z7dr8r0

WpA2pyu.jpg


C# is close enough to java also in that you can move between the two languages incredibly easily.
I am a C# "programmer" and ported a program over to java(for android) in less than a day.

There is also xamarin that would allow you to code in C# for Android and iOS


edit:// sorry about them image size
 
It is also a better a language than java(IMO). I have come to love LINQ.

Certainly, then, you must have come to love lambda expressions too. LINQ in conjunction with lambdas is a very powerful pair. So you're probably disappointed by the fact that Java still doesn't have lambdas. I can't tell you how annoying it is to write crap like this:

Code:
interface Invoke {
    void invoke(Connection con);
}

class SomeClass {
...
    public void doDatabaseStuff(Invoke i) {
        Connection c = this.connectionFactory.getConnection();
        try {
            i.invoke(c);
        } catch (SQLException ex) {
            //Exception handling goes here
        } finally {
            c.close();
        }
    }
...
}

...

SomeClass something = new SomeClass(ConnectionFactory.getInstance())

something.doDatabaseStuff(new Invoke() {
        //Enter your lambda-esque function here
    });

All that boiler plate just to approximate lambdas.

And it's not just the absence of big features that gets annoying. All of the little stuff adds up to make something that's less elegant and less productive than C#.

For example, why can't I do this?

Code:
public int someMethodWithDefaultArgument(Argument1 a1, Argument2 a2=Argument2.BrownArgument){
    //Method code goes here
}

Since Java doesn't offer default arguments, I have use this much boilerplate just to get the same effect:

Code:
public int someMethodWithDefaultArgument(Argument1 a1, Argument2 a2){
    //Method code goes here
}

public int someMethodWithDefaultArgument(Argument1 a1){
    return someMethodWithDefaultArgument(a1, Argument2.BrownArgument);
}
 
The Windows platform has proven itself to be a top platform for infrastructure, though. So if there are no drawbacks other than you can't switch to something else, how does that outweigh other factors such as programmer productivity and maturity of libraries and tools for that ecosystem?

What would you choose instead, then?

Every sane company chooses technology that allows freedom of choice of other technologies to base it on.

If you can pick between language A that runs of OSes X, Y and Z and language B that only runs on OS M you will find few people who base new technology on B.

Bing.

Though I should point out that this isn't something which is transparent to the user. Unless the developers release this information, or you or someone you know has worked on the site (or they goofed and allow errors to bubble up and be visible to users), you don't really have a good means of knowing. For example, if I point you towards the BBC's web presence, can you tell me what their backend was written in?
http://www.bbc.com/

Bing goes without saying. Doesn't count.

So let's see. Google - Linux, mostly C++. Amazon - Java on probably Linux. Ebay - I dunno, this one I lost track of. Yahoo - something on FreeBSD and it won't be C#.

Most of the news outlets are not doing from-scratch programming, they use existing content management systems, most are written in Java.
 
C# programmer are very much in demand and get paid up there with the rest of them. It is also a better a language than java(IMO). I have come to love LINQ.

http://readwrite.com/2014/01/08/in-demand-tech-skills-of-2013-java#awesm=~osyW4E7Z7dr8r0

http://i.imgur.com/WpA2pyu.jpg

C# is close enough to java also in that you can move between the two languages incredibly easily.
I am a C# "programmer" and ported a program over to java(for android) in less than a day.

There is also xamarin that would allow you to code in C# for Android and iOS


edit:// sorry about them image size

The only reason why there are so many job openings for the top languages there is that they are the high-turnover jobs. Small companies or small projects that don't treat people well so they get rotated a lot. They never stop hiring because there's always somebody throwing in the towel.

Plus you don't see real Internet companies with long-term employee retention such as Google, Yahoo or Amazon use those sites for all of their individual jobs offers. And they pay higher than those advertised jobs.

Last but not least, this is all the crap that gets outsourced to other countries.
 
If you can pick between language A that runs of OSes X, Y and Z and language B that only runs on OS M you will find few people who base new technology on B.

Are you saying this from experience or lack of experience?

Most of the news outlets are not doing from-scratch programming, they use existing content management systems

Wrong. Sorry, try again. Furthermore, news outlets' systems are not limited exclusively to displaying news. Maybe if you're looking at little places like "Tim's vegan blog" or something inconsequential you'll find sites using WordPress. But large outlets don't use off-the-shelf products because off-the-shelf products just aren't specific enough to meet their needs. One of the world's largest media conglomerates is only an hours drive away from where I live and I keep networked with some of their developers. They're a 100% C# based development shop and that's what their site and software run on.

Last but not least, this is all the crap that gets outsourced to other countries.

Okay, why don't you just wear a flag on your head that says "I'm not a developer."? The things you're saying just aren't true. Not even close.
 
Last edited:
The only reason why there are so many job openings for the top languages there is that they are the high-turnover jobs.
Good call. JavaScript isn't a key component in any growth industries or anything.
 
Large corps still use plenty of C# and .NET. Amazon still does, other large companies like Walmart do, although I know Walmart has been using Node pretty extensively for a while. A lot of government agencies have large .NET infrastructures in place.

The reason you don't see startups or small companies throwing down some C# is cost of entry. Visual Studio licenses, Windows licenses and so on. Azure is making this entry a little easier, but still not as cheap as Ruby or Node.

Besides, you'll probably eventually end up doing a little bit of everything anyway.
 
Still waiting for listing any major website using C#.

If you want to squeeze more developers into a shrinking market more power to you.
 
Still waiting for listing any major website using C#.

Again, I can't just list companies I've worked for for professionalism reasons, so I can't just say 'This company uses C# and I know this because I worked there and helped write it'. If companies want such details revealed, they'll write a blog about it, like this:
http://blog.stackoverflow.com/2008/09/what-was-stack-overflow-built-with/

Other times, this stuff will show up in their job postings:
http://www.nbcnews.com/id/40278909/ns/about/
That listing was easy to hot link, but you can find others.

Other times, they even do case studies about the benefits of switching to Microsoft's platform.
http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?CaseStudyID=710000003540

If you want to squeeze more developers into a shrinking market more power to you.

Lol, shrinking market. Look, you're not fooling us. There's plenty of us who do this for a living, and we know when something is malarkey. C# isn't a shrinking market. If the thread starter wants to learn C#, it's a great language for him to learn.
 
Last edited:
Right, because these websites rival google, yahoo and amazon who we know use neither windows nor C#.

And you recommend to other people that they learn a language that run on windows only, as opposed to languages that run elsewhere and on windows, too?
 
Last edited:
And you recommend to other people that they learn a language that run on windows only, as opposed to languages that run elsewhere and on windows, too?
You're making much too big a deal of this. Language selection always involves a series of tradeoffs. Always. It's merely a question of whether the benefits outweigh the tradeoffs for any given project or organization.

This is software development, not politics.
 
Certainly, then, you must have come to love lambda expressions too. LINQ in conjunction with lambdas is a very powerful pair. So you're probably disappointed by the fact that Java still doesn't have lambdas. I can't tell you how annoying it is to write crap like this:

Code:
interface Invoke {
    void invoke(Connection con);
}

class SomeClass {
...
    public void doDatabaseStuff(Invoke i) {
        Connection c = this.connectionFactory.getConnection();
        try {
            i.invoke(c);
        } catch (SQLException ex) {
            //Exception handling goes here
        } finally {
            c.close();
        }
    }
...
}

...

SomeClass something = new SomeClass(ConnectionFactory.getInstance())

something.doDatabaseStuff(new Invoke() {
        //Enter your lambda-esque function here
    });

All that boiler plate just to approximate lambdas.

And it's not just the absence of big features that gets annoying. All of the little stuff adds up to make something that's less elegant and less productive than C#.

For example, why can't I do this?

Code:
public int someMethodWithDefaultArgument(Argument1 a1, Argument2 a2=Argument2.BrownArgument){
    //Method code goes here
}

Since Java doesn't offer default arguments, I have use this much boilerplate just to get the same effect:

Code:
public int someMethodWithDefaultArgument(Argument1 a1, Argument2 a2){
    //Method code goes here
}

public int someMethodWithDefaultArgument(Argument1 a1){
    return someMethodWithDefaultArgument(a1, Argument2.BrownArgument);
}


Yep I use Lambda Expressions a lot with LINQ being that I use Entity Framework for my database handling.
C# has indeed implemented this and other things that makes life much easier for programmers. You can't help not love it.
 
Yep I use Lambda Expressions a lot with LINQ being that I use Entity Framework for my database handling.
C# has indeed implemented this and other things that makes life much easier for programmers. You can't help not love it.


EF makes me hate life more often than it makes my life easier :(

Nothing against ORM's on principle, it's just that developers assume that EF is appropriate to use for all data handling. If you're not dealing with entity-by-entity workflow then EF is a major pain in the ass to handle responsibly.

Ever tried to maintain database atomicity using EF when updating multiple dependent entities?
 
I don't see C# behind major internet services and more and more businesses just do whatever the heck Google does. Must be right, right?

Leaving aside that C# is an insane choice for a web service backend for the company, it still sounds like bad career move.

As others have pointed out, you're clearly not in the market or in the 'know'. C# is used EVERYWHERE and a lot of the times, you just don't see it.

Because it binds you to a single platform and a single OS vendor unless you consider Mono an alternative.

And please name a major internet service backed by windows with C#.

Godaddy.com

The only reason why there are so many job openings for the top languages there is that they are the high-turnover jobs. Small companies or small projects that don't treat people well so they get rotated a lot. They never stop hiring because there's always somebody throwing in the towel.

Plus you don't see real Internet companies with long-term employee retention such as Google, Yahoo or Amazon use those sites for all of their individual jobs offers. And they pay higher than those advertised jobs.

Last but not least, this is all the crap that gets outsourced to other countries.

There are many long term opportunities out there, you just have to find the right one. You actually sound like a novice programmer who got a contract job, then the company realized you're not very good at it and canned you. Just saying.

Still waiting for listing any major website using C#.

If you want to squeeze more developers into a shrinking market more power to you.
monster.com
break.com
ancestry.com
wildtangent.com
kbb.com
redbox.com
nordstrom.com
townhall.com
tunein.com
g4tv.com
fool.com
fedex.com
barbie.com (this one is just for you)

EF makes me hate life more often than it makes my life easier :(

Nothing against ORM's on principle, it's just that developers assume that EF is appropriate to use for all data handling. If you're not dealing with entity-by-entity workflow then EF is a major pain in the ass to handle responsibly.

Ever tried to maintain database atomicity using EF when updating multiple dependent entities?
We do it all the time, perhaps you're implementing it incorrectly. Could you post an example?
 
You're making much too big a deal of this. Language selection always involves a series of tradeoffs. Always. It's merely a question of whether the benefits outweigh the tradeoffs for any given project or organization.

This is software development, not politics.

Politics is one of the top layers of software development.

As a beginner you should avoid painting yourself into a corner.

Since we can't agree what a major website is, can somebody point out any significant website that uses Mono to enable C# outside windows?
For those who don't know about, you can often get a basic idea about what's backing in a thing here:
http://toolbar.netcraft.com/site_report?url=www.yahoo.com
The really big sites aren't giving useful information but it works well for many medium ones.

Try to get ahold of sites running windows.

The opinions presented here are just preposterous. Tinny tiny website hacking jobs with companies that don't know better than to run a webserver and a web service on windows. I mean. Yeah nothing could go wrong there. Doesn't get outsourced, ever. Just read on the web what kind of job does in practice get outsourced. It's always companies along these lines.

So what happens if you start programming today, in C#, and it turns out you are really good at it? You gonna apply for a job at Google with C# only in your backpack?
 
Still waiting for listing any major website using C#.

http://myspace.com
http://stackoverflow.com
http://blogs.msdn.com
http://thedailywtf.com
http://NewEgg.com
http://microsoft.com
http://dell.com
http://match.com
http://monster.com
http://constco.com
http://NHS.com
http://HSN.com
http://LondonStockExchange.com
http://lego.com
http://realtor.com

lol ignorance is bliss

edit: I see some dups that were already listed above.

C# is long from dead. There are several good choices of languages to learn, but C# isn't a bad one. I'd probably suggest C++ if you don't already know it.
 
Good. Now compare it with the Linux and BSD entries.
What will such a comparison accomplish? What research have you done on your own? How many more unrelated (to the thread) and disjointed opinions do you plan on bringing in?
 
I've never seen anyone move goalposts so fiercely before. Jesus.
Yeah, demonstrating the problem of just being *anti something*. Silly people.

Good. Now compare it with the Linux and BSD entries.
http://news.netcraft.com/archives/2014/01/03/january-2014-web-server-survey.html IIS has about the same share as nginx in active sites, and double nginx's share in all sites. Considering that IIS costs money (Windows license), that's a pretty decent showing. /shrugs
 
Politics is one of the top layers of software development.

...And in modern software politics, nobody has time to care about an application only running on Windows stacks. It's easy enough to spin up some Windows server stacks and move on. There are far bigger problems to deal with, and those are the focus of 'politics'.

Worrying about the .NET framework being Windows only is chasing a housefly with a flyswatter while the kitchen is on fire, the bathtub is flooding over, your daughter is being abducted from your driveway and your son is about to decapitate himself with the lawnmower.

As a beginner you should avoid painting yourself into a corner.

Painting yourself into a corner? Is that like what you've done here?

The opinions presented here are just preposterous.

What would you use instead of C#, then?

So what happens if you start programming today, in C#, and it turns out you are really good at it? You gonna apply for a job at Google with C# only in your backpack?

Yes. Good software development skills are language agnostic, and competent developers can move from language to language just fine. Competent employers know that.

http://news.netcraft.com/archives/2014/01/03/january-2014-web-server-survey.html IIS has about the same share as nginx in active sites, and double nginx's share in all sites. Considering that IIS costs money (Windows license), that's a pretty decent showing. /shrugs

And if you were to draw tangent lines on that second graph, you'd notice that the share of Microsoft web servers is going up. It doesn't take someone who did their Ph.D dissertation in numerical analysis to realize that that doesn't indicate a 'shrinking market'. Meanwhile, it looks like Apache's share has been on a downward trend for quite a while.
 
Last edited:
What would you use instead of C#, then?

That is a very tricky question. However, I only use languages that have multiple implementations and run on multiple platforms, and that rule saved my behind countless times.

People really bind to languages, and if you do anything better than random middleware stuff you build huge amounts of personal libraries that will be very important to you, and you will take a huge hit if you have to give them up.

I mean it's not that I don't understand you. C# is so much better than that Java garbage.

Yes. Good software development skills are language agnostic, and competent developers can move from language to language just fine. Competent employers know that.

Getting into Google is extremely hard. I don't think you want that kind of extra obstacle around.

Yes what you say is true, but passing their phone screen with online coding and later tests will give you a very tough choice between using C# (where are they gonna find an interviewer for that?) or trying to use a language where you are trying to demonstrate being agnostic.

Personally I find it easy to program random things in random languages, but there is something special about being an expert in one.
 
That is a very tricky question. However, I only use languages that have multiple implementations and run on multiple platforms, and that rule saved my behind countless times.

In other words, you don't know. You don't have a better alternative because you don't write web applications or backend systems. So why are you coming in here trying to discount the advice of people who do do these things?

Personally I find it easy to program random things in random languages,

That's not just you. Everybody does. It's because conceptually, most programming languages aren't that different. Certainly going from Cobol to Haskell wouldn't exactly be trivial, but picking up any of the popular languages with a solid foundation in another language isn't difficult. Companies know this, which is why it's uncommon for entry-level programmers to be rejected for a job solely because they learned 'x language' instead of 'y language'.

but there is something special about being an expert in one.

Being an 'expert' in a language (and by expert I mean an actual expert who has acquired their skillset from many years acting as a lead/senior engineer or a specialist consultant, not someone who learned to program at home and has never held a job) is not relevant in your early career. Nobody hires a junior developer to be the go-to expert on a certain technology. College students shouldn't worry about what language they're learning, because there's nothing that's going to lock them into that language for the rest of their life.
 
College students shouldn't worry about what language they're learning, because there's nothing that's going to lock them into that language for the rest of their life.

I completely disagree.

Keep in mind that you have to learn a lot of other crap, too. You just don't have the brain cycles to first learn a language you are going to toss. And that doesn't begin to address the issue of personal libraries that you build. The only way to get away from that is if you do middleware things exclusively.

I have real world credentials and everything I do ends up on the web, but for obvious reasons I don't want to put the cards here. I used various languages over the years.

I also don't like it when people make the statement you just made, that all languages are very similar anyway. Sure, C++, C# and Java do, and the scripters not too far away. But if you want to be a really good programmer you need some exposure to something with a different approach, so that you give your brain some stretching. Prolog, ML, or Lisp used in a non-C manner.

Out of curiosity, how important do you rate SQL skills?
 
Back
Top