General discussion

Locked

Visual Basic or Visual C++ ?????

By jackd ·
I would be interested in getting some expert opinion about programming.

What are the strengths/weaknesses of these respective languages?? Learning curves??

In light of Microsoft .Net platform, which would be the better choice to learn now??
(beginner in programming)
Thanks.

This conversation is currently closed to new comments.

59 total posts (Page 2 of 6)   Prev   01 | 02 | 03 | 04 | 05   Next
Thread display: Collapse - | Expand +

All Comments

Collapse -

another reply for sush_bhat

by basilisk In reply to I'll second the first par ...

No, studying mathematics is nice but not necessary.

The point I was trying to make is, in my experience, you have to have the ability to grasp the concepts of higher math in order to become a good programmer. You don't have to know who DeMorgan is, but you had better be able to understand why, in C++, !(cond1 && cond2) is the same as !cond1 || !cond2. You don't have to know the definitions of set vs. sequence and union vs. concatenation, but you had better realize that, if you add ObjectA 100 times to a collection of other objects, there are some types of collections where you end up with only one copy of Object A, while for other types of collections, you'll end up with 100 more copies of Object A than you started with.

In my experience teaching undergraduates to program, students who didn't grasp such concepts ended up being so-so programmers, able to copy and modify other people's work to a limited extent, or being able to code up new stuff if they were walked through it, but they hardly ever came up with any creative ideas on their own.

Having said that, however, please don't think that I don't think there is a place in the IT world for people without that skill level - the bulk of programming work seems to bemodifying others' work; it's just that I wouldn't call them good programmers.

Collapse -

Reply to pallan's Clarification

by basilisk In reply to I'll second the first par ...

:-) I know that everyone says Java is easier to learn after learning C++, but I would like to offer myself up as anecdotal counter-evidence. I know ANSI C++ very well indeed, and I've been trying to teach myself Java for the last year.

<rant> My levels of frustration with Java are sky high! The problem? Java does too much hand-holding. From my C++ experience, I _know_ there is stuff going on "under the hood" so to speak, and every Java reference book I have is hiding it from me. :-( Imagine trying to ride a bike with someone running alongside holding on to the back of the seat. Admittedly, there might be less physical effort needed to ride that way, but as someone who already knows how to ride by myself, I would find the personholding on to be incredibly ANNOYING! </rant>

If anyone knows a good book that really goes into the details behind Java, please let me know. I've tried many "Java for C++ programmers" books and they are worse than the "Beginning programming in Java" textbooks.

Collapse -

Java shouldn't frustrate you

by debuggist Staff In reply to I'll second the first par ...

This is a reply to a later post by Basilisk, but I couldn't post there.

Java frustrates you, because you can't see what's going on under the hood. You're using Java for the wrong reason. Java provides a higher level of abstraction than C++. Itwas designed that way, so programmers could spend their time writing code to solve business problems instead or worrying about memory management and other such things.

I would change your analogy: Java is not like riding a bike with someone holding onto the seat while you pedal. It's more like a motorcycle; I don't have to concern myself with the mechanics of pedaling, and I arrive at my destination a lot sooner. If I want exercise though and enjoy working on a bike, then I'll ride a bike; I wouldn't use a motorcycle for that.

Collapse -

Reply to HoosierDaddy's post-part 1

by basilisk In reply to I'll second the first par ...

Man, seven levels of replies is just not enough. :-)

Anyway, perhaps HoosierDaddy's motorcycle analogy is more apt. But he stated I was "using Java for the wrong reason". The problem I have with this statement is that I am not trying to "use" Java, I'm trying to "learn" it. I will argue there is a difference.

For example, I understand automobile engines in only a vague, very abstract way. When it comes to "using" a car, my abstract view is useful, cause I don't have think about what those weird noises from the front of my car mean and can concentrate on driving. However, I don't think anyone who knows me would ever claim that I have "learned" much about car engines during my life.

For a more programming related example of the difference between using and learning, consider the C++ cin and cout statements. 99% of the time when I am writing a C++ program, I keep a abstract view of what cin and cout do in my head (e.g. cout "writes things to the screen" and cin "reads things from the screen"). I very much appreciate this feature of C++, compared the much more complicated view I needed to keep in my head in order to use the printf and scanf statements in C. (continued in part 2)

Collapse -

Reply to HoosierDaddy's post-part 2

by basilisk In reply to I'll second the first par ...

(continued from part 1) However, this abstract view of cin and cout has let me down. Perhaps a dozen times, I have written C++ programs that displayed bizare behavoir related to their cin and cout statements. Moreover, in any given undergraduate programming course I have taught, I could pretty much count on 200 students coming up with 10 or 20 programs with equally strange behavior. If I had only my simplified view of what cin and cout does, as stated above, I would still be puzzling over these programs today. I had to resort to a much more concrete, detailed view of cin and cout (e.g. they are "completely separate streams of characters, including various whitespace and non-printing characters, which are buffered by the OS") in order to explain/control/fix/take-advantage-of the strange behavior of these programs.

So while I don't have to resort to this detailed view when I am "using" C++, it is my opinion that I had only "really learned" C++ after I had obtained this concrete view necessary for explanations of simple programs and for routine debugging.

This is the problem I am having with learning Java. I can type in the examples from my books and follow the explanations as to what the examples are doing. However, as soon as I start to explore on my own, modifying the examples or coding up little tests of my own, I get unexpected behaviors. And my books are no help, 'cause they don't explain in enough detail for me to learn what is going on.

(P.S. I should mention I don't have too much of a problem with thinking abstractly; it's one of the reasons why I want to "learn" Java in the first place, so I can "use" it when I don't want to worry about concrete details. Actually, I find even pseudocode to be too concrete for a first design effort; I prefer to begin creating classes using a combination of modeling theory and predicate calculus.)

Collapse -

Good point, but...

by Moki In reply to Advice

I think you hit the nail on the head with your advice to learn the programming craft rather than just a programming language. Shakespeare would have been just as remarkable if he had used French, Spanish or German (well, maybe not German).

I think it is also true that the best way, in fact the ONLY way, to really learn programming is by learning and using a language.

Of course, this is such an investment of time and effort that it only makes sense to want it to make you more marketable aswell. That's why I can't honestly recommend the finest programming language ever defined: Modula2. Java isn't half the language Modula2 is, but I wouldn't want to try to find a job trawling with a Modula2 r?sum?.

Collapse -

Learning a syntax = not good enough

by ajensen In reply to Good point, but...

I understand your point-
"... in fact the ONLY way, to really learn programming is by learning and using a language.".

However, I think this misses the mark. If the question is, "How do I become a programmer." then learning one syntax and the supplied function/object libraries is not enough. I agree that doing just that is a lot of effort but it hardly makes a good programmer. It may make a decent 'coder' (but this is not assured) and if that is all one aspires to be, well fine.

For example: I manage the development group for a vertical market firm. In my small shop we use Delphi, VB, VC++, PL/SQL, 2 proprietary scripting languages and maintain an older code base in FoxPro. Oh, did I mention VBA and a few macro-languages.

This next quarter we will be looking at moving to commercial application servers, so container managed Java Beans and XML here we come.

Now when I hire a developer I need someone that understands how to implement requirements in whatever language is appropriate for the project. If they need to learn a new syntax then I have no problem getting them some training.

Collapse -

Thanks Brian

by tigre_269 In reply to Some help

Thanks for the insight. I just bought a VB book a couple of weeks ago. My motive is to create admin utils. Can you recommend any good programming books?

Collapse -

THE book!

by BrianHarris In reply to Thanks Brian

I don't really buy that many books anymore, but I can recommend THE book all developers should have at least flipped through. You should of course READ the book, but the more advanced you are the more the book might be overkill.

Code Complete
by Steve C McConnell
ISBN: 1556154844

The book teaches you HOW to program, not a specific language.

If you're doing VB and you want to do admin utils(don't know what kind) you should get a copy of Dan Appleman's Win 32 API book(ISBN: 0672315904). The newer the better.

Outside of those, if you're doing development with Microsoft tools you really only need MSDN, which fortunately is now online. In the good old days you had to spend $200 for a year'1s subscription.

Good luck!

Collapse -

Depends on the type of application

by bobbi7 In reply to Some help

Where ever there is a need of good and complex interfaces with time limitations then of course use VB . (Since it is a semi RAD tool). But of course if you use VC++ without MFC classes ;there is an advantage in faster speed since C++ is a language it will take less time to connect to databases but of course changes and maintainence of code is high

Back to IT Employment Forum
59 total posts (Page 2 of 6)   Prev   01 | 02 | 03 | 04 | 05   Next

Related Discussions

Related Forums