Book for VB .NET newbie/novice

D

dinny

Doesn't sound like what you wrote was an opinion. Sounds like you believe
them to be facts (which they are not). And, if they are opinions, you'd be
wise to keep them to yourself since they clearly tell us that you have no
idea what you are talking about.

Hey, here's an opinion: Hot things are really really cold when you touch
them. Would you like to try to prove me wrong?

Actually, I think you are right, I have made some mistakes.
Thanks for your reply anyway.
 
S

Scott M.

Cor,

I don't know where you got the idea that I felt that learning the language
last was the way to go!? This is what I said:

"You should PICK a language first, but as you sit down to learn to write
that
language, you'll not only need to learn the language elements (variables &
data types, loops, decision making code, etc.), but you'll simultaneously
want to be learning how that code is being processed internally by the
Common Language Runtime (CLR)."

This is how I teach VB.NET (and have been teaching it for 3 years now) with
great success.

-Scott

Cor Ligthert said:
Scott,

In my opinion is the lack in this thread that not is told how deep
somebody should learn something, when you now read your message you can
get the idea that learning of everything except VBNet is important.

I agree with you that it can be important to understand how VBNet does his
processing. I disagree with you that learning the CLR in depth can be the
solution to learn VBNet. what now comes more or less from your message.

It has to be in my opinion step by step

By instance however the steps can be completly different and this in
completly incomplete

The language concept
The IDE
The operators and value types
Classes and objects
Late and early binding
Building
Executing (and in this part or the previous is the CLR is involved)

Code optimalization can only be done when you understand more or less the
building and executing. Therefore you need as well the knowledge that it
is done with the CLR, what I agree, however as well all other suspects of
building a program.

I find this by instance a good source for it.
http://samples.gotdotnet.com/quickstart/

Just my thought, what I assume you do not disagree in its context.

Cor
 
C

Cor Ligthert

Scott,
I don't know where you got the idea that I felt that learning the language
last was the way to go!?

I don't have that idea, however reading more messages in the thread and (in
the way I readed them) somewhat defending way your messages where about the
CLR part, you could get that idea.

As I said about the context of my message and what I expected about your
idea about that (it was not a question) in the same way as you now with a
question shows that it is.

So in my opinion it is now very clear what you are thinking about that.

:)

Cor
 
S

Scott M.

About the only thing I can understand from what you wrote is you
contradicting yourself:

You say that you don't have the idea that I said to learn the language first
and then you said that from reading my posts, you could get that idea. I
clearly advocated learning both at the same time (since one does nothing
without the other).

My point all along has been very clear: The CLR is extremely important to
know and understand if you have any intention of writing good code. If you
want to write sloppy code or don't care about performance, by all means
forget the CLR and just learn the syntax of the particular language you are
using.

This position seems pretty clear to me. What part are you unclear on?
 
C

Cor Ligthert

Scott,

It is really true that you wrote that.
My point all along has been very clear: The CLR is extremely important to
know and understand if you have any intention of writing good code.

I did not believe that so I misunderstood the thread.

It is in my opinion absolute unimportant, this is a statement from the first
generation of computers, modern processors have enough performance to
overcome 95 procent of not optimalized code that is written with languages
as VBNet.

In my opinion it is more important to create good readable OOP programs to
secure good maintenance for that

However we disagree and any arguing about this is useless.

Cor
 
S

Scott M.

So you don't use Dispose and/or Finalize in your code? Because, as you
know, to use these you must understand something about how garbage
collection works and that is a function of the CLR.

And, if you don't use them, then how will your code keep unmanaged resources
free, uncorrupted and available to other applications besides yours?

Would you use a String object or a StringBuilder object if you had to do
heavy manipulation to a string value? If you say String, then you WILL take
a performance hit (could be several seconds). If you say StringBuilder,
then it's because you understand that strings are immutable and how the CLR
allocates heap memory.

How about simple casting? Do you ever take strings and cast them as numeric
values or vice versa? Sure, we all do. But if you don't understand what
Boxing is then you are most likely doing these types of casts in
circumstances when they could be avoided and therefore improve the
performance of your application.

Ad nausea.
 
P

Patrick Dickey

Hello, "Cor Ligthert" <[email protected]>!
You wrote on Mon, 8 Nov 2004 19:21:46 +0100:

CL> It is really true that you wrote that.

??>> My point all along has been very clear: The CLR is extremely
important to
??>> know and understand if you have any intention of writing good code.

CL> I did not believe that so I misunderstood the thread.

CL> It is in my opinion absolute unimportant, this is a statement from the
CL> first generation of computers, modern processors have enough
CL> performance to overcome 95 procent of not optimalized code that is
CL> written with languages as VBNet.

CL> In my opinion it is more important to create good readable OOP programs
CL> to secure good maintenance for that

CL> However we disagree and any arguing about this is useless.

Ok, I've read both of your posts to this thread, and have a few observations
to make. I'm not taking sides, and I hope it doesn't come off as such.

Both of you are talking about "spaghetti programming". Scott, you're
showing that if you don't want to write spaghetti programming, you need to
learn the CLR. Cor is saying that the processors today are powerful enough
to overcome the spaghetti programming, so the CLR isn't as necessary.
Sounds like you are on opposite sides of the issue, right? Ok, here's where
it gets twisted. Cor also said it's his opinion that you need to write good
readable OOP Programs.

Ok, my interpretation of everything said here is this. Both of you are
saying the same thing, just in a different way. VB doesn't use the true OOP
Like say Pascal did. It doesn't seem to have the 'flow' or 'structure' that
I learned and used in Pascal, COBOL, or FORTRAN. However, I'm guessing that
the CLR provides this structure. So, where Scott is saying you need the CLR
to avoid spaghetti programming, and Cor is saying that you need a good OOP
style program (to avoid spaghetti programming IMHO), you're saying the same
thing.. It's just that in VB, the CLR is providing that OOP. (I do realize
I'm repeating myself, but it's important to make sure the point is clear).

So, would you both agree to this... You need to pick the language that
you're learning, and while you are learning the syntax of the language, you
also need to learn how to create good structured code? To me, it sounds
like you're both saying it.. It's just a disagreement in how much the CLR is
involved in the process. In the end, I will check out the msdn site again,
and also some other sites that provide beginners books for VB. Then, next
semester, I hopefully will have some idea of how to create good sound
structured code, when I start my college courses.

Thanks, and if you disagree with me, please feel free to pick the spots and
clarify them.
Patrick
Patrick Dickey. E-mail: pd1ckey43(removeThis)@msn.com
 
C

Cor Ligthert

Patrick,

I did not want to mention this earlier. I do not know what version of Pascal
you use, however the true version of Pascal is designed for "Structured"
programming do not mix that up with OOP.

C++ is desingned for OOP programming.

At the moment are Java and derives, C++ and derives, VBNet full OOP
programming languages (and probably more).

Cor
 
S

Scott M.

Hi Patrick,

No, I don't think your interpretation of the thread is correct.

Pascal, COBLOL & FORTRAN are not OO languages and no one is talking about
"spaghetti code". We are also not really discussing the merits of
structured vs. OO code either.

I should point out that I don't think either of us disagree on the basic
premise that there is a difference between efficient code and code that
works.

What we are talking about is if there is a need to understand the underlying
runtime that actually processes the code written in a given .NET language.
I admit that one does not *have* to understand this runtime in order to
write code that *works*, but I strongly believe that one should learn how
this runtime operates so that code can be written most efficiently.

My take on what Cor is saying is that you don't need to worry about what
goes on in the runtime, since the runtime is designed to optimize code
anyway. I agree that the runtime *can* do this in *some* limited cases, but
there are far more cases where the runtime will process your code in the
least efficient way if you leave it to its own devices.

-Scott
 
P

Patrick Dickey

Hello, "Scott M." <[email protected]>!
You wrote on Tue, 9 Nov 2004 09:20:07 -0500:

SM> No, I don't think your interpretation of the thread is correct.

SM> Pascal, COBLOL & FORTRAN are not OO languages and no one is talking
SM> about "spaghetti code". We are also not really discussing the merits
SM> of structured vs. OO code either.

SM> I should point out that I don't think either of us disagree on the
SM> basic premise that there is a difference between efficient code and
SM> code that works.

SM> What we are talking about is if there is a need to understand the
SM> underlying runtime that actually processes the code written in a given
SM> .NET language. I admit that one does not *have* to understand this
SM> runtime in order to write code that *works*, but I strongly believe
SM> that one should learn how this runtime operates so that code can be
SM> written most efficiently.

SM> My take on what Cor is saying is that you don't need to worry about
SM> what goes on in the runtime, since the runtime is designed to optimize
SM> code anyway. I agree that the runtime *can* do this in *some* limited
SM> cases, but there are far more cases where the runtime will process your
SM> code in the least efficient way if you leave it to its own devices.

SM> -Scott

Well, both of your replies have reminded me of how old I am, and how long
ago it's been since I took Programming courses.. To me, (basically from the
way I was taught in college), what you were talking about was describing the
difference between efficient code and spaghetti code. But, you clarified
that for me, by saying it's in the runtime environment that you're
discussing. Although, I would say that they all tie together anyhow.
Because spaghetti code, no matter how well it works, won't be nearly as
efficient as good structured code (even if you know the CLR backwards and
forwards). But, that opinion could also be a product of how I was taught.

As for Cor's question, it was Pascal 5.5 I believe. The college I went to
taught us Structured programming with Pascal, and tried to show it to us as
Object Oriented Programming also. Showing us that the structured code, and
the Data Structures would bring about OOP to an extent. Please bear with
me, in that it's been 12 years since I had the class.. So, I could be
misinterpreting a memory.

How would this sound for you two to chew on for a while....lol You don't
have to know the CLR to create working code or even efficient code (to an
extent), but given the options you have, wouldn't you want to learn
EVERYTHING possible about the language and it's underlying connections (for
lack of a better phrase)? Being a newbie to Visual Basic, I would say that
Yes, I would want to learn everything I can about making a VB Program work..
Even the .NET Framework that it sits on (the CLR, as I take it is part of
that framework). Regardless of whether I actually NEED to learn it or not,
I would want to. Just in case;)

Patrick.

PS Thanks for the insight into this. I'm checking out the msdn site, and
I'll be looking for a couple of books on VB.NET. And, I'll make sure they
at least reference the framework in them. And, looking forward to my
classes.
Patrick Dickey. E-mail: pd1ckey43(removeThis)@msn.com
 
S

Scott M.

Hi Patrick,

I believe the whole topic of OO & structured programming is irrelevant to
this thread. I only mentioned it to correct you in that FORTRAN and COBOL
are not OO languages (it's been about 20 years since I took Pascal in
college, but I'm pretty sure that even newer versions of Pascal are still
not OO).

I really do think that Cor and I have stated our opinions on this pretty
clearly, so I don't see a point to continuing it but I did want to just make
one last comment on your last comment about looking for a VB.NET book....

I would recommend "Programming Visual Basic .NET" by Francesco Balena
(published by MS Press). I use it in the courses I teach and have found it
to be well written, clearly understandable and covers a wide range of
topics. I think you will find that no matter what book you look at, not
only will it include the .NET Framework, but that topic will probably be
covered early on in the book (for reasons I have stated in other posts in
this thread).

Good luck to you.

-Scott
 
P

Patrick Dickey

Hello, "Scott M." <[email protected]>!
You wrote on Tue, 9 Nov 2004 22:16:25 -0500:


[Sorry, skipped]
SM> I would recommend "Programming Visual Basic .NET" by Francesco Balena
SM> (published by MS Press). I use it in the courses I teach and have
SM> found it to be well written, clearly understandable and covers a wide
SM> range of topics. I think you will find that no matter what book you
SM> look at, not only will it include the .NET Framework, but that topic
SM> will probably be covered early on in the book (for reasons I have
SM> stated in other posts in this thread).

SM> Good luck to you.

SM> -Scott


Thanks for the suggestion Scott. Out of curiousity, what do you think of
"Microsoft Visual Basic.NET Step By Step" By Michael Halvorson? I got an
appended version (the first 4 chapters) with a copy of Visual Basic.NET
Version 2003, that I got for viewing three aspnet webcasts. The software
and book were free.

Patrick Dickey. E-mail: pd1ckey43(removeThis)@msn.com
 
S

Scott M.

My impression of the Step By Step series is that they give you a way to hit
the ground running, but lack the in-depth details that tell you what exactly
you are doing.
 
C

Cor Ligthert

Patrick,

I do not know about this book, however I agree with Scott about the Step by
Step books, they are in my opinion completely against what Scott definitely
and I as well however not so definitely have writen.

Cor
 
P

Patrick Dickey

Hello, "Scott M." <[email protected]>!
You wrote on Wed, 10 Nov 2004 23:25:20 -0500:

SM> ??>> Hello, "Scott M." <[email protected]>!
??>> You wrote on Tue, 9 Nov 2004 22:16:25 -0500:
??>>
??>> [Sorry, skipped]
SM>>> I would recommend "Programming Visual Basic .NET" by Francesco Balena
SM>>> (published by MS Press). I use it in the courses I teach and have
SM>>> found it to be well written, clearly understandable and covers a wide
SM>>> range of topics. I think you will find that no matter what book you
SM>>> look at, not only will it include the .NET Framework, but that topic
SM>>> will probably be covered early on in the book (for reasons I have
SM>>> stated in other posts in this thread).
??>>
SM>>> Good luck to you.
??>>
SM>>> -Scott
??>>
??>> Thanks for the suggestion Scott. Out of curiousity, what do you think
??>> of "Microsoft Visual Basic.NET Step By Step" By Michael Halvorson? I
??>> got an appended version (the first 4 chapters) with a copy of Visual
??>> Basic.NET Version 2003, that I got for viewing three aspnet webcasts.
??>> The software and book were free.
??>>
??>> Patrick Dickey. E-mail: pd1ckey43(removeThis)@msn.com
??>> ---
??>> Smile.. Someone out there cares deeply for you...
??>>

Thanks for the info.. I'll check out the books that you recommended then.
And, I won't waste my money on the Step By Step book.

One thing I noticed last night, and this is just my opinion from what I've
learned and used in the past, but after watching a webcast from 8-26-03
about the Architecture of VB.NET and the CLR, it seems like it's going in
the direction of the COBOL setup I used in college. When we created our
programs (We were on a VMS/CSM mainframe), we would compile them into
Intermediate Language, and in order to run them, we had to use "JCL" (Job
Control Language) which did the final compilation and execution. To me, it
seems like we're doing that again.. The only difference is, that we don't
have to manually type in the JCL commands.. The JIT compiler and CLR do that
for us.

As I said, this is my opinion based on how it was explained in the webcast.
Patrick Dickey. E-mail: pd1ckey43(removeThis)@msn.com
 
S

Scott M.

In that sense, yes the CLR and JCL serve the same purpose. But, the CLR
does so much more that just translate from IL to native machine code. It
handles memory management, security, the Common Language Specification (that
all .NET languages must adhere to), not to mention that your managed code
actually runs here.
 
P

Patrick Dickey

Hello, "Scott M." <[email protected]>!
:

Awesome. That means it's getting somewhat into a realm I'm familiar with. Now, I'll have to find books on running the CLR too. And, I agree with you more than I would with Cor's opinion. Just because after having programmed in JCL, I can see the importance of keeping it in mind when you're creating your program in the Language. COBOL didn't play nice at all with the JCL if you didn't code with that in mind.

Of course, I'll start out learning VB with the information on the CLR coming from those books.. And, when I have a handle on it (see my other thread in the controls NG), I'll start learning the CLR, and see if there are ways to manually run/code in it.

Thanks for the information.
Patrick.
Patrick Dickey. E-mail: pd1ckey43(removeThis)@msn.com
 
C

Cor Ligthert

Patrick,

You should not call it my opinion. I have not said that learning the CLR is not right. I have said that it is not a starting point for learning. I told that the starting point for me was somewhere where you start to build programs.

And that can be seen the same as with JCL. However JCL is not the same as a CLR.

JCL has not directly to do with Cobol by the way, however with the operatings systems from IBM that use that. The JCL can be seen as the compilation from the different builds which can be in made in any program language (and externals and the assigning of resources). Absolute not as something as a CLR it has not to do with it.

In other operatings systems than IBM's can the executables in another way be build, linked or compiled and can be uses a runtimer or not use a runtimer.

This does not mean that I reopen the discussion with Scott about that starting point, I think that it is clear that about that we have slight different idea's

When you quote me, please do it well in this newsgroups?

Cor

Patrick Dickey" <pd1ckey43(removeThis)@msn.com>
...
Hello, "Scott M." <[email protected]>!
:

Awesome. That means it's getting somewhat into a realm I'm familiar with. Now, I'll have to find books on running the CLR too. And, I agree with you more than I would with Cor's opinion. Just because after having programmed in JCL, I can see the importance of keeping it in mind when you're creating your program in the Language. COBOL didn't play nice at all with the JCL if you didn't code with that in mind.

Of course, I'll start out learning VB with the information on the CLR coming from those books.. And, when I have a handle on it (see my other thread in the controls NG), I'll start learning the CLR, and see if there are ways to manually run/code in it.
 
A

abe

having read the threads, i am a vb/sql programmer (8 years), can you
recommend a good vb.net book. that talks bout vb.net/clr/framework.
etc....
thanks
:cool:
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top