Programmer's Oath
As a programmer, I swear to fulfill these tenets:
-
I will only undertake honest and moral work. I will stand firm against any requirement that harms people unnecessarily.
-
I will respect the lessons learned by those who came before me, and will share what I learn with those to come.
-
I will remember that programming is art as well as science, and that warmth, empathy and understanding may outweigh a clever algorithm or technical argument.
-
I will not be ashamed to say "I don't know", and I will ask for help when I am stuck.
-
I will respect the privacy of my users, and use their data only to the end that it was entrusted to me for.
-
I will be humble and recognize that I will make mistakes.
-
I will tread most carefully in matters of life or death.
-
I will remember that I do not write code for computers, but for people.
-
I will consider the possible consequences of my code and actions. I will respect the difficulties of both social and technical problems.
-
I will be diligent and take pride in my work.
-
I will recognize that I can and will be wrong. I will keep an open mind, and listen to others carefully and with respect.
-
I will be kind to my fellow programmers and offer help to the best of my ability. I will not feign surprise when they don't know something, or disparage their code.
Something missing? Disagree with a tenet? Think the wording should be changed? Please open an issue and we can figure it out. I highly welcome collaboration, and I will do my best to facilitate an oath that reflects a diverse range of views. Please read the code of conduct and abide by it. If you have a negative experience collaborating on this project, reach out to me and I will do my utmost to help.
Inspired by the Modern Hippocratic Oath and the Obligation of the Engineer.
Signing
We have a list of public signatures in the SIGNATURES file.
If you wish to sign, please add your username and the current commit hash to the end of the SIGNATURES file (leaving a newline after your addition), and submit a pull request.
If you do sign, please also consider sharing this repository in your communities and encouraging others to take a look.
Re-signing
The oath is a living document, changing based on the feedback and agreement of those who wish to contribute. When you sign, the commit hash serves as the 'version' of the oath to which you have agreed. This means you are beholden to only what you have signed, and not the versions of the oath that have come later.
Signatories are welcome to upgrade or downgrade to older or newer versions of the oath whenever they choose.
To do this, open another Pull Request. On your signature line, replace the old commit hash with the hash of the version you choose. A contributor will check and merge your alteration in the same way as they would a new signature. We recommend that signatories follow the repository through GitHub so that they can see updates as they are made, and decide whether or not to re-sign.
Humane technology
The Center for Humane Technology (CHT) community - who strive to align technology to humanity's best interests - endorses this repository with the Humane Tech badge. Raising employee awareness within IT companies is one of the CHT's core pillars, and adhering to the Progammer's Oath is an excellent start to work towards this goal.
Related work
License
To the extent possible under law, Widdershin (the maintainer) and other contributors have waived all copyright and related or neighboring rights to this work.