Advice for Beginners|
I get the same question over and over, "How do I get started in VB?"
This page provides a "cookbook" set of instructions and tips which should
provide the answer for this question! I'm also pretty proud of my
online tutorial, so give it a try as well.
Free Visual Basic
Certification (MCSD) Tips
Return to top of document
Free Copy of Visual Basic (almost)
The Learning Edition of Visual Basic 6 costs about $100. If that is too
much for your pocket book, then you might want to try out one of the following
books. Each of these books includes the "Working Model" of VB6. It's a
special edition of VB which installs on your PC and contains much, but
definitely not all, of the VB functionality.
In particular, there are no HELP files and you cannot create .EXE files for
distribution to users and friends. The program you write can be saved but
can only be run on systems which have VB6 installed.
Even with those limitations, it is still a good way to evaluate Visual
Basic. Since you get a book with the software, it definitely is a bargain since
each of the books costs about $30. You can go to my
VB Books page for more details about these
Learn to Program with Visual Basic 6
Using Visual Basic 6
Visual Basic 6 from Scratch
Visual Basic 6 for Dummies
Practical Visual Basic 6
Return to top of document
Okay, let's make VB proficiency a step-by-step process. The bottom line is
that you have to read, then practice what you read. Here's the guidelines
for what to read, and in which order.
- Step 1. The Microsoft Visual Basic 6.0 Programmer's Guide
It is an excellent manual and can be bought from Microsoft Press. Read
it front to back, and don't skip pages. Type in all the examples
and run them until you understand them. Save what you type in.
Keep a notebook of where you found the code examples. You will
likely use most of them over and over on future projects. Read it
a second and third time if you want to get maximum value from it. I've
read mine so often that there are more highlighted sections than there
are unmarked ones. If you can't talk yourself into reading the whole
thing, then consider these suggestions:
|Must Read||- Chapters 1-5|
|Should Read||- Chapters 6-8, 11-13|
|When The Need Arises||- Chapters 9, 10, 14-17|
- Step 2. Know Your Tools
Your tools are the VB language statements and the VB controls.
Imagine hiring a carpenter and when you hand him a hammer he says
"What's this for?". You owe it to yourself and your employer to know
what VB tools are available and how to use them. Reading the
manual is the start, but it is only a start. I've prepared
two summaries which show you the kind of studying that really help your
training. The first is a language summary
and the second is a control summary.
In the language summary I've summarize the VB statements according to
the type of task they can perform. For controls, I've identified
every single property, method and event. The key thing about the
summary is that you'll find out exactly what similarities there are
between tools, plus you'll see exactly how one tool differs from the
- Step 3. Sample Projects
Go through each of the samples that came with VB (in the samples
directory). Pay special attention to the procedures that are
provided in the samples. You will be able to re-use these in your
own project over and over. I also have provided several
that you might find useful. I provide annotated source
code for these sample applications to help your understand what
the code does and why I wrote it the way I did.
- Step 4. VB FAQs
Read the VB FAQs. Their information focusses on questions
which are asked over and over by VB users, particularly newbies.
Unfortunately there is no one single FAQ these days, nor are all of
them kept current. I have some older ones located
- Step 5. VB Knowledge Base
Once upon a time, Microsoft offered files with list of Questions
and Answers about VB. It was called the VB Knowledge Base. Now,
Microsoft has integrated the VB KB into its site-level Knowledge
Base and you can access it online at
The older files are still available at the Microsoft FTP site
and are worth reading all the way through (at least the titles).
The reason these articles are there is that VB users wanted to know
how to do things. You may not know what half of the articles
are good for right now. But when you run into the same limitations
as are addressed by the articles, you'll be glad you know what is
in the Knowledge Base. If you want to pare down the effort, take a
look at my list of Top VB KB Articles.
- Step 6. VB Help file
Go through the VB Help file, just like it was a manual. Pay close
attention to the examples. If you can, find a program which will
print out the HELP file (or at least portions of it, since the VB
help file is really huge!) to take with you when you won't be at a PC.
- Step 7. Books
Generally, I recommend learning VB from books. This allows you to
learn at your own pace and to go over difficult materials as often
as needed. I recommend classwork only after you've learned all you
can, or after you've reached a plateau and need an instructor to
help go to the next level. There are two books I normally recommend.
The Microsoft Visual Basic 6.0 Programmer's Guide is the first book
anyone should touch. It's essentially the manual for VB, but you do
have to pay extra to get it. It covers basic and advanced topics,
enough to guide you to an intermediate level of capability.
The second indispensable books is Appleman's VB Programmer's Guide
to the Windows API. All VB programmers will eventually get into
using API to do things that VB does not directly support. Appleman's
books is considered the bible in this area.
If you look these over but they're not what you want, be sure to
take a look at my VB book reviews.
I've provided a listing of over 350 VB books, including reviews
and Tables of Content, to help you in making a purchase decision.
- Step 8. VB Programmer's Journal
Subscribe to Visual Basic Programmer's Journal. It's the best
VB magazine available. It emphasizes more advanced topics, and
has a heavy Access database content. There's no better way to keep
track of what topics the VB community is following.
- Step 9. 3rd Party Catalogs
Read through catalogs
of VB 3rd party controls/DLLs to get a good overview of what
capabilities are available. This will give you insight as to
the limitations of VB by showing what features other people
thought were missing from VB.
- Step 10. 3rd Party Software
Download and evaluate as many as possible of the 3rd party shareware
tools located at the various archives. A simple approach is to
head over to the VBXtras
online catalog and for a look at a good selection of the best VB
Return to top of document
- Rule 1. Visual Basic is BASIC at its core.
Okay, so there are a lot of major differences between the two,
but when it comes to coding, if you know BASIC, QuickBasic or
QBASIC then you have an excellent foundation for succeeding with
Visual Basic. The event-driven model used by VB is new, as are many
of the VB concepts, but you will be using BASIC-like code to implement
the VB concepts. The point is is not to let VB take on an aura of
something strange and mysterious. It's not called Visual BASIC for
- Rule 2. You must code to get good at coding.
Cross-training is a myth. You can't get good at running by jumping,
and you can't get good at coding by reading. All the materials listed
in the Step-by-Step section are worthless unless you practice what you
have read. This means code, code, and more code!
- Rule 3. Memorization is your most productive tool.
I hate it when my kids say "Dad, I can't quote the exact answer but
I know where to look it up!". My personal philosophy is that as a
programmer I want to create my applications as quickly as possible.
When I have the syntax of VB commands memorized I can whip through an
application in record time. If I had to stop and look up the syntax in
the user's guide for every line of code I wrote, I'd more than triple
the time it takes to complete an application. The moral of this story
is that when you are reading the manuals, read with the intent to
remember exactly what you read, not just where it can be found!
The corollary to this rule is that you must learn to type
efficiently. I'm always amazed at my coworkers amazement at how
fast I type. For me, to think it is to have it typed already. The
value of this should be obvious. If you can't type efficiently you'll
not only slow down how fast you record your ideas, but you'll also
interrupt your creative process with the mundane task of watching
your fingers single-stroke an idea. Have you ever noticed how
distracting it is to listen to a slow speaker? Same idea applies to
- Rule 4. Time is your worst enemy.
In the early stage of your learning cycle, don't get off on a tangent
by looking into low-percentage learning tools (i.e., User Groups,
USENET, and other group activities). These tools are excellent for
getting an answer to a specific question, but do not provide as much
return on investment of your time as individual study and coding practice. You
shouldn't hesitate to seek help when a particular problem is
slowing you down, but group activities rarely provide value
to you except for a fraction of the time you're involved with the
Please note that as your skills develop, and after you have absorbed
much of the literature available to you, that group activites will take
on more importance. At that point, you will better understand where
your deficiencies lie, and can take better advantage of group activities.
- Rule 5. Start small.
Remember to start with small coding projects and work your way up to
more complex ones. The examples in the VB Programmer's Guide
(that came with VB) are very short and you should have little trouble
with them. Programming skills are additive and you will get more
frequent, positive feedback if you tackle many little projects
instead of a few large ones. You might try out my own
sample VB project
- Rule 6. If you don't have a big project, get one!
As soon as you're comfortable with the basic skills, then
start a big one of your own choosing. Until you have a personal
need for a capability of VB, reading about it is like hearing
about sex! You've got to do it to appreciate how great it is!
Big projects have a way of causing you to reach the limits of
Visual Basic in a way that little projects don't. It is often
the interaction of VB elements which gives a programmer difficulty,
and large projects provide more of this than small projects.
Notice that the intent is not just to have a program with many
lines of code, but to have a project that uses as many features
of VB as possible. Again, you might try out my own
sample VB project which
incorporates a wide variety of VB features.
- Rule 7. Use 3rd Party Tools.
This follows from Rule 2. Often, a 3rd party vendor puts hundreds,
or thousands of hours into his product. If he sells it to you for
under $100, it is an absolute bargain. As a paid programmer, your
job is to get the software completed as quickly as possible and at
the lowest cost. When you charge $40-$75 an hour, you are treating
your customer poorly if you spend hours recreating something that is
already available as a 3rd party tool for less money than you would
charge for your own efforts.
I don't recommend the use of 3rd party tools until after you have
mastered the basics of VB and have had the experience of trying to
create your own code to replicate a 3rd party tool. You'll appreciate
it more that way. I maintain a list
of software vendors at my site.
- Rule 8. Attend training classes wisely.
I have a strong opinion about classes. You don't get the most from a
class unless you have worked with the topic on your own before coming
to class. So, if you decide to take a class, then I recommend that
you wait until you have used VB enough that you have a mental list of
things you don't seem to understand. Then take a class and you'll get
more out of it. If you go in with no prior knowledge, you won't
appreciate what is significant or what is not.
Return to top of document
How can you show a prospective employer that you have the basic skills to
perform the job he has open? How do you know yourself whether you meet some
minimum skill set that will help get you a good paying job?
One answer is to get a Microsoft certification. There are various types of
certifications available (see the
Microsoft certification site).
The one I'll talk about here is known as the Microsoft Certified
Solutions Developer (MCSD) certification, which tests for basic skills in
fundamental programming areas.
Getting the certification does not necessarily mean that employers will come
runing to your door, nor does it mean that your current employer will give
you a raise in pay (only 20% of programmers say this happens). Like any
other professional position, the experience you bring to the job and the
applicability of that experience to your employer's needs are the primary
factors which affect your ability to get a job or to get ahead in the one
you have. But, all other factors being the same the MCSD certification can
make the difference in select of you over competition for assignments. Just
the fact that you showed the initiative to get the certification provides
an indication to your boss/prospective employer that you have skills which
go beyond just the mechanical ability to generate code.
So, if you're considering getting MCSD certification, then you might find
the following certification tips useful. Also, here's another set of
by James Foxall, author of MCSD in a Nutshell.
- Tip 1. Manage your study time
Most of us have only limited time to devote to issues in our lives. Preparing for the MCSD tests is no
different. Just like you would spend time to design your program before writing code, you will need to
spend time making a list (and schedule) of the topics you will need to study, estimating the time you will
take (or have available) to prepare, and using that schedule to determine if you are making sufficient
progress to take the test on the planned date. Use this structured approach to preparing and you will not
only get the daily feedback on your preparations but also you will gradually build the confidence that you
are ready for the test when the time comes.
- Tip 2. Study the specific test topics
This may sound self-evident, but remember that the purpose here is not to show that you know everything
about VB, but rather to show Microsoft that you understand the things they consider important. Take a
look at prior tests to understand what is likely to be on the test and focus on that. It's okay to disagree on
what's important in VB - but plan to study that later when you're not preparing for the MCSD test. The
Microsoft Certification Site
is a key place to visit for details and information on preparing for the test.
- Tip 3. Don't hesitate - take the test as soon as possible
The problem with my second tip is that the best way to know what is on the test is to take the test itself. By
taking the test ASAP, even though you might fail, you achieve several results. First, you find out what
topics are covered on the test. Second, you have a chance to get over the nervousness that often
accompanies the taking of a test such as this. Once you've been exposed to the test, the next time you take it
you will be more relaxed and most likely perform better. According to Lisa Mann at O'reilly, over 50% of
the programmers that take the test fail it the first time they take it. So, if you fail, don't sweat it. No one
knows it but you, no one really cares, most folks fail just like you did, and now you're better able to prepare
for the next one.
- Tip 4. Practice what you have studied
Like almost any information, it seems easier the more you use it. When you're doing your studying then
you should make an effort to use the techniques you're using. Test questions are not usually tricky, but are
geared to show that you understand the material. If you have practiced using the information that you've
learned - over and over - then the questions actually become trivial. I also find that test questions can only
go so deep - so the more that I have used the technique, and understand the details of the technique, the less
likely I can be tripped up by relatively superficial test questions. As a basketball player in high school
(okay, I was on the B squad!) I remember that my coach told me "If you can't do it in practice, then you
can't do it in the game!". This lesson directly applies to your strategy for preparing to pass the test.
- Tip 5. Develop an informed, thoughtful opinion
When you're learning information, don't stop at just being able to replicate what you've read, or at just
being able to apply it to your application. Some of the best study time you'll have is when you take the time
to examine the code/technique you're using and attempt to take it apart. Ask yourself questions about what
you know - do you know a lot about it, or just a few facts? Was the material you studied complete, or was
it missing information on some facet of the technique? How does the next information tie in with what you
already know? Does it replace or compete with what you already know? When should you use it and
when is it the wrong approach to solving a problem? When you think you could teach it to someone else,
then you've gotten a big step closer to full understanding.
- Tip 6. Teach someone else
Ask any teacher and they will tell you that you don't really know what you know until you have to teach it
to someone else. Reading gives you one level of knowledge and applying gives another. But neither
requires you to sort it out in your head like explaining to a student what the technique is, why it is
important, when to use it over other options, what the negatives are, and what it's strengths are. If you don't
have someone to teach, then a) simply go to the USENET groups and try to answer questions or b) get a
web site and advertise on it that you will answer questions for free - then stand by for the avalanche of
- Tip 7. Don't learn everything from one source
I am an avid Country Western dancer (after all, I am from Texas!). I've taken literally hundreds of lessons,
from over a dozen instructors. What I found was that one instructor was able to teach me some steps, but
didn't have the skills to teach others. Each instructor had his own viewpoint and by getting instruction from
them all I was able to develop a clear understanding of what I was learning - seeing it from many different
angles. The lesson applies directly to VB. Read from several books, read from the USENET, read the
available newsletters, read VB HELP, and listen to as many instructors as you can. It will pay off in a
significantly better understanding of the materials you need to know.
- Tip 8. Keep moving through the study topics
One mistake beginning programmers often make is to assume they have to completely understand one topic
before they can move on to the next. The problem with this is that you can get stuck and spend more time
on a topic than it deserves. Also, you will find that VB topics often tie together. You might not fully
understand a User Defined Type when you are exposed to the concept. If, instead of spending extra time
on the mechanics of creating a UDT, you move on to the topic of file I/O you will see that saving data as a
UDT array simplifies your code enormously. Understanding of the first topic sometimes comes from
reading a second - you sometimes have to keep moving in order to find the information you need to make
sense of what you have just read.
- Tip 9. Take the test carefully - follow a plan
This recommendation is not specific to MCSD - it applies to the taking of any kind of test.
Before you start answering the questions, take a few moments to go over the test - start to finish. Figure
out which parts you know the best and answer those parts first. Leave the harder questions for later - do
not spend excess time on any one question. Before you leave the room, go over every single question a last
time to make sure you haven't done something that you can easily correct (such as misreading the question,
marking the wrong answer, or having skipped a question). In order to do this, you may have to leave a
really hard question unanswered, but it's better to verify the majority of your test results than to waste time
on a question for which you really don't know the answer. Take every single minute of the test time that
you have - do not leave early. If you spent months getting ready for the test, you should plan to use up your
entire time - rereading every question over and again as time permits. Now is not the time to get anxious to
be done with the test!
- Tip 10. In the event of (temporary) failure
In my business we experience the problem of the "rock". Sometimes our upper management calls us and
tell us to go create a product but they are not quite sure what the product needs to look like. So, off we go
to build this "rock", as we call it. Way too often we show up with our "rock" and management says, "No,
that's not quite what I wanted, go build another one!" So, with not much more information that we had the
first time we go build a new version of the "rock". This iterative process is all too common in business, so
why should the MCSD test be any different? If you fail the test, after having faithfully followed my
guidelines above and then finding that the content of the test is not what you expected, then plan to fill in
the blanks by learning the missing material and simply take the test again. The MCSD is not intended to be
an emotional epiphany. It's just a milestone in getting accreditations that you hope will increase your
success in getting/keeping a good job. If you have to take the test again, then so be it. Just do it and get it