# Computer programming class question

**URL:** <https://boards.straightdope.com/t/computer-programming-class-question/69467>\
**Category:** In My Humble Opinion\
**Created:** [June 20, 2001, 2:10pm UTC](https://boards.straightdope.com/t/computer-programming-class-question/69467 "2001-06-20T14:10:48Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![missdavis102](https://avatars.discourse-cdn.com/v4/letter/m/7feea3/32.png) [@missdavis102](https://boards.straightdope.com/u/missdavis102)\
**Post date:** [June 20, 2001, 2:10pm UTC](https://boards.straightdope.com/t/computer-programming-class-question/69467/1 "2001-06-20T14:10:48Z")

</div>

I’m trying to schedule a computer science class to take in the fall, time permitting. The one I want to take, BASIC programming, is the prerequisite for lots of the more advanced programming courses and web development stuff, but it is only offered in one time slot and conflicts with a class I have to take as part of the nursing curriculum (also offered only one time slot). The next class in the sequence is Visual Basic programming. It would fit into my schedule, and I’ve had some exposure to Visual Basic in the past through work.

My question is: Could I skip the Basic for now and pick it up another semester, or is it vital to have a classroom understanding of basic first to master the visual basic?

If it’s not vital to have Basic first, I may push my advisor to let me schedule into the Visual Basic, since I’d planned to take it later anyway.

---

<div class="post-metadata">

**Author:** ![xizor](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/xizor/32/102_2.png) [@xizor](https://boards.straightdope.com/u/xizor)\
**Post date:** [June 20, 2001, 2:39pm UTC](https://boards.straightdope.com/t/computer-programming-class-question/69467/2 "2001-06-20T14:39:47Z")

</div>

the difference between Basic and Visual Basic is that Visual Basic hides all the details of the Basic programming language and you just build applications by connecting pre-programmed modules.

So the Visual Basic class will teach you how to use a Windows program, the Basic class will teach you a programming language.

---

<div class="post-metadata">

**Author:** ![Crusoe](https://avatars.discourse-cdn.com/v4/letter/c/49beb7/32.png) [@Crusoe](https://boards.straightdope.com/u/Crusoe)\
**Post date:** [June 20, 2001, 2:44pm UTC](https://boards.straightdope.com/t/computer-programming-class-question/69467/3 "2001-06-20T14:44:50Z")

</div>

What **xizor** (what the hell would that be worth at Scrabble, I wonder?) said.

I don’t have a programming background at all (mmm, social sciences) but I took an intensive intermediate-level week-long course into practical Visual Basic programming without any problems. As mentioned, VB works at a more ‘visual’ interface level: designing the appearance of program interfaces and adding underlying code for the events triggered by controls and actions. You’ll probably need BASIC as a prerequisite before studying other languages, but not yet.

---

<div class="post-metadata">

**Author:** ![unixrat](https://avatars.discourse-cdn.com/v4/letter/u/3ec8ea/32.png) [@unixrat](https://boards.straightdope.com/u/unixrat)\
**Post date:** [June 20, 2001, 3:40pm UTC](https://boards.straightdope.com/t/computer-programming-class-question/69467/4 "2001-06-20T15:40:54Z")

</div>

What mattk and xizor sez’d.

Think of it this way: Learning VB and learning BASIC is like learning how to repair a (random car) Ford Escort and learning how cars work and how to repair them.

Once you get out of the former’s course, you can fix a Ford Escort and maybe apply it to other cars, mostly Fords. Once you get out of the latter, you understand cars, how they are built, and how to fix them. You _could_ fix a Ford Escort, once you learn it’s particular quirks, but you could also fix a Jaguar or a Kia in the same vein.

That being said, once I fully ‘understood’ programming, I realized that BASIC is a fairly awful way to teach programming (at least it was, I haven’t seen the newer incarnations) since it tends to reward bad habits and discourage good ones.

---

<div class="post-metadata">

**Author:** ![Opengrave](https://avatars.discourse-cdn.com/v4/letter/o/919ad9/32.png) [@Opengrave](https://boards.straightdope.com/u/Opengrave)\
**Post date:** [June 20, 2001, 3:49pm UTC](https://boards.straightdope.com/t/computer-programming-class-question/69467/5 "2001-06-20T15:49:17Z")

</div>

I have never taken a programming course until last week when I took Visual Basic  
[http://www.learningtree.com/us/ilt/courses/304.htm](http://www.learningtree.com/us/ilt/courses/304.htm)  
and more detailed  
[http://www.learningtree.com/us/ilt/courses/304out.htm](http://www.learningtree.com/us/ilt/courses/304out.htm)

Prior to that the only BASIC I knew is what was self-taught back in the early 80’s and haven’t used it since. I had no problems learning VB. One major difference is that VB is more of an ‘event driven’ language while BASIC is more ‘procedural’. You probably won’t have any trouble with VB but before you go on to procedural languages like COBOL or FORTRAN you would probably do well to take a BASIC class.

NP: Amorphis – Am Universum

---

<div class="post-metadata">

**Author:** ![ultrafilter](https://avatars.discourse-cdn.com/v4/letter/u/3d9bf3/32.png) [@ultrafilter](https://boards.straightdope.com/u/ultrafilter)\
**Post date:** [June 20, 2001, 3:59pm UTC](https://boards.straightdope.com/t/computer-programming-class-question/69467/6 "2001-06-20T15:59:20Z")

</div>

What the others have said. While event-driven programming is definitely cool, it helps to have a good understanding of procedural programming beforehand.

That said, why the hell is anyone still teaching BASIC?

---

<div class="post-metadata">

**Author:** ![Running\_with\_Scissors](https://avatars.discourse-cdn.com/v4/letter/r/a183cd/32.png) [@Running\_with\_Scissors](https://boards.straightdope.com/u/Running_with_Scissors)\
**Post date:** [June 20, 2001, 4:01pm UTC](https://boards.straightdope.com/t/computer-programming-class-question/69467/7 "2001-06-20T16:01:06Z")

</div>

Ghod, are they _still_ teaching BASIC as an intro to programming? I learned BASIC as my first language and it took me **years** to unlearn the bad habits it introduced. Admittedly, BASIC is much more sophisticated now than it was when I learned it (early '80s), and I know that VB is one of the more popular languages, but still…

---

<div class="post-metadata">

**Author:** ![Mangetout](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/mangetout/32/19_2.png) [@Mangetout](https://boards.straightdope.com/u/Mangetout)\
**Post date:** [June 20, 2001, 4:12pm UTC](https://boards.straightdope.com/t/computer-programming-class-question/69467/8 "2001-06-20T16:12:09Z")

</div>

I learned to program on the Sinclair ZX81.

I’m now developing bespoke apps for a small company using VB and VBA.

Basic is generally frowned upon by professional programmers because it allows (some would say promotes) poor program design, in particular it allows you to prematurely break out of looped structures, which is considered sloppy and it allows linear programs to grow to mammoth proportions (whereas the ‘preferred’ model is to create small, reusable subroutines and call them as required)

Visual Basic goes a long way toward correcting this, it preserves the simplicity of the BASIC language(mostly anyway) but encourages the development of reusable code.

You can’t learn VB without BASIC (I mean that in learning VB, you will have learnt a fair deal of BASIC - the Syntax and command set at least, if not the structure)

---

<div class="post-metadata">

**Author:** ![missdavis102](https://avatars.discourse-cdn.com/v4/letter/m/7feea3/32.png) [@missdavis102](https://boards.straightdope.com/u/missdavis102)\
**Post date:** [June 20, 2001, 4:22pm UTC](https://boards.straightdope.com/t/computer-programming-class-question/69467/9 "2001-06-20T16:22:00Z")

</div>

Jeez, **Opengrave** , I hope whoever you work for paid for that class. The tuition is unbelievable.

Thanks to everyone for the responses so far. Based on your input, and that of a friend in web development, I will try to get into the VB course this fall. We worked with BASIC a little in HS way back in the late 80s/ early 90s, so I have some vague idea how it works. Maybe that will be enough background to pull me through.

Would a book help? Anyone care to make a DIY BASIC refresher suggestion?

---

<div class="post-metadata">

**Author:** ![missdavis102](https://avatars.discourse-cdn.com/v4/letter/m/7feea3/32.png) [@missdavis102](https://boards.straightdope.com/u/missdavis102)\
**Post date:** [June 20, 2001, 5:15pm UTC](https://boards.straightdope.com/t/computer-programming-class-question/69467/10 "2001-06-20T17:15:59Z")

</div>

Jeez, **Opengrave** , I hope whoever you work for paid for that class. The tuition is unbelievable.

Thanks to everyone for the responses so far. Based on your input, and that of a friend in web development, I will try to get into the VB course this fall. We worked with BASIC a little in HS way back in the late 80s/ early 90s, so I have some vague idea how it works. Maybe that will be enough background to pull me through.

Would a book help? Anyone care to make a DIY BASIC refresher suggestion?

---

<div class="post-metadata">

**Author:** ![saepiroth](https://avatars.discourse-cdn.com/v4/letter/s/b5ac83/32.png) [@saepiroth](https://boards.straightdope.com/u/saepiroth)\
**Post date:** [June 20, 2001, 5:33pm UTC](https://boards.straightdope.com/t/computer-programming-class-question/69467/11 "2001-06-20T17:33:40Z")

</div>

what bad habits are you referring to? i am planning on taking BASIC as a prerequisite in the fall, and i would like to know what to be careful about.

anything besides encouraging excessively large and unweildy program design?

---

<div class="post-metadata">

**Author:** ![Opengrave](https://avatars.discourse-cdn.com/v4/letter/o/919ad9/32.png) [@Opengrave](https://boards.straightdope.com/u/Opengrave)\
**Post date:** [June 20, 2001, 5:35pm UTC](https://boards.straightdope.com/t/computer-programming-class-question/69467/12 "2001-06-20T17:35:45Z")

</div>

Yeah, my employer paid for it. I get that in return for the salary I _should_ be earning. Next I get to do UNIX [http://www.learningtree.com/us/ilt/courses/336.htm](http://www.learningtree.com/us/ilt/courses/336.htm). After that my training days will pretty much be over. Good luck with finding a nice BASIC refresher.

---

<div class="post-metadata">

**Author:** ![Chronos](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/chronos/32/134_2.png) [@Chronos](https://boards.straightdope.com/u/Chronos)\
**Post date:** [June 20, 2001, 5:48pm UTC](https://boards.straightdope.com/t/computer-programming-class-question/69467/13 "2001-06-20T17:48:05Z")

</div>

If you want to learn to program, then VB is one of the worst languages you could learn. Do you have the option to take some other language entirely, rather than BASIC? C, for instance, is somewhat harder to learn than BASIC, but one you’ve learned C, you can pick up any programming language in a few days or a week (well, you might still need to refer to the books, but you could get by). C is also a much more practical language than BASIC in its own right, and it’ll prepare you especially well for Java, if you decide to go that route (Java is heavily based on C).

I’m biased a little towards C here, but a course in Fortran, say, or even Pascal, would probably be almost as helpful.

---

<div class="post-metadata">

**Author:** ![urban1](https://avatars.discourse-cdn.com/v4/letter/u/d07c76/32.png) [@urban1](https://boards.straightdope.com/u/urban1)\
**Post date:** [June 20, 2001, 11:56pm UTC](https://boards.straightdope.com/t/computer-programming-class-question/69467/14 "2001-06-20T23:56:49Z")

</div>

> [@](#):
>
> \*Originally posted by xizor \*  
> \*\*the difference between Basic and Visual Basic is that Visual Basic hides all the details of the Basic programming language and you just build applications by connecting pre-programmed modules.
> 
> So the Visual Basic class will teach you how to use a Windows program, the Basic class will teach you a programming language. \*\*

I suppose you could use Visual Basic that way, **xizor** , but all of the applications I have written have HEAVY basic code behind them. You couldn’t do much with just the builtin stuff.

---

<div class="post-metadata">

**Author:** ![urban1](https://avatars.discourse-cdn.com/v4/letter/u/d07c76/32.png) [@urban1](https://boards.straightdope.com/u/urban1)\
**Post date:** [June 21, 2001, 12:00am UTC](https://boards.straightdope.com/t/computer-programming-class-question/69467/15 "2001-06-21T00:00:36Z")

</div>

> [@](#):
>
> \*Originally posted by Chronos \*  
> \*\*If you want to learn to program, then VB is one of the worst languages you could learn. Do you have the option to take some other language entirely, rather than BASIC? C, for instance, is somewhat harder to learn than BASIC, but one you’ve learned C, you can pick up any programming language in a few days or a week (well, you might still need to refer to the books, but you could get by). C is also a much more practical language than BASIC in its own right, and it’ll prepare you especially well for Java, if you decide to go that route (Java is heavily based on C).
> 
> I’m biased a little towards C here, but a course in Fortran, say, or even Pascal, would probably be almost as helpful. \*\*

There’s about 3.3 million developers out there who would disagree with you about VB, Chronos.

---

<div class="post-metadata">

**Author:** ![Chronos](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/chronos/32/134_2.png) [@Chronos](https://boards.straightdope.com/u/Chronos)\
**Post date:** [June 21, 2001, 1:03am UTC](https://boards.straightdope.com/t/computer-programming-class-question/69467/16 "2001-06-21T01:03:42Z")

</div>

Allow me to clarify: I don’t think that VB is a bad language to use, depending on what you’re using it for. For many purposes, it’s the best tool for the job. I just don’t think that it’s a very good language to learn on. It’s sort of like manual and automatic transmissions on cars: A person who learns to drive an automatic will have a hard time driving a stick, but a person who learned on a stick will pick up automatic in no time.

Learn on a non-visual language first, and then go on to the visual version, if you want.

---

<div class="post-metadata">

**Author:** ![Cerowyn](https://avatars.discourse-cdn.com/v4/letter/c/82dd89/32.png) [@Cerowyn](https://boards.straightdope.com/u/Cerowyn)\
**Post date:** [June 21, 2001, 1:33am UTC](https://boards.straightdope.com/t/computer-programming-class-question/69467/17 "2001-06-21T01:33:01Z")

</div>

> [@](#):
>
> \*Originally posted by urban1 \*  
> \*\*There’s about 3.3 million developers out there who would disagree with you about VB, Chronos. \*\*

Although **Chronos** has already clarified his position, let me jump in here briefly, too. VisualBasic is a great language to learn if you are interested in almost guarenteeing yourself a job in the next few years. I’m continually amazed at the number of jobs that seem to require only VB. At my last position (I’m unemployed until tomorrow :)), I had several developers who knew _only_ VisualBasic working for me. They were able to contribute in quite significant and useful ways to a very complex project.

HOWEVER, and I think this is **Chronos’** point, it is not a good language to start with if you have an ambition of being a career, professional programmer. Like a lot of Microsoft products, it tends to emphasize the pragmatic approach to accomplishing things, over the theoritical or “right” way.

There’s no question that VB is one of the technologies du jour for web development, and therefore, if that’s the limit of your goals, a worthwhile choice.

---

<div class="post-metadata">

**Author:** ![ultrafilter](https://avatars.discourse-cdn.com/v4/letter/u/3d9bf3/32.png) [@ultrafilter](https://boards.straightdope.com/u/ultrafilter)\
**Post date:** [June 21, 2001, 5:02am UTC](https://boards.straightdope.com/t/computer-programming-class-question/69467/18 "2001-06-21T05:02:07Z")

</div>

I’ll have to agree with **Chronos** and **Cerowyn** on this one.

My main objection to teaching VB as a first language is that a lot of features common to other languages simply don’t exist in VB. If for some reason you were to try to pick up an object-oriented language (say C++) later on, you would have a great deal to learn about things like inheritance, polymorphism, and dynamic memory allocation. But if you were to learn C++ (and all these things first), then other languages would seem much simpler by comparison.

The main problem I have with VB is that it allows variables to change type during the course of the program (e.g., what you thought was a number is now the word “peg”). This adds an undesired level of complexity to error-checking.

There is definitely some merit to learning VB. It’s great for kicking out GUI-based applications quickly. But like **Cerowyn** said, it’s not necessarily the best for serious programmers.

---

<div class="post-metadata">

**Author:** ![DougC](https://avatars.discourse-cdn.com/v4/letter/d/7feea3/32.png) [@DougC](https://boards.straightdope.com/u/DougC)\
**Post date:** [June 21, 2001, 9:59am UTC](https://boards.straightdope.com/t/computer-programming-class-question/69467/19 "2001-06-21T09:59:21Z")

</div>

- 
  - 
    - Most smaller colleges and high schools in my area (midwest US) require a course in MS Basic (QBasic 4.5 or 7.1(?)), and it is a prerequisite for all other CIS courses, as well as many other non-CIS-related degrees and certificates.

- It does help to know qBASIC before trying Visual Basic. Either is fairly easy to understand, because at the beginner level the commands are usually the real-world words you’d use to describe what the command does anyway. In a starter QBasic course you only write little command-line DOS window programs, very simple and short stuff. Visual Basic includes buttons, forms, textboxes and all the other things you see in a typical office computer program; things that are too complex and time-consuming to write in QBasic. So taking Visual Basic and then taking Qbasic is taking a step backward, but if you pass the Visual Basic, the QBasic won’t be a problem.
- Large bookstores usually carry a couple different books on QBasic programming, just because it is so commonly used as in intoductory language.
- QBasic itself isn’t sold anymore. It used to be available for D/L on the MS website but no longer. Downloading it off the internet is illegal, but it’s out there. You want qBASIC 4.5 or qBASIC 7.1, _not_ QuickBasic 1.1. All are small programs, when zipped IIRC all three will fit on a single floppy disk. You can download it off the net, buy your own book and in a couple weeks get enough of an idea to get by, just be sure to get a _beginner’s_ instructional book, not a comprehensive reference. \*A compehensive reference on qBASIC 7.1 is _not_ a small book.
- There are “other” basics, but they aren’t the same and they are rarely free. If you know nothing about it, you need the language the book refers to and that is usually Microsoft qBASIC 4.5 (most often) or 7.1. [the difference between 4.5 and 7.1 are advanced features that a beginner’s course likely won’t address] Find one of those, don’t bother with other versions. Due to board policy, nobody here can agree to mail it to you if you can’t otherwise find it. -But let us know, just the same. 😉 - MC

---

<div class="post-metadata">

**Author:** ![bump](https://avatars.discourse-cdn.com/v4/letter/b/7c8e57/32.png) [@bump](https://boards.straightdope.com/u/bump)\
**Post date:** [June 21, 2001, 12:57pm UTC](https://boards.straightdope.com/t/computer-programming-class-question/69467/20 "2001-06-21T12:57:01Z")

</div>

> [@](#):
>
> \*Originally posted by missdavis102 \*  
> \*\*  
> My question is: Could I skip the Basic for now and pick it up another semester, or is it vital to have a classroom understanding of basic first to master the visual basic?  
> \*\*

If you can, take PASCAL instead of either language. BASIC is somewhat antiquated, and many of the other posters are right that VB is probably not a good first language to learn because it’s prone to shortcuts & other quick-fixes, as well as not being particularly aimed at learning environments.

On the other hand, PASCAL was expressly created as a teaching language for procedural programming concepts. I believe most major university CS programs require PASCAL as the introductory programming language. I know mine did- I got a BS in computer science and never saw a line of BASIC or VB code.

[Next page](https://boards.straightdope.com/t/computer-programming-class-question/69467.md?page=2)
