FOREWORD

Thank you we pray to Allah SWT so that the preparation of this “Programmer” paper can be completed in time. In addition, we would like to express our deepest gratitude to the “COMPUTER & COMMUNITY” lecturers for their guidance and motivation.

Computers and Communities are courses that really need to be developed and understood considering their huge role in education, especially in the IT field with its code of ethics and problems, especially problems that we discuss all kinds of businesses in the world or the computer field.

The author is aware of the shortcomings in the preparation of this paper. Because of that we really hope for constructive criticism and suggestions from all parties for the perfection of this paper.

Tangerang, June 17, 2017

Composer

TABLE OF CONTENTS

FOREWORD

TABLE OF CONTENTS

CHAPTER I

PRELIMINARY

1.1 Background

1.2 Identification of Problems

1.3 Problem Formulation

1.4 Purpose of Writing

CHAPTER II

DISCUSSION

2.1 Understanding Programmers

2.2 Factors Affecting Programmer Productivity

2.3 Skills and Obligations as a Programmer

2.4 Code of Ethics for a Programmer

CHAPTER III

COVER

3.1 Conclusions

BIBLIOGRAPHY

Nowadays technology is developing very rapidly, almost all activities carried out today utilize technology, so technology is not something that is foreign to us in our daily lives. In fact technology is used intensively by communities such as institutions, organizations, and so on. In addition to the need for good morals, ethics also has a very important role in the use of technology itself.

1.2 Identification of Problems

The research problems that the authors propose can be identified as follows:

Understanding Programmer
Factors Affecting Programmer Productivity
Skills and Obligations as a Programmer
Code of Ethics for a Programmer

1.3 Problem Formulation

What does the Programmer mean?
What are the factors that affect programmer productivity?
What are the skills and obligations as a programmer?
What are the code of ethics for a programmer?

1.4 Purpose of Writing

Can know the meaning of the Programmer
Can know factors that affect programmer productivity
Can know the skills and obligations as a programmer
Can know the code of ethics of a programmer

CHAPTER II

DISCUSSION

2.1 Understanding Programmers

Programmers are people who work to create or design a system to help facilitate the work of people who use computer media. Today many programmers, both freelancers and those who are not competing to create a system that can be considered sophisticated and beneficial to humans. Programmers are individuals in charge of details of implementation, packaging, and modification of algorithms and data structures written in a particular programming language.

2.2 Factors Affecting Programmer Productivity

Personal Ability.
Two basic aspects of ability: general skills and familiarity with certain applications.
A competent person in programming is not necessarily capable in science applications or vice versa.
The lack of familiarity with the application field will result in low productivity and poor quality.
What is meant by general skills is the basic ability to write computer programs correctly while a programmer’s productivity measure is many lines produced by the programmer per day.

Communication Team: Increasing the size of the product produced will reduce programmer productivity due to increasing complexity between program components and due to increased communication that needs to be done between programmers, managers, and customers.

Product Complexity: Three levels of product complexity include application programs, utility programs, system level programs.

Control of Change: Changes to the product must still ask the manager’s approval as the project’s person in charge. The impact of change must be traceable, tested and documented.

Reliability Level: Each product must have standard reliability. Increased reliability is generated through enormous attention at the analysis stage. Increased reliability will reduce productivity.

Problem Understanding: Customers are the main contributors to failure to understand the problem are:
Don’t understand the company’s problems,
Don’t understand the capabilities and limitations of computers,
Do not have basic knowledge of logic and algorithms.

Sufficient Training: Many programmers are trained in the fields of computer science, electrical engineering, accounting, mathematics, but rarely receive training in software engineering.

Availability of Time: Determining the length of the project and the number of programmers involved must consider the personal abilities of each programmer and the communication skills between them.

Facilities and Resources: Non-technical facilities that still need attention are related to the motivation of the programmer, for example a good machine, and a quiet place, or the work space can be arranged in private.2.3 Skills and Obligations as a Programmer

Some of the skills that must be possessed by a programmer include:

Understanding the source code of a program, from simple to relatively complex, is a skill that must be owned by a programmer.
Able to implement an algorithm in the form of a data structure in a program which we can adapt into programs that we create ourselves.
Continue to manage, adjust, develop and (if necessary) overhaul it to adapt the program to user needs without sacrificing future maintenance convenience.
Has the ability as explained in points 1 and 2 for programs written and documented by other programmers.
Read programs to enrich the tools a person has.

And there are also some obligations that a programmer must have, including:

Understand the basic concepts of operating systems. Understanding the basic operating system is important so that in running or making an application program easy because it already understands how the operating system that we use works.
Understand the basic concepts of networks. An application cannot run alone. The application must definitely be related to the internet, serving many users
Understand the basic concepts of relational databases. Each application must have a database in its data storage for programmers, especially Database Programmers emphasized mastering the relational database.
Because now is the internet age, it must understand the HTTP, FTP, POP3, SMTP, SSH protocols. The HTTP protocol is now the most widely used protocol on the internet.
Because now the era of globalization, it is necessary to understand Unicode. Unicode is important so that our application can still be installed on any computer.
Understand more than one programming language. Understanding more than one language is important so that the programmer’s insight is more open. That there is no one-for-all language.
How to use Version Control. In the world of work, the use of version control is required. This is the (de facto) international standard. If you have an open source project, both at Sourceforge, Apache, Codehaus, and all opensource project hosting, surely the programmer will be given version control.
2.4 Code of Ethics for a Programmer

Like a doctor, lawyer, or other field, computer programmers also have a code of ethics. Code of ethics is something that must be part of a computer programmer. The code of ethics is derived from the code of ethics used in associations of international programmers. The code of ethics of computer programmers includes:

A programmer may not make or distribute Malware.
A programmer may not write code that is difficult to follow intentionally.
A programmer may not write documentation that is intentionally confusing or inaccurate.
A programmer may not reuse code with copyright unless he has purchased or has requested permission.
Cannot seek additional benefits from projects funded by second parties without permission.
Professional ethics that apply to programmers in Indonesia. You can’t steal software, especially development tools.
It is not permissible to accept additional funds from various external parties in a project at the same time unless they get permission.
Cannot write code that intentionally drops other programmer code to take advantage of raising status.
It is not permissible to disclose important data of employees in the company.
Cannot notify financial problems to workers in the development of a project.
Never take advantage of other people’s work.
May not embarrass the profession.
It should not be carelessly denied the existence of a bug in the application.
It is not permissible to introduce bugs that are in software that later programmers will benefit from fixing bugs.
Continue to follow the development of computer science.