Advice on what language to learn....

cuemasterfl

Supreme [H]ardness
Joined
Jul 5, 2001
Messages
4,181
I'm ok with VB.net, but I want to learn something else that will put me in good stead for the future. There are so many things I could learn (C#, C++, Silverlight, Java, Flash, PHP, the list goes on). I'm not picky as far as whether I should learn something for the web or for desktop. What suggestions do you have? I like the look of Silverlight, and C#, although C# looks like a totally different way of doing things than what I am used to in VB.

Thanks.
 
Learn something for which you will find a job and that you will enjoy doing.
 
Learn something for which you will find a job and that you will enjoy doing.

I feel like too many people are giving that advice, and that it's not really fruitful. Unless he works on a lot of open source projects and has some personal projects to demonstrate his programming abilities to potential employers, he's probably going to struggle getting a job without some sort of post-secondary education/training. At that point, it won't matter what language he's learned before hand, because the school he goes to will make him learn whatever languages they teach their programs around.
 
No degree = no job, unless, as you said, there are some big factors such as heavy open source development or a huge independent project.

It makes this whole topic rather moot, unless the OP is actually a student right now or already as a CS degree.
 
There are lots of people in this industry without degrees.
 
There are lots of people in this industry without degrees.

How many of those people entered the industry in the last handful of years, and did so with no experience (paid or unpaid) and no particularly impressive home projects? I imagine the people who got programming jobs without a degree were able to gain some kind of experience, be it through working on open source projects, or through some amount of college coursework (without ever completing college), and perhaps even some co-op or internship.
 
How many of those people entered the industry in the last handful of years,
I know of no such survey. Point is that is is possible to enter the industry without a degree. A smart employer pays attention to skillset, and doesn't really care about educational background because an candidate's academic experience has little bearing on their professional work. A company that claims to have a graduate of some particular university with a decent GPA has nothing on a company that has an employee who has a particular talent that's valuable to the company, its strategy, its shareholders, and its customers.

Sure, the easy and therefore more common path is to go to school and get a degree, get an entry-level job and then work on up. It's completely possible to skip school, find a different way to get the experience, and start making money sooner. Someone who's able to add value to a company (or the industry) sooner is that much further ahead of everyone else.
 
I know of no such survey. Point is that is is possible to enter the industry without a degree. A smart employer pays attention to skillset, and doesn't really care about educational background because an candidate's academic experience has little bearing on their professional work. A company that claims to have a graduate of some particular university with a decent GPA has nothing on a company that has an employee who has a particular talent that's valuable to the company, its strategy, its shareholders, and its customers.

Sure, the easy and therefore more common path is to go to school and get a degree, get an entry-level job and then work on up. It's completely possible to skip school, find a different way to get the experience, and start making money sooner. Someone who's able to add value to a company (or the industry) sooner is that much further ahead of everyone else.

I respect your expertise, but that is a pipe dream. In ideal world only real value would reign, but this is not an ideal world... The degree, and especially the university you went to, plays an insane amount of importance.

The most common path has more to do with prestige and paper than with actual talent. Most of these "common" companies simply filter out the resumes without "proper" education
 
The most common path has more to do with prestige and paper than with actual talent.

Which is precisely why smart companies don't hire this way.

Most of these "common" companies simply filter out the resumes without "proper" education
The common path is common because it's easier than the hard path. Most people don't have the talent or drive to do it the hard way. Bottom line is that there's lots of paths to success, and it's impossible to provide prescriptive advice about which path might (or might not) work for any particular individual.

There are pockets of idealism in this imperfect world, and it requires tenacity and patience to find them. And they're worth finding.
 
At any rate, a college degree is today's equivalent of a high school diploma. Talent used to get you places, but not any more. I mean sure... there are companies out there that you may find that will give you the time of day, but even those are on the critically endangered list. I think it would be fair to say that a company like that would already have all the help they needed as well since it would undoubtedly be a good place to work. Add 10% unemployment to the mix, and you may want to tough it out that extra 2 years and get your masters before attempting to find employment.

All that said, VB is the antichrist and everything else I can think of will be completely different, so just pick whichever one you are interested in. php might be more forgiving than some, yet still have the structure that will translate to others. If you don't already know xhtml or css, you could learn all 3 at the same time.
 
Having some relevant degree and/or work experience will get your resume past the two second skim. But generally speaking, whether or not you need a degree or cert more depends on the job listing prerequisites.

But the big unanswered questions are:
- What does the OP really *want* to do?
- What has the OP seen that looked interesting enough to have you excited about coming into work every day?
 
Thanks for the replies guys. I do VB development at work, and some PHP, HTML, CSS. I *really* like what I've seen with Silverlight. I have a degree in Computers I.T., but this is the first job I have got where I program for a living. I know, from what others have said, that having "Visual Basic" on my resume isn't going to get me far. There are so many possibilities out there, and things that haven't yet been done. My thoughts at this stage are that Silverlight with C# are the best options. BTW, I'm 40 years old. I know some of you think I'm a lot younger. The fact is, I have a lot of time I can dedicate to whatever I choose, so I want to make the right choice.
 
Thanks for the replies guys. I do VB development at work, and some PHP, HTML, CSS. I *really* like what I've seen with Silverlight. I have a degree in Computers I.T., but this is the first job I have got where I program for a living. I know, from what others have said, that having "Visual Basic" on my resume isn't going to get me far. There are so many possibilities out there, and things that haven't yet been done. My thoughts at this stage are that Silverlight with C# are the best options. BTW, I'm 40 years old. I know some of you think I'm a lot younger. The fact is, I have a lot of time I can dedicate to whatever I choose, so I want to make the right choice.
So you're wanting to focus more web development? Or are you wanting to pick up XAML to do both Silverlight and WPF development?

As for the VB comments thus far... That really depends on which version of VB is being referred to. VB6 was so-so. VB.Net still goes through the same CLR as C#, so comparing those two are just about a wash. But neither version of VB was ever the anti-christ.
 
neither version of VB was ever the anti-christ.

...just 2 horsemen of the apocalypse. ;)


To the OP - there's not really much of a reason to learn a new language just for the sake of learning a new one. Languages are like tools - you're not going to learn how to use a phillips head screwdriver just because you're bored with standards. What is it that you're trying to accomplish?

Do you want to learn a language that'll give you access to a new platform? If so, there's not a lot of reason to pick up another .NET language.

Do you want to learn another paradigm? There are plenty of other languages out there - LISPs and pure functional languages, dynamic scripting languages, more/less object oriented languages, Prolog, Forth, assembly... Any one of them could give you a different perspective on computing.

IMHO, every programmer should know a quick & dirty general-purpose scripting language. Python/Perl/Ruby/etc are all great for little throw-away utilities, experimentation & testing. Knowing one can do wonders for your productivity.

However, if you're concerned with something that will make you more employable, the easiest thing is to expand your knowledge out from what you already know - in most cases, depth, rather than breadth, of skills is more valuable. Since you're a "VB.NET Programmer", your best bet is likely to be in learning more about MSFT's platform. Maybe you'll pick up C# and some Silverlight. Maybe you can go in-depth into learning some new framework/library in the .NET system. How are you with databases & SQL? Maybe what you need to learn isn't so much a new language but a new problem domain - master XML or graphics programming or learn how to interact with the OS at a lower level. Maybe you should focus on something like unit testing and test-driven development. Coming from a Unix background, Powershell seems like it'd be a valuable skill for a Windows developer to have - it's about time that y'all got something on par with proper shell scripts.
 
Last edited:
I'm actually ok with databases and SQL. The project I am working on at the moment involves SQL commands, as well as displaying MapPoint 2010 maps, with pushpins based on data from the DB. I want to be more employable, I guess, for when/if this current job ends. XAML/Silverlight/WPF looks very tasty indeed.
 
Well if you stick with the Micorsoft Dot NET world, you could learn C#. It should be fairly easy for you to pickup and it would make your more marketable in the Microsoft Dot NET arena.

I've taken many jobs that were C# only rather than VB.NET.

If just learning for your own sake, the suggestion of learning an all purpose language like Python/Ruby/Perl is good advice. I'd perhaps suggest learning Python as in addition to being able to code on Mac and Unix, you can use Python as IronPython for Dot NET programming as Microsoft has accepted Python as a Dot NET language. String manipulation in Python is really particularly nice.

You can then mix IronPython, C# and VB into solving your Dot NET applications. You'll further push yourself as a Dot NET programmer ahead of others so that should increase your Microsoft marketability.

As an added plus, Python will let you use Django if you decide to branch out and learn Web Application programming with another framework (and you could use your Python knowledge for Google App Engine).

Oh yeah, it's worth noting that Ruby is also being adopted as a Dot NET language too as IronRuby.
 
Frankly I hope you know what you want and pursue the education to get you there.

To be honest I started my job doing tech support then moved to supporting the applications then learning the languages and becoming a systems analyst. I likely am the exception however, more likely due to a ton of luck in rather than any skill I have.

Certainly the big issue on getting a good job (if they are available) is getting your foot in the door via any job. To do that you have to be fairly well rounded, also pretty intelligent. If it is a decent company and you can prove yourself then there may be opportunities to move up.

For the really good jobs though it is going to take a proven track record. You might be able to find someone willing to take a chance but chances are probably not.
 
Learning any C-esque language will be beneficial. They all follow the same basic coding style, so if you learn one it's easy to pick up the others. I'd go with C# if you want to stay in the .NET environment you're already familiar with, Java if you want a similar higher-level environment, or C/C++ if you'd like to play around with lower-level stuff.

If you really wanna be adventurous, get a cheap MCU based on Motorola/Freescale/TI/etc architectures and learn to program it in C/C++.
 
I think if you learn the two ends of the spectrum C/C++ and VB... most of the others will be similar enough that you can pick them up.

There are exceptions to this rule (i.e. ColdFusion in the web arena) but learning the syntax is easy once you have the backing of programming ideology.
 
Yeah, C/C++ is pretty much the exact opposite of VB as far as syntax and holding your hand goes, so you may experience a bit of a shock if you choose that.
 
as far as syntax and holding your hand goes

Lol, yeah I remember the first time I wrote an ASP app... it was like I was writing a plain English term paper, lol.

I prefer C based (web) languages (PHP/Perl/JavaScript/etc...) I have taken projects that were ASP and coldfusion, only to regret it and think how I could have done it so much faster and more efficient in PHP, lol
 
I actually tried C++ a few years back, with a book. I got through the first few chapters ok, then got mind-numbed when it started talking about pointers. I don't want to be managing stuff like that, and I stopped learning C++. I think C# is the way to go, with XAML/Silverlight. I want to stay with .Net. Right now I have a programming job, for which I use VB.Net, but I was really lucky to be given it, and I've learned a lot. I'd never messed with SQL before this, but now I consider myself pretty good at it. Good stuff for my resume ;)
 
pointers are extremely powerful, they are a language unto themselves. that being said, they are also responsible for tons and tons of bugs... :D
 
I respect your expertise, but that is a pipe dream. In ideal world only real value would reign, but this is not an ideal world... The degree, and especially the university you went to, plays an insane amount of importance.

The most common path has more to do with prestige and paper than with actual talent. Most of these "common" companies simply filter out the resumes without "proper" education
Only at a company which receives more applications than it has positions. If you want to work at Google or Microsoft, yes you should probably have a good degree, from a good school.
 
Just like Bill Gates?

I'm not sure what "an insane amount of importance" really means. If you're trying to get hired at a place where the degree matters more than the quality of work you've previously done, you're trying to get hired at a place that's going to hell in a basket, sooner or later.

I've no-hired hundreds of people with degrees who couldn't code their way out of an infinite loop. We took them to an interview because the work history on their resumes looked interesting, not because their academic record was appealing.
 
pointers are extremely powerful, they are a language unto themselves. that being said, they are also responsible for tons and tons of bugs... :D

They're not responsible for anything... poor programming / people not knowing what they're doing is what causes bugs :p
 
He also said for which you will find a job ;)

Yeah, there is still a lot of COBOL running out there and some companies oddly enough won't move to another language.

gf's dad works in banking systems ATM so he encounters it somewhat frequently. I can safely say I don't envy that one bit. :D
 
Back
Top