What does a Computer Programmer do?
A computer programmer designs software programs through building logical work flow charts, the functionality of which is translated into one of several languages that computers can understand. In the majority of cases, the computer programmer also designs a graphical user interface (GUI) so that non-technical users can run the software through easy, point-and-click, menu-oriented modules. The GUI acts as a translator between the user and underlying software code, negating the need to know the command line structure of the language.
Generally, there are five basic stages of development that a computer programmer addresses in designing software. They are defining the need, designing a flowchart, coding the software, debugging and beta testing.
The first stage of development necessitates good interpersonal skills on behalf of the computer programmer who will typically meet with department heads, managers or employees who will relay the tasks to be implemented into the software program. It is up to the programmer to ask the right questions. If he or she misunderstands responses or gets an incomplete understanding of what’s required, the software won’t live up to expectations, resulting in problems that will fall squarely on the shoulders of the programmer.
During the second stage of development the computer programmer uses analytical thinking to logically layout a flow chart. The “if, then” scenario must take into account not only the logical steps that will take data input from one point to another, but also allow for possible problems relative to the specific work model or environment. Contingencies must be built into the design so that potentially unforeseen circumstances are accounted for. This could mean constructing alternate data flows or popup error messages that instruct the user.
When the design is complete the computer programmer converts the functionality of the flow chart into computer code. There are hundreds of programming languages, including C++, Perl, Java, Visual Basic, FORTRAN, Apple Script and D, with most programmers specializing in several families. This stage of software development is commonly done solo, though multiple programmers might work on different aspects of large computer programs.
When the initial software is completed it goes through a debugging stage. Bugs are flaws in the program that cause it to fail, crash, hang, return a false result, or behave in an undesirable fashion. Debugging is a very intense stage of development that can take hundreds of hours. A computer programmer will also try to get the program to fail by using it in ways that are not necessarily typical of the projected real world scenario.
Finally the software undergoes beta testing. At this stage the program is released to use with the understanding that it will require modifications before a stable release can be issued. Searching for bugs in the previous stage cannot take into account the variety of hardware and software environments in which the software will have to perform. Conflicts can arise “in the wild” that are simply impossible to anticipate until beta testing brings them to light.
After a stable release has been issued, the attention turns to improvements. Invariably once software is applied refinements can be made to make it more efficient or easier to use. The computer programmer might also be called upon to expand its functionality to include duties that were not initially part of its design. The programmer will also be responsible for maintaining the program’s health.
Although computer programmers are always in demand, U.S. programmers face competition from outsourcing to countries where labor is cheaper. The U.S. national average wage for a U.S. computer programmer is about $72,280 US Dollars (USD) annually, or $34.75 hourly, though statistics vary and state averages differ. Educational requirements include a bachelor’s degree in computer science, information systems or mathematics. Some employees require a four-year degree and prefer management information systems (MIS) or business degrees.
What type of attire is appropriate for a computer programmer?
Anon25449, as an independent contractor, what kinds of companies do you work for? Just curious.
The average salary for a programmer in the Midwest is $70,000 – 80,000 which is pretty good in my book.
If you are looking into this field as a career, there are a lot of skills you should have. Logical thinking skills, for example, are important. It is also important to be able to understand both business and technology and how they relate.
Programmers work on teams and those teams can consist of people from all over the world so the ability to interact well and communicate via IM and email is important.
Because of the different time zones, but I think also just because of the type of people that are programmers, it seems like most of them work outside the normal 9-5 period to account for time differences. So that kind of flexible schedule is probably important in becoming a programmer.
There is also a great deal of stress put on programmers to meet deadlines, more so than in the past.
@anon25449, It’s true, flow charts are no longer as necessary because programmers now are working with smaller chunks of code at a time, instead of the longer more complex codes from the 70’s. The coding languages programmers use have changed as well.
Few programmers work with flow charts today - that is very 70s. If they use any diagrams at all during design it would likely be something known as UML or universal modeling language.
I have a MS in CSC from a state university. As an independent contractor over the last 15 years my hourly rate has varied from 60 to 125 per hour (in CA) .. and is currently 100/hr. I would say the average big company programmer (in CA) is pulling down 85-110K year.
If you are considering entering this field some random advice:)
1) heed what the article says about the impact of outsourcing and H1/B - it is real.
2) If you are finding it hard/dull/boring while you are learning to be a programmer - seriously consider doing something more suited to yourself - because if you do enter the field it will very likely burn you out!
Post your comments