Hacker News new | past | comments | ask | show | jobs | submit login
Programming Has Changed My Life (professorbeekums.com)
139 points by beekums on Nov 20, 2016 | hide | past | favorite | 39 comments



I wish he was right, but I don't think he is. There is no evidence that programmers are better at critical thinking than other people with comparable intelligence. There is also no evidence, I think, that ability to think critically in one field transfers to different a field.

I think what happened is that he basically developed his critical thinking skills naturally, regardless of the field he was working in.


Your point on evidence is dead on. This is an entirely anecdotal piece which is why I titled it "Programming Has Changed My Life" rather than "Programming Can Change Your Life Too".

The latter claim requires a lot more research because it is a huge leap.

Whether I would have developed critical thinking skills naturally can be up to debate. The argument for programming being the factor is because computers are black and white in the early days. Code works or code doesn't work. We don't always get that direct feedback in human interaction.


>Whether I would have developed critical thinking skills naturally can be up to debate. The argument for programming being the factor is because computers are black and white in the early days. Code works or code doesn't work. We don't always get that direct feedback in human interaction.

Glad I refreshed before I posted a similar comment! Feedback in programming has quick and usually exacting results, giving you more feedback per unit time to tune your critical thinking process.


I think for me what helped was taking an ethics class in college. I realized then what should have been obvious, that people who hold different beliefs from me didn't arrive at those beliefs because their logic is somehow defective, but rather they have different priorities and care about different things.

I don't think my own error would have been corrected through programming; it might even have have led me somewhat to believe that political/religious/ethical problems can be approached the same way as writing software or formulating an equation, and they have answers that are objectively right or wrong in a way that any reasonably intelligent person would arrive at the same conclusion through the application of logic.

Which isn't to say that programming isn't a good way to treat certain kinds of unhelpful attitudes.


Well, the effective altruists believe that ethical problems can be approached using a lot of the techniques outlined in "measuring intangibles in business". That is, through proper analysis and approaching it like a programming/engineering problem.

And according to Aumann's agreement theorem, if your priors are the same (such as preference utilitarianism) two people should agree.

That is to say, I think it can work like that, as long as everyone involved agrees on an ethical framework and decision theory. And that everyone probably should do that.


That's not what Aumann's agreement theorem says.

First of all, it only applies to statistical reasoning about distributions of probabilities. It does not, for example, apply to "what should one do in this situation?". Preference utilitarianism is not a prior. A prior might be "there is a 5% chance that all cats are dogs".

Next, it only applies to Bayesian agents, a subspecies of unicorn.

Next, it only applies when all agents have perfect "common knowledge" of each others' posteriors, where "common knowledge" refers to a theoretical infinite transitive closure of meta-knowledge. I think it should be clear that a situation where two agents have common knowledge of each others posteriors is almost as rare as a state where two agents are both reasoning using nothing but Bayesian inference.

And lastly, as with your confusion about priors, the agreement that results is not agreement about what to do, or what ought to be done, but is merely an agreement of posteriors.

Do you find it rational to apply mathematical theorems about very specific impossible circumstances to unrelated domains, and do you find that the word "theorem" allows to manipulate the unwary?


I think getting total agreement on what ethical framework to use is really hard. For most hard problems, you need all the help you can get, and turning away anyone who doesn't exactly fit your framework is counterproductive. It might work in cases where the group of people you're working with are determined by a common interest or a common worldview.


Interestingly, I arrived at the same conclusion not by studying ethics, but by studying logic. Around the same time, I was watching Star Trek intensively and I noticed how comically wrong their depiction of Vulcan logic is: Since logic is the art of correct deduction, any action can never be "only logical" per se, it can only ever be logical given a certain (usually undisclosed) set of goals or values.


Quite right. Perhaps the Vulcans can be assumed to have an agreed-upon set of goals or values?

(Interestingly, a general theme of the textbook for the ethics class I took was that people develop their ability to make good ethical decisions largely through story-telling, since it provides an opportunity for people to imagine circumstances outside their immediate experience. If I remember correctly, a lot of the examples in the text were taken from Star Trek. It's interesting to think of Star Trek as not principally a science fiction show but rather a vehicle for exploring ethical dilemmas.)


Science fiction in general is a vehicle for exploring ethical dilemmas, and Star Trek just happens to be one of the most popular ones.


I have to ask if you ever looked for any evidence confirming that programming enhances critical thinking?

In my opinion, there is no doubt that programming improves critical thinking, but it is possible to question the definition of critical thinking.

I've worked with programming as a tool for better learning in schools based on critical thinking or meta-cognition.

If you read the work of Jean Piaget, Seymour Papert, Jerome Bruner, Dave Catlin or John Hattie, I believe you would have a hard time saying there is no proof that programming enhances critical thinking or meta-cognition as I would call it.

It is not a guaranty, but it is possible. Programming can be scaffolding in difficulty if you constantly keep challenging yourself. You can start with "Hello World!" move to building API's to build your language. It will for sure improve your critical thinking. It is not the only activity that does so, Soduko will also help do so, but it gives you no valuable skill you can get a job with as programming does.

There is also research showing how games like Soduko reduce the chance of Alzheimer and other mental deceases.


I'm still that guy that is always right some moments. Just hours ago I said Android would absolutely suck as a base OS for a musical instrument and in general any general purpose OS would be inferior to something created from the ground up to have tight audio and MIDI timing. There's stuff running a Z80 from '80s that is tighter than Macs just to prove that.

And I had to correct everybody, reply after reply on reply.

Somebody was wrong on the internet.

http://imgs.xkcd.com/comics/duty_calls.png

On the other hand I always assume I write code just to throw it away and replace it with something better once I understand what I really should have written. I'm glad I'm not building houses or something. I would have to demolish a lot of houses half way ;)


>> I always assume I write code just to throw it away and replace it with something better

In my understanding this comes with the combination of critical thinking and laziness. If you know that the "future you" may try to get rid of the garbage you are writing now you end up writing code that is easier to manage and to refactor without rewriting everything around it.

Being right all the time sometimes means knowing that you can not be right today but may be righter tomorrow.


> Just hours ago I said Android would absolutely suck as a base OS for a musical instrument and in general any general purpose OS would be inferior to something created from the ground up to have tight audio and MIDI timing.

I'd like to see that thread to see if some of my counter arguments were made (if it's a public thread at all).



It seems you were the most knowledgeable about Android in the thread. I don't particularly like Android as an OS, but recently I discovered that there are APIs specifically for low latency that are on par with what I could accomplish with Linux without custom kernels. And I saw it work in one of my devices (literally hitting the screen hard not being able to tell apart the hit from the output sound). Apparently it's 9 ms of latency for my device. However, there are several problems:

* There is few audio apps that make use of this API, and virtually none making proper use of it. All other audio apps are as laggy as always.

* You can't expect to run well on any random device.

* Regular development is awkward and constrained. One must be able to strip or personalize android to skip most of its development hell.

* Since it needs customization and custom apps, you may as well use GNU/Linux instead, with more battle tested solutions.

It is perfectly possible. Whether it's a good idea is another thing altogether.


I've seen this in scientists and engineers, too. A scientist can be very exacting in what he accepts as evidence in his field of expertise. But outside of that field, he'll continue to accept the flimsiest excuse for evidence just like everyone else.


This struck me when I wondered why a lot of scientists are at the same time deeply religious.


Humans are rationalization engines.


What do you think of the idea that learning to programming improves one's ability to think critically, but that doesn't automatically mean one makes better choices? Putting garbage into a decision making process will still lead the output of garbage.


> There is also no evidence, I think, that ability to think critically in one field transfers to different a field.

Can someone tell people to stop asking puzzlers in interviews then? I don't think the two are comparable at all.


I actually like to solve puzzles, but not the ones people usually call a "puzzle".

Solving a man-made puzzle for me feels completly arbitrary, where either you think the same way the guy who made it and can solve it quickly, or you don't and get stuck forever.

Instead, I prefer to think about nature's puzzles, things that don't work the way I expect them to, or just trying to explain why they do. Usually they're just as arbitrary, but even if you take the wrong path, they're so deep that you'll end up learning a lot either way.


I reluctantly upvoted. The content is wonderful and that ought to be enough, but the cartoon professor makes me feel a bit angry for some reason. Is this the application of Spolsky's[1] (among other's) recommendation of avoiding walls of text because nobody likes to read?

[1] http://www.joelonsoftware.com/articles/fog0000000033.html


I'm sorry you hate the avatar! I get lots of mixed feedback about it, but overall the feedback has been positive. I accept that I can't make everyone happy unfortunately.

I am trying to avoid walls of text, but I think it is an unfair statement to say that people don't like to read. People are reading the same amount of text regardless of whether pictures exist or not.

Unfortunately, I can't remember the name of the book, but there's one on brain science that discusses how people process text. Letters are still images as far as our eyes and brain are concerned. There's an extra processing step to turn one type of image (letters) into another type of image (what the letters are describing). This is exhausting and throwing in images act as "taking a break" even if that break is only a second or two.


I initially thought "cartoon dude is condescending!" Then my brain immediately said "lighten up Francis" and now I like cartoon dude.


I hate the cartoons too. There's something very condescending about them, smattered throughout your blog post.


dito! the cartoon dude is terrible... made me not read the post.


It can be annedoctic, but same here!


Just wanted to say I really liked the little cartoons. Do you do them all yourself?


I wish I was that talented. One of my friends is an incredible artist and I asked her to make those for me.


I'd like to chime in and agree -- the cartoon dudes are mildly amusing. It might be disconcerting that they are so large, but then I ended up un-zooming most of the page, so it might just be PEBCAK at my desk. ;)


I can see the intention, but it had the exact opposite effect for me. My eyes were drawn to these images like some blinking ad banner, and I got annoyed about how it draws my attention away from the content.


Totally agree. I see programming as a way to run experiments on your very ability to reason about things. Or on the thing inside you that has reason. I believe much of the positive side effects of programming come from this.


The cartoons make it look like marketing copy aimed at non-programming parents who want to buy lessons for their kids.


So I take it they're a professor like Dr. Pepper is a doctor.


Programming has certainly changed my life. Some of the changes are indeed positive. However many of them are not. I wouldn't do anything else because I love it but just like being a bricklayer or truck driver or a police officer there are downsides, risks and cost associated with career.


It has certainly given me a long and gainful career that I otherwise wouldn't have had if I had become a teacher or Accountant like I had planned.

My work ethic was mostly shaped by high school athletics, but perhaps codified (pun intended) by programming.


Didn't you just become older and more mature?


I think you might have just grown up. And also became less arrogant.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: