Though I've been learning a few types of programming in my spare time (the Internet did not exist when I was in high school, and the 2nd consumer-oriented personal computer was available from Radio Shack several years after I graduated high school)...I do not work in the field (yet).
I've used this site to get an idea of current jobs:
http://seeker.dice.com/jobsearch/genthree/index.jsp
I find job descriptions in the computer industry to be *horrendous*...with few exceptions, they generally use a bunch of meaningless fluff propaganda-type phrases with little to no description of what the position actually requires you to do. The only thing I find searches like this useful for is to see what people are requiring for education and experience. Almost no adds describe true "entry-level" positions, I think they fill those mostly through direct college recruitment.
By the way, you generally need a Bachelor's Degree in Computer Science or Engineering for anything worthwhile.
But it's hard to say what small businesses require. Sure, some may only require familiarity with specific software, like Microsoft Access and Excel, if they don't require true programming.
Here are some general job types (just a few, mind you):
* Computer Engineer (designing computers and "firmware" -- instructions that reside in chips directly on the hardware)
* Software Programmer (self-explanatory)
* Web Programming (programming the "back ends" of websites, such as interactive pages and shopping-cart systems, and many other possibilities -- depending on your position, need to know HTML and CSS for webpages, several programming languages and scripting languages, database management/programming)
* Video Game Programming (self-explanatory)
* Website Design (graphical mockup and HTML/CSS actual design of websites)
* Graphic Design (graphical mockup of websites, designing logos, backgrounds, and other graphics for websites, knowlege of graphical advertising and good use of text/fonts)
* Systems Administrator (day-to-day maintenance and supervision of computer systems and users)
* Network Administrator (maintenance and supervision of network hardware and systems)
* Network Design (planning, design, and physical setup of network hardware and systems)
Examples of technologies/languages popular in the Web Programming field (I'm sure I missed some popular ones):
* Proprietary Stuff:
- Oracle (Relational Database Management System)
- MS-SQL (Microsoft's Relational Database Managment System using SQL, "Structured Query Language")
- VisualBasic (Microsoft's rip-off of basic, some components will cause problems with any browser but IE, like not being able to see any buttons -- I had this problem a while ago viewing Yahoo! with Firefox, and I assume it was VB)
- .NET (a Microsoft Internet technology)
- ASP (Microsoft scripting language)
- IIS ("Internet Information Services", Microsoft webserver)
** Non-proprietary technologies:
- MySQL (open-source Relational Database Management System using SQL)
- Apache (open-source webserver and the most popular in the world, powering 70% of the world's websites)
- PHP (the powerful, most popular open-source scripting language on the Web)
- Perl (another hugely popular, powerful open-source scripting language)
- C (programming language)
- C++ (programming language)
- JavaScript (scripting language that requires no installation or webserver because ability to parse it is built into all modern browsers)
- HTML ("HyperText Markup Language", the main language for web pages)
- CSS ("Cascading Style Sheets", to keep style seperate from content, making it easier to maintain and to follow accessibility standards...all it is is pairing one or more "selectors" to specify what part to the web page you want to style with a "declaration" holding the styles you want to apply in a set of curly braces...a style sheet is a list of selectors and corresponding declarations, that's all...can't even call it a language)
- XML ("eXtensible Markup Language", far more complicated than HTML because it allows you, actually requires you to define your own tags or use someone else's "Document Type Definition" or "Schema" -- 2 different things -- then it needs to be styled somehow for the browser, because this is not built in...it is meant to be used with any device your little heart desires, including web browsers, and support is not complete in many browsers, especially for "Doctype Switching")
- XSLT (a stylesheet language for use with XML, usually you need to use this to "loop" through which elements you want to display, to convert the output to HTML, even if you plan to use CSS already)