The Lounge is rated PG. If you're about to post something you wouldn't want your
kid sister to read then don't post it. No flame wars, no abusive conduct, no programming
questions and please don't post ads.
*pre-emptive celebratory nipple tassle jiggle* - Sean Ewington
In fact the possibilities of C#, VB.Net and C++.Net (known as Visual C++ too) are equal for a MS developer. But: If you learn VisualC++ you are able switch later to "normal" C++, improve your knowledge and do e.g. hardware-near programming. IMO VisualC++ improves your value as a developer more than the other languages and if you are able to do VisualC++ programming is writing C# code not a big deal because there are only a few differences.
VBA is just important for basic Macro programming within MS Office so some basic knowledge there wouldn't be too bad.
Panic, Chaos, Destruction. My work here is done.
Drink. Get drunk. Fall over - P O'H
OK, I will win to day or my name isn't Ethel Crudacre! - DDEthel Crudacre
I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer
Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett
Does learning yet another way to use .NET really get you anywhere?
Maybe learning a new framework (or, dare I say, platform?) would be more beneficial. Expanding horizons and all. It wouldn't hurt to be less career dependent on the future of .NET. But regardless of that, you're likely to encounter some ideas and practices that improve your .NET programming.
Barring that, TypeScript looks promising and is a good gateway to what the rest of the world is doing on the web.
Yep, methinks so too. You're better off being able to jump to anything else than simply learn a new interface into DotNet. From past experience, MS's libraries don't last for much more than 10 years - if they're used a lot, unlike stuff such as SilverLight
So the much more pertinent question is: What new set of libs should you be on the lookout for. And then you can relax and learn some weird programming concepts (try the strangest language you can find - by all means) to make you a better programmer instead of someone who knows how to look into DotNet from a different angle .
I'd recommend Lisp & C to start off with. Those 2 would probably give you a grounding for absolutely all possible concepts yet devised in the entire programming field. Thereafter learn languages for fun. Try to make something for another system (e.g. Linux / Mac / Android / etc. etc. etc.) Try to make same portable - to work on any system with only a re-compile at worst!
Once you can do all that, you've literally covered all your bases, no way you will get a curve-ball in the head
Functional language, yes, C, meh. Unmanaged C++ is probably better than C, you'll learn most of the same fun as C and know the most likely language used to solve problems that don't fit C# and VB* well. After those, as irneb suggests, do some dev for another system. I recommend some mobile development, and android in particular, because its new libs, language, IDE, application model, execution environment, product mentality, etc. all rolled into one.
We can program with only 1's, but if all you've got are zeros, you've got nothing.
I think Microsoft is going to loose it, and will be bankrupt in a few years
So, move outside the MS world... I am a .NET developer myself, but am considering moving to Java or something like that...
Currently MS is messing up everything they touch.. i expect Android to take over the complete desktop world as well... like they already did with the phones, tables..browser.. and so..or are you honestly telling me you still use IE or outlook?
It depends if you want to build on your existing experience, or if you want to learn something completely different.
Personally, I chose to step into the Ruby on Rails world. It's like emigrating to China (or Japan): different language, but also different habits, conventions, norms, values and brand names ("Capistrano" sounds like a coffee brand).
It's hard at first, but fun as well.
There's a good free course CS169. Search Youtube as well.
Personally, I think we've got enough languages. I'd rather become more proficient in C# and T-SQL (the languages I'm currently using) than to constantly change my tools.
I know it seems to be a badge of distinction to be able to list knowledge of 50 languages on your resume, but getting results with the 2 or 3 you know ain't too bad either.
If the art industry was the same as ours is, painters would be constantly trading in their pallets for the "new improved Paint Pallet 2012". You got to get this one, you'll paint your "Mona Lisa" in 1/3 the time!
I'm all for learning, but learning doesn't always have to be "horizontal". (I.E. instead of learning new languages every year, how 'bout learning the features of the one you're using. C# is incredibly rich). At some point you gotta pick your tools and stick with them for awhile! You just can't be an expert at two dozen things at one time. If you think you can, my hat's off to you.
I know some people who are so distracted by "upgrade fever" that they never really get anything done. They haven't got time ... they've got to be figuring out how that new tool works whether they need it or not!
Sorry guys for the rant. I know you were just excited about learning .Net. I'm just getting sick of the distractions of it. Everybody has something to sell!
I've stated previously to "try" some other language. Preferably one which is massively different from what you know. I mentioned Lisp, Rob Granger's mentioned Haskell (for the functional aspect). IMO Haskell's nice (I don't know it, but I've looked at it) - but functional doesn't work well in ALL situations. That's why I like Lisp (in particular CL, but Scheme does well too) - you get the functional at least the same as Haskell, but you're not forced into it. When your situation calls for something else than functional, Lisp has you covered there too! Same as not everything should be made into OO, sometimes OO is cumbersome and inefficient. Your situation dictates what you should use. Perhaps parts of your program calls for ASM - for efficiency or using a CPU's special features, some languages allow a function to be written direct in ASM. Some implementations of CL allow you to code the function direct in C or ASM, or linked in later. Though these days C# is starting to introduce functional (or going with F#), but you should not just think functional is all there is out there. That's why I like the Lisp idea.
Most concepts (if not all) which has ever been invented throughout the history of programming (i.e. since the 40's) has been incorporated into Lisp & C together (there are others you could substitute, but these are what I know for myself - I'm not going to advise on something I don't "know"). Patbob mentioned C++ instead, perhaps that's more general than C yes - so possibly, because of the OO involved (though if you have Lisp behind you the OO in C++ looks like a child's toy - not as easy to use but as restrictive and incomplete). Though C++ is a bit more steep to learn, but it's up to you of course.
Grammar and punctuation is another thing to consider. For me I try to get something which uses less punctuation and more consistent grammar. C & C++ actually breaks this idiom, they're extremely inconsistent with their grammar, and has arguably one of the largest sets of punctuation (perhaps Perl is worse). Lisp on the other hand is the opposite: 2-5 characters used as punctuation (depending on dialect), but its grammar is consistent throughout (pre-fix notation in absolutely everything forces consistent grammar). So my suggestions give you a rather broad base in even this aspect. At present I'm starting with Python due to the different grammar (just to broaden my own knowledge).
As for libraries, some languages come with their built-in libs. E.g. Java has an enormous set (at least comparable to DotNet), and they're not always consistent, and there's overlap in a lot of it (e.g. AWT and Swing). CL has a huge hyperspec of built-in standard functions (similar to C's stdlib), where Scheme lets you design all that on your own with only minimal functionality built-in (that's why it's usually chosen for academic over CL). I feel though that you shouldn't choose a language based on its libs, libs can always be created for yourself (if you have the time), or gotten from all over the net, or using FFI's. So rather choose a language which fits your scenario better and link to the libs you need.
Wondering what could be the best bet to learn from a MS developer standpoint ?
Presuming that you already have an in depth knowledge of one of the ones that you you mentioned the TSQL (the SQL in MS SQL Server) would be a good step. SQL, any SQL, requires that you think substantially different than versus the languages you know. TSQL has a significant impact on business applications and even if you don't want to do back end development understanding the requirements would help in most business development. And of course if you want to do smaller projects then knowing it is probably a requirement.
Mathematica. Get the Home Edition. Why push into more of the same OOP when you can stretch out to the other corner. We know that functional programming isn't going away, and getting good at it within only the lightning-flash implementations in OOP languages is like learning Hebrew from a dreidel. And Mathematica opens up the engineering side of things, which I suppose Haskell might, but Mathematica has way cooler graphics!
JonShops -- Fun really begins with the words, "So what in the World do I do now?"
As many others have said, learn C++. It most likely won't be the most popular language at any given time in the near future, but if you can program decently in C++ you can master any memory-managed language.
Last Visit: 31-Dec-99 18:00 Last Update: 30-May-16 20:26