When I started, in 1967, you needed (1) logical skills to see what was needed to solve a problem, what could go wrong that had to be checked for, and (2) some ability to communicate in memo or report form how you coming along, what obstacles you needed help overcoming, and a REALISTIC assessment of when you thought you'd be done testing out you program to be sure it did everything correctly. Then there was documenting by comments within the program so after you moved on someoneelsde could make sense of what you had done quickly and easily. Then there was documenting in the formal sense to the company's standards with its forms or format. (3) Any programming language is very exacting, so good memory for rules and the "grammar" of the language speed programming enormously. (4) Unless you are doing statistical or scientific programming, the math involved is all arithmetic, but a good sense of accuracy is essential, to know if you have the decimal point in the wrong place, have lopped off the leading "most significant" part of the number or not given enough field size to accommodate every possible result the program could produce given possibly erroreous data entry. Knowing accounting principals is important in many kinds of financial programs.
Styles change every few years. Team programming is facilitated by some of the conceptually difficult features of C++ and Java. As far as I know C++ is the most common programming language, but you could begin with a first course in the subset language "C". Java is too rich in options and, as far as I know, still too poorly documented to be very easy to master. I'd start with C, move up to C++, and also get in as much as you can on database languages and different main brands of databases, because getting data in and out of databases is pretty fundamental. SQL would be a popular language of database programming to start with, but it has a Microsoft form and competing, somewhat different other forms and not just one standard for what the language is. Acess would be an equally useful starting point for leaning database programming.
For Internet development, you HAVE to learn HTML, which isn't really a language but a layout ("formatting"

language. The newer Dynamic HTML or DHTML gives more flexibility. There are bunches of HTML generators, but you still have to able to go into the generated code, understand it, and adjust it to do exactly what was wanted. Javascript is a popular "helper" to do a lot of things that HTML by itself can't do, special graphics (image, or picture) effects and manipulating and validating user input and other things, and sometimes passing data down the pipeline to the program that gets data from or puts it into the database. XML refers to a broader set of capabilities that will eventaualy probably replace HTML, but start with the simple one, HTML, first I'd say, then build up in level of complexity and capability.
This is all PC programming stuff. In a few years, we may be really more programming gadgets to interact with Internet communicated commands, or PALM pilots with much smaller memories and their own languages and operating systems (which one will dominate is still not clear). As you start off, know that the field is getting ever more complex and fragmented, so you have to choode which arena you are interested in. One of the really interesting developments in telecunications that will affect Internet programming is the ability to send sounds, more and more share of images as opposed to straight text, speech recognition systems, and inputting via writing with a stylus or the like instead of typing everything in "keyboarding"

.
Two habits to cultivate: (1) write "tight" code, usingas few instructions as possibl to get the entire job done correctly, to be ready for trhe demands of baby memories and operating systems built into wireless (cell) phones and other gadgets and (2) really think about how you display anything to the user so the average person can understand how to use the tool, enjoy playing with it, and not be confused by either highly tecgnical error messages or a poorly designed user interface that does does not guide the user through the menu of choices and make clear somehow (often through "Help" screens, what is legal and what is not in terms of what the program will accept. For example, if a password has to have a certain minimum length or contain both lettersand numbers, display that information so people do not become frustrated using what you set up for them.
Besides C++, a very popular and very differently structured language is Visual Basic. I'd personally rather have the full range of capabilities and choices more under my contol than having to do it Visual Basic's way, but it might be easier to learn, can do many things, and is an alternative to beginning with "C" and moving up to C++. Eventually, your job flexibility will be greater if you canprogram in both C++ and "VB" as is often shortened to.
I'd say, start with learning the basics of what a computer, and typically right now a PC, can do, what its major components are, how your program is going to be managed by an operating system, the flavors of modems, CD-ROMs, etc. Microsoft operating systems (Windows, whatever versionr) dominate the industry, but in 3 or 5 years no one really knows if that will still be true. But it would not be smart for job placement to learn a less popular system, like the Apple Computers line, as the first point of enrty into the profession. One thing you can bank on is that whatebver you learn now will be changing to something else as you go along, and rigt now the pace of new harware "gizmos" and technologies is moving much faster than in the past. "Pax Microsoft" might not last, but it is the market of today and no one successor has clearly emerged in terms of market share. So start with the industry biggies, but know that you can completely count on change, not stability, over the coming years.
I assume you use a browser, Internet Explorer or Netscape usually or AOL's custom variations. You can get surprisingly good jobs just knowing that plus Microst WORD, EXCEL spreadsheeting, PowerPoint presentations and graphics capabilities, and maybe a little Access database building and massage and extractring. The Microsoft Suite programs just mentioned talk to each other and are an industry standard at this moment in time.
Career wise, repairing and troubleshooting computers has probably a bigger number of entry level job opportunities than programming them, especially if the US economy keeps going down, so don't just think programming is the only option. Afteer several years of experience, it doesn't pay $100K, but 60K or more as the lead or supervisory person is realistic (usually a male dominated side, whereas there's more opportunity for women on the programming side). Also, broken computers get repaired where they are or nearby, but programming jobs are moving out to countries with good technology training and lower wages, especially India. An economic downturn will increase the exporting of software development. Also, being in the employ of a company that sells something or another through the intenet ansd maybe also stores, or a big company that communicates with itself via the Internet or a company Intrnet is much less risky than joining a web company, especially one that is not well known and publicly traded alwady.
The economic downturn is making for a lot of layoffs of already skilled people, so its tough to break in with that k8nd of competition. Think of an industry that is profitable, for example health care, and research what kinds of skills you need to become useful in it or some segment of it, then go get those skills.
Hope some of the above helps. One last bit of advice. A college degree, including an Associates from a fully accredited college or university, will represent you better all through your career than equal skills learned at an "Institute" or whatever, and these days most offer evening and or weekend courses. You will also have a better library to draw on and maybe borrowing privileges through "Interlibrary loan" from other colleges or unirsities. Regular semester courses that give you the time to develop one skill before moving on to he next, plus the availability of an instructorand classmates you can exchange e-mail and phone numbers with are otheradvantages. The worst way if you have no familiarity with computers would be a "distance learning" course where you can get confused on your own without the support of thiose class hours, listening to other students' questions, etc. Down the road, when you've already got some skills, distance learbing is a musch more attractive option than in the foundational phase, I believe.