Managers often put developers in an awkward position by asking them to write ethically ambiguous code. And recently a number of companies have used code to break the law.
It’s clear that— just like doctors, lawyers, and business people — developers need to study ethics and apply these principles in their day-to-day work.
Some universities are introducing developer ethics courses, but this alone isn’t enough. There are 20 million professional developers out there, and millions of working adults who are transitioning into the software development field. Most of them don’t have time to go back to school to take an ethics class. How can we introduce ethical concepts in a way that’s practical enough for these busy developers?
So I reached out to Robert “Uncle Bob” Martin, the legendary programming coach behind the Clean Code book series. In 2015, Uncle Bob published an ethical framework for developers called “The Programmer’s Oath.”
Uncle Bob volunteered to create a series of short videos for freeCodeCamp’s YouTube channel — one for each promise in his Programmer’s Oath.
And today, I’m proud to announce that we’ve published the final video in the series. So now the entire series is available on YouTube — for free, and with no commercials.
You can watch Uncle Bob’s The Programmer’s Oath series here (it’s 12 minutes long in total).
Here are the 9 promises of Uncle Bob’s Programmer’s Oath, from his original 2015 blog post:
- I will not produce harmful code.
- The code that I produce will always be my best work. I will not knowingly allow code that is defective either in behavior or structure to accumulate.
- I will produce, with each release, a quick, sure, and repeatable proof that every element of the code works as it should.
- I will make frequent, small, releases so that I do not impede the progress of others.
- I will fearlessly and relentlessly improve my creations at every opportunity. I will never degrade them.
- I will do all that I can to keep the productivity of myself, and others, as high as possible. I will do nothing that decreases that productivity.
- I will continuously ensure that others can cover for me, and that I can cover for them.
- I will produce estimates that are honest both in magnitude and precision. I will not make promises without certainty.
- I will never stop learning and improving my craft.
This is just the beginning. As software powers more and more of the world, developer ethics will become increasingly important.
As a small nonprofit that’s helping millions of people become developers, freeCodeCamp will continue to publish videos and articles on this important topic.
I want to thank Uncle Bob for creating The Programmer’s Oath and setting the bar so high for our profession. And I want to thank prolific YouTube contributor Beau Carnes for editing these videos.
Here are three other links worth your time:
- An overview of every Data Visualization course on the internet (14 minute read)
- How to stop errors before they ever hit your codebase with Travis CI and ESLint (6 minute read)
Thought of the day:
“We programmers. We rule the world. We write the rules that make our society work.
“Think about it; and think about it carefully. Nothing happens in our society without software. Nothing.
“It’s certainly true that the Earth turns, the Sun rises, the rain falls, and the tides recede and advance without the aid of software. But in our society, virtually nothing happens without the involvement of some kind of computer program.
Without software: Phones don’t ring. Cars don’t start. Planes don’t fly. Bombs don’t explode. Ships don’t sail. Ovens don’t bake. Garage doors don’t open. Money doesn’t change hands. Electricity doesn’t get generated. And we can’t find our way to the store. Nothing happens without software. And what is software? Software is a set of rules.”
- Robert “Uncle Bob” Martin in “The Obligation of the Programmer”
Image of the day:
Webcomic by CommitStrip
Study group of the day:
– Quincy Larson, teacher at freeCodeCamp
If you get value out of these emails, please consider supporting our nonprofit.