NLPhilia Blog

NLP Articles, News, Trainings, and Products

Archive for the ‘Programming’ Category

Remember What The “P” Stands For

without comments

Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.

Brian W. Kernighan, computer programming pioneer

Written by Michael DeBusk

September 19th, 2022 at 3:10 pm

Posted in Programming

Assuming Positive Intent

without comments

The “P” in “NLP” stands for “programming,” as in “computer programming.” I’ve found it very useful to learn basic computer programming and to read what programmers write about what they do.

Programmers work in teams, and “soft skills” are increasingly important in the field. Today I found a reference to one of NLP’s Presuppositions:

I began to realize that nobody–including myself–was really taking the time to understand the motivations of their colleagues. When John presented the situation to me, he thought he understood Gargamel’s motivations, and I didn’t question that understanding. Similarly, Gargamel thought he understood Dr. Claw’s motivations and neither he nor his manager questioned that understanding. But I had met both Gargamel and Dr. Claw. They are both very nice, generous people who don’t resemble their cartoon villain namesakes in the slightest.

What happens when we just assume positive intent?

Written by Michael DeBusk

February 16th, 2017 at 4:50 pm

Thinking like a programmer

without comments

Some of you may remember Michal Wallace. I lost track of him a long time ago and sort of accidentally found him recently. He has a blog called “without an e” and it’s very cool. Mostly about programming, it also approaches non-computer-programming problems from a programmer’s perspective.

Here’s a recent example: “Refactoring GTD (Getting Things Done) for Email”. He uses Python code to illustrate two ways of thinking about what he’s doing. (If you’re unfamiliar with David Allen’s “Getting Things Done” productivity philosophy/practice, see Mr. Allen’s Web page.)

I’ve said it before, and I’ll say it again: one of the best things I have ever done for myself was to learn the basics of computer programming, and I recommend it to anyone. Michal’s example above is one reason why.

EDIT 2022-05-16: Michal no longer maintains the above-mentioned blog and I haven’t yet found the python code I referred to in this article. His new blog is here, and it’s currently a list of ways to find him elsewhere.

Written by Michael DeBusk

March 17th, 2008 at 9:54 pm

Posted in Programming

How Unix geeks get things done

with 2 comments

Productivity goddess Gina Trapani from Lifehacker has been studying the Unix Philosophy and applying it to personal productivity. I think it’s an unusual idea, especially considering that, as the old saying goes, “philosophy is to real life as masturbation is to sex.” If you’re familiar with Linux or Unix you know what I mean.

Let’s think of these points as applying to the practice of NLP, though, and see where it takes us:

  • Write simple parts connected by clean interfaces. (Rule of Modularity)
  • Clarity is better than cleverness. (Rule of Clarity)
  • Fold knowledge into data so program logic can be stupid and robust. (Rule of Representation)
  • When you must fail, fail noisily and as soon as possible. (Rule of Repair)
  • Programmer time is expensive; conserve it in preference to machine time. (Rule of Economy)
  • Prototype before polishing. Get it working before you optimize it. (Rule of Optimization)
  • Design for the future, because it will be here sooner than you think. (Rule of Extensibility)

What do you think?

Go read the full article: Applying Unix Philosophy to Personal Productivity

Written by Michael DeBusk

February 16th, 2008 at 10:17 pm

Attributes of Highly Effective Programmers

without comments

Once I was more interested in the Java programming language than I am now. I joined the Java Lobby so as to keep up with developments. I never learned to write Java code, but I still keep my Java Lobby newsletter coming. Sometimes there is something powerful in it. Like this past issue, which pointed me to The Philosophical Geek‘s article on the Top 5 Attributes of Highly Effective Programmers:

  • Humility
  • Love of Learning
  • Detail-orientedness
  • Adaptability
  • Passion

Please don’t just read the list and think you’re done. The article is wonderful. I especially enjoyed the part about humility… what it is and is not. Go read it all.

Written by Michael DeBusk

January 30th, 2008 at 3:33 am

Posted in Programming,Values

Belief Craft

without comments

I attended a Belief Craft training a little while ago and was very impressed with what I learned to do. Combine Jonathan Altfeld’s Knowledge Engineering with Doug O’Brien’s Sleight of Mouth and you get an amazing set of modeling and personal change tools.

If people learn to listen well enough to track the larger belief systems, then, they can then use Sleight of Mouth skills to wire completely around a problem belief, without actually attacking the problem belief. Then you can change someone’s mind without them feeling defensive about it, and sometimes, without them even knowing. That represents the most elegant use of Sleight of Mouth possible.

They’re doing it again in June of 2008 as the first module of a Master Practitioner training. Here’s your chance to grab it up before it’s all gone.

Belief Craft – Elegant and Pervasive Belief Change seminar

Written by Michael DeBusk

December 29th, 2007 at 4:00 pm

Keys to Programming

without comments

My old friend Chad Amberg is an interesting guy. Definitely not the type to march in time with the popular crowd, but not at all “weird” either. I think he’d make a great NLPer. I should mention it to him.

Chad is a computer guru. Mostly Windows, poor guy, but he can do pretty much anything that needs doing on pretty much any system you’re likely to be running. He’s the one who got me turned on to OS/2 back in the mid-1990s. Definitely old-skewl. Especially when it comes to programming.

We NLPers tend to spend a lot of time on the “N” and the “L” but not so much on the finer points of the “P”. Remember that Richard Bandler was learning computer science when he began poking around in subjective human experience, and that one of Jonathan Altfeld’s more popular courses, Knowledge Engineering, is pulled directly from Jonathan’s experience and training in the modeling of human decision structures using the Lisp programming language.

I know that when I learned the basics of programming in Rexx, it helped me to think much more clearly about structure. (I wouldn’t recommend Rexx right now, though, even though it’s excellent; I think Python is much more useful for the majority. If I had it to do over again, I’d have started with Python.) Learning to write a simple structured program, even in a scripting language like Rexx or Python, is a tremendous gift you can give to yourself.

Chad wrote a short article today on what he believes are the Keys to Programming. It’s brief, high-level, good advice with no language-specific ideas… more like “how to think like a programmer” than “how to write a program”. He references an essay by Paul Graham titled, “How to Hold a Program in Your Head”, which is what we’re interested in doing, yes?

Update March 30, 2022: Chad doesn’t maintain that blog any more, so I thought I’d include a link to Paul Graham’s article here: How To Hold A Program In Your Head

Written by Michael DeBusk

December 19th, 2007 at 8:35 pm