3 Reasons Why Philosophy Can Make You a Better Programmer | by Matilde Aliffi | May, 2022

Philosophy and programming have an analogous mindset

Philosophy books and Software Engineering books on a table with a laptop and notebook
Picture by writer

I spent 9 years of my life doing philosophy at a College establishment. After finishing a bachelor’s, two grasp’s, and a doctorate I made a decision to maneuver away from academia and landed a job as a software program engineer.

I used to be shocked to find that, even when my technical information was minimal after I began to work as a software program engineer, doing philosophy ready me rather well for this occupation.

Don’t get me incorrect, I nonetheless lacked technical expertise after I obtained my first job as a software program engineer. My information of JavaScript was very restricted. I didn’t know something about AWS or Google Cloud Companies.

However doing philosophy helped me to excellent expertise which are the bread and butter of excellent programmers. And I wish to nonetheless do philosophy as a result of I feel this makes me a greater programmer.

On this article, I current three explanation why doing philosophy may help you turn out to be a greater programmer.

Earlier than I get into the principle three factors, let me make a caveat. I discuss doing philosophy, not merely studying philosophy books. There’s a distinction between merely absorbing info — and actively partaking with it. You do not want to be in academia for doing philosophy. What you want is actively have interaction in philosophical considering.

Philosophers disagree with one another. Because the thinker, Peter Van Inwagen places it “Disagreement in philosophy is pervasive and irresoluble.

There may be virtually no thesis in philosophy about which philosophers agree” (Inwagen, 2017, pp. 129–130). A PhilPapers survey carried out amongst skilled philosophers in 2020 exhibits that there are solely 3 out of 40 most important philosophical questions on which greater than 70% of philosophers agree on the reply.

Now when doing philosophy you possibly can consider this as someway disappointing. You could want to uncover the reality a few sure subject and you find yourself acknowledging that consensus amongst philosophers is so arduous to construct. However being in a area the place disagreement is so widespread amongst consultants teaches you to disagree productively with different individuals.

When partaking in a philosophical argument with somebody who disagrees with us, it’s essential to have the ability to pretty reconstruct the view that they’ve, earlier than criticising it, to grasp the power of their argument, and likewise acknowledge the weak point in your personal view. That is additionally a terrific train to be taught to be open to altering your thoughts a few subject after partaking in a philosophical dialogue.

With the ability to productively disagree can also be a really helpful ability in software program engineering. There are a number of options to a software program downside, and engineers might disagree on the answer to undertake.

Software program engineering is basically a collaborative enterprise, dealing with disagreement is essential. With the ability to disagree productively teaches you to keep away from speaking previous one another, and be certain that disagreement could be a supply of studying.

With the ability to preserve an open thoughts and acknowledge the worth of an method you don’t initially like may help to seek out compromises and settle for that as an answer if the crew so prefers.

Philosophical issues will be very broad and sophisticated (see, for example, this list of unsolved philosophical points). When an issue is especially entrenched, philosophers be taught to interrupt it down into its constituent components earlier than addressing it. They often do that by asking questions, clearly analyzing the parts of the issue, and unveiling any hidden assumption and any implication.

When writing, philosophers do attempt for readability of argumentation. If wanted, they create fine-grained distinctions to qualify their reply to the issue, and it’s usually due to these distinctions that there’s progress within the understanding of a philosophical downside.

Studying to unpack complicated issues can also be key for programmers. Skilled programmers know that they should guarantee they perceive the issue they’re attempting to resolve rather well earlier than beginning to code.

And when coding, programmers know they should remove complexity as a lot as they will writing code that’s nicely readable and straightforward to grasp. As John Ousterhout says, “the best limitation in writing software program is our means to grasp the techniques we’re creating” (Ousterhout, 2018, p. 1).

By doing philosophy, you spend a substantial period of time reviewing philosophical arguments, like programmers spend a substantial period of time reviewing code.

To make sure an argument is legitimate, philosophers verify whether or not the conclusion follows from its premises and whether or not the argument’s premises are all true. One of many attainable methods to verify whether or not an argument is legitimate is to search for a counterexample: if a counterexample will be discovered, the argument turns into invalid.

Typically, when doing philosophy, you attempt to anticipate objections to your argument, and also you present a solution to it. And this can be a ability that turns out to be useful for programmers.

When coding, proficient programmers be taught to consider edge circumstances to have the ability to accommodate them of their code. They should anticipate the place the code might break in order that they will enhance the standard of their code and design this system to deal with points gracefully.

Software program engineers don’t handle philosophical questions nor they often have interaction with philosophical writings throughout their work. However the mindset developed when doing philosophy will be helpful for programmers.

Philosophers trying to turn out to be software program engineers will be reassured: these three key expertise that they labored very arduous to get when doing philosophy will likely be simply transferable. And software program engineers could also be curious to include a little bit of philosophy into their weekly routine and experiment first-hand whether or not they may write higher software program consequently.

Bourget, D. & Chalmers, D. J. (2021). Philosophers on Philosophy: The PhilPapers 2020 Survey

Ousterhout, J. (2018). A Philosophy of Software program Design. Palo Alto: Yaknyam Press

Van Inwagen, P. (2017). Freedom to Break the Legal guidelines. In Serious about Free Will (pp. 129–148). Cambridge: Cambridge College Press.

More Posts