What is the most valuable programming language to learn? [programming language]

Q: What is the most valuable to learn? What is the most common language? I know that some of the basics in c ++.: confused:


Best Answer: I've taught beginning programming for a lot of years in a lot of languages (including C++) It's certainly possible to learn programming with C++, but I don't think it's the most natural language for beginners.

If you want to learn C++, begin with dev-c++. It's quite a good little editor, and it comes complete with a c and c++ compiler (the mingw version of the gcc stack, if you want to know) The debugger in dev-c++ is nice, the syntax coloring is reasonably helpful, and it's pretty easy to add in tools and libraries using the dev-pak framework.
http://www.bloodshed.net/devcpp.html

The code:blocks ide suggested in another answer is a multi-language editor, which is fine, but you'll need to separately install a c++ compiler, which isn't as easy as it should be.

C++ is a popular language, because it creates fast code, compiles to native binary (which is why it produces fast code), and it can do lots of things.

However, the things that make C++ a popular tool for professional programmers don't make it a great tool to learn the art of programming with. Professional truck drivers drive 18-wheel rigs, but that probably shouldn't be your first driving experience.

C++ tends to have a lot of rules which can be mystifying to beginners, and has some picky requirements you may not want to bother with until you're more confident in your programming. In particular, C++ requires you to take direct control of memory management, which is automatically done for you in most languages. This can make the language more challenging than you might want on your first ride around the block.

Still, C++ is way better for beginners than its older cousin C, which doesn't even allow you to work with text directly. By all means, learn C sometime in your life. It's a great language. But it's not a great first language.

I currently teach a Computer Science 1 course using Java (the language used in most CS1 courses these days) Java's a pretty decent beginner language. It's got a lot of rules, but generally these rules teach you good programming habits, so that's not a bad thing. Java is available for free from sun:
http://java.sun.com
If you're going to use java, get the eclipse editor:
http://www.eclipse.org
This IDE has really nice error checking and syntax completion. It really cuts down on the memorization. You can get lots of good books and instruction on java (including my video class online)

My favorite language for teaching beginners is actually Python. It's a clean, easy-to-understand, and very powerful language that can do everything the other major languages can do, but it tends to be a lot easier for beginners (and experienced programmers, too) to work with. Python comes with a basic editor, and you can add more sophisticated ones if you want:
http://www.python.org

The actual language choice is not that important, as you will eventually learn multiple languages, and they're all pretty similar at the core. Don't pick a language thinking you'll be married to it for years. Instead, choose your first language based on the likelihood it will help you become a programmer. Then take what you learn from that language and apply it to the next.

Best of luck to you!


Re:What can you do with VB.Net that you can't do with C#?

If you want to do Windows business-type appliactions, I think VB is all you need to know. If you like Computer Science type stuff, don't go with VB.

I work with my mother designing Health Claims software. She designs it and I do all the coding. We've delivered 2 large projects the second half of this year. There is no way we could have accompished using anything but VB. Next year we have a large web-site to do. I'm looking forward to learning and using ASP.Net with VB.Net.

Back to the original posters question- figure out first what kind of programs you'd like to write, then ask what language to use.


Re:I actually can't stand VB.NET. Syntactically, it irks me more than the original VB. Being a VB advocate, this is hard for me to say.

In .NET, my primary language is C#, only going to VB.NET when there are things I can't accomplish in C#.


Re:people love to dog VB, but the truth is its probably the most used language out there, not to mention its the best fit for 99% of the business problems out there today, the same script covers everything from office automation, active x, email, desktop and distributed applications, not to mention a powerful webserver platform as well. The fact that a programmer can use one language for all of these tasks is pretty nice, espacially in todays fast paced business environment.

BUT, as others have said, i would not recomend VB as a first language to learn. Although I think its great for just about programming everything except extreme gaming and a few other scenarios, if you want to know programming, learn C++ first, youll understand VB better and be able to take advantage of it more than someone who only knows VB.

p.s. if you think VB is cool now, just take a look at microsoft.net, check out the specs on VB.Net edition, some very serious enhancements have been added this time around, i cant wait to take advantage of them.


Re:<< like using types and documenting code in header files >>

Many consider this to be poor (including myself). In the more modern OOP environment, header files are passe (e.g. Java and C#'s natively employ interfaces).

<< Sure guy, can you make me a good log parser for my OpenBSD firewall? I was thinking something similar to how FW-1 works, a daemon running on the FW itself, and a GUI that connects to the BSD box, running on my Linux workstation using X. >>

Man, you're not getting my point at all. I said VB has a niche, and obviously building a daemon for OpenBSD is not VB's niche. You want to build me a 3-tier system with isolated business and data access layers, aggregate data from disparate data sources (oracle 8i, sql server 2k) into an xml resultset, marshal that xml resultset between the tiers, and expose that xml as a soap web service………. in C, or C++? You'll just be starting by the time I'm doing my unit tests, at best.

Note, the above is obviously more easily achieved in a win32 environment, but scrap the need for sql server 2k, and you can accomplish the same thing on any platform, just NO WHERE as quickly, and as efficiently as VB. Also note, that I've implemented many of the above systems, and it's not entirely VB. We have many C++ COM components for the more intensive pieces, and VB COM components for the simpler pieces.

And yes, if you take off the restriction of having the log parser being a daemon that runs on the fw itself, I can build you just that.

I think those that argue the value of VB either a) don't know, or have never used VB or b) are not Windows developers or c) are not professional Windows developers. I'm not arguing VB for those who work strictly in a *nix environment, as that would be absurd. I develop solutions for both platforms, and w/o VB on Windows, I'd spend way too much time building simple end-user interfaces.


Re:Sure guy, can you make me a good log parser for my OpenBSD firewall?

I was thinking something similar to how FW-1 works, a daemon running on the FW itself, and a GUI that connects to the BSD box, running on my Linux workstation using X.


Re:I don't think the issue is what you can and can't do in VB or C++, the issue is what's better to learn on. C++ will get you into better programming habits, like using types and documenting code in header files. FWIW, most people I know who learned C++ first can read other languages without any previous exposure to it and can learn them very quickly, but people I know who learned VB first had a hard time moving to JavaScript/Java/C/C++.

Re:You guys are too anti-VB. For a Windows programmer, VB can be a great tool. VB has been heavily used in the proverbial "Windows DNA" environment, and maintenance of such projects require a strong VB knowledge. We have interviewed countless programmers, many of which who are seriously anti-VB, yet they don't even understand the language. Comparing VB to C++ is nonsensical, as they serve entirely different niches. One also has to seriously consider the fact that there are many, many more VB programmers than there are C++ programmers. I unfortunately can't develop all of my solutions in C++, as it's difficult to find good C++ programmers. I've even been questioned by my use of VB, as "not everyone knows VB." Don't even get me started on how absurd that is…

Point? Sometimes, C++ is simply overkill. I can't go to my client and tell them I'm going to spend twice the time on a project simply because I favor C++. I can, however, tell them the benefits (depending on the project, there may not be any benefits to the client) of using C++ versus VB, and let them make the decision (this is assuming it ever gets to this point, usually the client is not aware of the language choice, but we develop solutions for development companies as well). Maintenance is a big issue when implementing turnkey solutions as well. For what I can accomplish in VB, I cannot accomplish in C++ with less time. Couple that with increased maintenance time, and the costs go up rather rapidly. My last job was with a huge company with ostensibly endless budgets, and everything was implemented in C, or C++ (with Delphi/PowerBuilder/VB frontends — don't ask). Now that I'm in a smaller company, where our competition is undercutting us everytime we turn around, I am forced to build it in whatever is most cost-effective at times :( .

I will say that at least the introduction of C# will elucidate this scenario a bit. I still have a few qualms about the language, but it's a definite step up from VB. Trouble is, in .NET, you can't accomplish the same thing in both languages, so again, you still need to be able to implement your solution in either language. Sometimes one has to trade the idea of syntactical elegance for functionality, or cost-effectiveness.

Btw, anyone who can present any scenario that I can't implement in VB, I'll give ya a prize.


Re:As a former employee of a company that developed real serious three-tier TCP/IP based applications, I would definitely recommend Delphi, and would argue (I know that I am somewhat biased) that anything you can do in C++, you can do in Delphi… more easily and in a much more readable format. I also do some hobby programming on OpenGL, Neural Networks, Genetic Algorithms and have never once regretted using Delphi.
And yes, I have actually used MS Visual C++ too.

Re:yeah, ultraSPARC assembly was pretty fun too :)

Re:<< ARM assembly >>

LOL! you would have this guy jumping out of a building after trying that for a few hours. I know I did (good think I was on the ground floor, come to think of it all of the programmers are on the ground floor for some reason…)


Re:But for professional apps you should learn C++.

There's nothing about C++ that makes it more professional than Delphi, infact Delphi and C++ builder are much better IDEs than VS IMO. But, sadly you'll probably find more places using VS just because it's made by MS.

If you're going low level and optimizations learn ASM (I would suggest starting it then you know C++ very well).

ASM is generally a bad idea because it's so unportable and most times the speed enhancements aren't worth it.
What can you truly accomplish in a win32 environment with C or C++ that'll directly port to any other platform?

What can you truly accomplish with posix in C or C++ that'll directly port to any other platform? A lot more once you step away from Windows. No, it's not perfect but it's very doable and #ifdefs aren't as bad as you make them out to be.


Re:If you want to create simple programs use Delphi, it's fast and you don't have to know API.
But for professional apps you should learn C++. If you're going low level and optimizations learn ASM (I would suggest starting it then you know C++ very well).
I personally would not go for VB.

Re:guy: You didn't say you like languages that are "useable" on multiple platforms, you argued platform independence, which C and C++ are not beyond the most basic level.

I do agree with you though. I think knowing C has proved more useful than any other language I know, but some have different goals, therefore it may not be the right choice.


Re:Desacrtes, C is useable on any platform known to man(almost, V2OS and such dont count), on how many platforms is VB useful?

Anyways, I should mention Im a UNIX admin, and I just cant stand WinNT/2K in a server environment, so indeed, I am biased.


Re:<< assuming you count VB as a that is >>

Figured ignorant comments like that would creep in this thread with a mention of VB.

I'm not quite sure what makes you think C and C++ are inherently platform independent. What can you truly accomplish in a win32 environment with C or C++ that'll directly port to any other platform? Even the simplest of programs written in C are riddled with #ifdefs just to get it to compile properly.

Largely, in a production environment, the target platform is known. If you keep things platform independent, you're going to have to pay for it. For C or C++, it's spaghetti code and limited functionality, for Java, it's performance. Take your pick.

Criticizing VB is juvenile. Java isn't exactly complex as far as languages are concerned. VB is lacking in areas of OOP, but VB was never designed to be a language for that purpose.


Re:To pick one I'd say C because it works everywhere.

The thing is you want to learn to program, not just learn a . If you get the fundamentals of programming in your head learning the syntax for a new language is easy.

And VB is the worst, hands down. It'll get you into many bad programming habits and lock you into MS' world, 2 things noone wants.


Re:C/C++ or Java IMO.

I hate everything platform specific, including programming languages, so that excludes VB for me, assuming you count VB as a that is ;)


Re:There's no one answer to any of those questions. That's like saying, "what car is right for me?" without qualifying your question first. What kind of applications are you wanting to build? What's your target platform? Are you a hobbyist, or are you wanting to do professional work?

The most popular development tool in use is Visual Basic, hands down. Depending on what you want to do, VB may be a fit. VB can be a good tool to be used in conjunction with other tools/languages as well.

Tell us what your goals are, and we'll tell you what might be the best language to reach those goals.


Re:C++. And the best part is that it's a superset of C.

Related posts

Leave a comment

0 Comments.

Leave a Reply


click to changeSecurity Code

[ Ctrl + Enter ]