Windows users, do not settle for Visual Basic.
It will teach you bad habits, and it's not portable off Windows. Avoid.
This is what Eric Steven Raymond says in How to become a hacker;
I'm not so sure about the bad habits, I think this is a personal, case-by-case problem: I began learning to program in BASIC when I was 12 years old on a Commodore C-16 (so called home computer); I had no teachers nor books, just the C-16 manual, though I understood the importance and need of procedures and functions and of passing parameters (not so simple to achieve in that old BASIC).
Yet I still know dozens of programmers (graduated in informatics with years of experience) who still don't understand this! And rather than build up a procedure they copy-and-paste 2 or more times the same code..
This is only an example of the "bad habits" you may learn with a generic BASIC; others, more specific to Microsoft's product, I think are less important, and concern their GUI interface and the general environment forcing you to take steadily compromises and preventing from writing really portable code (but this is true even using VC++..)
Anyway, certainly M$'Visual Basic isn't portable off Windows, and it seems Windows has ever less chances to go on in the future, with Linux on the run after it.. so this is an excellent reason to avoid it; at least, don't waste time in learning VB.
What language should you learn (first)
Following ESR, HTML is a must: not only (and not so much) for the programming skills, but 'cause of its implication in today's cultural life: as says Drexler in chapter 14 of EOC , "society must learn to learn faster".
HTML will help "to spread, refine, and combine our information far faster than ever before".
There's no need to buy any book: everything you've got to know is on the World Wide Web Consortium' site.
I think the best language for learning to program is still Pascal: linear, clean, concise, well structured, sufficiently powerful, still (quite) useful in development (eg. see Delphi). The GNU Pascal compiler is here;
Another good starting point is Python. You will hear a lot of people
recommending Perl, it is indeed more popular than Python, but it's harder
to learn and (in my opinion) very bad designed (honestly I hate it).
You should try php, it's growing in importance, simply structured, perhaps less powerful than Python but more similar to other widespread languages, like java or C. This latter is really important, every large project is written in C, from opensource's Linux, GNU tools, Apache ..to M$' windows OSs and "accessories".
Finally, you should really know SQL..
The fundamental hacker's commandments
- Nobody should ever have to solve a problem twice
-
Boredom and drudgery are evil
-
Freedom is good
-
Attitude is no substitute for competence
-
Learn how to use the World Wide Web and write HTML
-
Get involved in the open-source software (write, test and debug it)
-
Publish useful information
-
Serve the hacker culture itself
(excerpted from ESR's How to become a hacker)