Programmer analysts work at various organizations. They design, code, and test new programs. They must document programs that they write. Documentation should include flowcharts, layouts, diagrams, charts, code comments, and revision dates. They debug, troubleshoot, and maintain source code related to various computer programs. Programmer analysts may also be required to customize computer programs that were bought from vendors to meet their organization’s specific needs. They must know computer algorithms, formal logic, and application domain. They may be required to work with vendors, in order to test and approve their products.
They must usually have a bachelor's degree in computer science, information technology, or other relevant fields. They must have previous work experience in their field. Computer programmers must have thorough knowledge of Java/Java EE, C, C++, C#, .NET, Java Script, and other programming languages. Some companies may accept candidates with significant years of experience in lieu of a bachelor's degree requirement. They must have excellent oral and written communications skills.
They must adhere to confidentiality rules related to system access, data access, and security rules. They must be able to work independently with minimal or no supervision and as part of the team. They must keep themselves up to date with various new computer technology and programming languages that are available in the marketplace. They may have to travel to vendors' or clients' offices. They may be required to attend relevant classes, workshops, or conferences. They may be required to coach new or more junior programmer analysts.
Programmer Analyst Tasks
Work with users from identifying conceptual system requirements through completion.
Work with middle-tier developers to integrate back-end database code with business applications.
Plan, design, schedule, write, and debug software for web sites.
Plan, design, schedule, write, and debug database stored procedures and complex queries to extract, calculate or manipulate information.
Plan, design, schedule, write, and debug client applications.