Everything I Needed to Know About Programming I Learned from BASIC

Great post! You inspired me to dig up my old TI-83 BASIC days:
http://www.simsbox.net/2008/04/21/rapturedans-the-name-ti-83-basic-is-my-game/

A lot of the VB bashers are horribly unfamiliar with the language and seem to think somehow that it is still the same language as MS Basic (down to coding with line numbers).
Java might optically look a lot like C++, but effectively it is a lot closer to VB.Net or even VB6 (yeah yeah, inheritance and constructors are missing. But stillā€¦), even down to the way it is implemented (one class per module file, p-code compiler, references but no pointers, no way to kill objects yourself, etc).
My father always told me: there is no bad language, there are only bad programmers. Altough my sister begs to differ after learning RPG.

Great post. Iā€™ll recommend it to somebody I know will be interested in it too!

Hey Jeff,

Looks like most of the comments are in the ā€œ+1ā€ topic, so Iā€™ll not deviate:

I started my programming addiction with a Radio Shack TRS-80. Pretty dandy thing if you ask me!!
The programming manual that I could grab was an edition to teach Basic on teletype terminalsā€¦ Thatā€™s right: Typewriters with a wider toilet roll as a Screen :slight_smile:
That was all I needed to get my mind around the basics of programming: Decisions, Loops and Assignments.

Next stop was an Amstrad CPC6128 and that gave me more addiction.

After the Amstrad I entered Uni and stumble upon a Turbo Pascal Filedisk( or something ) Book that introduced me to Turbo Pascal 5.5 and the wonder world of OOP.

So what I have to say is simply that, yes, Basic was the foundation of my programming career but Iā€™m glad I had the opportunity to get into OOP in that early stage cuz if I would remain on a functional only language, I could get that hindering to my brain that the other guy was complaining about!!

What I perceive of this issue is that someone is complaining that someone that rode a horse chariot would be mentally challenged to learn how to drive a car, forgetting that, at the time the guy was born, the only thing available was a chariot. Itā€™s also true with us programmers: At the time we discovered the computers we only had Basic. But like most of you that prospered on the programming career it was a mean to a goal, so you have not been hindered by Basic!!

Just my 2 pence, with a bit of inflation :wink:

Cheers,
Gus

To Harry G: All paradigms have limits.

Howā€™s that for universal truth?

Oh my gosh I spent innumerable hours nerding about in BASIC on the Color Computer 3 and Tandy 1000 computers. I typed in or made my own games, screen savers, you name it. Then I got Turbo Pascal 4.0 or something. Finally I found a copy of Visual Studio 98 and learned C and C++ right before I started college. The last two definitely took a leap of faith out of the comfort of languages that didnā€™t require (or have!) things like pointers. Nowadays I canā€™t get enough of C# 3.0 and its embracing of functional programming idioms with lambdas and extension methods. Although those lambdas can really tie you into a knot if you arenā€™t careful ā€“ nest them at your own peril!

I still have both of the BASIC computer games books, as well as my old VIC-20. I moved on to PASCAL and FORTRAN soon after those days, and still have a working Amiga 500 that I played with as well.

Since the advent of the web I moved ahead to Perl, and now work primarily with PHP. Iā€™m of the opinion that programming is like speaking. It doesnā€™t matter which language you use, as long as youā€™re able to get the information through in the way in which you intended. Programming skills and the thought processes involved can be taught using any language.

My uncle was one of the people that actually created BASIC back in the 1960s. Carried a teletype machine around in his car and connected from peopleā€™s offices and homes using phone couplers (better wiki that, kids) to demonstrate how you could write programs from remote locations.

I actually took BASIC in high school, then Pascal for several years. But I didnā€™t touch a computer for 10 years after that until I realized I had to do something with my life and taught myself Java. Now I do .NET at work, Rails and Cocoa at home.

What I remember most about learning BASIC in 1982 or so was the teacher teaching us how to bend it into something resembling functional programming. Then Pascal came along and it was like a breath of fresh air. But if I were to teach kids programming today I would skip all of those and start with Smalltalk. Itā€™s not terribly ā€œusefulā€ in todayā€™s business world but itā€™s a wonderful way to learn programming.

I started programming from this book:
http://maben.homeip.net/static/S100/video%20genie/manuals_basic_manual.pdf

It was on a then ancient TRS-80 in my Grandmotherā€™s basement. I rode my bike for about 3km to get to her house just to program! From that, I typed in that lemonade stand program. Inspired by that program, created my own stock market emulator. (Minus the stochastic differential equations, because I was 9 years old.) Fun! That stock market program, stored on a cassette tape, was most likely taped over with C+C Music Factory recorded from MTV.

I even went on to create an almost finished version of Tetris on a Commodore 64 using BASIC.

http://www.shawnleslie.com/code/c64_TETRIS.html

Then Pascal, C++, COBOL, C, PHP, Java, etcā€¦

I started doing assembler on a 4k Univac. Yeah, four thousand bytes of octal. Then there was Fortran, Cobol, RPG, PL/I, 370 assembler, debugging native hex from unknown sources, and lots of other weird stuff. I donā€™t think any of it ruined me. What it taught me is most languages have some basic similarities: moving and comparing data, branching, and loops. I wrote lots of Basic on my first home machine, and I still dabble in it today.

The exact language you write isnā€™t half as important as the care you use writing it. The most important part, in my opinion, is leaving something maintainable for those who have to work on it later.

So please, people, no matter where you are in your career, write stuff thatā€™s straightforward and not obfuscated. Let your successors know what it does and what it was supposed to do. Youā€™re professionals and you should be proud of your work.

Great post. Brings back fond memories of my first experiences with programming (had a TRS-80). Judging by the comments, it seems that many of us came from the school of GOTO. I for one am not embarrassed by my BASIC heritage because despite its flaws, it was accessible in a way that Lisp, Fortran, etc. were not.

Even though I code in C++, C#, Java, etc, when I want to throw something up quickly for algorithm testing, I use Blitz Basic (Blitz + or Blitz3d, depending on the application), since you can get something up and running so quickly and not deal with projects, solutions, header files, resource files etc., of course I also am a long-time BASIC guy from the days of the vic-20, apple ][ and trash-80.

Ah, a nice trip down memory lane.

Thanks for the nostalgia, it gave me some great memories of hacking away in Basic on my Amstrad.

ā€œSince when is VB actually BASIC?ā€

Ever since they put ā€œBasicā€ in the name I guess. Itā€™s a lot more powerful than the BASICs of yesteryear, but itā€™s a flavour of BASIC all the same. If it was anything else, it would be called ā€œVisual [anything else]ā€.

http://en.wikipedia.org/wiki/Visual_Basic

I learned programming by doing twelve exercises in BASIC, then repeating the same exercises in Pascal. Oh the pain.

Then I was totally into Turbo Pascal and became a undergraduate graduate research assistant for the university I attended.

I have seen VB code which is total spaghetti at (unnamed original silicon valley instrumentation company) on their laser-interferometer software, which I had to straighten out for them so it would run the same way twice in a row. Simply horrible.

I have seen C/C++ code which is equally spaghetti with numerous unneeded threads which had to be thrown out because it was essentially incapable of being expanded or debugged.

The problem with Basic is that it allows people to get in far above their heads, as these electrical engineers did. But VB 6.0 could be used to develop relatively well-structured and sophisticated programs in a fairly rapid fashion - as I hopefully did on my last large project where I used VB 6.0 to develop the user interface, equipment object model and OPC interface to real-time components and hardware for a large LCD flat panel manufacturing equipment. The application would have taken twice as long to develop in any other language available at the time IMO.

I hated VB until I used it, and now think it is certainly a useful tool for certain parts of certain applications when done the proper way - as with all languages.

ā€œoldies (programmers who started in the 90ā€™s)ā€

Ouch. Then what am I, having started coding in '80 or so? On this (http://images.iocl.org/z80board.jpg) thingy, no less?

My first foray into programming was on a TI-83 Plus, building text games in BASIC. I also wrote an annuity calculating app and amortization table generator. I used them on my Algebra II final (with permission) and completed the final a full 30 minutes ahead of everyone else.

P.S. - Only one small quote in this post, youā€™re on the upup.

Of course everybody started with basic.

but the statemetne ā€œeverything i needed to know about programmingā€ + basic gives a bad perspective on outsourcing with regard to the needed qualifications for it!!!

YOu started with basic - as all of us did
You learned the basic things - as all of us did

Guess what ā€¦ LANCE ARMSTRANG started with a simple bikeā€¦

and learned EVERYTHING he needed to know about bikingā€¦

come onā€¦

I grew up learning Basic, in the UK here we had this programming magazine called Input. Last week I was testing my new scanner and thought I would try it with an old issue of this magazine.

http://www.flickr.com/photos/unmajestic/2380625785/

That is a page for a C64 V20 program. Just thought I would share the basic.