Sorry if any of these suggestions are repeats... it's late and I'm too tired to read through all these comments.
I've known a few people who have had this problem as well, so, first of all, I hope you don't feel like you're alone in this. Breaking into that first job seems to be a pretty common problem for programmers.
My advice is to do one of the following:
1. Apply with companies that are willing to hire programmers fresh out of college. These are few and far between, but there are some out there.
2. Find a job (or internship) at a company with a small IT/software development department, and work hard to prove yourself. On a small enough team, you will rise quickly.
3. Get involved in some projects. I noticed some other replies mentioned open source projects; I can't speak to this personally, since I've never been involved with one, but I guess every bit helps. Also, if you're confident in your abilities, bid on some jobs from websites like Rent A Coder and Elance, and work on them in your spare time. Make sure this is all listed on your resume.
For my part, I was fairly successful with suggestion #2. I landed a position with a small software department (about 15 people) a few months out of college as an analyst (job duties included defect analysis, level 2 support, and writing user docs). I ended up playing a key roll on a few projects, and was eventually promoted to software developer within a year. The company I work for now (based in Troy, MI) actually hires quite a few people out of college, although I was offered my specific job because of my skills and experience.
Some other things you should be doing:
1. Make sure you have an up-to-date, well-organized, professional-looking resume.
2. Make sure your resume is posted on sites like Monster, CareerBuilder, and Dice (especially Dice!). If you know your current company's HR department uses these websites, you may want to make it private and apply for jobs individually. Otherwise, make the resume public, and update it often to keep it near the top of search results.
3. Network with people in the IT/techonlogy industry. Posting on forums is one great way to do this. Also, If you don't have one already, I highly recommend signing up on a website called LinkedIn; it's a social networking site aimed at business professionals and job-seekers. It is a great way to meet people in your industry.
4. Keep your skills up to date! Sign up for free newsletters and magazines. Find online articles and tutorials. Get books related to specific development platforms or languages you're interested in (popular publishers include O'Reilly, Wrox, and Microsoft Press). Build applications in your spare time. Do whatever you can do get exposure to what interests you.
As my old boss once told me, you should "know a lot about something and a little about everything". Get exposed to as much as you can, but try to focus on one or two key technologies or areas. People generally focus on one specific development platform, like Java,.NET, or LAMP. My first job gained me some exposure to Delphi and ASP classic, but it was my.NET and SQL Server skills that had the job offers coming in once I started looking. Again, make sure all of your skills are listed on your resume.
(On a sidenote: If.NET is your preferred platform, I suggest learning both C# and VB to a decent level of understanding. From the job postings I've seen in the past, their usage seems to be split pretty evenly. Most recruiters or HR people are comparing your skills with a list they were given; they won't know how similar they are or how easily it is to move from one to the other.)
I hope these suggestions were helpful. Keep in mind that sometimes we have to work jobs that we don't consider to be the "ideal job", but that doesn't mean we have to stop looking. Stay positive, and you will eventually find what you're looking for. Good luck!
Violent? Yes. Torture? Hardly. Law enforcement personnel use these weapons as a means of subduing potentially dangerous criminals. They're not strapping people down and prodding them. It is unfortunate that some people die as a result, but they really shouldn't be breaking the law in the first place. According to this Wikipedia article, 245 people died between June 2001 and June 2007 as a result of these weapons. Compare that with the 423 gun-related homicides in my home state of Michigan alone in 2005.
Here is the thing that really pisses me off about the laws surrounding these weapons: I live in the Detroit, MI area. Tasers and stun guns (electroshock weaponry in general) are illegal for anyone to buy or own here (except for police). Of course, we can still all buy handguns at our leisure. I don't own a gun or an electroshock weapon. I do, however, know several individuals who own handguns. Many of these are people who live and/or work in dangerous areas, so I really don't blame them. Wouldn't it make sense to legalize these non-lethal (most of the time anyways) weapons? Isn't it safer and less likely to result in death if you taser someone trying to harm you instead of shoot them with a handgun? This has never made sense to me and I doub it ever will.
I had this really stupid class in college called "Organizational Behavior". To this day, I still don't know what I was supposed to learn in that class. Despite the class being boring and pointless, the professor was actually a very interesting guy. He said something one time that always stuck with me: "Leadership is the reduction of uncertainty." If you think about it, it's true: your employees have to be certain they are doing the right thing, be certain of the requirements, and be certain they will get the support they need. Your customers have to be certain that you're meeting their needs. If you can do all those things, than you're probably doing a good job.
I also agree with the "good manager = good buffer" statement, but I'd even take it a step further. Great managers have requirements analysts, support personnel, etc. get the information from the customer. Then they form a plan and assign tasks to their development team. In my experience, this works rather well.
I'm totally going off on a tangent... back to your original question. Karl Wiegers' Software Requirements and More About Software Requirements are both geared towards requirements analysis, but have a lot of info that anybody in IT (and especially project managers) would find pretty useful... Both are worth checking out. I've also heard lots of praise for The Mythical Man-Month, but I've never gotten a chance to read it. Besides those, I would skip books on general management techniques and go straight for anything on software engineering or project management. The R.S. Pressman website probably has even more recommendations.
We are currently in the beginning stages of a large project where I work. We are going to consolidate 2 Win32 apps (one C# and one Delphi) and 8 websites (all ASP classic) into 3 separate web applications (ASP.NET). We are also going to be re-writing most of our database stored procedures and restructuring pieces of the schema.
You may be asking, why do all this? The reason is two-fold. The first is obvious: Not having to write the same or similar code multiple times in multiple languages. The second is even more important: Poor design of the existing system. There are a number of pieces of our current system that are so poorly designed that it is almost impossible to maintain them, let alone expand on them. At some point, a re-write becomes the best solution. The important thing to remember (in my opinion, anyways) is not just to re-write, but to re-design the system. Don't port broken logic and functionality to a new language. Take a step back, ask yourself what the problem you are really tring to solve is, and write the best possible solution.
Well, that's my 2 cents!
Sorry if any of these suggestions are repeats... it's late and I'm too tired to read through all these comments. I've known a few people who have had this problem as well, so, first of all, I hope you don't feel like you're alone in this. Breaking into that first job seems to be a pretty common problem for programmers. My advice is to do one of the following: 1. Apply with companies that are willing to hire programmers fresh out of college. These are few and far between, but there are some out there. 2. Find a job (or internship) at a company with a small IT/software development department, and work hard to prove yourself. On a small enough team, you will rise quickly. 3. Get involved in some projects. I noticed some other replies mentioned open source projects; I can't speak to this personally, since I've never been involved with one, but I guess every bit helps. Also, if you're confident in your abilities, bid on some jobs from websites like Rent A Coder and Elance, and work on them in your spare time. Make sure this is all listed on your resume. For my part, I was fairly successful with suggestion #2. I landed a position with a small software department (about 15 people) a few months out of college as an analyst (job duties included defect analysis, level 2 support, and writing user docs). I ended up playing a key roll on a few projects, and was eventually promoted to software developer within a year. The company I work for now (based in Troy, MI) actually hires quite a few people out of college, although I was offered my specific job because of my skills and experience. Some other things you should be doing: 1. Make sure you have an up-to-date, well-organized, professional-looking resume. 2. Make sure your resume is posted on sites like Monster, CareerBuilder, and Dice (especially Dice!). If you know your current company's HR department uses these websites, you may want to make it private and apply for jobs individually. Otherwise, make the resume public, and update it often to keep it near the top of search results. 3. Network with people in the IT/techonlogy industry. Posting on forums is one great way to do this. Also, If you don't have one already, I highly recommend signing up on a website called LinkedIn; it's a social networking site aimed at business professionals and job-seekers. It is a great way to meet people in your industry. 4. Keep your skills up to date! Sign up for free newsletters and magazines. Find online articles and tutorials. Get books related to specific development platforms or languages you're interested in (popular publishers include O'Reilly, Wrox, and Microsoft Press). Build applications in your spare time. Do whatever you can do get exposure to what interests you. As my old boss once told me, you should "know a lot about something and a little about everything". Get exposed to as much as you can, but try to focus on one or two key technologies or areas. People generally focus on one specific development platform, like Java, .NET, or LAMP. My first job gained me some exposure to Delphi and ASP classic, but it was my .NET and SQL Server skills that had the job offers coming in once I started looking. Again, make sure all of your skills are listed on your resume.
(On a sidenote: If .NET is your preferred platform, I suggest learning both C# and VB to a decent level of understanding. From the job postings I've seen in the past, their usage seems to be split pretty evenly. Most recruiters or HR people are comparing your skills with a list they were given; they won't know how similar they are or how easily it is to move from one to the other.)
I hope these suggestions were helpful. Keep in mind that sometimes we have to work jobs that we don't consider to be the "ideal job", but that doesn't mean we have to stop looking. Stay positive, and you will eventually find what you're looking for. Good luck!
And you're saying that you can't program in VB?
Violent? Yes. Torture? Hardly. Law enforcement personnel use these weapons as a means of subduing potentially dangerous criminals. They're not strapping people down and prodding them. It is unfortunate that some people die as a result, but they really shouldn't be breaking the law in the first place. According to this Wikipedia article, 245 people died between June 2001 and June 2007 as a result of these weapons. Compare that with the 423 gun-related homicides in my home state of Michigan alone in 2005. Here is the thing that really pisses me off about the laws surrounding these weapons: I live in the Detroit, MI area. Tasers and stun guns (electroshock weaponry in general) are illegal for anyone to buy or own here (except for police). Of course, we can still all buy handguns at our leisure. I don't own a gun or an electroshock weapon. I do, however, know several individuals who own handguns. Many of these are people who live and/or work in dangerous areas, so I really don't blame them. Wouldn't it make sense to legalize these non-lethal (most of the time anyways) weapons? Isn't it safer and less likely to result in death if you taser someone trying to harm you instead of shoot them with a handgun? This has never made sense to me and I doub it ever will.
I had this really stupid class in college called "Organizational Behavior". To this day, I still don't know what I was supposed to learn in that class. Despite the class being boring and pointless, the professor was actually a very interesting guy. He said something one time that always stuck with me: "Leadership is the reduction of uncertainty." If you think about it, it's true: your employees have to be certain they are doing the right thing, be certain of the requirements, and be certain they will get the support they need. Your customers have to be certain that you're meeting their needs. If you can do all those things, than you're probably doing a good job.
I also agree with the "good manager = good buffer" statement, but I'd even take it a step further. Great managers have requirements analysts, support personnel, etc. get the information from the customer. Then they form a plan and assign tasks to their development team. In my experience, this works rather well.
I'm totally going off on a tangent... back to your original question. Karl Wiegers' Software Requirements and More About Software Requirements are both geared towards requirements analysis, but have a lot of info that anybody in IT (and especially project managers) would find pretty useful... Both are worth checking out. I've also heard lots of praise for The Mythical Man-Month, but I've never gotten a chance to read it. Besides those, I would skip books on general management techniques and go straight for anything on software engineering or project management. The R.S. Pressman website probably has even more recommendations.
I'm using IE7 on Windows XP Professional.
It does crash on my machine, but only when opening the new tab.
I thought this was pretty funny: http://www.thebestpageintheuniverse.net/c.cgi?u=ip hone
We are currently in the beginning stages of a large project where I work. We are going to consolidate 2 Win32 apps (one C# and one Delphi) and 8 websites (all ASP classic) into 3 separate web applications (ASP.NET). We are also going to be re-writing most of our database stored procedures and restructuring pieces of the schema. You may be asking, why do all this? The reason is two-fold. The first is obvious: Not having to write the same or similar code multiple times in multiple languages. The second is even more important: Poor design of the existing system. There are a number of pieces of our current system that are so poorly designed that it is almost impossible to maintain them, let alone expand on them. At some point, a re-write becomes the best solution. The important thing to remember (in my opinion, anyways) is not just to re-write, but to re-design the system. Don't port broken logic and functionality to a new language. Take a step back, ask yourself what the problem you are really tring to solve is, and write the best possible solution. Well, that's my 2 cents!