As the world continues to grow more computer-dependent, programmers occupy an increasingly important position, ensuring that functions and applications keep up with the changing needs of industry and individuals. Every software package, operating system and application you can think of is the result of thousands of lines of code that were composed, entered and tested by a computer programmer.
The job is demanding, requiring a good deal of concentration and attention to detail in addition to a thorough knowledge of programming languages. Primary responsibilities can vary, though most fall under the umbrella of writing, enhancing or debugging code. The type of code varies depending on what the program will be used for, which can range from a "simple" word processing program to the complex calculations involved in designing airplanes.
The wide range of applications means that programmers are busy people, often working on multiple projects, or parts of projects, at once. Don Stevens, CIO for the Michigan Department of Civil Service, comments, "It would be nice to be able to focus on just a few things at a time, but the reality is that once you have a reputation for getting things done, you get assigned a lot of things."
The number of assignments is only one aspect of the multifaceted responsibility taken on by programmers. Hillary Thomas, a software engineer at Telcordia Technologies in Piscataway, N.J., adds that "we all work as a team, but there are also times when you create your own team, and you are given a feature that you take the lead on." The decisions involved in putting together a team require a combination of technical, management and communication skills, all of which will serve a programmer well at any level.
Name: Hillary Thomas
Title: Software Engineer
Company: Telcordia Technologies, Piscataway, N.J.
Education: B.S. in computer science from Morgan State University, Baltimore, Md.; currently pursuing M.S. in computer science at the New Jersey Institute of Technology, Newark, N.J.
"My job entails being able to make software both user-friendly and better. I came to a place that already has a stable ground of code being written up, so I fix anything that our customers find wrong and go into the existing code and make enhancements and deal with the customer in providing support in using our tools and software."
"What I'm working on now is supporting a customer who wants to merge two databases. Previously, I worked on the feature that merged a database into an empty one. Now I'm trying to find a better way to let my customers merge two existing databases. "We have Oracle databases, so I have to go about writing a detailed design, write test cases to test my code, and develop a few scripts that would use our existing C++ code to perform this activity. It will go through a code development phase and then proceed to a testing phase, and you have to develop documents to describe the feature and other documents to test that it works correctly. I have to be responsible for writing the code."
Why She Took the Job:
"Telcordia didn't give me hard technical questions or test my ability to write 10 lines of code right in front of them, and that made it very comfortable for me. They were more interested in me as a person and how I worked on a team. I have the opportunity to present new ideas in a comfortable working environment and the opportunity to grow in the company."
Biggest Surprise About Working:
"Coming in as a student, the biggest surprise would have to be all the different processes and phases that you have to go through. You're working with dates and customers and trying to achieve the date and working with a Quality Method of Operation (QMO) process. It was something I wasn't familiar with."
How She Knew This Was the Field for Her:
"When I was around 10, my parents bought our first IBM and I looked into one of their basic programming books and just sat there and would type in everything just so I could see the output. And I used to like typing a lot, I liked to see how fast my hands could go. Now I've taken it to a higher level."
The Best Piece of Advice Someone Ever Gave Her:
"Always be willing to learn something new. It can only make you a more useful employee."
Advice to Future Computer Programmers:
"There will be roadblocks when trying to reach your goal. With determination and perseverance you will be able to achieve anything. And since technology is constantly changing, stay on top of the latest software. From what we're using now and seeing what's out there, I would definitely say C++ and Java are a must."
Name: Don Stevens
Title: Chief Information Officer
Company: Michigan Department of Civil Service
Education: B.S. in personnel and business administration from Michigan State University, East Lansing, Mich.
Job Description/Current Projects:
"At the moment I am wearing two hats: 1) as CIO of the Department of Civil Service, and 2) as the Customer Relations and Support Manager for the State's Human Resource ERP implementation project. A Chief Information Officer and Project Manager have somewhat conflicting charters. CIOs are supposed to be strategists with an eye on the future to supply the vision and then build both the systems and people capacities to accomplish the vision. Project Managers have very finite targets. With only a short amount of time to accomplish milestones, they have little time to focus on what's beyond the scope of the current project. It's a rather interesting balancing act, but I'm finding ways to make the two roles complement one another. In either role, you have to be perceived as a leader."
Biggest Surprise About Working:
"I found that businesses didn't follow the same playbook that I had been taught in college. The basic concepts were often there, but I didn't anticipate that there'd be a whole different spin on how things were approached. I also was surprised to find truth in the saying about the cobbler's children going without shoes. My first job was with a computer manufacturer whose main product was automated accounting systems. It was bizarre that we had to handle all the company's internal accounting using typewriters and adding machinesno computers."
Biggest Problem Encountered:
"The problems I solve today have more to do with making decisions and giving guidance and direction [than coding]. As a manager I spend a lot of time dealing with other people's problems and seeking out solutions that will work for our customers, our technical staff, our organization as a wholeand in government, not doing things which could cause public concern. A lesson I learned over the years is that everyone is an individual with his or her unique needs and motivations. You need to spend time listening to and understanding these needs, and don't assume that what has worked for one customer or staff member will also satisfy or work for another."
Non-Technical Skills Needed to Succeed:
"Interpersonal and communication skills come to mind first. And it is very important to understand the big picture needs of the business and be able to assimilate and prioritize those needs using the most appropriate technologies. Heavy duty reading and knowing how to sort through tons of information is also a daily requirement."
The Best Piece of Advice Someone Ever Gave Him:
"I've had lots of good advice over the years. One of the best is to accept lateral moves within your organization when it involves an opportunity to learn and use new skills. I've done this a number of times, and as long as I've done a good job, it has lead to even better jobs shortly afterward."
Advice to Future Computer Programmers:
"It's hard to say which technology one should focus on, as what's hot today could be cold tomorrow. So don't spend too much time learning just one tool. You also should think about what type of organization you might want to join. I put computer engineers into two general categoriesthe technology builders and the technology integrators. The technology builders need very strong technical skills in a number of contemporary tools, while the technology integrators need to have more of a balance among technical, process analytical and interpersonal skills. More and more I see both businesses and government buying software solutions from the technology builders and then implementing the solutions with their own or contracted technology integrators."
What the Future Might Hold:
"Few CIOs seem to stay very long in one position, so I presume that within two or three years I, too, will likely be doing something different. I'd be interested in a number of things that involve technology, process reengineering, marketing or staff development. My preference would be working in a multi-role capacity for a small to mid-sized organization. I might consider management consulting. Or, if the job of Chief Knowledge Officer were to become a key position, that too would be of interest."