Since Drinky is being helpful and informative I'm going to throw this out here.
I'm about to start looking for a new programming job and was hoping for a little advice on what I should be looking for and how I should go about it. I have ~4 years of experience. 8 months as a co-op at an engineering firm which led to a full year as a contract programmer there. Then, after finishing school, I was hired at my present job as the lead/only programmer on a decent sized project at a small company.
The job at the engineering firm was developing small applications around Access databases. I either created or rewrote the main apps they used in the department. One massaged flight/repair data from airlines into the upload format our mainframe used, one imported data from the mainframe and gave engineers an easy format to look at, code, and analyze records (paredos, specific ways to filter data sets, etc), and the last was a reporting tool that took a bunch of different data sets and created fairly complicated reports that were sent out to airlines/manufacturers.
At my current job the application I handle keeps track of the training that goes on in a bank. It's a web app (IIS/.Net-VB/SQL) on its second iteration. The first was what I was hired for. The company had a large customer that had requested this system and had given them a timeline of 3 months to create it. I was given a prototype created in Word by one of the owners (and no customer access) and set to work. This initial version slipped a little and was actually released about a month past schedule and changes were asked for / implemented up until the 9 month mark at which point the customer's requirements had changed so the initial design didn't really work anymore (courses were assigned to users through learning plans and group learning plans were set up based on certain user criteria like title/branch/department - what they actually wanted after using it was group level assignment of learning plans but the ability to modify these assigned learning plans on a user level) so I went back to the drawing board and while I was at it redid the core classes that I'd had to use to launch on time that had been written by one of the other two programmers there. Things like classes that interacted with active directory, the registry, our encryption class, etc. As well as rewriting our stupid / obtuse security system and adding important features like an application log that tracks all changes within the system. I moved from there to helping out with the redesign of our main product while continuing to support/install/update/do customer support for my product.
That was really wordy. The point is while I may be fairly skilled and have done a good job for my employers I'm seriously lacking experience in some important areas. All my professional work has been done with one of the least complicated programming languages, solo, and pretty much without software engineering practices (testing, what?). It's almost embarrassing. Here is what I'd like to do. First, I need to move away from Tennessee with this job change. Charlotte, NC seems the most likely place since my brother lives there and it's a decent SE US tech center. Second, I absolutely need to work as the member of a good, professional development team and get beyond the small measures we've managed to implement at my current job (simple, necessary things like using source control). Third, I need to move to a more complicated language like C++ before I completely lose all skill as a programmer. And as a nice but not necessary goal, I'd like to work closely with databases (on the development side). I love SQL, PL/SQL and database design. What do you suggest I start to look for and how? If I can swing some contract programming jobs and move in with my brother for a short time would that be the most effective way to get this change done or should I just do my best to get my cover letter / resume in at the places I want to work at and try to use the college nearby to get some actual personal contact in with potential employers? Unfortunately, I don't have any real contacts at this point.