EDITOR'S NOTE: Some technology-based information referenced in this article may be out-of-date by today's standards (December, 2004).
MR. GRAVES AND HIS CAREER
How did you discover you had a talent computers and technology?
I have been interested in computers as a form of entertainment since grade school; games like Space Quest are what really got me interested in technology. During high school, I was introduced to Computer Aided Design (CAD) and that was my primary focus, even after I graduated. I didn't get involved with programming languages until after I was in college taking a class that showed how to use a scripting language with the AutoCAD software package. I ended up enjoying the scripting more than the design. It was at this point that I turned my attention towards programming.
How did your education & career unfold? Why did you choose this career?
When I was first looking at colleges I wanted something that would allow me to get a degree in a field that I enjoyed while still having a good earnings potential. When I finished high school, I focused on CAD because I enjoyed it, I was good at it, and I knew I could get a decent job in that field. After a year in a CAD program, I realized that it wasn't at all what I wanted to do, and I changed majors, which was probably the best decision I ever made.
The Software Engineering program at University of Advancing Computer Technology (UACT) was exactly what I was looking for - they offered courses in programming as well as in networking, and it allowed me to experience the best of both worlds. I fell in love with programming and the Internet, and everything just went from there. I got a job at the university in their Software Engineering Department, and I devoted around 12-14 hours a day to work and school, doing what I enjoyed, learning how to do it better and trying out new ideas.
Who and what were the biggest inspirations for your career?
I was fortunate in that I had several great instructors who really cared about the quality of my education. Most of them inspired me in some way or another to excel and succeed.
What does your company do? What are its competitive advantages?
Thomson Financial is the world's largest provider of financial information, which they distribute to other companies and to consumers over the Internet through sites like thomsonreuters.com and www.insiderscores.com.
What are your main job responsibilities?
I am currently responsible for making sure the applications that retrieve and distribute the data for the site and that send information to our users continue working properly. In the event of a problem, I have to analyze the errors and implement a solution. I have a lot of flexibility in that if I think I can make an application work better, all I need to do is make the change or in some cases reengineer the entire application from scratch. I also help architect any new applications and solutions that will be used by future products.
Describe a typical day of work for you. What do you like most, like least?
I tend to work a lot better in the evenings, so I usually don't get to work until around 10-10:30 in the morning. This is when I get caught up on email and begin prioritizing my tasks for the day. This can range from mundane tasks like generating a new list of registered users to having to sifting through 300+ stored procedures to isolate discrepancies in the data. Occasionally, there are problems with the nightly batch processes, and I either have to deal with them when they occur or deal with them when I get to work in the morning after giving the world a chance to realize that something bad happened.
My favorite part of the job is when we start a new project or when I tear apart an existing process and make it better. This is when I get to really utilize the skills that I've worked hard to learn.
My least favorite part is working from 2 a.m. until a problem is fixed because a server wasn't available when it needed to be and all of the automated processes failed.
What core vocational philosophies and values do you embody in your career?
I take great pride in my work. If I say I will do something then I go the extra mile to do it and have it done when I said I would. It is hard not to take shortcuts when programming, but if you take the time to do it right the first time you save yourself a lot of trouble later on, and your chances of getting interesting projects to work on is increased ten-fold because not only is it easy to maintain existing code, you will establish a reputation within the company for delivering quality products.
EDUCATION INFORMATION & ADVICE
Why did you choose the school you did?
I chose the school I did because it offered a bachelors degree in a field that I enjoyed and that I thought would make a good career. At the same time it did not require any foreign language classes. I also wanted a school that focused on education and not on parties. On top of all that I was interested in getting done early and getting on with life, so I looked for schools that offered accelerated learning programs… three full semesters in a single year. When looking at an accelerated program you should keep in mind that you will be immersed in learning year round for about three years with rarely more than a week off between semesters. It can be extremely hard.
Where did you get your certifications?
Certification tests are taken at testing centers located around the world via companies like Prometric. They download tests from the author company, like Microsoft or Sun, and you take them in an enclosed testing area. Tests range in price, but most Microsoft tests are around $100 each. Anyone can register to take certification tests online at Prometric's website.
Precisely, what are the best ways to prepare for and pass the Microsoft Certification tests? Which tests are the hardest and easiest? How important are they for your career?
My preferred method to preparing for a test is to immerse myself in the material for about a week prior to taking it. Read up on the topics that are covered, and then sit down at a workstation and hammer on how to actually do everything. Nothing will prepare you better than a lot of hands on experience. Difficulty of tests is relative to your level of preparation and your understanding of the material.
What are the types of computer/IT degrees and certifications are available to students and how far can each education level take a student in her career?
You can get anything from a certificate of completion to a Ph. D. in Computer Science. In the programming industry, anything more than a Bachelors is a bit of overkill until you start getting into upper management or you want to go into R&D. ANY kind of proof of a formal education will be enough to get you an interview provided you have the skills needed, and obviously the preference to hiring someone would be from highest to lowest. However, someone fresh out of school with a Masters degree might not be as desirable as a developer with a Bachelors and two years in the industry.
What did you like most and like least about your computer education and training? What advice could you give to schools and certified training centers to improve how they educate students?
My least favorite part of college is getting a great class that promises to teach you some really cool skills and having a teacher who doesn't know the material any better than you do. At the very least, an instructor should have done all of the assignments themselves prior to attempting to teach the class. I can't think of anything more irritating from a student's point of view than knowing that your instructor is only a week ahead of you in learning the material.
What advice can you give students looking to get the most out of their computer/IT education?
Find out what kind of industry experience the instructors have at the school you are planning to attend, you will eventually have a class or two in which the instructor is less experienced than you would prefer, but you can still learn a lot. Try to choose a school that has the most experienced instructors and also always remember that you can use class time to learn what you want to learn, if an instructor isn't teaching you what you want to learn, use the time to learn on your own. Just try to include the rest of the class in your efforts when possible.
How important are internships and how does one get into the best available?
Internships are a beautiful thing, if you can get them. They provide excellent hands on training at no cost to you; the flip side is that you're doing work for a company that doesn't pay you, and they expect you to give your best, even if you cant deliver. The best way to get an internship is to ask the IT department at your school if they have anything like that, or if they're willing to give a workshop, or if they would like any help building new computers. Another way is to ask the student services to set something up. Many companies are willing to give some training in exchange for a few extra eager hands on a project they don't have time to do themselves. It's hard to find internships in the industry on your own; the best thing is to go through a student services / placement department.
What should computer/IT students try to get out of their education?
As much as possible; do not shortchange yourself on anything. Take advantage of every opportunity you possibly can to lean every ounce of knowledge available. Get a job at the school, if possible; you would be absolutely amazed what kind of opportunities to advance your learning will come about when you suddenly have access to all the universities resources all the time and you get paid for being there. If you ever find yourself bored in a class, then you have a problem; either talk to your instructor after class and ask for more advanced materials to work on separately, or work ahead of the class on your own. Do as many projects as you can to explore new ideas and techniques. Every single one of those projects can be put on a resume in some way, even if only to describe to someone how you know how to use a specific piece of technology.
From what you hear, what schools and IT training programs are a cut above the rest in reputation so much that having attended them puts your career a leap ahead (aside from where you went to school)?
Prestigious schools such as these are great if you want to go into really advanced computer science careers at places like Los Alamos Laboratory. Any company that looks for advanced knowledge will look at degrees from these schools first and foremost, and really, ANY company would respect the education received from a school like that. But the reality is that there are so many unfilled positions out there, a degree from any university will do just as well as long as you have the talent needed. There is no reason to spend that much money on an education at a school like that if all you want is to make money and not go into research or work on ultra-advanced projects.
How much did you education cost you and how did you pay for it?
My education cost me around $1,000 a month in tuition averaged out over the whole thing. Early semesters are usually cheaper than later ones. The federal government will loan you around $44,000 in student loans for an undergraduate degree. I ended up maxing out my loans and having to pay a bit on the side because I spent a year in a CAD degree program and then changed majors. I got a job at the university that earned enough to pay all my bills and living expenses, my parents helped pay my rent each month, and I just focused on learning everything I could. This may seem like a lot of money to borrow, but its actually quite affordable when you consider that you will probably finish school and only pay $300-$600 a month in loan repayments with a job that pays $3,000 a month minimum.
Was your computer education and training worth the time and money investment for you?
Without a doubt, my education is the only reason I am living the way I do and making as much as I am, the loan payments I make are nothing compared to the earning potential I now have for the rest of my life.
JOB INFORMATION & ADVICE
How does one access their aptitude and best prepare for and succeed in a career in each of these fields with special emphasis on necessary education and skills? What does each of these positions pay (starting and after)?
There are numerous online assessment sites that allow you to take tests and compare yourself against other industry professionals. These sites should be taken with a grain of salt, but they will help to give you an idea of your overall competence. If you can go into a project not knowing what is required or how to do it, but being confident that you can figure out how to implement a lasting solution, then you're doing great. This kind of confidence will come with experience and experience is what will get you a high salary.
A starting salary for programmers is anywhere from $30,000 to $45,000 a year salary and $20-$35 an hour contract. Mid level programmers can expect anything from $40,000 to $80,000 a year, and Senior level developers can usually name their own price, but $80,000 or more is definitely not unreasonable. I would recommend converting salary figures to contract rates using something like Salary / 2000 * (35% or 40%) this will give you a rough hourly rate that compensates for the lack of benefits you get in a salaried position. Keep in mind that they're also paying for the convenience of having an on-demand developer that they don't have to put on a payroll. You're worth whatever someone is willing to pay.
What are five computer languages in decline that students should avoid AND five that are going to continue growing in demand (rank in order of importance)?
Pascal, COBAL and FORTRAN are definitely dying languages. They might have uses in explaining programming concepts to students, but the industry demand for them is low. C, C++, Visual Basic and Java are the main players. If you are good with any of these, then you are almost assured a decent paying position in the industry. I'm not sure how Delphi plays into the industry scene.
What advice can you give students who are preparing a resume for their first computer industry job?
Make your resume aesthetically pleasing to the eye and keep it under three printed pages in length. If you have a lot of industry experience, then focus on that first. Education should be treated as a subtle accent to your career. If you are just starting out, focus on your skills and the course work you are taking or have taken. Never list a high school on your resume and don't tell anyone how old you are until you're hired. Most companies will think three or four times before hiring a 20-year-old at $50,000 or more a year, but if they hire you based on your abilities, then life will be good. It's a good idea to have a list of skills along with a ranking of experience and competence somewhere on your resume; it will give whoever is interviewing you a good idea as to what your strengths are and what kind of questions to ask you.
What are the advantages and disadvantages of working as an independent contractor vs. an employee? What factors do young recruits need to consider with each type of work?
Contract work is nice because when it's done you can find something else; it's quick, easy and pays well with no obligations, and you're never bored. You need to be disciplined though; you NEED to put money into a savings account to pay for taxes because you will need to file as self-employed and your paycheck is pretax. Without this discipline you will hate life on April 15th.
Salaried employment is great because of the benefits, medical insurance is not cheap, and there are no paid vacations as a freelance programmer. A salaried position will allow you to work with a team on many different projects and, let's face it, if you slack off at work you're still going to get paid.
Another option is to go through a contracting agency; they treat you as an employee and give you access to a benefits program while still paying you contract rates. They will also make sure you always have a contract going somewhere and will keep working on finding new ones that you can bid on. You can negotiate an hourly rate on a per contract basis. They also handle tax issues for you; it's a beautiful combination.
Is there any other advice or considerations you wish to share with our readers?
When you finish school, and you've started making the big money, you should consult with a financial advisor and set up a comprehensive investment portfolio tailored to meet your long-term goals and make you financially independent. Starting early will pay off huge over time.