I think the one thing that being a programmer has taught me is the truth of something is so much harder when you don't have the "philosophical" approach available to you. If I try to compile a segment of code, and it comes back with an error, I can't just be partially right about how to fix it. I have to utilize methods of testing the problem against what i know, and make sure that it is true in ALL cases, EVERY time.
This kind of daily interaction is partially what led me to my loss of faith. I know that is a big jump in what little context I've given, but let me explain. When each and every day you deal in precise mathematical truth (it either works, or it doesn't) you begin to realize that believing in anything that you cannot absolutely show proof for is not just wrong, but intellectually dishonest. How can I say that I know that the universe was created by a supernatural God who transcends time and space, when we know next to nothing about either of those topics in the grand scheme of things?
The logical fact-finding tools that you HAVE to develop to be a programmer are so vital to having a good foundation for finding truth in the real world. When dealing with code, you cannot have contradictions and inaccuracies and just expect your code to work. It doesn't work that way. You have to constantly grapple with the simple fact that every day, you have to code with the understanding that the most basic, common things that you think you "know" about your own code, could be completely and utterly wrong due to some other factor. If I set a variable to equal the number 5, and then when I check it, it equals 73, I have to figure out why. No good programmer would ever use the logic of, well, God changed that variable. Or say that, well, I have faith that the next time that I run this code, that number will be 5 like it is supposed to be even if i don't change anything. Programming logic teaches you to use reason and logic to make very probable predictions. You would start by running some debugging tests on that variable. Set a breakpoint if the memory address is ever modified. Put a watch on it and step through the code. Search for any instance of the variable being set by an equals operator. You don't just take it on faith. You go in and you find proof for the inconsistency, and then you fix it.
This is the exact same logic that I started applying to my faith during my first job as a programmer. I would see a hole that no one could really explain, or if they did explain was just completely and utterly unsatisfactory and vague. I would see a contradiction between modern science and religion. I would see people just disregarding reality and taking things on faith. I couldn't square these things away with my logical process I was using. Ultimately, after many years of constant scrutiny of each individual aspect and detail of the bible that I could come across, I could no longer stand on such a weak foundation any longer. It just didn't add up. The formula just couldn't be balanced. The only possible way that I could still call myself a christian and actually believe it was to literally just turn a blind eye to the parts that couldn't be explained logically. Obviously, this just couldn't work for me any more, and so I left. I walked away.
I just hit a breaking point. The equation couldn't be solved. There were no debugging tools to turn to. There were no test cases to run. I simply ended up having to leave the faith on insufficient evidence. Now, obviously, this is not the only reason that I left my faith. The situation is far more complex with many other factors that I just simply don't have time to go into in this post. However, all that I am saying is that when you spend your days using the problem solving skills and precise calculations that are required in the daily life of writing functional software, it puts things in a whole different perspective. You are no longer satisfied with "just because" answers. You are no longer satisfied by untested hypotheses. For you to take something (especially something as big as a divine deity) as true, you must have sufficient reason to believe it. You must have testable and tangible reason to believe that you can test it and prove it to be true at all times across the board. Otherwise, you remain skeptical.
I believe it was Bertrand Russell who said, "Either the thing is true or it isn't. If it is true, you should believe it, and if it isn't, you shouldn't. And if you can't find out whether it is true or whether it isn't, you should suspend judgement." So that is exactly what I did. I suspended judgement. That is where I stand today. I spend my days expanding my mind using the tools of logic and reason, believing only what I can prove and disregarding the things that I cannot. The tools of a programmer are invaluable. They cut away all of the grey areas, all of the conversational padding, and all of the comfort zones. They allow you to put things to the test and determine right from wrong. Yes from no. Off from on. One from Zero.
This kind of daily interaction is partially what led me to my loss of faith. I know that is a big jump in what little context I've given, but let me explain. When each and every day you deal in precise mathematical truth (it either works, or it doesn't) you begin to realize that believing in anything that you cannot absolutely show proof for is not just wrong, but intellectually dishonest. How can I say that I know that the universe was created by a supernatural God who transcends time and space, when we know next to nothing about either of those topics in the grand scheme of things?
The logical fact-finding tools that you HAVE to develop to be a programmer are so vital to having a good foundation for finding truth in the real world. When dealing with code, you cannot have contradictions and inaccuracies and just expect your code to work. It doesn't work that way. You have to constantly grapple with the simple fact that every day, you have to code with the understanding that the most basic, common things that you think you "know" about your own code, could be completely and utterly wrong due to some other factor. If I set a variable to equal the number 5, and then when I check it, it equals 73, I have to figure out why. No good programmer would ever use the logic of, well, God changed that variable. Or say that, well, I have faith that the next time that I run this code, that number will be 5 like it is supposed to be even if i don't change anything. Programming logic teaches you to use reason and logic to make very probable predictions. You would start by running some debugging tests on that variable. Set a breakpoint if the memory address is ever modified. Put a watch on it and step through the code. Search for any instance of the variable being set by an equals operator. You don't just take it on faith. You go in and you find proof for the inconsistency, and then you fix it.
This is the exact same logic that I started applying to my faith during my first job as a programmer. I would see a hole that no one could really explain, or if they did explain was just completely and utterly unsatisfactory and vague. I would see a contradiction between modern science and religion. I would see people just disregarding reality and taking things on faith. I couldn't square these things away with my logical process I was using. Ultimately, after many years of constant scrutiny of each individual aspect and detail of the bible that I could come across, I could no longer stand on such a weak foundation any longer. It just didn't add up. The formula just couldn't be balanced. The only possible way that I could still call myself a christian and actually believe it was to literally just turn a blind eye to the parts that couldn't be explained logically. Obviously, this just couldn't work for me any more, and so I left. I walked away.
I just hit a breaking point. The equation couldn't be solved. There were no debugging tools to turn to. There were no test cases to run. I simply ended up having to leave the faith on insufficient evidence. Now, obviously, this is not the only reason that I left my faith. The situation is far more complex with many other factors that I just simply don't have time to go into in this post. However, all that I am saying is that when you spend your days using the problem solving skills and precise calculations that are required in the daily life of writing functional software, it puts things in a whole different perspective. You are no longer satisfied with "just because" answers. You are no longer satisfied by untested hypotheses. For you to take something (especially something as big as a divine deity) as true, you must have sufficient reason to believe it. You must have testable and tangible reason to believe that you can test it and prove it to be true at all times across the board. Otherwise, you remain skeptical.
I believe it was Bertrand Russell who said, "Either the thing is true or it isn't. If it is true, you should believe it, and if it isn't, you shouldn't. And if you can't find out whether it is true or whether it isn't, you should suspend judgement." So that is exactly what I did. I suspended judgement. That is where I stand today. I spend my days expanding my mind using the tools of logic and reason, believing only what I can prove and disregarding the things that I cannot. The tools of a programmer are invaluable. They cut away all of the grey areas, all of the conversational padding, and all of the comfort zones. They allow you to put things to the test and determine right from wrong. Yes from no. Off from on. One from Zero.
Comments
Post a Comment